OSDN Git Service

gcc:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2
3         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
4
5 2011-07-25  Richard Guenther  <rguenther@suse.de>
6
7         PR tree-optimization/49822
8         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
9         more.  Make sure to preserve stmts with side-effects.  Properly
10         handle virtual defs, follow a longer def chain.
11
12 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
13
14         PR plugins/45348
15         PR plugins/48425
16         PR plugins/46577
17         * Makefile.in: Do not flatten c-family directory when installing
18         plugin headers.
19
20 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
21
22         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
23         original nodes if we are dealing with virtual clones.
24
25 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
26
27         * common/config/c6x/c6x-common.c: New file.
28
29 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
30
31         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
32
33 2011-07-25  Richard Guenther  <rguenther@suse.de>
34
35         PR tree-optimization/49715
36         * tree-vrp.c: Include expr.h and optabs.h.
37         (range_fits_type_): New function.
38         (simplify_float_conversion_using_ranges): Likewise.
39         (simplify_stmt_using_ranges): Call it.
40         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
41         * optabs.c (can_float_p): Export.
42         * optabs.h (can_float_p): Declare.
43
44 2011-07-25  Richard Guenther  <rguenther@suse.de>
45
46         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
47         (get_value_range): For out-of-range SSA names or names created
48         after propagation return a read-only varying range.
49         (dump_all_value_ranges): Adjust.
50         (vrp_initialize): Likewise.
51         (vrp_finalize): Likewise.
52
53 2011-07-24  Richard Henderson  <rth@redhat.com>
54
55         PR debug/49831
56         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
57         them entirely.
58
59 2011-07-24  Richard Henderson  <rth@redhat.com>
60
61         PR debug/49825
62         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
63         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
64
65 2011-07-24  Richard Henderson  <rth@redhat.com>
66
67         PR debug/49827
68         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
69
70 2011-07-24  Richard Henderson  <rth@redhat.com>
71
72         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
73         Zero args_size for abnormal edges.  Adjust all callers.
74
75 2011-07-24  Richard Henderson  <rth@redhat.com>
76
77         PR debug/49825
78         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
79
80 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
81
82         PR bootstrap/49835
83         * collect2.c (demangle_flag): Removed.
84
85 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
86
87         * configure.ac (demangler_in_ld): Default to yes.
88         * configure: Regenerated.
89         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
90         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
91         --no-demangle options straight through to ld.  When
92         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
93         way that has the intended effect on Windows.
94
95 2011-07-23  Richard Henderson  <rth@redhat.com>
96
97         * dwarf2cfi.c: Include basic-block.h.
98         (dw_label_info): Remove.
99         (trace_work_list, trace_index): New.
100         (remember_row, emit_cfa_remember): Remove.
101         (dw_trace_info_hash, dw_trace_info_eq): New.
102         (get_trace_index, get_trace_info): New.
103         (save_point_p): New.
104         (free_cfi_row): Remove.
105         (add_cfi): Do not emit DW_CFA_remember_state.
106         (cfa_row_equal_p): New.
107         (barrier_args_size): Remove.
108         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
109         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
110         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
111         (dwarf2out_cfi_begin_epilogue): Remove.
112         (dwarf2out_frame_debug_restore_state): Remove.
113         (connect_traces, create_pseudo_cfg): New.
114         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
115         * Makefile.in (dwarf2cfi.o): Update.
116
117 2011-07-23  Richard Henderson  <rth@redhat.com>
118
119         * dwarf2cfi.c (dw_trace_info): New.
120         (dw_label_info): New.
121         (cie_return_save): New.
122         (cur_trace): New.
123         (queued_args_size): Rename from args_size.  Update all users.
124         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
125         (def_cfa_1): Use cur_trace instead of cfa_*.
126         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
127         (clobbers_queued_reg_save, reg_saved_in): Likewise.
128         (dwarf2out_frame_debug_expr): Likewise.
129         (create_cie_data): Split out from ...
130         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
131
132 2011-07-23  Richard Henderson  <rth@redhat.com>
133
134         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
135         Update all users to match.
136         (execute_dwarf2_frame): Free reg_saved_in_data.
137
138 2011-07-23  Richard Henderson  <rth@redhat.com>
139
140         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
141         (queued_reg_saves): Don't GTY.  Change to a VEC.
142         (queue_reg_save): Update to match.
143         (dwarf2out_flush_queued_reg_saves): Likewise.
144         (clobbers_queued_reg_save): Likewise.
145         (reg_saved_in): Likewise.
146         (execute_dwarf2_frame): Free queued_reg_saves.
147
148 2011-07-23  Richard Henderson  <rth@redhat.com>
149
150         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
151
152 2011-07-23  Richard Henderson  <rth@redhat.com>
153
154         * dwarf2cfi.c (add_cfi_args_size): Split out from...
155         (dwarf2out_args_size): ... here.
156         (add_cfi_restore): Split out from ...
157         (dwarf2out_frame_debug_cfa_restore): ... here.
158         (def_cfa_0): Split out from ...
159         (def_cfa_1): ... here.
160         (cfi_oprnd_equal_p, cfi_equal_p): New.
161         (change_cfi_row): New.
162         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
163         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
164         (output_cfis): Remove.
165         * dwarf2out.c (output_fde): Simplify output_cfi loop.
166         (dwarf2out_switch_text_section): Don't call output_cfis.
167         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
168         * dwarf2out.h: Update decls.
169         (enum dw_val_class): Add dw_val_class_none.
170
171 2011-07-23  Richard Henderson  <rth@redhat.com>
172
173         * dwarf2cfi.c (update_row_reg_save): New.
174         (dwarf2out_frame_debug_cfa_expression): Use it.
175         (dwarf2out_frame_debug_cfa_restore): Likewise.
176         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
177
178 2011-07-23  Richard Henderson  <rth@redhat.com>
179
180         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
181
182 2011-07-23  Richard Henderson  <rth@redhat.com>
183
184         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
185         (cie_cfi_row): New.
186         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
187         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
188         (cur_row, remember_row): New.
189         (def_cfa_1): Use cur_row instead of the old_* variables.
190         (dwarf2out_frame_debug_restore_state): Similarly.
191         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
192         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
193         (dwarf2out_frame_debug_adjust_cfa): Likewise.
194         (dwarf2out_frame_debug_cfa_offset): Likewise.
195         (dwarf2out_frame_debug_expr): Likewise.
196         (execute_dwarf2_frame): Set up cur_row.
197         * dwarf2out.h (struct cfa_loc): Mark for GTY.
198
199 2011-07-23  Richard Henderson  <rth@redhat.com>
200
201         * basic-block.h (EDGE_PRESERVE): New.
202         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
203         * bb-reorder.c: Include except.h.
204         (fix_up_crossing_landing_pad): New.
205         (find_rarely_executed_basic_blocks_and_crossing_edges): Place 
206         landing pads in the right partition.  Duplicate as necessary.
207         (partition_hot_cold_basic_blocks): Fix up DF info after
208         duplicating landing pads.
209         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
210         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
211         is set properly.  Validate that EH edges are not CROSSING.
212         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
213         (dw2_build_landing_pads): ... here.
214         (convert_to_eh_region_ranges): Remove code to fixup crossing
215         landing pads.
216         * except.h (expand_dw2_landing_pad_for_region): Declare.
217         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
218
219 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
220
221         PR target/49816
222         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
223
224 2011-07-22  Jason Merrill  <jason@redhat.com>
225
226         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
227
228 2011-07-22  Richard Henderson  <rth@redhat.com>
229
230         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
231
232 2011-07-22  Richard Henderson  <rth@redhat.com>
233
234         * jump.c (maybe_propagate_label_ref): Split out of...
235         (mark_all_labels): ... here.  Do not attempt label_ref
236         propagation while in cfglayout mode.
237
238 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
239
240         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
241         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
242         (dwarf_attr_name): Handle DW_AT_GNU_macros.
243         (dwarf2out_define): If the vector is empty and
244         lineno is 0, emit a dummy entry first.
245         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
246         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
247         optimize_macinfo_range): New functions.
248         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
249         mergeable, optimize longer strings using
250         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
251         optimize longer sequences of define/undef ops from headers
252         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
253         emit a section headers.
254         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
255         and macinfo_section_label to DEBUG_MACRO_SECTION
256         resp. DEBUG_MACRO_SECTION_LABEL.
257         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
258         instead of DW_AT_macro_info.
259
260         PR other/32998
261         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
262         options.
263         * dwarf2out.c: Include opts.h.
264         (dchar_p): New typedef.  Define heap VEC for it.
265         (producer_string): New variable.
266         (gen_producer_string): New function.
267         (gen_compile_unit_die): Use it.
268         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer
269         if needed.
270         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
271         * doc/invoke.texi: Document -grecord-gcc-switches and
272         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
273         to -frecord-gcc-switches description.
274
275 2011-07-22  Jason Merrill  <jason@redhat.com>
276
277         PR c++/30112
278         * c-decl.c (c_linkage_bindings): Define.
279
280 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
281
282         PR debug/49815
283         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
284
285 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
286
287         * config/i386/i386.c (ix86_option_override_internal): Disallow
288         MS ABI in x32 mode.
289         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
290         only for TARGET_LP64.
291         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of
292         TARGET_64BIT.
293
294 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
295
296         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
297         avoid warnings when GCC is built with a C++ compiler.
298
299 2011-07-22  Martin Jambor  <mjambor@suse.cz>
300
301         PR lto/49796
302         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
303         if decl node is in another partition, call cgraph_get_node only
304         once.
305
306 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
307
308         * config.gcc (x86_64-*-linux*): Set
309         default_gnu_indirect_function to yes.
310
311 2011-07-22  Richard Guenther  <rguenther@suse.de>
312
313         PR tree-optimization/45819
314         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
315         preserve volatile and notrap flags.
316
317 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
318             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
319
320         PR bootstrap/49794
321         * configure.ac: Test AM_ICONV with CXX.
322         * configure: Regenerate.
323         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
324
325 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
326
327         PR bootstrap/49797
328         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
329         (set_cloog_options): Use it.
330
331 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
332
333         PR c++/49756
334         * gcc.c (main): Call stack_limit_increase (64MB).
335         * toplev.c (toplev_main): Likewise.
336
337 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
338
339         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
340         instead of force_reg.
341
342 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
343
344         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
345         needed and use force_reg after convert.
346         (ix86_expand_call): Likewise.
347         (ix86_expand_special_args_builtin): Likewise.
348         (ix86_expand_builtin): Likewise.
349
350 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
351
352         PR middle-end/47654
353         PR middle-end/49649
354         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
355         in parameter.  Initialize v1 and v2 based on the values returned
356         by clast_name_to_lb_ub.
357         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
358         values.
359         (type_for_clast_bin): Same.
360         (type_for_clast_expr): Same.
361         (type_for_clast_eq): Update calls to type_for_clast_expr.
362         (type_for_clast_for): Same.
363         (build_iv_mapping): Same.
364         * graphite-ppl.h (value_min): New.
365
366 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
367
368         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
369         types whenever possible.
370
371 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
372
373         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
374         and ub fields.
375         (new_clast_name_index): Add lb and ub parameters.
376         (free_clast_name_index): New.
377         (clast_name_to_lb_ub): New.
378         (save_clast_name_index): Add lb and ub parameters.
379         (compute_bounds_for_param): New.
380         (type_for_level): Removed.
381         (type_for_clast_for): Removed level parameter.  Do not call
382         type_for_level.
383         (graphite_create_new_loop): Store the lb and ub for the clast_name
384         of the iterator of the loop that has been generated.
385         (graphite_create_new_loop_guard): Remove parameter level.
386         (create_params_index): Store the lb and ub of each parameter.
387         (gloog): Use free_clast_name_index.  Pass to create_params_index
388         the current scop.
389
390 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
391
392         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
393         (max_precision_type): Inline max_signed_precision_type.
394         (type_for_clast_red): Use max_precision_type.
395         (type_for_clast_bin): Same.
396         (type_for_clast_for): Same.
397
398 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
399
400         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
401         type_for_interval.
402         (gcc_type_for_value): Renamed type_for_value.
403         (gcc_type_for_clast_term): Renamed type_for_clast_term.
404         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
405         (gcc_type_for_clast_red): Renamed type_for_clast_red.
406         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
407         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
408         (graphite_translate_clast_equation): Update calls.
409         (compute_type_for_level): Renamed type_for_level.
410         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
411         (build_iv_mapping): Update calls.
412         (graphite_create_new_loop_guard): Same.
413
414 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
415
416         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
417         comment.
418
419 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
420
421         * graphite-clast-to-gimple.c (struct ivs_params): New.
422         (clast_name_to_gcc): Use ivs_params to pass around parameters.
423         (clast_to_gcc_expression): Same.
424         (clast_to_gcc_expression_red): Same.
425         (gcc_type_for_clast_term): Same.
426         (gcc_type_for_clast_expr): Same.
427         (gcc_type_for_clast_red): Same.
428         (gcc_type_for_clast_bin): Same.
429         (gcc_type_for_clast_eq): Same.
430         (graphite_translate_clast_equation): Same.
431         (graphite_create_guard_cond_expr): Same.
432         (graphite_create_new_guard): Same.
433         (graphite_create_new_loop): Same.
434         (build_iv_mapping): Same.
435         (translate_clast_user): Same.
436         (graphite_create_new_loop_guard): Same.
437         (translate_clast): Same.
438         (translate_clast_for_loop): Same.
439         (translate_clast_for): Same.
440         (translate_clast_guard): Same.
441         (initialize_cloog_names): Fix typo.
442         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
443
444 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
445
446         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
447         (new_clast_name_index): Add level parameter.
448         (clast_name_to_level): New.
449         (save_clast_name_index): Add level parameter.
450         (newivs_to_depth_to_newiv): Removed.
451         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
452         (graphite_create_new_loop): Add level parameter.  Pass level to
453         save_clast_name_index.
454         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
455         (create_params_index): Pass level to save_clast_name_index.
456
457 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
458
459         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
460         recompute type, lb, and ub.  Get them from...
461         (graphite_create_new_loop_guard): ...here.  Pass in parameter
462         pointers to type, lb, and ub.
463         (translate_clast_for_loop): Update function calls.
464         (translate_clast_for): Same.
465
466 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
467
468         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
469         psct_dynamic_dim.
470         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
471         (gcc_type_for_iv_of_clast_loop): Update use of level.
472         (gloog): Start counting nesting level from 0.
473         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
474         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
475         psct_dynamic_dim on level.
476
477 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
478
479         * config/i386/i386.c (ix86_legitimize_address): Convert to
480         Pmode if needed.
481
482 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
483
484         * config/i386/i386.c (function_value_64): Always return pointers
485         in Pmode.
486         (ix86_promote_function_mode): New.
487         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
488
489 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
490
491         PR tree-optimization/49749
492         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
493         remove no-longer-used maxrank variable.
494
495 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
496
497         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
498
499 2011-07-21  Jason Merrill  <jason@redhat.com>
500
501         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
502         * recog.h (struct insn_data_d): Check it instead of
503         HAVE_DESIGNATED_INITIALIZERS.
504         * genoutput.c (output_insn_data): Likewise.
505
506 2011-07-21  Richard Guenther  <rguenther@suse.de>
507
508         PR tree-optimization/49770
509         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
510         valueized any operand.  Renamed from ...
511         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
512         (valueize_shared_reference_ops_from_ref): Return whether we
513         valueized any operand.
514         (vn_reference_lookup): Only when we valueized any operand
515         use the valueized reference for alias analysis.  Do not preserve
516         the original reference tree in this case.
517
518 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
519
520         * config/i386/i386.c (ix86_decompose_address): Reject all but
521         register operands and subregs of DImode hard registers in index.
522
523 2011-07-21  Kai Tietz  <ktietz@redhat.com>
524
525         * fold-const.c (fold_unary_loc): Preserve indirect
526         comparison cast to none-boolean type.
527         * tree-ssa.c (useless_type_conversion_p): Preserve cast
528         from/to boolean-type.
529         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
530         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
531         * tree-cfg.c (verify_gimple_comparison): Check result
532         type of comparison expression.
533         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
534         of condition result and disallow type-cast sinking into comparison.
535
536 2011-07-21  Richard Guenther  <rguenther@suse.de>
537
538         * tree-ssa-forwprop.c (combine_conversions): Return whether
539         we have to run cfg-cleanup.  Properly remove dead stmts.
540         (ssa_forward_propagate_and_combine): Adjust.
541
542 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
543
544         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
545
546 2011-07-21  Kai Tietz  <ktietz@redhat.com>
547
548         * tree-ssa-propagate.c (substitute_and_fold): Use
549         do_dce flag to deside, if BB's statements are scanned
550         in last to first, or first to last order.
551
552 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
553
554         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
555
556 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
557             Uros Bizjak  <ubizjak@gmail.com>
558             Richard Henderson  <rth@redhat.com>
559
560         * config/i386/constraints.md (w): New.
561
562         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
563         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
564
565         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
566         instead of TARGET_64BIT.
567
568         * config/i386/i386.md (indirect_jump): Replace
569         nonimmediate_operand with indirect_branch_operand.
570         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
571         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
572         Convert operand 0 to Pmode for x32 if not PIC.
573         (*tablejump_1): Replace nonimmediate_operand with
574         indirect_branch_operand.  Replace constraint "m" with "w".
575         (*call_vzeroupper): Replace constraint "m" with "w".
576         (*call): Likewise.
577         (*call_rex64_ms_sysv_vzeroupper): Likewise.
578         (*call_rex64_ms_sysv): Likewise.
579         (*call_value_vzeroupper): Likewise.
580         (*call_value): Likewise.
581         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
582         (*call_value_rex64_ms_sysv): Likewise.
583         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
584
585         * config/i386/predicates.md (indirect_branch_operand): New.
586         (call_insn_operand): Support x32.
587
588 2011-07-20  Michael Eager  <eager@eagercon.com>
589
590         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
591
592 2011-07-20  Richard Henderson  <rth@redhat.com>
593
594         * cfg.c (dump_bb_info): Dump basic_block->flags.
595         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
596
597 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
598
599         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
600         of DImode hard registers in index.
601         (ix86_legitimate_address_p): Allow subregs of base and index to span
602         more than a word.  Assert that subregs of base and index satisfy
603         register_no_elim_operand predicates.  Reject addresses where
604         base and index have different modes.
605
606 2011-07-20  Robert Millan  <rmh@gnu.org>
607
608         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
609
610 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
611
612         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
613         removing now-unnecessary assignment.
614
615 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
616
617         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
618         memory address space to the type's address space.
619
620 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
621
622         PR target/36467
623         PR target/49687
624         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
625         and expand appropriately if there is a CONST_INT in operand2.
626         (usmulqihi3): New insn.
627         (*sumulqihi3): New insn.
628         (*osmulqihi3): New insn.
629         (*oumulqihi3): New insn.
630         (*muluqihi3.uconst): New insn_and_split.
631         (*muluqihi3.sconst): New insn_and_split.
632         (*mulsqihi3.sconst): New insn_and_split.
633         (*mulsqihi3.uconst): New insn_and_split.
634         (*mulsqihi3.oconst): New insn_and_split.
635         (*ashifthi3.signx.const): New insn_and_split.
636         (*ashifthi3.signx.const7): New insn_and_split.
637         (*ashifthi3.zerox.const): New insn_and_split.
638         (mulsqihi3): New insn.
639         (muluqihi3): New insn.
640         (muloqihi3): New insn.
641         * config/avr/predicates.md (const_2_to_7_operand): New.
642         (const_2_to_6_operand): New.
643         (u8_operand): New.
644         (s8_operand): New.
645         (o8_operand): New.
646         (s9_operand): New.
647         (register_or_s9_operand): New.
648
649 2011-07-20  Kai Tietz  <ktietz@redhat.com>
650
651         * builtins.c (fold_builtin_expect): See through the cast
652         from truthvalue_type_node to long.
653
654 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
655
656         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
657         where we can use them from the standard and altivec instruction
658         sets, instead of always using the 3 operand VSX forms that require
659         the destination to overlap one of the inputs.
660         (vsx_fms*): Ditto.
661         (vsx_fnma*): Ditto.
662         (vsx_fnms*): Ditto.
663
664         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
665         for DF types.
666         (fmsdf4_fpr): Ditto.
667         (nfmadf4_fpr): Ditto.
668         (nfmsdf4_fpr): Ditto.
669
670 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
671
672         * genrecog.c (make_insn_sequence): Correct position numbering
673         when filtering out match_scratch and match_dup.
674
675 2011-07-20  Richard Guenther  <rguenther@suse.de>
676
677         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
678         against already removed statements.
679         (forward_propagate_into_comparison): Remove dead defining stmts.
680         (forward_propagate_into_gimple_cond): Likewise.
681         (forward_propagate_into_cond): Simplify.
682         (ssa_forward_propagate_and_combine): Handle changed cfg from
683         forward_propagate_into_comparison.
684         * tree-ssa-phiopt.c (conditional_replacement): Use proper
685         locations for newly built statements.
686
687 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
688
689         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
690
691 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
692
693         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
694         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
695
696 2011-07-20  Richard Guenther  <rguenther@suse.de>
697
698         PR middle-end/18908
699         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
700         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
701         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
702
703 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
704
705         * config/frv/frv.c (frv_register_move_cost): Define explicitly
706         costs for subclasses of GR_REGS.
707
708 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
709
710         PR target/49780
711         * config/i386/predicates.md (no_seg_addres_operand): No more special.
712         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
713         of DImode hard registers in base.
714         (ix86_legitimate_address_p): Allow SImode and DImode base and index
715         registers.
716
717 2011-07-20  Richard Guenther  <rguenther@suse.de>
718
719         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
720         (unify_nodes): Deal with that.
721         (solve_graph): Likewise.
722
723 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
724
725         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
726         canonicalize left operand from ZERO_EXTEND to AND.
727
728 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
729
730         * target.def (class_max_nregs): New hook.
731         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
732         * doc/tm.texi: Regenerate.
733         * targhooks.c (default_class_max_nregs): New function.
734         * targhooks.h (default_class_max_nregs): Declare.
735         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
736         x_ira_reg_class_min_nregs arrays to unsigned char.
737         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
738         hook instead of CLASS_MAX_NREGS macro.
739         * reginfo.c (restore_register_info): Ditto.
740         * ira-conflicts.c (process_regs_for_copy): Use
741         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
742         Change type rclass and aclass vars to reg_class_t.
743         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
744         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
745         reg_class_t.
746         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
747         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
748
749         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
750         * config/i386/i386.c (ix86_class_max_nregs): New function.
751         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
752         instead of CLASS_MAX_NREGS macro.
753         (TARGET_CLASS_MAX_NREGS): Define.
754         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
755         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
756         * config/avr/avr.c (class_max_nregs): Remove function.
757         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
758         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
759         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
760         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
761         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
762         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
763         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
764         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
765         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
766         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
767         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
768         * config/score/score.h (CLASS_MAX_NREGS): Remove.
769         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
770         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
771         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
772
773 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
774
775         * cif-code.def (OVERWRITABLE): Fix typo and move around.
776         (TARGET_OPTIMIZATION_MISMATCH): Delete.
777         (EH_PERSONALITY): Fix typo.
778         (NON_CALL_EXCEPTIONS): Fix message.
779         (OPTIMIZATION_MISMATCH): Adjust message.
780         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
781
782 2011-07-19  Ian Lance Taylor  <iant@google.com>
783
784         * doc/install.texi (Configuration): Document
785         --enable-build-poststage1-with-cxx.
786
787 2011-07-19  Robert Millan  <rmh@gnu.org>
788
789         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
790         (GLIBC_DYNAMIC_LINKER): Remove.
791
792         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
793         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
794         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
795         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
796         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
797         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
798
799         * config/mips/linux.h: Remove everything except for ...
800         (GLIBC_DYNAMIC_LINKER): ... this macro.
801
802         * config/mips/linux64.h: Remove everything except for ...
803         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
804         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
805         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
806         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
807         (GNU_USER_LINK_EMULATIONN32): New macros.
808
809         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
810         Use the new headers.
811
812 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
813
814         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
815         Add offset_known_p and size_known_p fields.
816         (MEM_OFFSET_KNOWN_P): Update accordingly.
817         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
818         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
819         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
820         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
821         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
822         (init_emit_regs): Likewise.
823
824 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
825
826         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
827         (MEM_OFFSET): Change from returning an rtx to returning a
828         HOST_WIDE_INT.
829         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
830         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
831         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
832         (clear_mem_offset): Declare.
833         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
834         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
835         MEM_OFFSET to get a HOST_WIDE_INT offset.
836         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
837         (adjust_offset_for_component_ref): Take a bool "known_p"
838         parameter and a HOST_WIDE_INT "offset" parameter.
839         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
840         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
841         than an rtx.  Use clear_mem_offset to clear the offset.
842         * cfgcleanup.c (merge_memattrs): Likewise.
843         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
844         * function.c (assign_parm_find_stack_rtl): Likewise.
845         (assign_parm_setup_stack): Likewise.
846         * print-rtl.c (print_rtx): Likewise.
847         * reload.c (find_reloads_subreg_address): Likewise.
848         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
849         * var-tracking.c (INT_MEM_OFFSET): Likewise.
850         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
851         (get_mem_align_offset): Likewise.
852         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
853         (clear_mem_offset): New function.
854         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
855         offset rather than an rtx.  Assume both the expressio and offset
856         are available.
857         (r10k_needs_protection_p_1): Update accordingly, checking the
858         expression and offset availability here instead.
859
860 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
861
862         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
863         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
864         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
865         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
866         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
867         (clear_mem_size): Declare.
868         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
869         (clear_mem_size): New function.
870         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
871         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
872         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
873         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
874         to clear the size.
875         (nonoverlapping_memrefs_p): Likewise.
876         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
877         (expand_builtin_init_trampoline): Likewise.
878         * calls.c (compute_argument_addresses): Likewise.
879         * cfgcleanup.c (merge_memattrs): Likewise.
880         * dce.c (find_call_stack_args): Likewise.
881         * dse.c (record_store, scan_insn): Likewise.
882         * dwarf2out.c (dw_sra_loc_expr): Likewise.
883         * expr.c (emit_block_move_hints): Likewise.
884         * function.c (assign_parm_find_stack_rtl): Likewise.
885         * print-rtl.c (print_rtx): Likewise.
886         * reload.c (find_reloads_subreg_address): Likewise.
887         * rtlanal.c (may_trap_p_1): Likewise.
888         * var-tracking.c (track_expr_p): Likewise.
889         * varasm.c (assemble_trampoline_template): Likewise.
890         * config/arm/arm.c (arm_print_operand): Likewise.
891         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
892         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
893         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
894         (expand_constant_setmem_prologue): Likewise.
895         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
896         * config/rs6000/rs6000.c (expand_block_move): Likewise.
897         (adjacent_mem_locations): Likewise.
898         * config/s390/s390.c (s390_expand_setmem): Likewise.
899         (s390_expand_insv): Likewise.
900         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
901         (*extendqi<mode>2_short_displ): Likewise.
902         * config/sh/sh.c (expand_block_move): Likewise.
903         * config/sh/sh.md (extv, extzv): Likewise.
904
905 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
906
907         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
908         (mem_attrs_htab_eq): ...here.
909         (find_mem_attrs): Replace with...
910         (set_mem_attrs): ...this function.  Take a mem_attrs structure
911         rather than individual fields.
912         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
913         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
914         (set_mem_size, change_address, adjust_address_1, offset_address)
915         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
916         Update accordingly.
917
918 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
919
920         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
921         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
922         Provide a dummy definition of MEM_ADDR_SPACE for generators.
923         (target_rtl): Add x_mode_mem_attrs.
924         (mode_mem_attrs): New macro.
925         (get_mem_attrs): New function.
926         * emit-rtl.c (get_mem_attrs): Rename to...
927         (find_mem_attrs): ...this.
928         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
929         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
930         (set_mem_size, change_address, adjust_address_1, offset_address)
931         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
932         Update accordingly.
933         (init_emit_regs): Initialize mode_mem_attrs.
934
935 2011-07-19  Richard Guenther  <rguenther@suse.de>
936
937         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
938         TRUTH_*_EXPR handling.
939         * tree-ssa-operands.c (get_expr_operands): Likewise.
940         * tree-ssa-pre.c (fully_constant_expression): Likewise.
941         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
942         Likewise.
943         (is_and_or_or): Likewise.
944         (is_norm_cond_subset_of): Likewise.
945
946 2011-07-19  Richard Guenther  <rguenther@suse.de>
947
948         * tree.h (fold_build_pointer_plus_loc): New helper function.
949         (fold_build_pointer_plus_hwi_loc): Likewise.
950         (fold_build_pointer_plus): Define.
951         (fold_build_pointer_plus_hwi): Likewise.
952         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
953         (fold_builtin_memory_op): Likewise.
954         (fold_builtin_stpcpy): Likewise.
955         (fold_builtin_memchr): Likewise.
956         (fold_builtin_strstr): Likewise.
957         (fold_builtin_strchr): Likewise.
958         (fold_builtin_strrchr): Likewise.
959         (fold_builtin_strpbrk): Likewise.
960         (fold_builtin_strcat): Likewise.
961         (expand_builtin_memory_chk): Likewise.
962         (fold_builtin_memory_chk): Likewise.
963         * c-typeck.c (build_unary_op): Likewise.
964         * cgraphunit.c (thunk_adjust): Likewise.
965         * fold-const.c (build_range_check): Likewise.
966         (fold_binary_loc): Likewise.
967         * omp-low.c (extract_omp_for_data): Likewise.
968         (expand_omp_for_generic): Likewise.
969         (expand_omp_for_static_nochunk): Likewise.
970         (expand_omp_for_static_chunk): Likewise.
971         * tree-affine.c (add_elt_to_tree): Likewise.
972         * tree-data-ref.c (split_constant_offset_1): Likewise.
973         * tree-loop-distribution.c (generate_memset_zero): Likewise.
974         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
975         * tree-predcom.c (ref_at_iteration): Likewise.
976         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
977         (add_to_parts): Likewise.
978         (create_mem_ref): Likewise.
979         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
980         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
981         (number_of_iterations_le): Likewise.
982         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
983         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
984         (vect_create_addr_base_for_vector_ref): Likewise.
985         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
986         (vect_create_cond_for_alias_checks): Likewise.
987         * tree-vrp.c (extract_range_from_assert): Likewise.
988         * config/alpha/alpha.c (alpha_va_start): Likewise.
989         (alpha_gimplify_va_arg_1): Likewise.
990         * config/i386/i386.c (ix86_va_start): Likewise.
991         (ix86_gimplify_va_arg): Likewise.
992         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
993         * config/mep/mep.c (mep_expand_va_start): Likewise.
994         (mep_gimplify_va_arg_expr): Likewise.
995         * config/mips/mips.c (mips_va_start): Likewise.
996         (mips_gimplify_va_arg_expr): Likewise.
997         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
998         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
999         (rs6000_gimplify_va_arg): Likewise.
1000         * config/s390/s390.c (s390_va_start): Likewise.
1001         (s390_gimplify_va_arg): Likewise.
1002         * config/sh/sh.c (sh_va_start): Likewise.
1003         (sh_gimplify_va_arg_expr): Likewise.
1004         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
1005         * config/spu/spu.c (spu_va_start): Likewise.
1006         (spu_gimplify_va_arg_expr): Likewise.
1007         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1008         Likewise.
1009         (xstormy16_gimplify_va_arg_expr): Likewise.
1010         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
1011         (xtensa_gimplify_va_arg_expr): Likewise.
1012
1013 2011-07-19  Richard Guenther  <rguenther@suse.de>
1014
1015         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
1016         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
1017         handling.
1018
1019         PR middle-end/18908
1020         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
1021         result of BIT_*_EXPR to bitfield precision.
1022
1023 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
1024
1025         PR tree-optimization/49742
1026         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
1027         as a potential write.
1028
1029 2011-07-19  Richard Guenther  <rguenther@suse.de>
1030
1031         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
1032         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
1033         (forward_propagate_comparison): Simplify, remove obsolete code.
1034
1035 2011-07-19  Richard Guenther  <rguenther@suse.de>
1036
1037         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
1038         BIT_XOR_EXPR, same as the RTL expander does.
1039         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
1040         (verify_gimple_assign_unary): Likewise.
1041         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
1042         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
1043         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
1044
1045 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
1046
1047         PR tree-optimization/49768
1048         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
1049         if offset is smaller than bitoffset, but offset+size is bigger
1050         than bitoffset.
1051
1052 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
1053
1054         PR tree-optimization/49771
1055         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
1056         zero step, set segment length to the size of the data-ref's type.
1057
1058 2011-07-18  Martin Jambor  <mjambor@suse.cz>
1059
1060         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
1061         comments.
1062         (ipcp_values_pool): Declare.
1063         (ipcp_sources_pool): Likewise.
1064         (ipcp_lattice): Changed to forward declaration.
1065         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
1066         cannot_devirtualize.
1067         (ipa_node_params): New fields descriptors, lattices, known_vals,
1068         clone_for_all_contexts and node dead, removed fields params and
1069         count_scale.
1070         (ipa_set_param_count): Removed.
1071         (ipa_get_param_count): Made to work with descriptors vector.
1072         (ipa_get_param): Updated.
1073         (ipa_param_cannot_devirtualize_p): Removed.
1074         (ipa_param_types_vec_empty): Likewise.
1075         (ipa_set_param_used): New function.
1076         (ipa_get_param_used): Updated to use descriptors vector.
1077         (ipa_func_list): Removed.
1078         (ipa_init_func_list): Removed declaration.
1079         (ipa_push_func_to_list_1): Likewise.
1080         (ipa_pop_func_from_list): Likewise.
1081         (ipa_push_func_to_list): Removed.
1082         (ipa_lattice_from_jfunc): Remove declaration.
1083         (ipa_get_jf_pass_through_result): Declare.
1084         (ipa_get_jf_ancestor_result): Likewise.
1085         (ipa_value_from_jfunc): Likewise.
1086         (ipa_get_lattice): Update.
1087         (ipa_lat_is_single_const): New function.
1088         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
1089         (ipa_init_func_list): Likewise.
1090         (ipa_pop_func_from_list): Likewise.
1091         (ipa_get_param_decl_index): Fix coding style.
1092         (count_formal_params): Removed.
1093         (count_formal_params_1): Renamed to count_formal_params.
1094         (ipa_populate_param_decls): Update to use descriptors vector.
1095         (ipa_initialize_node_params): Likewise.
1096         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
1097         (ipa_analyze_params_uses): Likewise.
1098         (ipa_free_node_params_substructures): Likewise and free also lattices
1099         and known values.
1100         (duplicate_array): Removed.
1101         (ipa_edge_duplication_hook): Add the new edge to the list of edge
1102         clones.
1103         (ipa_node_duplication_hook): Update to use new lattices.
1104         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
1105         (ipa_free_all_structures_after_iinln): Likewise.
1106         (ipa_write_node_info): Update to use new lattices.
1107         (ipa_read_node_info): Likewise.
1108         (ipa_get_jf_pass_through_result): New function.
1109         (ipa_get_jf_ancestor_result): Likewise.
1110         (ipa_value_from_jfunc): Likewise.
1111         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
1112         * ipa-cp.c: Reimplemented.
1113         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
1114         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
1115         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
1116         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
1117         * doc/invoke.texi (devirt-type-list-size): Removed description.
1118         (ipa-cp-value-list-size): Added description.
1119
1120 2011-07-18  Richard Henderson  <rth@redhat.com>
1121
1122         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
1123         before calling create_basic_block.
1124
1125 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
1126
1127         PR middle-end/49675
1128         * tree.c (build_common_builtin_nodes): Register
1129         __builtin_return_address, __cyg_profile_func_enter
1130         and __cyg_profile_func_exit.
1131
1132 2011-07-18  Richard Henderson  <rth@redhat.com>
1133
1134         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
1135         (add_labels_and_missing_jumps): ... here.
1136         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
1137
1138 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
1139
1140         PR target/47744
1141         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1142         of DImode hard registers in PLUS address chains.
1143
1144 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1145
1146         PR bootstrap/49769
1147         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
1148         (alpha*-*-freebsd*): Likewise.
1149         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
1150         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
1151         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
1152         crtprec80.o, crtfastmath.o to extra_parts for all targets.
1153         (ia64*-*-elf*): Remove extra_parts.
1154         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
1155         (sparc64-*-linux*): Likewise.
1156         (sparc64-*-freebsd*): Likewise.
1157
1158         Revert:
1159         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
1160         (ia64*-*-linux*): Likewise.
1161         (mips64*-*-linux*): Likewise.
1162         (mips*-*-linux*): Likewise.
1163
1164 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
1165
1166         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
1167
1168 2011-07-18  Richard Guenther  <rguenther@suse.de>
1169
1170         * gimplify.c (gimplify_expr): Use input_location, not saved_location
1171         when building new trees.
1172
1173 2011-07-18  Richard Guenther  <rguenther@suse.de>
1174
1175         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
1176         expansion result to bitfield precision if required.
1177
1178 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1179
1180         * config.gcc (i[3456x]86-*-netware*): Remove.
1181
1182         * gthr-nks.h: Remove.
1183         * configure.ac (enable_threads): Remove nks.
1184         * configure: Regenerate.
1185
1186         * config/i386/i386.c (ix86_encode_section_info): Remove netware
1187         reference.
1188         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
1189         <netware.h> reference.
1190
1191         * config/i386/netware-libgcc.c,
1192         gcc/config/i386/netware-libgcc.def,
1193         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
1194         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
1195         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
1196         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
1197
1198         * doc/extend.texi (Function Attributes,
1199         callee_pop_aggregate_return): Remove i?86-netware reference.
1200         * doc/install.texi (Configuration, --enable-threads): Remove nks.
1201
1202 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1203
1204         PR target/49746
1205         Revert:
1206         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1207
1208         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
1209         patterns.
1210
1211 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
1212
1213         PR middle-end/49732
1214         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
1215
1216 2011-07-16  Matthias Klose  <doko@ubuntu.com>
1217
1218         * doc/install.texi: Document --enable-static-libjava.
1219
1220 2011-07-15  Richard Henderson  <rth@redhat.com>
1221
1222         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
1223         Replace all three arguments by returning a VEC of edges.
1224         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
1225         pointers and counts.
1226         (fix_edges_for_rarely_executed_code): Merge ...
1227         (rest_of_handle_partition_blocks): ... into...
1228         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
1229         any work was performed.
1230         (pass_partition_blocks): Clear todo_flags_finish.
1231
1232 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
1233             Jakub Jelinek  <jakub@redhat.com>
1234             Jonathan Wakely  <jwakely.gcc@gmail.com>
1235
1236         PR libstdc++/49745
1237         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
1238         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
1239
1240 2011-07-15  Jason Merrill  <jason@redhat.com>
1241
1242         PR testsuite/49741
1243         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
1244         rather than --tool_opts.
1245
1246 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
1247
1248         * doc/plugins.texi (Building GCC plugins): gengtype needs its
1249         corresponding gtype.state.
1250
1251 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1252
1253         PR target/49723
1254         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
1255
1256 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
1257
1258         PR target/48220
1259         * doc/md.texi (Standard Names): Document window_save.
1260         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
1261         expand_debug_expr and expand_debug_source_expr.  If the target has
1262         a window_save instruction, adjust the ENTRY_VALUE_EXP.
1263         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
1264         SSA_NAME_VAR is a parameter.
1265         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
1266         * var-tracking.c (parm_reg_t): New type and associated vector type.
1267         (windowed_parm_regs): New variable.
1268         (adjust_insn): If the target has a window_save instruction and this
1269         is the instruction, make its effect on parameter registers explicit.
1270         (next_non_note_insn_var_location): New function.
1271         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
1272         (vt_add_function_parameter): If the target has a window_save insn,
1273         adjust the incoming RTL and record that in windowed_parm_regs.
1274         (vt_finalize): Free windowed_parm_regs.
1275
1276 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
1277
1278         * doc/invoke.texi (C6X Options): New section.
1279         * doc/md.texi (TI C6X family): New section.
1280         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
1281         tic6x-*-uclinux.
1282         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
1283         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
1284         Provide C6X definitions.
1285         * config/c6x/c6x.md: New file.
1286         * config/c6x/constraints.md: New file.
1287         * config/c6x/predicates.md: New file.
1288         * config/c6x/c6x-sched.md.in: New file.
1289         * config/c6x/c6x-sched.md: New file.
1290         * config/c6x/gensched.sh: New file.
1291         * config/c6x/c6x-mult.md.in: New file.
1292         * config/c6x/genmult.sh: New file.
1293         * config/c6x/c6x-mult.md: New file.
1294         * config/c6x/sync.md: New file.
1295         * config/c6x/c6x-protos.h: New file.
1296         * config/c6x/sfp-machine.h: New file.
1297         * config/c6x/c6x.c: New file.
1298         * config/c6x/c6x.h: New file.
1299         * config/c6x/crti.s: New file.
1300         * config/c6x/crtn.s: New file.
1301         * config/c6x/lib1funcs.asm: New file.
1302         * config/c6x/c6x-modes.def: New file.
1303         * config/c6x/genopt.sh: New file.
1304         * config/c6x/c6x.opt: New file.
1305         * config/c6x/c6x-tables.opt: New file.
1306         * config/c6x/c6x-opts.h: New file.
1307         * config/c6x/c6x-isas.def: New file.
1308         * config/c6x/elf.h: New file.
1309         * config/c6x/elf-common.h: New file.
1310         * config/c6x/uclinux-elf.h: New file.
1311         * config/c6x/t-c6x: New file.
1312         * config/c6x/t-c6x-elf: New file.
1313         * config/c6x/t-c6x-uclinux: New file.
1314         * config/c6x/t-c6x-softfp: New file.
1315         * config/c6x/gtd.c: New file.
1316         * config/c6x/gtf.c: New file.
1317         * config/c6x/ltd.c: New file.
1318         * config/c6x/ltf.c: New file.
1319         * config/c6x/ged.c: New file.
1320         * config/c6x/gef.c: New file.
1321         * config/c6x/led.c: New file.
1322         * config/c6x/lef.c: New file.
1323         * config/c6x/eqd.c: New file.
1324         * config/c6x/eqf.c: New file.
1325         * config/c6x/libgcc-c6xeabi.ver: New file.
1326
1327         Revert
1328         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1329         PR rtl-optimization/11320
1330         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
1331         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
1332         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
1333         current_sched_info->compute_jump_reg_dependencies. Record which
1334         registers are used and which registers are set by the jump.
1335         Clear deps->reg_conditional_sets after a barrier.
1336         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
1337         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
1338         (init_deps): Initialize reg_conditional_sets.
1339         (free_deps): Clear reg_conditional_sets.
1340         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
1341         Mark registers live on entry of the fallthrough block and conditionally
1342         set as set by the jump. Mark registers live on entry of non-fallthrough
1343         blocks as used by the jump.
1344         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
1345         Mark new parameters as unused.
1346
1347 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
1348
1349         PR tree-opt/49309
1350         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
1351         Use fold_build2_loc instead of build2.
1352         Use the correct type for the new tree.
1353
1354 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
1355
1356         PR rtl-optimization/11320
1357         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
1358         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
1359
1360 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
1361
1362         PR target/49487
1363         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
1364         of REG.
1365         (*rotw<mode>): Use const_int_operand for operand2.
1366         Use match_scatch for operand3.
1367         (*rotb<mode>): Ditto
1368         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
1369
1370 2011-07-14  Richard Guenther  <rguenther@suse.de>
1371
1372         PR tree-optimization/49651
1373         * tree-ssa-structalias.c (get_constraint_for_1): Properly
1374         handle dereferences with subvariables.
1375
1376 2011-07-14  Richard Guenther  <rguenther@suse.de>
1377
1378         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
1379         (fold_stmt_1): Do it here directly on gimple and as a first thing.
1380
1381 2011-07-14  Richard Guenther  <rguenther@suse.de>
1382
1383         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
1384         not bool_var when folding bool_var != 1 or bool_var == 0.
1385
1386 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
1387
1388         * haifa-sched.c (schedule_insns): Remove outdated comment.
1389         (schedule_block): When computing a known value for TODO_SPEC,
1390         just set it rather than using logical operations.
1391         (try_ready): Likewise.  Use a local variable rather than a
1392         pointer to TODO_SPEC.  Reorder an if statement to move the
1393         easy case to the then block.
1394         * sched-deps.c (dep_spec_p): New static function.
1395         (update_dep): Use it to decide whether to call
1396         change_spec_dep_to_hard.
1397         (get_back_and_forw_lists): Use it.
1398         (sd_resolve_dep): Likewise.
1399         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
1400         (haifa_note_mem_dep): Likewise.
1401         (check_dep): Likewise.
1402         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
1403         (sched_free_deps): Free in two passes.
1404
1405 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
1406
1407         PR middle-end/49736
1408         * expr.c (all_zeros_p): Undo bogus part of last change.
1409
1410 2011-07-14  Matthias Klose <doko@ubuntu.com>
1411
1412         * doc/extend.texi (optimize attribute): Fix typo.
1413
1414 2011-07-14  Richard Guenther  <rguenther@suse.de>
1415
1416         * gimplify.c (gimplify_expr): Only do required conversions.
1417
1418 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
1419
1420         PR target/43746
1421         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
1422         i.e. use default_elf_select_section.
1423         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
1424         (READONLY_DATA_SECTION_ASM_OP): Remove.
1425         (TARGET_ASM_NAMED_SECTION): Move from here...
1426         * config/avr/avr.c: ...to here.
1427         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
1428         (avr_asm_named_section): Make static.
1429
1430 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1431
1432         PR bootstrap/49739
1433         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
1434         and crtfastmath.o for Linux/x86.
1435
1436 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
1437
1438         * haifa-sched.c: Include "hashtab.h"
1439         (sched_no_dce): New global variable.
1440         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
1441         SHADOW_P): New macros.
1442         (last_clock_var, cycle_issued_insns): Move declarations.
1443         (must_backtrack): New static variable.
1444         (struct delay_pair): New structure.
1445         (delay_htab, delay_htab_i2): New static variables.
1446         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
1447         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
1448         functions.
1449         (dep_cost_1): If delay pairs exist, try to look up the insns and
1450         use the correct pair delay if we find them.
1451         (rank-for_schedule): Tweak priority for insns that must be scheduled
1452         soon to avoid backtracking.
1453         (queue_insn): Detect conditions which force backtracking.
1454         (ready_add): Likewise.
1455         (struct sched_block_state): Add member shadows_only_p.
1456         (struct haifa_save_data): New structure.
1457         (backtrack_queue): New static variable.
1458         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
1459         unschedule_insns_until, restore_last_backtrack_point,
1460         free_topmost_backtrack_point, free_backtrack_queue,
1461         estimate_insn_tick, estimate_shadow_tick): New functions.
1462         (prune_ready_list): New arg shadows_only_p.  All callers changed.
1463         If true, remove everything that isn't SHADOW_P.  Look up delay
1464         pairs and estimate ticks to avoid scheduling the first insn too early.
1465         (verify_shadows): New function.
1466         (schedule_block): Add machinery to enable backtracking.
1467         (sched_init): Take sched_no_dce into account when setting
1468         DF_LR_RUN_DCE.
1469         (free_delay_pairs): New function.
1470         (init_h_i_d): Initialize INSN_EXACT_TICK.
1471         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
1472         * sched-deps.c (sd_unresolve_dep): New function.
1473         * sched-int. (struct haifa_sched_info): New fields save_state
1474         and restore_state.
1475         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
1476         feeds_backtrack_insn and shadow_p.
1477         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
1478         (sched_no_dce): Declare variable.
1479         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
1480         sd_unresolve_dep): Declare functions.
1481         * modulo-sched.c (sms_sched_info): Clear the two new fields.
1482         * sched-rgn.c (rgn_const_sched_info): Likewise.
1483         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
1484         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
1485         (ebb_sched_info): Add them for the two new fields.
1486         (add_deps_for_risky_insns): Call add_delay_dependencies.
1487
1488 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
1489
1490         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
1491         Rename -mr11.
1492         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
1493         (rs6000_call_indirect_aix): Ditto.
1494         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
1495         (call_indirect_aix<ptrsize>_internal): Ditto.
1496         (call_indirect_aix<ptrsize>_nor11): Ditto.
1497         (call_indirect_aix<ptrsize>_internal2): Ditto.
1498         (call_value_indirect_aix<ptrsize>): Ditto.
1499         (call_value_indirect_aix<ptrsize>_internal): Ditto.
1500         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
1501         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
1502         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
1503
1504 2011-07-13  Jason Merrill  <jason@redhat.com>
1505
1506         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
1507
1508 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1509
1510         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
1511         * config/spu/spu.md ("clrsb<mode>2"): New expander.
1512
1513 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
1514
1515         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
1516         * configure: Regenerate.
1517
1518 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1519
1520         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
1521         (asm_file_start): Remove.
1522         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
1523         free_bb_for_insn around code that modifies insns before
1524         restarting df analysis.
1525
1526 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1527
1528         PR target/49541
1529         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
1530         (LINK_SPEC): ... here.
1531
1532 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
1533
1534         * haifa-sched.c (struct sched_block_state): New.
1535         (schedule_block): Move some local variables into such a structure.
1536
1537 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1538
1539         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
1540         * config/i386/t-crtpc: Remove.
1541         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
1542         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
1543         tmake_file.
1544         (x86_64-*-darwin*): Likewise.
1545         (i[34567]86-*-linux*): Likewise.
1546         (x86_64-*-linux*): Likewise.
1547
1548         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
1549         Handle -mpc32, -mpc64, -mpc80.
1550
1551 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1552
1553         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
1554         * config/alpha/t-crtfm: Remove.
1555         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
1556         * config/i386/t-crtfm: Remove.
1557         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
1558         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
1559         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
1560         * config/sparc/t-crtfm: Remove.
1561
1562         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
1563         (alpha*-*-freebsd*): Likewise.
1564         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
1565         (x86_64-*-darwin*): Likewise.
1566         (i[34567]86-*-linux*): Likewise.
1567         (x86_64-*-linux*): Likewise.
1568         (x86_64-*-mingw*): Likewise.
1569         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
1570         (ia64*-*-freebsd*): Likewise.
1571         (ia64*-*-linux*): Likewise.
1572         (mips64*-*-linux*): Likewise.
1573         (mips*-*-linux*): Likewise.
1574         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
1575         (sparc64-*-linux*): Likewise.
1576         (sparc64-*-freebsd*): Likewise.
1577
1578 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1579
1580         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
1581         * config/darwin-crt3.c: Move to ../libgcc/config.
1582         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
1583         ($(T)crt3$(objext)): Remove.
1584         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
1585         ($(T)crt2$(objext)): Remove.
1586         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
1587         (powerpc64-*-darwin*): Likewise.
1588
1589 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
1590
1591         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
1592
1593         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
1594         (addsi_1_zext): This.
1595
1596 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
1597
1598         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
1599         * doc/tm.texi: Regenerate.
1600         * target.def (mergeable_rodata_prefix): New defhookpod.
1601         * varasm.c (mergeable_string_section, mergeable_constant_section):
1602         Use it. Allocate name with alloca.
1603
1604 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
1605
1606         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
1607
1608 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
1609
1610         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
1611         overlap check.
1612
1613 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
1614
1615         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
1616         (count_type_elements): Delete.
1617         (complete_ctor_at_level_p): Declare.
1618         * expr.c (flexible_array_member_p): New function, split out from...
1619         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
1620         parameter with for_ctor_p.  When for_ctor_p is true, return the
1621         number of elements that should appear in the top-level constructor,
1622         otherwise return an estimate of the number of scalars.
1623         (categorize_ctor_elements): Replace p_must_clear with p_complete.
1624         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
1625         (complete_ctor_at_level_p): New function, borrowing union logic
1626         from old categorize_ctor_elements_1.
1627         (mostly_zeros_p): Return true if the constructor is not complete.
1628         (all_zeros_p): Update call to categorize_ctor_elements.
1629         * gimplify.c (gimplify_init_constructor): Update call to
1630         categorize_ctor_elements.  Don't call count_type_elements.
1631         Unconditionally prevent clearing for variable-sized types,
1632         otherwise rely on categorize_ctor_elements to detect
1633         incomplete initializers.
1634
1635 2011-07-13  Richard Guenther  <rguenther@suse.de>
1636
1637         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
1638         the final type is integral.
1639
1640 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
1641
1642         * sched-int.h (struct _dep): Add member cost.
1643         (DEP_COST, UNKNOWN_DEP_COST): New macros.
1644         * sched-deps.c (init_dep_1): Initialize DEP_COST.
1645         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
1646         (sched_change_pattern): Reset it for dependent insns.
1647
1648 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1649
1650         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
1651         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
1652         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
1653         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
1654         (CRT0_S, MCRT0_S): Remove.
1655         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
1656         Remove.
1657         (s-crt0): Remove.
1658         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
1659
1660 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
1661
1662         * cse.c (insert_with_costs): Put semi-colon after empty loop body
1663         on the next line.
1664         * emit-rtl.c (push_to_sequence): Likewise.
1665         * haifa-sched.c (max_issue): Likewise.
1666         * matrix-reorg.c (add_allocation_site): Likewise.
1667         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
1668         * reload.c (alternative_allows_const_pool_ref): Likewise.
1669         * sched-rgn.c (rgn_add_block): Likewise.
1670         (rgn_fix_recovery_cfg): Likewise.
1671         * tree.c (attribute_list_contained): Likewise.
1672
1673 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
1674
1675         * config/i386/i386.c: Tidy processor feature bitmasks.
1676         (m_P4_NOCONA): New.
1677
1678 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
1679
1680         PR rtl-opt/49474
1681         * cprop.c (find_implicit_sets): Correct the condition.
1682
1683 2011-07-12  Richard Henderson  <rth@redhat.com>
1684
1685         PR target/49713
1686         * dwarf2out.h (dwarf_frame_regnum): Remove.
1687         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
1688         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
1689         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
1690         (execute_dwarf2_frame): Initialize them.
1691         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
1692         users of the macros with the variables.
1693         (expand_builtin_dwarf_sp_column): Revert last change.
1694         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
1695         result of DWARF_FRAME_REGNUM into a local variable.
1696
1697 2011-07-12  Richard Henderson  <rth@redhat.com>
1698
1699         PR target/49714
1700         * config/i386/i386.c (x86_output_mi_thunk): Use
1701         machopic_indirect_call_target instead of machopic_indirection_name
1702         directly.
1703
1704 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
1705             Eric Botcazou  <ebotcazou@adacore.com>
1706
1707         * prefix.h: Wrap up in extern "C" block.
1708
1709 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
1710
1711         AMD bdver2 Enablement
1712         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
1713         (case ${target}): Add bdver2.
1714         * config/i386/driver-i386.c (host_detect_local_cpu): Let
1715         -march=native recognize bdver2 processors.
1716         * config/i386/i386-c.c (ix86_target_macros_internal): Add
1717         bdver2 def_and_undef
1718         * config/i386/i386.c (struct processor_costs bdver2_cost): New
1719         bdver2 cost table.
1720         (m_BDVER2): New definition.
1721         (m_AMD_MULTIPLE): Includes m_BDVER2.
1722         (initial_ix86_tune_features): Add bdver2 tuning.
1723         (processor_target_table): Add bdver2 entry.
1724         (static const char *const cpu_names): Add bdver2 entry.
1725         (ix86_option_override_internal): Add bdver2 instruction sets.
1726         (ix86_issue_rate): Add bdver2.
1727         (ix86_adjust_cost): Add bdver2.
1728         (has_dispatch): Add bdver2.
1729         * config/i386/i386.h (TARGET_BDVER2): New definition.
1730         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
1731         (enum processor_type): Add PROCESSOR_BDVER2.
1732         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
1733         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
1734         description.
1735
1736 2011-07-12  Richard Henderson  <rth@redhat.com>
1737
1738         PR target/49714
1739         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
1740         destination address in memory on some paths.
1741
1742 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
1743
1744         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
1745         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
1746         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
1747         * function.c (locate_and_pad_parm): Take it into account.
1748         * target.def (function_arg_round_boundary): New hook.
1749         * targhooks.c (default_function_arg_round_boundary): New function.
1750         * targhooks.h (default_function_arg_round_boundary): Declare.
1751         * doc/tm.texi: Regenerate.
1752
1753 2011-07-12  Richard Guenther  <rguenther@suse.de>
1754
1755         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
1756         Do not perform no-op changes.
1757
1758 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
1759
1760         * config/arm/predicates.md (neon_struct_operand): Make a normal
1761         predicate.
1762         (neon_struct_or_register_operand): New predicate.
1763         * config/arm/neon.md (movmisalign<mode>): Replace predicates
1764         with neon_struct_or_register_operand.
1765         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
1766         neon_struct_operand instead of memory_operand.
1767
1768 2011-07-12  Martin Jambor  <mjambor@suse.cz>
1769
1770         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
1771         * cgraph.c (cgraph_get_node_or_alias): Removed.
1772         (change_decl_assembler_name): Changed all calls to
1773         cgraph_get_node_or_alias to a call to cgraph_get_node.
1774         (cgraph_make_decl_local): Likewise.
1775         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
1776         * varasm.c (default_binds_local_p_1): Likewise.
1777         (decl_binds_to_current_def_p): Likewise.
1778
1779 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
1780
1781         PR tree-optimization/49712
1782         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
1783
1784 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
1785
1786         * genautomata.c (add_arc): Return void.  All callers changed.
1787         (make_automaton): Remove dead code.
1788
1789 2011-07-11  Richard Henderson  <rth@redhat.com>
1790
1791         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
1792         (DW_FRAME_POINTER_REGNUM): New.
1793         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
1794         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
1795         (dwf_regno): New.
1796         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
1797         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
1798         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
1799         Use it.
1800         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
1801         * dwarf2out.h (dwarf_frame_regnum): New.
1802         (struct cfa_loc): Document the domain of the reg member.
1803
1804 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
1805
1806         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
1807         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
1808
1809 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
1810
1811         PR debug/49676
1812         * dwarf2out.c (int_shift_loc_descriptor): New function.
1813         (int_loc_descriptor): If shorter, emit i as
1814         (i >> shift), shift, DW_OP_shl for suitable shift value.
1815         Similarly, try to optimize large negative values using
1816         DW_OP_neg of a positive value if shorter.
1817         (size_of_int_shift_loc_descriptor): New function.
1818         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
1819         changes.
1820         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
1821         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
1822         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
1823         is shorter.
1824         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
1825         addend as added DW_OP_plus if it is shorter.
1826
1827 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1828
1829         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
1830         (DTORS_SECTION_ASM_OP): Define.
1831
1832 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1833
1834         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
1835         * config/t-dfprules: Move to ../libgcc/config.
1836         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
1837         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
1838         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
1839         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
1840         Likewise.
1841         (i[34567]86-*-cygwin*): Likewise.
1842         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
1843         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
1844         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
1845         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
1846         D64PBIT_FUNCS, D128PBIT_FUNCS.
1847
1848 2011-07-11  Richard Guenther  <rguenther@suse.de>
1849
1850         * tree-vrp.c (simplify_conversion_using_ranges): Manually
1851         translate the source value-range through the conversion chain.
1852
1853 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
1854
1855         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
1856
1857 2011-07-11  Arthur Loiret  <aloiret@debian.org>
1858
1859         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
1860         a bi-arch compiler defaulting to 31-bit. In this case:
1861         (tmake_file): Add s390/t-linux64.
1862         * doc/install.texi: Add s390-linux to the list of targets supporting
1863         --enable-targets=all.
1864
1865 2011-07-11  Arthur Loiret  <aloiret@debian.org>
1866             Matthias Klose <doko@debian.org>
1867
1868         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
1869         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
1870         (tm_file): Add mips/linux64.h.
1871         (tmake_file): Add mips/t-linux64.
1872         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
1873         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
1874         instead of hardcoded mabi=n32.
1875         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
1876         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
1877         convention.
1878
1879 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1880
1881         * passes.c (init_optimization_passes): Add invariant motion pass
1882         after induction variable optimization.
1883
1884 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
1885
1886         PR target/39633
1887         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
1888         offsets 1..5 set cc0 in a usable way.
1889
1890 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
1891
1892         * tree.h (call_expr_arg): Remove.
1893         (call_expr_argp): Likewise.
1894
1895 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
1896
1897         * config/sparc/sparc.md (save_register_window_1): Rename to...
1898         (window_save): ...this.
1899         * config/sparc/sparc.c (emit_save_register_window): Rename to...
1900         (emit_window_save): ...this.
1901         (sparc_expand_prologue): Adjust to above renaming.
1902
1903 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
1904
1905         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
1906         of movabs for x32.
1907
1908 2011-07-10  Richard Henderson  <rth@redhat.com>
1909
1910         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
1911         run final, instead of emitting text directly.
1912
1913 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
1914
1915         * config/i386/i386.c (ix86_option_override_internal): Turn on
1916         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
1917         small PIC models for TARGET_X32.
1918
1919 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
1920
1921         PR target/49684
1922         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
1923         $(LIBGCC2_CFLAGS).
1924
1925         PR bootstrap/49680
1926         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
1927         stray notes and debug insns by using prev_nonnote_nondebug_insn
1928         instead of PREV_INSN.
1929
1930 2011-07-09  Richard Henderson  <rth@redhat.com>
1931
1932         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
1933         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
1934         * dwarf2out.c: ... here.
1935         (output_all_cfis): Remove.
1936         (dwarf2out_switch_text_section): Use output_cfis directly.
1937         (size_of_locs): Export.
1938         (output_loc_sequence, output_loc_sequence_raw): Export.
1939         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
1940         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
1941         output_cfa_loc_raw): Move to ...
1942         * dwarfcfi.c: ... here.
1943         * dwarf2out.h: Update decls.
1944
1945 2011-07-09  Richard Henderson  <rth@redhat.com>
1946
1947         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
1948         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
1949         * dwarf2cfi.c: ... here.
1950         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
1951         (DWARF_ROUND, DWARF_CIE_ID): Remove.
1952         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
1953         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
1954         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
1955
1956 2011-07-09  Richard Henderson  <rth@redhat.com>
1957
1958         * dwarf2cfi.c (cie_return_save): New.
1959         (queue_reg_save): Use compare_reg_or_pc.
1960         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
1961         (dwarf2out_frame_debug_expr): Likewise.
1962         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
1963         (initial_return_save): Likewise.
1964         (execute_dwarf2_frame): Save and restore initial return save from
1965         the cie to the fde.
1966         * config/mips/mips.c (mips_frame_set): Remove special case for
1967         DWARF_FRAME_RETURN_COLUMN.
1968
1969 2011-07-09  Richard Henderson  <rth@redhat.com>
1970
1971         * dwarf2cfi.c (lookup_cfa): Remove.
1972         (execute_dwarf2_frame): Assert queues are empty on entry.
1973         Setup initial cfa directly, not via lookup_cfa.
1974         Don't clear args_size state here.
1975
1976 2011-07-09  Richard Henderson  <rth@redhat.com>
1977
1978         * dwarf2cfi.c (add_cfi_vec): New.
1979         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
1980         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
1981         (execute_dwarf2_frame): Set add_cfi_vec.
1982
1983 2011-07-09  Richard Henderson  <rth@redhat.com>
1984
1985         * defaults.h (ASM_COMMENT_START): Move here...
1986         * dwarf2asm.c: ... from here.
1987         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
1988         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
1989         * varasm.c: Likewise.
1990
1991 2011-07-09  Richard Henderson  <rth@redhat.com>
1992
1993         PR debug/49686
1994         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
1995         (create_cfi_notes): ... do it here instead.
1996
1997 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
1998
1999         PR debug/49676
2000         * dwarf2out.c (size_of_int_loc_descriptor): New function.
2001         (address_of_int_loc_descriptor): Use it.
2002         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
2003
2004 2011-07-09  Richard Henderson  <rth@redhat.com>
2005
2006         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
2007         (prologue, epilogue): New.
2008         (return, *rts): New.
2009         (blockage, setd, seti): New.
2010         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
2011         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
2012         (pdp11_saved_regno): New.
2013         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
2014         generate rtl instead of text.
2015         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
2016         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
2017         * config/pdp11/pdp11-protos.h: Update.
2018
2019 2011-07-09  Richard Henderson  <rth@redhat.com>
2020
2021         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
2022         try to insert an rtl prologue here.
2023         (rs6000_output_function_epilogue): Similarly.
2024         * config/rs6000/rs6000.md (prologue): Emit a barrier to
2025         satisfy !TARGET_SCHED_PROLOG.
2026         (epilogue, sibcall_epilogue): Likewise.
2027
2028 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
2029
2030         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
2031         (FP_REG_P): Delete.
2032         (IN_OR_GLOBAL_P): Likewise.
2033
2034 2011-07-08  Jason Merrill  <jason@redhat.com>
2035
2036         PR c++/45437
2037         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
2038         compound assignment.
2039
2040         * cgraph.c (cgraph_add_to_same_comdat_group): New.
2041         * cgraph.h: Declare it.
2042         * ipa.c (function_and_variable_visibility): Make sure thunks
2043         have the right visibility.
2044
2045 2011-07-08  Richard Henderson  <rth@redhat.com>
2046
2047         PR bootstrap/49680
2048         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
2049         any tablejump vector.
2050
2051         PR bootstrap/49680
2052         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
2053         end of the prologue.
2054
2055 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
2056
2057         PR target/49621
2058         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
2059         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
2060         * config/rs6000/vector.md (vector_select_<mode>,
2061         vector_select_<mode>_uns): Change second operand of NE to
2062         CONST0_RTX (<MODE>mode) instead of const0_rtx.
2063         * config/rs6000/altivec.md (*altivec_vsel<mode>,
2064         *altivec_vsel<mode>_uns): Expect second operand of NE to be
2065         zero_constant of the corresponding vector mode.
2066         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
2067         Likewise.
2068
2069 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
2070
2071         * graphite-dependences.c (build_alias_set_powerset): Remove
2072         continue from loop, add one more assert.
2073
2074 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
2075
2076         PR target/46779
2077         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
2078         In particular, allow 8-bit values in r28 and r29.
2079         (avr_hard_regno_scratch_ok): Disallow any register that might be
2080         part of the frame pointer.
2081         (avr_hard_regno_rename_ok): Same.
2082         (avr_legitimate_address_p): Don't allow SUBREGs.
2083
2084 2011-07-08  Julian Brown  <julian@codesourcery.com>
2085
2086         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
2087         big-endian mode.
2088         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
2089         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
2090         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
2091         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
2092         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
2093         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
2094         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
2095         registers in big-endian mode.
2096
2097 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
2098
2099         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
2100         in terms of another.
2101         (write_attr_value): Write a cast if necessary.
2102
2103         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
2104         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
2105         (REG_WORDS_BIG_ENDIAN): Document.
2106         * doc/tm.texi: Regenerate.
2107         * reload.c (operands_match_p): Take it into account.
2108         (reload_adjust_reg_for_mode): Likewise.
2109         * rtlanal.c (subreg_get_info): Likewise.
2110
2111 2011-07-08  Richard Guenther  <rguenther@suse.de>
2112
2113         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
2114         folding.
2115
2116 2011-07-08  Kai Tietz  <ktietz@redhat.com>
2117
2118         * fold-const.c (fold_truth_andor): Factored out truth_andor
2119         label from fold_binary as function.
2120         (fold_binary_loc): Replace truth_andor lable
2121         by function fold_truth_andor.
2122
2123 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
2124
2125         PR middle-end/49519
2126         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
2127         check if address is stored in register. If so - give up.
2128         (check_sibcall_argument_overlap_1): Do not perform check of
2129         overlapping when it is call to address.
2130
2131 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
2132
2133         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
2134         of magic '31'.
2135
2136 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
2137
2138         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
2139         GET_MODE_BITSIZE where appropriate.
2140         (widen_leading, expand_parity, expand_ctz, expand_ffs,
2141         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
2142         expand_float, expand_fix): Likewise.
2143         * expr.c (convert_move, convert_modes, expand_expr_real_2,
2144         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
2145         * stor-layout.c (get_mode_bounds): Likewise.
2146         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
2147         Likewise.
2148         * convert.c (convert_to_integer): Likewise.
2149         * expmed.c (expand_shift_1): Likewise.
2150
2151         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
2152         a bitsize.
2153
2154         * optabs.c (expand_binop): Tighten conditions for doubleword
2155         expansions.
2156         (widen_bswap): Assert that mode bitsize and precision are the same.
2157         * stor-layout.c (get_best_mode): Skip modes that have lower
2158         precision than bitsize.
2159         * recog.c (simplify_while_replacing): Assert that bitsize and
2160         precision are the same.
2161
2162 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2163
2164         * Makefile.in (LIBGCOV): Remove.
2165         (libgcc.mvars): Remove LIBGCOV.
2166         * libgov.c: Move to ../libgcc.
2167
2168 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2169
2170         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
2171
2172 2011-07-08  Martin Jambor  <mjambor@suse.cz>
2173
2174         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
2175         is too big for total scalarization.
2176
2177 2011-07-07  Richard Henderson  <rth@redhat.com>
2178
2179         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
2180         (DBX_DEBUGGING_INFO): Undef.
2181
2182 2011-07-07  Richard Henderson  <rth@redhat.com>
2183
2184         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
2185         Handle some opcodes specially for debugging.
2186         * print-rtl.c: Include dwarf2out.h
2187         (print_rtx): Handle NOTE_INSN_CFI.
2188         * Makefile.in (print-rtl.o): Update.
2189
2190 2011-07-07  Richard Henderson  <rth@redhat.com>
2191
2192         * tree-pass.h (pass_dwarf2_frame): Declare.
2193         * passes.c (init_optimization_passes): Add it.
2194         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
2195         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
2196         make static, do not call add_cfis_to_fde.
2197         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
2198         dwarf2out_frame_init): Merge into...
2199         (execute_dwarf2_frame): ... here.  New function.
2200         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
2201         saved_do_cfi_asm to a tri-state variable.
2202         (gate_dwarf2_frame, pass_dwarf2_frame): New.
2203         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
2204         if it has yet to be done.  Don't call dwarf2cfi_function_init.
2205         * dwarf2out.h, debug.h: Update decls.
2206         * final.c (final_start_function): Don't call
2207         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
2208         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
2209         * toplev.c (lang_dependent_init): Likewise.
2210
2211 2011-07-07  Richard Henderson  <rth@redhat.com>
2212
2213         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
2214         FDE_TABLE_INCREMENT): Replace with...
2215         (fde_vec): ... this, a new vector.
2216         (current_fde): Remove.  Replace all users with cfun->fde.
2217         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
2218         (size_of_aranges, dwarf2out_finish): Likewise.
2219         (dwarf2out_alloc_current_fde): Break out from ...
2220         (dwarf2out_begin_prologue): ... here.
2221         (dwarf2out_frame_init): Remove.
2222         * dwarf2cfi.c: Update all users of current_fde.
2223         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
2224         * dwarf2out.h: Update decls.
2225         (dw_fde_node): Add fde_index member.
2226         * function.h (struct function): Add fde member.
2227
2228 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
2229             Richard Henderson  <rth@redhat.com>
2230
2231         * dwarf2cfi.c (add_cfi): Remove.
2232         (dwarf2out_cfi_label): Remove force argument.  Only generate the
2233         label name.
2234         (add_fde_cfi): Simplify the different code paths.
2235         (add_cie_cfi): New.
2236         (old_cfa, old_cfa_remember): New.
2237         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
2238         (last_reg_save_label): Remove.
2239         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
2240         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
2241         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
2242         dwarf2out_frame_debug_cfa_expression,
2243         dwarf2out_frame_debug_cfa_restore,
2244         dwarf2out_frame_debug_cfa_window_save,
2245         dwarf2out_frame_debug_expr): Remove label parameter.
2246         (cfi_label_required_p, add_cfis_to_fde): New.
2247         (dwarf2out_frame_debug_after_prologue): New.
2248         (dwarf2cfi_frame_init): Initialize old_cfa.
2249         (dwarf2out_frame_debug_restore_state): Likewise.
2250         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
2251         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
2252         * final.c (final_start_function): Call
2253         dwarf2out_frame_debug_after_prologue.
2254
2255 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
2256             Richard Henderson  <rth@redhat.com>
2257
2258         * dwarf2cfi.c (cfi_insn): New.
2259         (dwarf2out_cfi_label): Don't emit cfi label here.
2260         (add_fde_cfi): Create a NOTE_INSN_CFI.
2261         (dwarf2out_frame_debug): Setup cfi_insn.
2262         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
2263         (dwarf2out_cfi_begin_epilogue): Make static.
2264         (dwarf2out_frame_debug_restore_state): Make static.
2265         * dwarf2out.c (output_cfi_directive): Make static.
2266         (dwarf2out_emit_cfi): New.
2267         * dwarf2out.h: Update.
2268         * final.c (final): Remove CFI notes.
2269         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
2270         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
2271         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
2272         * insn-notes.def (NOTE_INSN_CFI): New.
2273         (NOTE_INSN_CFI_LABEL): New.
2274         * rtl.h (union rtunion_def): Add rt_cfi member.
2275         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
2276
2277 2011-07-07  Richard Henderson  <rth@redhat.com>
2278
2279         * dwarf2cfi.c: New file.
2280         * Makefile.in (OBJS): Add it.
2281         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
2282         * gengtype.c (open_base_files): Include dwarf2out.h.
2283         * coretypes.h (enum var_init_status): Move from ...
2284         * rtl.h: ... here.
2285         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
2286         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
2287         expand_builtin_dwarf_sp_column, init_return_column_size,
2288         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
2289         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
2290         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
2291         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
2292         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
2293         compute_barrier_args_size, dwarf2out_args_size,
2294         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
2295         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
2296         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
2297         queue_reg_save, dwarf2out_flush_queued_reg_saves,
2298         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
2299         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
2300         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
2301         dwarf2out_frame_debug_cfa_expression,
2302         dwarf2out_frame_debug_cfa_restore,
2303         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
2304         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
2305         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
2306         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
2307         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
2308         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
2309         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
2310         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
2311         dw_loc_descr_node): Move to dwarf2out.h.
2312         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
2313         mem_loc_descriptor): Export.
2314         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
2315         (dwarf2out_frame_init): Extract CIE generation code to
2316         dwarf2cfi_frame_init.
2317
2318 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
2319
2320         PR target/49660
2321         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
2322         MASK_V8PLUS, remove commented out flag and reorder.
2323
2324 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
2325
2326         PR c/49644
2327         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
2328         one non-complex and one complex argument, call c_save_expr on both
2329         operands.
2330
2331 2011-07-07  Martin Jambor  <mjambor@suse.cz>
2332
2333         PR middle-end/49495
2334         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
2335         (verify_cgraph_node): Some functinality moved to
2336         verify_edge_corresponds_to_fndecl, call it.
2337
2338 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
2339
2340         * config.gcc (*local*): Remove.
2341         * doc/install-old.texi: Don't mention local configurations.
2342
2343 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
2344
2345         PR debug/49522
2346         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
2347         referencing debug insns that have been reset.
2348         (dead_debug_insert_before): Don't assert reg is non-NULL,
2349         instead return immediately if it is NULL.
2350
2351 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
2352
2353         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
2354
2355 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
2356
2357         * hw-doloop.c: New file.
2358         * hw-doloop.h: New file.
2359         * Makefile.in (OBJS): Add hw-doloop.o.
2360         (hw-doloop.o): New rule.
2361         ($(obj_out_file)): Add hw-doloop.h dependency.
2362         * config/bfin/bfin.c: Include "hw-doloop.h".
2363         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
2364         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
2365         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
2366         type changed to hwloop_info.  Return bool, true if the loop was
2367         successfully optimized.  Remove code that was moved to
2368         hw-doloop.c, and adjust other parts.
2369         (hwloop_fail): New static function, containing parts that used
2370         to be in bfin_optimize_loop.
2371         (bfin_discover_loop, bfin_discover_loops, free_loops,
2372         bfin_reorder_loops): Remove.
2373         (hwloop_pattern_reg): New static function.
2374         (bfin_doloop_hooks): New variable.
2375         (bfin_reorg_loops): Remove most code, call reorg_loops.
2376         * config/bfin/bfin.md (doloop_end splitter): Also enable if
2377         loop counter is a memory_operand.
2378
2379 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
2380
2381         * config.gcc: Support --with-multilib-list for x86 Linux targets.
2382
2383         * configure.ac: Mention x86-64 for --with-multilib-list.
2384         * configure: Regenerated.
2385
2386         * config/i386/gnu-user64.h (SPEC_64): Support x32.
2387         (SPEC_32): Likewise.
2388         (ASM_SPEC): Likewise.
2389         (LINK_SPEC): Likewise.
2390         (TARGET_THREAD_SSP_OFFSET): Likewise.
2391         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
2392         (SPEC_X32): New.
2393
2394         * config/i386/i386.h (TARGET_X32): New.
2395         (TARGET_LP64): New.
2396         (LONG_TYPE_SIZE): Likewise.
2397         (POINTER_SIZE): Likewise.
2398         (POINTERS_EXTEND_UNSIGNED): Likewise.
2399         (OPT_ARCH64): Support x32.
2400         (OPT_ARCH32): Likewise.
2401
2402         * config/i386/i386.opt (mx32): New.
2403
2404         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
2405         (GLIBC_DYNAMIC_LINKERX32): Likewise.
2406         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
2407         (GLIBC_DYNAMIC_LINKERX32): Likewise.
2408
2409         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
2410         (BIONIC_DYNAMIC_LINKERX32): Likewise.
2411         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
2412
2413         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
2414
2415         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
2416
2417         * doc/invoke.texi: Document -mx32.
2418
2419 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
2420
2421         * doc/invoke.texi (mwords-little-endian): Deprecate.
2422         * config/arm/arm.opt (mwords-little-endian): Likewise.
2423         * config/arm/arm.c (arm_option_override): Warn about the deprecation
2424         of -mwords-little-endian.
2425
2426 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
2427
2428         * reload1.c (choose_reload_regs): Use mode sizes to check whether
2429         an old reload register completely defines the required value.
2430
2431 2011-07-07  Richard Guenther  <rguenther@suse.de>
2432
2433         * fold-const.c (fold_unary_loc): Do not strip sign-changes
2434         for NEGATE_EXPR.
2435
2436 2011-07-07  Richard Guenther  <rguenther@suse.de>
2437
2438         * tree-vrp.c (simplify_conversion_using_ranges): New function.
2439         (simplify_stmt_using_ranges): Call it.
2440
2441 2011-07-07  Kai Tietz  <ktietz@redhat.com>
2442
2443         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
2444         (lookup_logical_inverted_value): Likewise.
2445         (simplify_bitwise_binary_1): Likewise.
2446         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
2447
2448 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
2449
2450         * gcc.c (%[Spec]): Don't document.
2451         (struct spec_list): Update comment.
2452         (do_spec_1): Don't handle %[Spec].
2453         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
2454
2455 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
2456
2457         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
2458         default based on TARGET_ASM_NAMED_SECTION.
2459         * common/common-target.def (have_named_sections): Default to true.
2460         * common/config/default-common.c: Don't include tm.h.
2461         * common/config/picochip/picochip-common.c
2462         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
2463         * common/config/m32c/m32c-common.c: Remove.
2464         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
2465         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2466         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2467         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2468         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2469         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2470         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2471
2472 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
2473
2474         PR middle-end/49640
2475         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
2476         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
2477
2478 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2479
2480         PR libmudflap/49550
2481         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
2482
2483 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2484
2485         PR target/39150
2486         * configure.ac (gcc_cv_as_hidden): Also accept
2487         x86_64-*-solaris2.1[0-9]*.
2488         (gcc_cv_as_cfi_directive): Likewise.
2489         (gcc_cv_as_comdat_group_group): Likewise.
2490         (set_have_as_tls): Likewise.
2491         * configure: Regenerate.
2492         * config.gcc (i[34567]86-*-solaris2*): Also handle
2493         x86_64-*-solaris2.1[0-9]*.
2494         * config.host (i[34567]86-*-solaris2*): Likewise.
2495         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
2496         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
2497         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
2498         (TARGET_LD_EMULATION): Use it.
2499         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
2500         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
2501         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
2502         (ASM_CPU64_DEFAULT_SPEC): Define.
2503         (ASM_CPU_SPEC): Use %(asm_cpu_default).
2504         (ASM_SPEC): Redefine.
2505         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
2506         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
2507         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
2508         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
2509         configuration.
2510         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
2511
2512 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2513
2514         * config/sol2.h (ASM_SPEC): Split into ...
2515         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
2516         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
2517         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
2518         (ASM_SPEC): Use ASM_SPEC_BASE.
2519         * config/sparc/sol2.h (ASM_SPEC): Redefine.
2520
2521 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
2522
2523         * config/avr/avr.md (*reload_insi): Change predicate #1 to
2524         const_int_operand.  Ditto for peep2 producing this insn.
2525         Add argument to output_reload_insisf call.
2526         (*movsi,*movsf): Add argument to output_movsisf call.
2527         (*reload_insf): New insn and new peep2 to produce it.
2528         * config/avr/avr-protos.h (output_movsisf): Change prototype.
2529         (output_reload_insisf): Change prototype.
2530         * config/avr/avr.c (avr_asm_len): New function.
2531         (output_reload_insisf): Rewrite.
2532         (output_movsisf): Change prototype.  output_reload_insisf for
2533         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
2534         (adjust_insn_length): Add argument to output_movsisf and
2535         output_reload_insisf call.
2536
2537 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
2538
2539         * emit-rtl.c (paradoxical_subreg_p): New function.
2540         * rtl.h (paradoxical_subreg_p): Declare.
2541         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
2542         apply_distributive_law, simplify_comparison, simplify_set): Use it.
2543         * cse.c (record_jump_cond, cse_insn): Likewise.
2544         * expr.c (force_operand): Likewise.
2545         * rtlanal.c (num_sign_bit_copies1): Likewise.
2546         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
2547         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
2548         (push_reload): Use precision to check for paradoxical subregs.
2549         * expmed.c (extract_bit_field_1): Likewise.
2550
2551         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
2552         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
2553         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
2554         simplify_set, simplify_logical, expand_compound_operation,
2555         make_extraction, force_to_mode, if_then_else_cond, extended_count,
2556         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
2557         record_value_for_reg): Likewise.
2558         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
2559         * simplify-rtx. c (simplify_unary_operation_1,
2560         simplify_binary_operation_1, simplify_const_relational_operation):
2561         Likewise.
2562
2563         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
2564         instead of GET_MODE_BITSIZE where appropriate.
2565         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
2566         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
2567         init_num_sign_bit_copies_in_rep): Likewise.
2568         * cse.c (fold_rtx, cse_insn): Likewise.
2569         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
2570         * simplify-rtx.c (simplify_unary_operation_1,
2571         simplify_const_unary_operation, simplify_binary_operation_1,
2572         simplify_const_binary_operation, simplify_ternary_operation,
2573         simplify_const_relational_operation, simplify_subreg): Likewise.
2574         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
2575         simplify_if_then_else, simplify_set, expand_compound_operation,
2576         expand_field_assignment, make_extraction, if_then_else_cond,
2577         make_compound_operation, force_to_mode, make_field_assignment,
2578         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
2579         extended_count, try_widen_shift_mode, simplify_shift_const_1,
2580         simplify_comparison, record_promoted_value, simplify_compare_const,
2581         record_dead_and_set_regs_1): Likewise.
2582
2583         Revert:
2584         * simplify-rtx.c (simplify_const_binary_operation): Use the
2585         shift_truncation_mask hook instead of performing modulo by width.
2586         Compare against mode precision, not bitsize.
2587         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
2588         Use shift_truncation_mask instead of constructing the value manually.
2589
2590 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
2591
2592         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
2593         declaration.
2594         (rs6000_save_toc_in_prologue_p): Ditto.
2595
2596         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
2597         up the static chain (r11) during indirect function calls.
2598         (-msave-toc-indirect): New undocumented debug switch.
2599
2600         * config/rs6000/rs6000.c (struct machine_function): Add
2601         save_toc_in_prologue field to note whether the prologue needs to
2602         save the TOC value in the reserved stack location.
2603         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
2604         to save the TOC in the prologue, do so.
2605         (rs6000_trampoline_init): Don't allow creating AIX style
2606         trampolines if -mno-r11 is in effect.
2607         (rs6000_call_indirect_aix): New function to create AIX style
2608         indirect calls, adding support for -mno-r11 to suppress loading
2609         the static chain, and saving the TOC in the prologue instead of
2610         the call body.
2611         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
2612         TOC in the prologue.
2613
2614         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
2615         register numbers.
2616         (TOC_REGNUM): Ditto.
2617         (STATIC_CHAIN_REGNUM): Ditto.
2618         (ARG_POINTER_REGNUM): Ditto.
2619         (SFP_REGNO): Delete, unused.
2620         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
2621         function descriptor offsets.
2622         (TOC_SAVE_OFFSET_64BIT): Ditto.
2623         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
2624         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
2625         (AIX_FUNC_DESC_SC_32BIT): Ditto.
2626         (AIX_FUNC_DESC_SC_64BIT): Ditto.
2627         (ptrload): New mode attribute for the appropriate load of a pointer.
2628         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
2629         (call_indirect_aix64): Ditto.
2630         (call_value_indirect_aix32): Ditto.
2631         (call_value_indirect_aix64): Ditto.
2632         (call_indirect_nonlocal_aix32_internal): Ditto.
2633         (call_indirect_nonlocal_aix32): Ditto.
2634         (call_indirect_nonlocal_aix64_internal): Ditto.
2635         (call_indirect_nonlocal_aix64): Ditto.
2636         (call): Rewrite AIX indirect function calls.  Add support for
2637         eliminating the static chain, and for moving the save of the TOC
2638         to the function prologue.
2639         (call_value): Ditto.
2640         (call_indirect_aix<ptrsize>): Ditto.
2641         (call_indirect_aix<ptrsize>_internal): Ditto.
2642         (call_indirect_aix<ptrsize>_internal2): Ditto.
2643         (call_indirect_aix<ptrsize>_nor11): Ditto.
2644         (call_value_indirect_aix<ptrsize>): Ditto.
2645         (call_value_indirect_aix<ptrsize>_internal): Ditto.
2646         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
2647         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
2648         (call_nonlocal_aix32): Relocate in the rs6000.md file.
2649         (call_nonlocal_aix64): Ditto.
2650
2651         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
2652         -mno-r11 documentation.
2653
2654 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
2655
2656         PR other/49658
2657         * doc/extend.texi (Compound Literals): Fix typo.
2658
2659 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
2660
2661         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
2662
2663 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
2664
2665         * configure.ac (plugin-version.h): Generate
2666         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
2667         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
2668         macros.
2669
2670         * configure: Regenerate.
2671
2672         * doc/plugins.texi (Building GCC plugins): Mention
2673         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
2674
2675 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
2676
2677         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
2678         * combine.c (make_extraction, gen_lowpart_or_truncate,
2679         apply_distributive_law, simplify_comparison,
2680         reg_truncated_to_mode, record_truncated_value): Use it.
2681         * cse.c (notreg_cost): Likewise.
2682         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
2683         * expr.c (convert_move, convert_modes): Likewise.
2684         * optabs.c (expand_binop, expand_unop): Likewise.
2685         * postreload.c (move2add_last_label): Likewise.
2686         * regmove.c (optimize_reg_copy_3): Likewise.
2687         * rtlhooks.c (gen_lowpart_general): Likewise.
2688         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
2689
2690 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
2691
2692         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
2693
2694 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
2695
2696         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
2697         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
2698         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
2699         (simplify_const_unary_operation, simplify_binary_operation_1,
2700         simplify_const_binary_operation, simplify_const_relational_operation):
2701         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
2702         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
2703         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
2704         simplify_shift_const_1, simplify_comparison): Likewise.
2705         * expr.c (convert_modes): Likewise.
2706         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
2707         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
2708         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
2709
2710         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
2711
2712 2011-07-06  Richard Guenther  <rguenther@suse.de>
2713
2714         PR tree-optimization/49645
2715         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
2716         register variables.
2717         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
2718         in type qualification here ...
2719         (copy_reference_ops_from_ref): ... not here.
2720         (vn_reference_lookup_3): ... or here.
2721         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
2722         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
2723
2724 2011-07-06  Ian Lance Taylor  <iant@google.com>
2725
2726         * doc/install.texi (Configuration): It's
2727         --enable-gnu-indirect-function, not --enable-indirect-function.
2728
2729 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
2730
2731         * simplify-rtx.c (simplify_const_binary_operation): Use the
2732         shift_truncation_mask hook instead of performing modulo by width.
2733         Compare against mode precision, not bitsize.
2734         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
2735         Use shift_truncation_mask instead of constructing the value manually.
2736
2737 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
2738
2739         PR middle-end/47383
2740         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
2741         address computation and convert to address_mode if needed.
2742
2743 2011-07-06  Richard Guenther  <rguenther@suse.de>
2744
2745         * tree.c (build_common_tree_nodes_2): Merge with
2746         build_common_tree_nodes.
2747         * tree.h (build_common_tree_nodes): Adjust prototype.
2748         (build_common_tree_nodes_2): Remove.
2749         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
2750         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
2751
2752 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
2753
2754         PR tree-optimization/49618
2755         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
2756         t recurse on the decl.
2757         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
2758         return true if expr isn't known to be defined in current
2759         TU or some other LTO partition.
2760
2761 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
2762
2763         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
2764         override CASE_VALUES_THRESHOLD.
2765
2766         * stmt.c (toplevel): Include params.h.
2767         (case_values_threshold): Use the --param case-values-threshold
2768         value if non-zero, otherwise use machine dependent value.
2769         (expand_case): Use case_values_threshold.
2770
2771         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
2772
2773         * doc/invoke.texi (--param case-values-threshold): Document.
2774
2775 2011-07-05  Richard Henderson  <rth@redhat.com>
2776
2777         * dwarf2out.c (dwarf2out_cfi_label): Make static.
2778         (dwarf2out_flush_queued_reg_saves): Make static.
2779         (dwarf2out_reg_save): Remove.
2780         (dwarf2out_return_save): Remove.
2781         (dwarf2out_return_reg): Remove.
2782         (dwarf2out_reg_save_reg): Remove.
2783         (dwarf2out_def_cfa): Merge into ...
2784         (dwarf2out_frame_init): ... here.
2785         * dwarf2out.h, tree.h: Remove declarations as necessary.
2786
2787 2011-07-05  Richard Henderson  <rth@redhat.com>
2788
2789         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
2790         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
2791         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
2792         the alloc insn.
2793
2794         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
2795         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
2796         (process_epilogue): Don't call dwarf2out_def_cfa.
2797
2798         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
2799         indicate the return address save.
2800         (process_cfa_register): Likewise.
2801
2802         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
2803         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
2804
2805         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
2806         for ar.pfs save at alloc insn.
2807
2808 2011-07-05  Richard Henderson  <rth@redhat.com>
2809
2810         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
2811         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
2812         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
2813         stack pointer save.
2814         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
2815         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
2816         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
2817         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
2818
2819 2011-07-05  Richard Henderson  <rth@redhat.com>
2820
2821         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
2822         VUNSPEC_* constants here instead of via define_constants.
2823         (VUNSPEC_PEM): New constant.
2824         (procedure_entry_mask): New insn.
2825         (prologue): New expander.
2826         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
2827         (vax_expand_prologue): Rename from vax_output_function_prologue;
2828         emit rtl instead of text.
2829         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
2830         (print_operand): Add 'x' prefix.
2831
2832 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
2833
2834         PR middle-end/47715
2835         * calls.c (precompute_register_parameters): Promote the function
2836         argument before checking non-legitimate constant.
2837
2838 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
2839
2840         PR tree-optimization/47654
2841         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
2842         (lst_do_strip_mine_loop): Return an int.
2843         (lst_do_strip_mine): Same.
2844         (scop_do_strip_mine): Same.
2845         (scop_do_block): Loop blocking should strip-mine at least two loops.
2846         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
2847         (scop_do_interchange): Same.
2848         * graphite-poly.h (scop_do_interchange): Update declaration.
2849         (scop_do_strip_mine): Same.
2850
2851 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
2852
2853         * graphite-clast-to-gimple.c (precision_for_value): Removed.
2854         (precision_for_interval): Removed.
2855         (gcc_type_for_interval): Use mpz_sizeinbase.
2856
2857 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
2858
2859         * graphite-ppl.h (value_max): Correct computation of max.
2860
2861 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
2862
2863         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
2864
2865 2011-07-05  Richard Guenther  <rguenther@suse.de>
2866
2867         * c-decl.c (c_init_decl_processing): Defer building common
2868         tree nodes to c_common_nodes_and_builtins.
2869
2870 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
2871
2872         PR tree-optimization/49580
2873         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
2874         the loop's number of iterations.
2875         * tree-parloops.c (transform_to_exit_first_loop): Add the
2876         handling of the loop's number of iterations before the call
2877         to gimple_duplicate_sese_tail.
2878         Insert the stmt caclculating the new rhs of the loop's
2879         condition stmt to the preheader instead of iters_bb.
2880
2881 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
2882
2883         PR rtl-optimization/47449
2884         * fwprop.c (forward_propagate_subreg): Don't propagate hard
2885         register nor zero/sign extended hard register.
2886
2887 2011-07-05  Richard Guenther  <rguenther@suse.de>
2888
2889         PR tree-optimization/49518
2890         PR tree-optimization/49628
2891         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
2892         irrelevant and invariant data-references.
2893         (vect_analyze_data_ref_access): For invariant loads clear the
2894         group association.
2895
2896 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
2897
2898         PR rtl-optimization/49619
2899         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
2900         pass VOIDmode as op0_mode to recursive call, and return temp even
2901         when different from tor, just if it is not IOR of the original
2902         PLUS arguments.
2903
2904         PR rtl-optimization/49472
2905         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
2906         negating MULT, negate the second operand instead of first.
2907         (simplify_binary_operation_1) <case MULT>: If one operand is
2908         a NEG and the other is MULT, don't attempt to optimize by negation
2909         of the MULT operand if it only moves the NEG operation around.
2910
2911         PR debug/49602
2912         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
2913         get_current_def return value if it can't be trusted to be
2914         the current value of the variable in the current bb.
2915
2916 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
2917
2918         PR target/49600
2919         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
2920         general register to memory for !TARGET_INTER_UNIT_MOVES.
2921
2922 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
2923
2924         PR target/44643
2925         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
2926         instead of TREE_READONLY.
2927
2928 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
2929
2930         * doc/extend.texi (AVR Built-in Functions): Update documentation
2931         of __builtin_avr_fmul*.
2932         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
2933         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
2934         * config/avr/avr.md (fmul): Rename to fmul_insn.
2935         (fmuls): Rename to fmuls_insn.
2936         (fmulsu): Rename to fmulsu_insn.
2937         (fmul,fmuls,fmulsu): New expander.
2938         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
2939         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
2940         * config/avr/libgcc.S (__fmul): New function.
2941         (__fmuls): New function.
2942         (__fmulsu,__fmulsu_exit): New function.
2943
2944 2011-07-04  Richard Guenther  <rguenther@suse.de>
2945
2946         PR tree-optimization/49615
2947         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
2948         basic-block index check.
2949
2950 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
2951
2952         * longlong.h (count_leading_zeros, count_trailing_zeros,
2953         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
2954         resp. 64.
2955
2956 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
2957
2958         PR tree-optimization/49610
2959         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
2960         a basic block.
2961
2962 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
2963             Olivier Hainque  <hainque@adacore.com>
2964             Nicolas Setton  <setton@adacore.com>
2965
2966         * tree.h (TYPE_ARTIFICIAL): New flag.
2967         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
2968         the DIE of the type if it is artificial.
2969         (gen_array_type_die): Likewise.
2970         (gen_enumeration_type_die): Likewise.
2971         (gen_struct_or_union_type_die): Likewise.
2972         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
2973         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
2974
2975 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
2976
2977         * tree-object-size.c (pass_through_call): Handle
2978         BUILT_IN_ASSUME_ALIGNED.
2979
2980 2011-07-01  Martin Jambor  <mjambor@suse.cz>
2981
2982         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
2983
2984 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
2985
2986         PR middle-end/48016
2987         * explow.c (update_nonlocal_goto_save_area): Use proper mode
2988         for stack save area.
2989         * function.c (expand_function_start): Likewise.
2990
2991 2011-07-01  Richard Guenther  <rguenther@suse.de>
2992
2993         PR middle-end/49596
2994         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
2995         may have unknown refs.
2996
2997 2011-07-01  Kai Tietz  <ktietz@redhat.com>
2998
2999         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
3000
3001 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3002
3003         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
3004         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
3005         (Specific, mips-sgi-irix6): Likewise.
3006
3007 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3008
3009         PR libmudflap/49549
3010         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
3011
3012 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
3013
3014         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
3015         [idx]= and [idx1 ... idx2]= before initializers if needed for
3016         array initializers.
3017
3018 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
3019
3020         * config.gcc (score-*-elf): Remove score7.o.
3021         * config/score/t-score-elf: Likewise.
3022         * config/score/score.c: Merge score7 to score.c and
3023         remove forwarding functions.
3024         * config/score/score7.c: Deleted.
3025         * config/score/score7.h: Deleted.
3026
3027 2011-07-01  Richard Guenther  <rguenther@suse.de>
3028
3029         PR tree-optimization/49603
3030         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
3031
3032 2011-06-30  Martin Jambor  <mjambor@suse.cz>
3033
3034         * tree-sra.c (struct access): Rename total_scalarization to
3035         grp_total_scalarization
3036         (completely_scalarize_var): New function.
3037         (sort_and_splice_var_accesses): Set total_scalarization in the
3038         representative access.
3039         (analyze_access_subtree): Propagate total scalarization accross the
3040         tree, no holes in totally scalarized trees, simplify coverage
3041         computation.
3042         (analyze_all_variable_accesses): Call completely_scalarize_var instead
3043         of completely_scalarize_record.
3044
3045 2011-06-30  Richard Henderson  <rth@redhat.com>
3046
3047         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
3048         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
3049         * config/i386/i386.c: Don't include dwarf2out.h.
3050         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
3051         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
3052         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
3053         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
3054         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
3055
3056 2011-06-30  Richard Henderson  <rth@redhat.com>
3057
3058         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
3059         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
3060         * final.c (final_scan_insn): Look for it, and invoke
3061         dwarf2out_frame_debug before the insn if found.
3062
3063 2011-06-30  Richard Henderson  <rth@redhat.com>
3064
3065         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
3066         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
3067
3068 2011-06-30  Richard Henderson  <rth@redhat.com>
3069
3070         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
3071         Define a vector of this type.
3072         (regs_saved_in_regs): Use a VEC.
3073         (num_regs_saved_in_regs): Remove.
3074         (compare_reg_or_pc): New.
3075         (record_reg_saved_in_reg): Split out from...
3076         (dwarf2out_flush_queued_reg_saves): ... here.
3077         (clobbers_queued_reg_save): Update for VEC.
3078         (reg_saved_in): Likewise.
3079         (dwarf2out_frame_debug_init): Likewise.
3080         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
3081         (dwarf2out_frame_debug_cfa_register): Likewise.
3082
3083 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3084
3085         PR tree-optimization/49572
3086         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
3087         type of the RHS instead of that of the LHS for the expression type.
3088
3089 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3090
3091         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
3092         unconditionally.
3093
3094 2011-06-30  Richard Guenther  <rguenther@suse.de>
3095
3096         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
3097         * tree-ssa-structalias.c (create_variable_info_for): Do not
3098         add initial constraints for non-var-decls.  Properly handle
3099         globals in other ltrans partitions.
3100         (intra_create_variable_infos): Manually create constraints for
3101         the fake no-alias parameter.
3102         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
3103         and assert there are no clones.
3104
3105 2011-06-30  Richard Guenther  <rguenther@suse.de>
3106
3107         PR tree-optimization/46787
3108         * tree-data-ref.c (dr_address_invariant_p): Remove.
3109         (find_data_references_in_stmt): Invariant accesses are ok now.
3110         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
3111         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
3112         invariant loads.
3113
3114 2011-06-30  Martin Jambor  <mjambor@suse.cz>
3115
3116         PR tree-optimization/49094
3117         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
3118         (build_accesses_from_assign): Use it.
3119
3120 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
3121
3122         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
3123         handling of BUILT_IN_ASSUME_ALIGNED.
3124
3125         PR debug/49364
3126         * dwarf2out.c (output_abbrev_section): Don't return early
3127         if abbrev_die_table_in_use is 1.
3128         (dwarf2out_finish): Instead don't call output_abbrev_section
3129         nor emit abbrev_section_label in that case.
3130
3131 2011-06-30  Nick Clifton  <nickc@redhat.com>
3132
3133         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
3134         for the V850E.
3135
3136 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
3137
3138         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
3139         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
3140
3141 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
3142
3143         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
3144         both pattern and original statements if necessary.
3145         (vect_transform_loop): Likewise.
3146         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
3147         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
3148         Mark the pattern statement only if the original statement doesn't
3149         have its own uses.
3150         (process_use): Call vect_mark_relevant with additional parameter.
3151         (vect_mark_stmts_to_be_vectorized): Likewise.
3152         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
3153         (vect_analyze_stmt): Handle both pattern and original statements
3154         if necessary.
3155         (vect_transform_stmt): Don't store vectorized pattern statement
3156         in the original statement.
3157         (vect_is_simple_use_1): Use related pattern statement only if the
3158         original statement is irrelevant.
3159         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
3160
3161 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
3162
3163         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
3164         option.
3165         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
3166         entry.
3167         (TARGET_AVX128_OPTIMAL): New definition.
3168         * config/i386/i386.c (initial_ix86_tune_features): Initialize
3169         X86_TUNE_AVX128_OPTIMAL entry.
3170         (ix86_option_override_internal): Enable the generation
3171         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
3172         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
3173         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
3174
3175 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
3176
3177         PR tree-optimization/49539
3178         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
3179         names by means of stmt_references_abnormal_ssa_name.
3180         (associate_plusminus): Call can_propagate_from before propagating
3181         from definition statements.
3182         (ssa_forward_propagate_and_combine): Remove superfluous newline.
3183
3184 2011-06-29  Richard Guenther  <rguenther@suse.de>
3185
3186         * doc/invoke.texi: Document -scev dump modifier.
3187         * tree-pass.h (TDF_SCEV): New dump flag.
3188         * tree-dump.c (dump_option_value_in): Add scev.
3189         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
3190         * tree-scalar-evolution.c: Likewise.
3191
3192 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
3193
3194         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
3195         (cxa_type_match): Correct declaration.
3196         (__gnu_unwind_pr_common): Reconstruct additional indirection
3197         when __cxa_type_match returns succeeded_with_ptr_to_base.
3198
3199 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3200
3201         PR rtl-optimization/49114
3202         * reload.c (struct replacement): Remove SUBREG_LOC member.
3203         (push_reload): Do not set it.
3204         (push_replacement): Likewise.
3205         (subst_reload): Remove dead code.
3206         (copy_replacements): Remove assertion.
3207         (copy_replacements_1): Do not handle SUBREG_LOC.
3208         (move_replacements): Likewise.
3209         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
3210         Detect subregs via recursive descent instead of via SUBREG_LOC.
3211
3212 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
3213
3214         * config/avr/avr.c (avr_encode_section_info): Dispatch to
3215         default_encode_section_info.
3216
3217 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
3218
3219         PR tree-optimization/49545
3220         * builtins.c (get_object_alignment_1): Update function comment.
3221         Do not use DECL_ALIGN for functions, but test
3222         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
3223         * fold-const.c (get_pointer_modulus_and_residue): Don't check
3224         for functions here.
3225         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
3226
3227 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
3228
3229         PR debug/49567
3230         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
3231         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
3232
3233 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
3234
3235         PR target/34734
3236         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
3237         about uninitialized data attributed 'progmem' from here...
3238         (avr_encode_section_info): ...to this new function.
3239         (TARGET_ENCODE_SECTION_INFO): New define.
3240         (avr_section_type_flags): For data in ".progmem.data", remove
3241         section flag SECTION_WRITE.
3242
3243 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
3244
3245         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
3246         _xmulhisi3_exit.
3247         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
3248         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
3249         (__umulhisi3): Ditto.
3250         * config/avr/avr.md (mulhisi3): New insn expender.
3251         (umulhisi3): New insn expender.
3252         (*mulhisi3_call): New insn.
3253         (*umulhisi3_call): New insn.
3254
3255 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
3256
3257         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
3258
3259 2011-06-28  Richard Henderson  <rth@redhat.com>
3260
3261         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
3262         all code and arguments that handled pushes.  Update all callers.
3263
3264 2011-06-28  Richard Henderson  <rth@redhat.com>
3265
3266         * config/arm/arm.c (arm_output_function_prologue): Don't call
3267         thumb1_output_function_prologue.
3268         (arm_expand_prologue): Avoid dead store.
3269         (number_of_first_bit_set): Use ctz_hwi.
3270         (thumb1_emit_multi_reg_push): New.
3271         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
3272         to emit the entire prologue as rtl.
3273         (thumb1_output_interwork): Split out from
3274         thumb1_output_function_prologue.
3275         (thumb1_output_function_prologue): Remove.
3276         (arm_attr_length_push_multi): Handle thumb1.
3277         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
3278         (prologue_thumb1_interwork): New.
3279         (*push_multi): Allow thumb1; use push_mult_memory_operand.
3280         * config/arm/predicates.md (push_mult_memory_operand): New.
3281
3282 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
3283
3284         * config/sparc/sync.md (*stbar): Delete.
3285         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
3286
3287 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
3288
3289         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
3290
3291 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3292
3293         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
3294         (TARGET_64BIT_DEFAULT): Define.
3295         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
3296         of tm_file.
3297         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
3298
3299 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
3300
3301         * common.opt (in_lto_p): New Variable entry.
3302         * flags.h (in_lto_p): Move to common.opt.
3303         * gcc.c: Include params.h.
3304         (set_option_handlers): Also use common_handle_option and
3305         target_handle_option.
3306         (main): Call global_init_params, finish_params and init_options_struct.
3307         * opts.c (debug_type_names): Move from toplev.c.
3308         (print_filtered_help): Access quiet_flag through opts pointer.
3309         (common_handle_option): Return early in the driver for some options.
3310         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
3311         opts pointer.
3312         * toplev.c (in_lto_p): Move to common.opt.
3313         (debug_type_names): Move to opts.c.
3314         * Makefile.in (OBJS): Remove opts.o.
3315         (OBJS-libcommon-target): Add opts.o.
3316         (gcc.o): Update dependencies.
3317
3318 2011-06-28  Kai Tietz  <ktietz@redhat.com>
3319
3320         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
3321
3322 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3323
3324         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
3325         with '=' constraint modifier.
3326         (*divdf3_vfp): Likewise.
3327         ("*mulsf3_vfp"): Likewise.
3328         ("*muldf3_vfp"): Likewise.
3329         ("*mulsf3negsf_vfp"): Likewise.
3330         ("*muldf3negdf_vfp"): Likewise.
3331
3332 2011-06-28  Nick Clifton  <nickc@redhat.com>
3333
3334         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
3335         relaxation when performing an incremental link.
3336
3337 2011-06-28  Kai Tietz  <ktietz@redhat.com>
3338
3339         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
3340         within BB from last to first.
3341
3342 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
3343
3344         * genattr-common.c: New.  Based on genattr.c.
3345         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
3346         (MOSTLYCLEANFILES): Add insn-attr-common.h.
3347         (opts.o): Update dependencies.
3348         (.PRECIOUS): Add insn-attr-common.h.
3349         (simple_rtl_generated_h): Add insn-attr-common.h.
3350         (build/genattr-common.o): New.
3351         (genprogrtl): Add attr-common.
3352         * genattr.c (main): Include insn-attr-common.h.  Don't generate
3353         definitions of DELAY_SLOTS or INSN_SCHEDULING.
3354         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
3355
3356 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
3357
3358         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
3359         avr-*-* and avr-*-rtems* targets.
3360
3361         * config/avr/elf.h: New file.
3362         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
3363         (TARGET_ASM_SELECT_SECTION): Define.
3364         (INIT_SECTION_ASM_OP): Undefine.
3365         (FINI_SECTION_ASM_OP): Undefine.
3366         (READONLY_DATA_SECTION_ASM_OP): Undefine.
3367         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
3368         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
3369         * config/avr/avr.h:
3370         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
3371         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
3372         (MAX_OFILE_ALIGNMENT): Move to elf.h.
3373         (STRING_LIMIT): Move to elf.h.
3374         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
3375         (ASM_DECLARE_OBJECT_NAME): Remove.
3376         (ESCAPES): Remove.
3377         (ASM_OUTPUT_SKIP): Remove.
3378         (DWARF2_DEBUGGING_INFO): Remove.
3379         (OBJECT_FORMAT_ELF): Remove.
3380         (USER_LABEL_PREFIX): Remove.
3381         (ASM_OUTPUT_EXTERNAL): Remove.
3382         (ASM_OUTPUT_ASCII): Remove.
3383         (TYPE_ASM_OP): Remove.
3384         (SIZE_ASM_OP): Remove.
3385         (WEAK_ASM_OP): Remove.
3386         (STRING_ASM_OP): Remove.
3387         (SET_ASM_OP): Remove.
3388         (ASM_WEAKEN_LABEL): Remove.
3389         (TYPE_OPERAND_FMT): Remove.
3390         (ASM_DECLARE_FUNCTION_SIZE): Remove.
3391         (ASM_FINISH_DECLARE_OBJECT): Remove.
3392         (NO_DOLLAR_IN_LABEL): Remove.
3393         (ASM_GENERATE_INTERNAL_LABEL): Remove.
3394         (ASM_OUTPUT_CASE_LABEL): Remove.
3395         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
3396         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
3397         (gas_output_ascii): Remove.
3398         (gas_output_limited_string): Remove.
3399         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
3400         * config/avr/avr-protos.h
3401         (gas_output_ascii): Remove prototye.
3402         (gas_output_limited_string): Remove prototype.
3403
3404 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
3405
3406         PR target/48637
3407         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
3408         asm operands.
3409
3410 2011-06-27  Jan Hubicka  <jh@suse.cz>
3411
3412         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
3413         node instead of references in node.
3414
3415 2011-06-27  Richard Henderson  <rth@redhat.com>
3416
3417         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
3418         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
3419         inside ifdef.
3420
3421 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
3422
3423         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
3424
3425         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
3426         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
3427         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
3428         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
3429         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
3430         (evaluate_stmt, execute_fold_all_builtins): Handle
3431         BUILT_IN_ASSUME_ALIGNED.
3432         * tree-ssa-dce.c (propagate_necessity): Likewise.
3433         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
3434         call_may_clobber_ref_p_1): Likewise.
3435         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
3436         (expand_builtin_assume_aligned): New function.
3437         * doc/extend.texi (__builtin_assume_aligned): Document.
3438
3439         PR debug/49544
3440         * cselib.c (promote_debug_loc): If cselib_preserve_constants
3441         and l has two DEBUG_INSN owned locs instead of just one, adjust
3442         the second location's setting_insn too.
3443
3444 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3445
3446         PR libmudflap/38738
3447         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
3448
3449 2011-06-27  Nick Clifton  <nickc@redhat.com>
3450
3451         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
3452         bit position of highest bit set into a count of the high zero bits.
3453
3454 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
3455
3456         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
3457
3458 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
3459
3460         PR lto/48492
3461         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
3462         to a NULL parent.
3463
3464 2011-06-27  Richard Guenther  <rguenther@suse.de>
3465
3466         PR tree-optimization/49394
3467         * passes.c (execute_one_pass): Restore current_pass after
3468         applying IPA transforms.
3469
3470 2011-06-27  Kai Tietz  <ktietz@redhat.com>
3471
3472         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
3473         out of type precision after operation.
3474         (find_bswap): Take for limit value the integer auto-promotion
3475         into account.
3476
3477 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
3478
3479         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
3480         forward scan as well.
3481
3482 2011-06-27  Tristan Gingold  <gingold@adacore.com>
3483
3484         PR target/44241
3485         * config/vms/vms-protos.h: New file.
3486         * config/vms/vms-crtlmap.map: New file.
3487         * config/vms/vms.c: New file.
3488         * config/vms/make-crtlmap.awk: New file.
3489         * config/vms/vms-crtl.h: File removed.
3490         * config/vms/vms-crtl-64.h: File removed.
3491         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
3492         * config/alpha/vms64.h: Do not include vms-crtl-64.h
3493         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
3494         clear some builtins on VMS.  Calls vms_patch_builtins.
3495         (avms_asm_output_external): Remove.
3496         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
3497         (struct crtl_name_spec): Remove
3498         (DO_CTRL_NAMES): Remove.
3499         * config/ia64/vms.h (struct crtl_name_spec): Remove
3500         (DO_CTRL_NAMES): Remove.
3501         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
3502         clear some builtins on VMS.  Calls vms_patch_builtins.
3503         (ia64_asm_output_external): Remove DO_CRTL_NAME.
3504         * config/ia64/vms64.h: Do not include vms-crtl-64.h
3505         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
3506
3507 2011-06-27  Tristan Gingold  <gingold@adacore.com>
3508
3509         * config/alpha/alpha.c (alpha_end_function): Always generate .end
3510         directive on VMS.
3511
3512 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
3513
3514         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
3515         the function receives nonlocal gotos.
3516
3517 2011-06-27  Richard Guenther  <rguenther@suse.de>
3518
3519         PR tree-optimization/49536
3520         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
3521         For non-scalar inner types use a scalar type according to
3522         the scalar inner mode.
3523
3524 2011-06-27  Richard Guenther  <rguenther@suse.de>
3525
3526         PR tree-optimization/49365
3527         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
3528
3529 2011-06-27  Richard Guenther  <rguenther@suse.de>
3530
3531         PR tree-optimization/49169
3532         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
3533         the alignment of function decls.
3534
3535 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
3536
3537         PR target/47997
3538         * config/darwin.c (darwin_mergeable_string_section): Place string
3539         constants in '.cstring' rather than '.const' when CF/NSStrings are
3540         active.
3541
3542 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
3543
3544         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
3545         (emit_save_register_window): Likewise.
3546         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
3547         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
3548         Swap back %o7/%i7 in register naming.
3549
3550 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
3551
3552         PR driver/49371
3553         * config/darwin.c (darwin_override_options): Improve warning when
3554         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
3555         is given with fpie/fPIE.
3556         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
3557         * config/darwin9.h (PIE_SPEC): New.
3558
3559 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
3560
3561         * timevar.c (timevar_print): Increase width for display of timevar
3562         name.
3563
3564 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
3565
3566         PR c++/46400
3567         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
3568         instead of TYPE_CHAIN for chain_next for types.
3569
3570 2011-06-24  Richard Henderson  <rth@redhat.com>
3571
3572         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
3573         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
3574         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
3575         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
3576         (sparc_flat_expand_prologue): Emit individual instructions
3577         instead of one of the above.
3578
3579 2011-06-24  Easwaran Raman  <eraman@google.com>
3580
3581         PR rtl-optimization/49429
3582         PR target/49454
3583         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
3584         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
3585         used to copy y into x.
3586         * calls.c (initialize_argument_information): Mark
3587         an argument addressable if it is passed by invisible reference.
3588         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
3589         if it is passed by reference.
3590
3591 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
3592
3593         PR rtl-optimization/49504
3594         * rtlanal.c (nonzero_bits1): Properly handle addition or
3595         subtraction of a pointer in Pmode if pointers extend unsigned.
3596         (num_sign_bit_copies1): Likewise.
3597
3598 2011-06-24  Martin Jambor  <mjambor@suse.cz>
3599
3600         PR tree-optimizations/49516
3601         * tree-sra.c (sra_modify_assign): Choose the safe path for
3602         aggregate copies if we also did scalar replacements.
3603
3604 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3605
3606         PR target/49335
3607         * config/arm/predicates.md (add_operator): New.
3608         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
3609
3610 2011-06-24  Andi Kleen  <ak@linux.intel.com>
3611
3612         * tree-sra.c (type_internals_preclude_sra_p): Add msg
3613         parameter. Split up ifs and report reason in *msg.
3614         (reject): Add.
3615         (find_var_candiate): Add msg variable.
3616         Split up ifs and report reason to reject.
3617         (find_param_candidates): Add msg variable.
3618         Pass msg to type_internals_preclude_sra_p.
3619
3620 2011-06-23  Jeff Law  <law@redhat.com>
3621
3622         PR middle-end/48770
3623         * reload.h (reload): Change to return a bool.
3624         * ira.c (ira): If requested by reload, run a fast DCE pass after
3625         reload has completed.  Fix comment typo.
3626         * reload1.c (need_dce): New file scoped static.
3627         (reload): Set reload_completed here.  Return whether or not a DCE
3628         pass after reload is needed.
3629         (delete_dead_insn): Set need_dce as needed.
3630
3631         PR middle-end/49465
3632         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
3633         to detect threading through joiner block.  If there was already
3634         an edge to the new target, then do not change the PHI nodes.
3635
3636 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
3637
3638         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
3639         get_pointer_alignment to see if base isn't sufficiently aligned.
3640
3641 2011-06-23  Jan Hubicka  <jh@suse.cz>
3642
3643         PR tree-optimize/49373
3644         * tree-pass.h (all_late_ipa_passes): Declare.
3645         * cgraphunit.c (init_lowered_empty_function): Fix properties.
3646         (cgraph_optimize): Execute late passes; remove unreachable funcions
3647         after materialization.
3648         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
3649         LTOing.
3650         * passes.c (all_late_ipa_passes): Declare.
3651         (dump_passes, register_pass): Handle late ipa passes.
3652         (init_optimization_passes): Move ipa_pta to late passes; schedule
3653         fixup_cfg at beggining of all_passes.
3654         (apply_ipa_transforms): New function.
3655         (execute_one_pass): When doing simple ipa pass, apply all transforms.
3656
3657 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
3658
3659         * params.c: Include common/common-target.h.  Don't include tm.h.
3660         (lang_independent_params): Move from toplev.c.
3661         (global_init_params): New.
3662         * params.h (global_init_params): Declare.
3663         * target.def (default_params): Move to common-target.def.
3664         * toplev.c (lang_independent_options): Remove.
3665         (lang_independent_params): Move to params.c.
3666         (general_init): Use global_init_params.
3667         * common/common-target.def (option_default_params): Move from
3668         target.def.
3669         * common/config/ia64/ia64-common.c: Include params.h.
3670         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
3671         from ia64.c.
3672         * common/config/rs6000/rs6000-common.c: Include params.h.
3673         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
3674         from rs6000.c.
3675         * common/config/sh/sh-common.c: Include params.h.
3676         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
3677         from sh.c.
3678         * common/config/spu/spu-common.c: Include params.h.
3679         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
3680         from spu.c.
3681         * config/ia64/ia64.c (ia64_option_default_params,
3682         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
3683         * config/rs6000/rs6000.c (rs6000_option_default_params,
3684         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
3685         * config/sh/sh.c (sh_option_default_params,
3686         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
3687         * config/spu/spu.c (spu_option_default_params,
3688         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
3689         * Makefile.in (OBJS): Remove params.o.
3690         (OBJS-libcommon-target): Add params.o.
3691         (params.o, $(common_out_object_file)): Update dependencies.
3692         * doc/tm.texi: Regenerate.
3693
3694 2011-06-23  Alan Modra  <amodra@gmail.com>
3695
3696         PR bootstrap/49383
3697         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
3698         invocation for 2011-06-09 changes.
3699
3700 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
3701
3702         PR libgomp/49490
3703         * omp-low.c (expand_omp_for_static_nochunk): Only
3704         use n ceil/ nthreads size for the first n % nthreads threads in the
3705         team instead of all threads except for the last few ones which
3706         get less work or none at all.
3707
3708         PR debug/49496
3709         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
3710         uses.
3711
3712 2011-06-22  Richard Guenther  <rguenther@suse.de>
3713
3714         PR tree-optimization/49493
3715         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
3716         Refer to the alias target of variables.
3717         (associate_varinfo_to_alias_1): Remove.
3718         (ipa_pta_execute): Do not associate aliases with anything.
3719         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
3720         (cgraph_function_node): Likewise.
3721         (cgraph_function_or_thunk_node): Likewise.
3722         (varpool_variable_node): Likewise.
3723
3724 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
3725
3726         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
3727         * config.gcc (arm*-*-linux*): Default to gnu tls.
3728         (arm*-*-*): Add --with-tls option.
3729         (all_defaults): Add 'tls'.
3730
3731 2011-06-22  Richard Henderson  <rth@redhat.com>
3732
3733         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
3734         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
3735         (dwarf2out_frame_debug_cfa_window_save): Rename from
3736         dwarf2out_window_save; make static.
3737         * tree.h (dwarf2out_window_save): Don't declare.
3738
3739         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
3740         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
3741         (emit_save_register_window): Rename from gen_save_register_window;
3742         emit the insn and add REG_CFA_* notes.
3743         (sparc_expand_prologue): Update to match.
3744         * config/sparc/sparc.md (save_register_window_1): Simplify from
3745         save_register_window<P:mode>.
3746
3747 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
3748
3749         PR target/49497
3750         * config/i386/i386.md (*lea_general_2): Always allow SImode.
3751         (*lea_general_2_zext): Likewise.
3752         (imul to lea peepholes): Use const359_operand and check
3753         TARGET_PARTIAL_REG_STALL.
3754
3755         * config/i386/predicates.md (const359_operand): New.
3756
3757 2011-06-22  Michael Matz  <matz@suse.de>
3758
3759         * cgraphunit.c (assemble_thunk): Use correct return type.
3760
3761 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
3762             Dmitry Melnik  <dm@ispras.ru>
3763
3764         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
3765         (neon_output_shift_immediate): Ditto.
3766         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
3767         prototype.
3768         (neon_output_shift_immediate): Ditto.
3769         * config/arm/neon.md (vashl<mode>3): Modified constraint.
3770         (vashr<mode>3_imm): New insn pattern.
3771         (vlshr<mode>3_imm): Ditto.
3772         (vashr<mode>3): Modified constraint.
3773         (vlshr<mode>3): Ditto.
3774         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
3775         predicate.
3776         (imm_for_neon_rshift_operand): Ditto.
3777         (imm_lshift_or_reg_neon): Ditto.
3778         (imm_rshift_or_reg_neon): Ditto.
3779
3780         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
3781
3782 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
3783
3784         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
3785         builtin calls even if likelyvalue is not CONSTANT.
3786         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
3787         Return get_value_for_expr of first operand
3788         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
3789         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
3790         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
3791         their non-checking counterparts.
3792         (call_may_clobber_ref_p_1): Likewise.
3793         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
3794         like their non-checking counterparts.
3795         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3796         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
3797         like their non-checking counterparts.
3798         (find_func_clobbers): Likewise.
3799         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
3800         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
3801
3802         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
3803         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
3804         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
3805         of base type reference as argument.
3806         (resolve_addr_in_expr): Likewise.  Fix keep computation.
3807         (convert_descriptor_to_signed): Renamed to...
3808         (convert_descriptor_to_mode): ... this.  For wider types convert to
3809         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
3810         (typed_binop): New function.
3811         (scompare_loc_descriptor, ucompare_loc_descriptor,
3812         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
3813         default to unsigned type instead of signed.
3814
3815         PR debug/47858
3816         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
3817         (gimple_build_debug_source_bind_stat): New prototype.
3818         (gimple_build_debug_source_bind): Define.
3819         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
3820         gimple_debug_source_bind_get_value,
3821         gimple_debug_source_bind_get_value_ptr,
3822         gimple_debug_source_bind_set_var,
3823         gimple_debug_source_bind_set_value): New inlines.
3824         * gimple.c (gimple_build_debug_source_bind_stat): New function.
3825         * gimple-pretty-print.c (dump_gimple_debug): Handle
3826         GIMPLE_DEBUG_SOURCE_BIND.
3827         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
3828         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3829         * tree-parloops.c (eliminate_local_variables,
3830         separate_decls_in_region): Likewise.
3831         (separate_decls_in_region_debug): Renamed from
3832         separate_decls_in_region_debug_bind.  Handle
3833         gimple_debug_source_bind_p.
3834         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
3835         prototypes.
3836         (DECL_HAS_DEBUG_ARGS_P): Define.
3837         (struct tree_function_decl): Add has_debug_args_flag field.
3838         * tree.c (debug_args_for_decl): New variable.
3839         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
3840         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
3841         (rewrite_debug_stmt_uses): New function.
3842         (rewrite_stmt): Use it to rewrite debug stmt uses.
3843         * rtl.def (DEBUG_PARAMETER_REF): New.
3844         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
3845         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
3846         DEBUG_PARAMETER_REF.
3847         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
3848         * print-rtl.c (print_rtx): Likewise.
3849         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
3850         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
3851         debug stmts in the first bb.
3852         * tree-inline.c (remap_ssa_name): If remapping default def
3853         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
3854         a source bind debug stmt.
3855         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
3856         (maybe_move_debug_stmts_to_successors): Likewise.
3857         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
3858         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
3859         debug args vector from old_decl to new_decl.
3860         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
3861         or modified parameters, add debug bind stmts before call
3862         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
3863         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
3864         on DECL_DEBUG_EXPRs from debug args vector.
3865         (expand_debug_source_expr): New function.
3866         (expand_debug_locations): Use it for source bind insns.
3867         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
3868         * var-tracking.c (prepare_call_arguments): Add debug args
3869         to call_arguments if any.
3870         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
3871         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
3872         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
3873         (get_ref_die_offset, parameter_ref_descriptor): New functions.
3874         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
3875         (gen_subprogram_die): Handle parameters identified by
3876         DEBUG_PARAMETER_REF.
3877
3878 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
3879
3880         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
3881         * doc/install.texi (Configuration): Document --with-tls.
3882         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
3883         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
3884         (arm_tls_descseq_addr): New.
3885         (legitimize_tls_address): Add tlsdesc support.
3886         (arm_cannot_copy_insn_p): Check for tlscall.
3887         (arm_emit_tls_decoration): Likewise.
3888         * config/arm/arm.h (TARGET_GNU2_TLS): New.
3889         (OPTION_DEFAULT_SPECS): Add with-tls support.
3890         * config/arm/arm.md (R1_REGNUM): Define.
3891         (tlscall): New.
3892         * config/arm/arm.opt (tls_type): New enumeration type and values.
3893         (mtls-dialect): New switch.
3894         * config/arm/arm-opts.h (enum tls_type): New.
3895
3896 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
3897
3898         * attribs.c (register_attribute): Added assert to check that all
3899         attribute specs are registered with a name that is not empty and
3900         does not start with '_'.
3901         (decl_attributes): Avoid the lookup of the "naked" attribute spec
3902         if the function has no attributes.
3903         * tree.c (is_attribute_with_length_p): Removed.
3904         (is_attribute_p): Removed.
3905         (private_is_attribute_p): New.
3906         (private_lookup_attribute): New.
3907         (lookup_attribute): Removed.
3908         (lookup_ident_attribute): New.
3909         (remove_attribute): Require the first argument to be in the form
3910         'text', not '__text__'.  Updated asserts.
3911         (merge_attributes): Use lookup_ident_attributes instead of
3912         lookup_attribute.
3913         (merge_dllimport_decl_attributes): Use remove_attribute.
3914         (attribute_list_contained): Likewise.
3915         (attribute_list_equal): Immediately return 1 if the arguments are
3916         identical pointers.
3917         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
3918         'int'.  Require the first argument to be in the form 'text', not
3919         '__text__'.  Require the second argument to be an identifier.
3920         (lookup_attribute): Made inline.  Require the first argument to be
3921         in the form 'text', not '__text__'.
3922         (private_is_attribute_p, private_lookup_attribute): New.
3923         Updated comments.
3924
3925 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
3926
3927         * builtins.c: Add sync_ or SYNC__ to builtin names.
3928         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
3929         * omp-low.c: Add sync_ or SYNC__ to builtin names.
3930
3931 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
3932
3933         PR target/33049
3934         * config/avr/avr.md (extzv): New expander.
3935         (*extzv): New insn.
3936         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
3937         * config/avr/constraints.md (C04): New constraint.
3938         * doc/md.texi (Machine Constraints): Document it.
3939
3940 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
3941
3942         PR middle-end/49489
3943         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
3944         unsignedp argument instead of 1 for clrsb_optab.
3945         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
3946         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
3947         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
3948         * optabs.c (widen_leading): Call widen_operand and expand_unop
3949         with 0 as unsignedp argument instead of 1 for clrsb_optab.
3950         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
3951
3952 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
3953
3954         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
3955
3956 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
3957
3958         * gensupport.c (add_define_attr): New static function.
3959         (is_predicable): Allow multi-alternative lists for the "predicable"
3960         attribute.
3961         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
3962         (process_one_cond_exec): Call alter_attrs_for_insn.
3963         * doc/md.texi (Defining Attributes): Mention some standard names.
3964         (Conditional Execution): Update documentation for "predicable".
3965
3966         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
3967         __builtin_clrsbll): Document.
3968         * doc/rtl.texi (clrsb): New entry.
3969         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
3970         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
3971         (expand_unop): Handle clrsb_optab.
3972         (init_optabs): Initialize it.
3973         * optabs.h (enum optab_index): New entry OTI_clrsb.
3974         (clrsb_optab): Define.
3975         * genopinit.c (optabs): Add an entry for it.
3976         * builtins.c (expand_builtin): Handle clrsb builtin functions.
3977         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
3978         BUILT_IN_CLRSBLL): New.
3979         * rtl.def (CLRSB): New code.
3980         * dwarf2out.c (mem_loc_descriptor): Handle it.
3981         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
3982         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
3983         and popcount.
3984         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
3985         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
3986         (__ctzDI2): Move declaration.
3987         * config/bfin/bfin.md (clrsbsi2): New expander.
3988         (signbitssi2): Use the CLRSB rtx.
3989         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
3990         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
3991
3992 2011-06-21  Richard Guenther  <rguenther@suse.de>
3993
3994         * ipa-inline-transform.c (inline_transform): Fix previous change.
3995
3996 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
3997
3998         PR tree-optimization/49478
3999         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
4000         with constant operand.
4001
4002 2011-06-21  Richard Guenther  <rguenther@suse.de>
4003
4004         * ipa-inline-transform.c (inline_transform): Fix typo.
4005
4006 2011-06-21  Richard Guenther  <rguenther@suse.de>
4007
4008         PR tree-optimization/49483
4009         * tree-vect-stmts.c (vectorizable_assignment): Also handle
4010         VIEW_CONVERT_EXPR conversions.
4011
4012 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
4013
4014         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
4015         * config/avr/avr-tables.opt: New file (generated).
4016         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
4017         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
4018         avr-mcus.def.
4019         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
4020         (avr_option_override): Don't process -mmcu= argument here.  Set
4021         avr_current_device using avr_mcu_index.
4022         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
4023         * config/avr/avr.opt (mmcu=): Use Enum.
4024         * config/avr/t-avr (avr-devices.o): Update dependencies.
4025         ($(srcdir)/config/avr/avr-tables.opt): New.
4026         * target.def (help): Remove.
4027         * doc/tm.texi.in (TARGET_HELP): Remove.
4028         * doc/tm.texi: Regenerate.
4029         * opts.c: Don't include target.h.
4030         (common_handle_option): Don't call targetm.help.
4031         * system.h (TARGET_HELP): Poison.
4032         * Makefile.in (opts.o): Update dependencies.
4033
4034 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4035
4036         * config/usegld.h: New file.
4037         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
4038         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
4039         (LIB_SPEC): Likewise.  Search /lib.
4040         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
4041         (RDYNAMIC_SPEC): Handle GNU ld.
4042         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
4043         Define.
4044         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
4045         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
4046         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
4047         (STACK_CHECK_STATIC_BUILTIN): Define.
4048         * config/sol2.opt (compat-bsd): Remove.
4049         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
4050         * config/sol2-bi.h: New file.
4051         * config/sol2-gld.h: Remove.
4052         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
4053         (NO_DBX_BNSYM_ENSYM): Remove.
4054         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
4055         (STACK_CHECK_STATIC_BUILTIN): Remove.
4056         Test USE_GLD instead of TARGET_GNU_LD.
4057         * config/i386/sol2-10.h: Rename to ...
4058         * config/i386/sol2-bi.h .. this.
4059         (SUBTARGET_EXTRA_SPECS): Redefine.
4060         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
4061         (MULTILIB_DEFAULTS): Remove.
4062         (DEFAULT_ARCH32_P): Define.
4063         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
4064         (ARCH64_SUBDIR): Define.
4065         Test USE_GLD instead of TARGET_GNU_LD.
4066         (I386_EMULATION): Rename to ...
4067         (ARCH32_EMULATION): ... this.
4068         (X86_64_EMULATION): Rename to ...
4069         (ARCH64_EMULATION): ... this.
4070         (TARGET_LD_EMULATION): Remove.
4071         (LINK_ARCH_SPEC): Remove.
4072         * config/i386/sol2-gas.h: Remove.
4073         * config/i386/t-sol2-10: Rename to ...
4074         * config/i386/t-sol2-64: ... this.
4075         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
4076         (AS_SPARC64_FLAG): Define.
4077         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
4078         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
4079         depending on TARGET_CPU_DEFAULT.
4080         (CPP_CPU_SPEC): Redefine.
4081         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
4082         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
4083         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
4084         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
4085         ASM_ARCH_DEFAULT_SPEC): Redefine.
4086         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
4087         LINK_ARCH_DEFAULT_SPEC.
4088         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
4089         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
4090         (ARCH64_SUBDIR): Define.
4091         (LINK_ARCH64_SPEC): Redefine.
4092         (CC1_SPEC): Redefine.
4093         (OPTION_DEFAULT_SPECS): Redefine.
4094         (MULTILIB_DEFAULTS): Define.
4095         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
4096         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
4097         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
4098         (NO_DBX_BNSYM_ENSYM): Remove.
4099         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
4100         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
4101         (TARGET_ASM_NAMED_SECTION): Likewise.
4102         (STACK_CHECK_STATIC_BUILTIN): Remove.
4103         * config/sparc/sol2-bi.h: Remove.
4104         * config/sparc/sol2-gas-bi.h: Remove.
4105         * config/sparc/sol2-gas.h: Remove.
4106         * config/sparc/sol2-gld-bi.h: Remove.
4107         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
4108         common parts ...
4109         (*-*-solaris2*): ... here.
4110
4111 2011-06-21  Christian Bruel  <christian.bruel@st.com>
4112
4113         PR other/43564
4114         * ipa-inline.c (can_inline_edge_p): Check
4115         !DECL_DISREGARD_INLINE_LIMITS.
4116
4117 2011-06-21  Christian Bruel  <christian.bruel@st.com>
4118
4119         PR middle-end/49139
4120         * cgraphunit.c (process_function_and_variable_attributes): warn when
4121         always_inline functions that are not inline.
4122         * ipa-inline-transform.c (inline_transform): Always call
4123         optimize_inline.
4124         * tree-inline.c (tree_inlinable_function_p): Use error instead
4125         of sorry.
4126         (expand_call_inline): Likewise.
4127
4128 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
4129
4130         * Makefile.in (dg_target_exps): Set.
4131         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
4132         instead of 7, try to divide it more evenly.
4133
4134 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
4135
4136         PR target/49089
4137         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
4138         (avx256_split_unaligned_store): New definition.
4139         (ix86_option_override_internal): Enable avx256 unaligned load/store
4140         splitting only when avx256_split_unaligned_load/store is set.
4141
4142 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
4143
4144         * regrename.c (scan_rtx_reg): Handle the case where we write to an
4145         open chain in a smaller mode without failing the entire block.
4146
4147 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
4148
4149         PR middle-end/47725
4150         * combine.c (cant_combine_insn_p): Don't check zero/sign
4151         extended hard registers.
4152
4153 2011-06-21  Alan Modra  <amodra@gmail.com>
4154
4155         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
4156         CONST high part large-toc address.
4157         (rs6000_tls_referenced_p): Make static.
4158         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
4159
4160 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
4161
4162         PR middle-end/47725
4163         * combine.c (cant_combine_insn_p): Check zero/sign extended
4164         hard registers.
4165
4166 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4167
4168         PR target/49385
4169         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
4170         one of the operands is a register.
4171
4172 2011-06-20  Kai Tietz  <ktietz@redhat.com>
4173
4174         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
4175         operations in combination with binary and.
4176
4177 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
4178
4179         * regrename.c (do_replace): Don't update notes.
4180
4181 2011-06-20  Alan Modra  <amodra@gmail.com>
4182
4183         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
4184         of toc-relative address in CONST.
4185         (rs6000_delegitimize_address): Recognize changed address.
4186         (rs6000_legitimize_reload_address): Likewise.
4187         (rs6000_emit_move): Don't force these constants to memory.
4188         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
4189         toc-relative address in CONST.
4190         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
4191         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
4192
4193 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
4194
4195         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
4196         (count_trailing_zeros): Likewise.
4197
4198 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
4199
4200         PR other/49325
4201         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
4202         .init_array can be used with .ctors on targets.
4203         * configure: Regenerated.
4204
4205 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
4206
4207         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
4208         if the element type is volatile.
4209
4210 2011-06-18  Jan Hubicka  <jh@suse.cz>
4211
4212         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
4213         extra name aliases.
4214         (lto_symtab_resolve_can_prevail_p): Likewise.
4215         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
4216         * cgraphbuild.c (record_reference): Remove extra body alias code.
4217         (mark_load): Likewise.
4218         (mark_store): Likewise.
4219         * cgraph.h (varpool_node): Remove extra_name filed;
4220         add alias_of and extraname_alias.
4221         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
4222         (varpool_alias_aliased_node): New inline function.
4223         (varpool_variable_node): New function.
4224         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
4225         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
4226         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
4227         (input_varpool_node): Likewise.
4228         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
4229         (varpool_externally_visible_p): Remove extra body alias code.
4230         (function_and_variable_visibility): Likewise.
4231         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
4232         (ipa_pta_execute): Use it.
4233         * varpool.c (varpool_remove_node): Remove extra name alias code.
4234         (varpool_mark_needed_node): Likewise.
4235         (varpool_analyze_pending_decls): Analyze aliases.
4236         (assemble_aliases): New functoin.
4237         (varpool_assemble_decl): Use it.
4238         (varpool_create_variable_alias): New function.
4239         (varpool_extra_name_alias): Rewrite.
4240         (varpool_for_node_and_aliases): New function.
4241
4242 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
4243
4244         PR target/49411
4245         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
4246         last_arg_constant and last argument doesn't match its predicate,
4247         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
4248         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
4249         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
4250         spelling of error message.
4251         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
4252         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
4253         const_0_to_255_operand instead of const_int_operand.
4254
4255         Revert:
4256         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
4257
4258         * config/i386/sse.md (blendbits): Remove mode attribute.
4259         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
4260         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
4261         Check integer value of operand 3 in insn constraint.
4262
4263 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
4264
4265         PR rtl-optimization/48542
4266         * reload.c (find_equiv_reg): Stop looking when finding a
4267         setjmp-type call.
4268         * reload1.c (reload_as_needed): Invalidate all reload
4269         registers when crossing a setjmp-type call.
4270
4271 2011-06-16  Jeff Law  <law@redhat.com>
4272
4273         * tree-ssa-threadupdate.c (struct redirection_data): New field
4274         intermediate_edge.
4275         (THREAD_TARGET2): Define.
4276         (redirection_data_eq): Also check that the intermediate edge is equal.
4277         (lookup_redirection_data): Drop useless argument.  Extract the
4278         outgoing_edge and intermediate edge from E.  Callers updated.
4279         (copy_phi_args, update_destination_phis): New functions.
4280         (fix_duplicate_block_edges): Likewise.
4281         (create_edge_and_update_destination_phis): Duplicate all the edges
4282         hung off e->aux.  Use copy_phi_args.
4283         (create_duplicates): Use fix_duplicate_block_edges.
4284         (fixup_template_block): Likewise.
4285         (redirect_edges): If necessary, redirect the joiner block's incoming
4286         edge to the duplicate of the joiner block.
4287         (thread_block): Don't muck up loops when threading through a joiner
4288         block.
4289         (thread_through_loop_header): Handle threading through a joiner block.
4290         (mark_threaded_blocks, register_jump_thread): Likewise.
4291         * tree-flow.h (register_jump_thread): Add new argument.  Callers
4292         updated.
4293         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
4294         (thread_across_edge): Handle threading through a joiner block.
4295
4296 2011-06-16  Martin Jambor  <mjambor@suse.cz>
4297
4298         PR tree-optimization/49343
4299         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
4300         calculate offset, provide 2nd operand for the new COMPONENT_REF.
4301
4302 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
4303
4304         * config/darwin-protos.h (machopic_select_rtx_section): Move to
4305         inside RTX_CODE ifdef.
4306
4307 2011-06-16  Tom de Vries  <tom@codesourcery.com>
4308
4309         PR target/45098
4310         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
4311         Disallow NULL pointer for pointer arithmetic.
4312
4313 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4314
4315         PR target/49398
4316         Revert.
4317         2011-06-10  Wei Guozhi  <carrot@google.com>
4318
4319         PR target/45335
4320         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
4321         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
4322         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
4323         related peephole2.
4324         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
4325         related peephole2.
4326         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
4327         (arm_legitimate_ldrd_p): New prototype.
4328         (arm_output_ldrd): New prototype.
4329         * config/arm/arm.c (arm_check_ldrd_operands): New function.
4330         (arm_legitimate_ldrd_p): New function.
4331         (arm_output_ldrd): New function.
4332
4333 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
4334
4335         PR middle-end/46500
4336         * doc/tm.texi.in: Update Copyright date.
4337         * doc/tm.texi: Regenerate.
4338         * targhooks.c (default_setup_incoming_varargs): Replace
4339         CUMULATIVE_ARGS* argument type with cumulative_args_t.
4340         (default_pretend_outgoing_varargs_named): Likewise.
4341         (hook_pass_by_reference_must_pass_in_stack): Likewise.
4342         (hook_callee_copies_named): Likewise.
4343         (default_function_arg_advance): Likewise.
4344         (default_function_arg): Likewise.
4345         (default_function_incoming_arg): Likewise.
4346         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
4347         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
4348         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
4349         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
4350         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
4351         * targhooks.h (default_setup_incoming_varargs): Likewise.
4352         (default_pretend_outgoing_varargs_named): Likewise.
4353         (hook_pass_by_reference_must_pass_in_stack): Likewise.
4354         (hook_callee_copies_named): Likewise.
4355         (default_function_arg_advance): Likewise.
4356         (default_function_arg): Likewise.
4357         (default_function_incoming_arg): Likewise.
4358         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
4359         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
4360         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
4361         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
4362         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
4363         * target.def (pass_by_reference): Likewise.
4364         (setup_incoming_varargs, strict_argument_naming): Likewise.
4365         (pretend_outgoing_varargs_named, callee_copies): Likewise.
4366         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
4367         (function_incoming_arg): Likewise.
4368         * target.h: Don't include "tm.h" .
4369         (cumulative_args_t): New typedef.
4370         [GCC_TM_H] (get_cumulative_args): New static inline function.
4371         [GCC_TM_H] (pack_cumulative_args): Likewise.
4372         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
4373         argument type with cumulative_args_t.
4374         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
4375         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
4376         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
4377         (frv_arg_partial_bytes, frv_function_arg): Likewise.
4378         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
4379         (frv_function_arg_1): Likewise.
4380         * config/s390/s390.c (s390_pass_by_reference): Likewise.
4381         (s390_function_arg_advance, s390_function_arg): Likewise.
4382         * config/m32c/m32c.c (m32c_function_arg): Likewise.
4383         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
4384         (m32c_strict_argument_naming): Likewise.
4385         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
4386         (spu_function_arg_advance): Likewise.
4387         (spu_setup_incoming_varargs): Likewise.  Make static.
4388         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
4389         Remove prototype.
4390         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
4391         CUMULATIVE_ARGS* argument type with cumulative_args_t.
4392         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
4393         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
4394         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
4395         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
4396         (mep_pass_by_reference, mep_function_arg): Likewise.
4397         (mep_function_arg_advance): Likewise.
4398         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
4399         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
4400         (m32r_function_arg, m32r_function_arg_advance): Likewise.
4401         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
4402         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
4403         (ix86_function_arg, ix86_pass_by_reference): Likewise.
4404         (ix86_setup_incoming_varargs): Likewise.
4405         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
4406         (sh_strict_argument_naming): Likewise.
4407         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
4408         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
4409         (sh_function_arg_advance, sh_function_arg): Likewise.
4410         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
4411         (pdp11_function_arg_advance): Likewise.
4412         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
4413         Likewise.
4414         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
4415         * config/avr/avr.c (avr_function_arg): Likewise.
4416         (avr_function_arg_advance): Likewise.
4417         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
4418         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
4419         (xtensa_function_arg_1): Likewise.
4420         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
4421         Likewise.
4422         (xstormy16_function_arg): Likewise.
4423         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
4424         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
4425         (fr30_function_arg_advance): Likewise.
4426         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
4427         (lm32_function_arg, lm32_function_arg_advance): Likewise.
4428         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
4429         (moxie_function_arg, moxie_function_arg_advance): Likewise.
4430         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
4431         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
4432         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
4433         (cris_function_arg, cris_function_incoming_arg): Likewise.
4434         (cris_function_arg_advance, cris_function_arg_1): Likewise.
4435         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
4436         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
4437         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
4438         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
4439         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
4440         (mn10300_arg_partial_bytes): Likewise.
4441         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
4442         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
4443         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
4444         (ia64_function_arg_1): Likewise.
4445         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
4446         (m68k_function_arg): Likewise.
4447         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
4448         (rs6000_function_arg, setup_incoming_varargs): Likewise.
4449         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
4450         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
4451         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
4452         (picochip_arg_advance): Likewise.
4453         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
4454         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
4455         (mcore_function_arg_advance): Likewise.
4456         * config/score/score.c (score_pass_by_reference): Likewise.
4457         (score_function_arg_advance): Likewise.
4458         (score_arg_partial_bytes): Likewise.  Make static.
4459         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
4460         * config/arm/arm.c (arm_arg_partial_bytes): Replace
4461         CUMULATIVE_ARGS* argument type with cumulative_args_t.
4462         (arm_function_arg, arm_function_arg_advance): Likewise.
4463         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
4464         * config/pa/pa.c (pa_pass_by_reference): Likewise.
4465         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
4466         (pa_function_arg): Likewise.
4467         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
4468         (mips_function_arg, mips_function_arg_advance): Likewise.
4469         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
4470         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
4471         * config/vax/vax.c (vax_function_arg): Likewise.
4472         (vax_function_arg_advance): Likewise.
4473         * config/h8300/h8300.c (h8300_function_arg): Likewise.
4474         (h8300_function_arg_advance): Likewise.
4475         * config/v850/v850.c (v850_pass_by_reference): Likewise.
4476         (v850_strict_argument_naming, v850_function_arg): Likewise.
4477         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
4478         (v850_setup_incoming_varargs): Likewise.
4479         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
4480         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
4481         (mmix_function_arg, mmix_pass_by_reference): Likewise.
4482         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
4483         with const void *.
4484         * config/bfin/bfin.c (setup_incoming_varargs): Replace
4485         CUMULATIVE_ARGS* argument type with cumulative_args_t.
4486         (bfin_function_arg_advance, bfin_function_arg): Likewise.
4487         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
4488         * calls.c (emit_call_1): Change type of args_so_far to
4489         cumulative_args_t.  Changed all callers.
4490         (initialize_argument_information): Likewise.
4491         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
4492         * dse.c (get_call_args): Likewise.
4493         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
4494         * function.c (pass_by_reference, reference_callee_copied): Likewise.
4495         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
4496         New member args_so_far_v.  Changed all users.
4497         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
4498         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
4499         * config/mips/mips.c (mips_output_args_xfer): Likewise.
4500         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
4501         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4502         * config/microblaze/microblaze.c (microblaze_expand_prologue):
4503         Likewise.
4504         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
4505         m32r_pass_by_reference.
4506
4507 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
4508
4509         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
4510         argument to be a VEC of statements.
4511         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
4512         assert that pattern statements have to have their vector type set.
4513         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
4514         Change the first argument to be a VEC of statements.  Update
4515         documentation.
4516         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
4517         (vect_handle_widen_mult_by_const): New function.
4518         (vect_recog_widen_mult_pattern):  Change the first argument to be a
4519         VEC of statements.  Update documentation.  Check that the constant is
4520         INTEGER_CST.  Support multiplication by a constant that fits an
4521         intermediate type - call vect_handle_widen_mult_by_const.
4522         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
4523         call.  Handle additional pattern statements if necessary.
4524
4525 2011-06-16  Nick Clifton  <nickc@redhat.com>
4526
4527         PR target/49427
4528         * config.gcc: Set cpu_type to v850 for any V850 architecture.
4529         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
4530         md_file, extra_modes, out_file and extra_options are these are all
4531         deduced from cpu_type.
4532
4533 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
4534
4535         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
4536         truncation mask to 63.
4537
4538 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
4539
4540         PR target/49313
4541         PR target/29524
4542         * longlong.h: Add AVR support:
4543         (count_leading_zeros): New macro.
4544         (count_trailing_zeros): New macro.
4545         (COUNT_LEADING_ZEROS_0): New macro.
4546         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
4547         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
4548         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
4549         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
4550         (LIB2FUNCS_EXCLUDE): Add _clz.
4551         * config/avr/libgcc.S (XCALL): Move up in file.
4552         (XJMP): New C Macro.
4553         (DEFUN): New asm macro.
4554         (ENDF): New asm macro.
4555         (__ffssi2): New function.
4556         (__ffshi2): New function.
4557         (__loop_ffsqi2): New function.
4558         (__ctzsi2): New function.
4559         (__ctzhi2): New function.
4560         (__clzdi2): New function.
4561         (__clzsi2): New function.
4562         (__clzhi2): New function.
4563         (__paritydi2): New function.
4564         (__paritysi2): New function.
4565         (__parityhi2): New function.
4566         (__parityqi2): New function.
4567         (__popcounthi2): New function.
4568         (__popcountsi2): New function.
4569         (__popcountdi2): New function.
4570         (__popcountqi2): New function.
4571         (__bswapsi2): New function.
4572         (__bswapdi2): New function.
4573         (__ashldi3): New function.
4574         (__ashrdi3): New function.
4575         (__lshrdi3): New function.
4576         Fix suspicous lines.
4577
4578 2011-06-16  Richard Guenther  <rguenther@suse.de>
4579
4580         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
4581         the same as x != 0.
4582         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
4583         to (bool) X & 1.
4584         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
4585         equality compares against zero for the lower bit.
4586
4587 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
4588
4589         PR tree-optimization/49419
4590         * tree-vrp.c (execute_vrp): Call init_range_assertions
4591         before estimate_numbers_of_iterations, call
4592         free_number_of_iterations_estimates before calling
4593         remove_range_assertions.
4594
4595 2011-06-16  Revital Eres  <revital.eres@linaro.org>
4596
4597         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
4598         (struct partial_schedule): Add rows_length field.
4599         (verify_partial_schedule): Check rows_length.
4600         (ps_insert_empty_row): Handle rows_length.
4601         (create_partial_schedule): Likewise.
4602         (free_partial_schedule): Likewise.
4603         (reset_partial_schedule): Likewise.
4604         (create_ps_insn): Remove rest_count argument.
4605         (remove_node_from_ps): Update rows_length.
4606         (add_node_to_ps): Update rows_length and call create_ps_insn
4607         without passing row_rest_count.
4608         (rotate_partial_schedule): Update rows_length.
4609
4610 2011-06-16  Revital Eres  <revital.eres@linaro.org>
4611
4612         * ddg.c (add_intra_loop_mem_dep): New function.
4613         (build_intra_loop_deps): Call it.
4614
4615 2011-06-13  Jeff Law  <law@redhat.com>
4616
4617         * df-problems.c (df_lr_local_compute): Manually CSE
4618         PIC_OFFSET_TABLE_REGNUM.
4619         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
4620         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
4621
4622 2011-06-13  Jan Hubicka  <jh@suse.cz>
4623
4624         * cgraphunit.c (handle_alias_pairs): New function.
4625         (cgraph_finalize_compilation_unit): Use it.
4626         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
4627         as externally visible.
4628
4629 2011-06-15  Richard Guenther  <rguenther@suse.de>
4630
4631         * expr.c (expand_expr_real_2): Reduce all integral types to
4632         bitfield precision.
4633         (expand_expr_real_1): Likewise.
4634
4635 2011-06-15  Martin Jambor  <mjambor@suse.cz>
4636
4637         PR tree-optimization/48613
4638         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
4639         ipa_node_params_vector is NULL.
4640
4641 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
4642
4643         PR debug/49382
4644         * dwarf2out.c (dw_loc_list_node): Add force field.
4645         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
4646         location in the list, even if it is modified before first real insn.
4647         (output_loc_list): Emit empty ranges with force flag set.
4648         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
4649
4650 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
4651
4652         PR target/49349
4653         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
4654         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
4655         above a fence.  Update comments.
4656         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
4657         placed just above it.  Do not allow NULL place_to_insert.
4658
4659 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
4660
4661         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
4662         (slpeel_tree_peel_loop_to_edge): Don't call
4663         remove_dead_stmts_from_loop.
4664         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
4665         remove irrelevant pattern statements.  For irrelevant statements
4666         check if it is the last statement of a detected pattern, use
4667         corresponding pattern statement instead.
4668         (destroy_loop_vec_info): No need to remove pattern statements,
4669         only free stmt_vec_info.
4670         (vect_transform_loop): For irrelevant statements check if it is
4671         the last statement of a detected pattern, use corresponding
4672         pattern statement instead.
4673         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
4674         pattern statements.  Set basic block for the new statement.
4675         (vect_pattern_recog): Update documentation.
4676         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
4677         operands of pattern statements.
4678         (vectorizable_call): Fix printing.  In case of a pattern statement
4679         use the lhs of the original statement when creating a dummy
4680         statement to replace the original call.
4681         (vect_analyze_stmt): For irrelevant statements check if it is
4682         the last statement of a detected pattern, use corresponding
4683         pattern statement instead.
4684         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
4685         statements use gsi of the original statement.
4686
4687 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
4688
4689         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
4690         common/common-target-def.h.
4691         * target.def (default_target_flags, handle_option,
4692         supports_split_stack, optimization_table, init_struct,
4693         except_unwind_info, unwind_tables_default, have_named_sections):
4694         Move to common/common-target.def.
4695         * target.h (enum opt_levels, struct default_options): Move to
4696         common/common-target.h.
4697         * targhooks.c (default_except_unwind_info,
4698         dwarf2_except_unwind_info, sjlj_except_unwind_info,
4699         default_target_handle_option, empty_optimization_table): Move to
4700         common/common-targhooks.c.
4701         * targhooks.h (default_except_unwind_info,
4702         dwarf2_except_unwind_info, sjlj_except_unwind_info,
4703         default_target_handle_option, empty_optimization_table): Move to
4704         common/common-targhooks.h.
4705         * common/common-target-def.h: Include common/common-targhooks.h.
4706         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
4707         defined.
4708         * common/common-target.def (handle_option, option_init_struct,
4709         option_optimization_table, default_target_flags,
4710         except_unwind_info, supports_split_stack, unwind_tables_default,
4711         have_named_sections): Move from target.def.
4712         (HOOK_PREFIX): Undefine at end of file.
4713         * common/common-target.h: Include input.h.
4714         (enum opt_levels, struct default_options): Move from target.h.
4715         * common/common-targhooks.c, common/common-targhooks.h: New.
4716         * config.gcc (target_has_targetm_common): Default to yes.
4717         (moxie*): Set target_has_targetm_common=no.
4718         (hppa*-*-*): Don't set target_has_targetm_common=yes.
4719         * doc/tm.texi: Regenerate.
4720         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
4721         (C_TARGET_DEF_H): Add common/common-targhooks.h.
4722         (GCC_OBJS): Remove vec.o.
4723         (OBJS): Remove hooks.o and vec.o.
4724         (OBJS-libcommon-target): Add vec.o, hooks.o and
4725         common/common-targhooks.o.
4726         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
4727         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
4728         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
4729         cfglayout.o, $(out_object_file), $(common_out_object_file)):
4730         Update dependencies.
4731         (common/common-targhooks.o): New.
4732         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
4733         * common/config/pa/pa-common.c: Include more headers.  Take
4734         copyright dates from pa.c.
4735         (pa_option_optimization_table, pa_handle_option,
4736         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
4737         TARGET_HANDLE_OPTION): Move from pa.c.
4738         * common/config/alpha/alpha-common.c,
4739         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
4740         common/config/bfin/bfin-common.c,
4741         common/config/cris/cris-common.c,
4742         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
4743         common/config/h8300/h8300-common.c,
4744         common/config/i386/i386-common.c,
4745         common/config/ia64/ia64-common.c,
4746         common/config/iq2000/iq2000-common.c,
4747         common/config/lm32/lm32-common.c,
4748         common/config/m32c/m32c-common.c,
4749         common/config/m32r/m32r-common.c,
4750         common/config/m68k/m68k-common.c,
4751         common/config/mcore/mcore-common.c,
4752         common/config/mep/mep-common.c,
4753         common/config/microblaze/microblaze-common.c,
4754         common/config/mips/mips-common.c,
4755         common/config/mmix/mmix-common.c,
4756         common/config/mn10300/mn10300-common.c,
4757         common/config/pdp11/pdp11-common.c,
4758         common/config/picochip/picochip-common.c,
4759         common/config/rs6000/rs6000-common.c,
4760         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
4761         common/config/score/score-common.c, common/config/sh/sh-common.c,
4762         common/config/sparc/sparc-common.c,
4763         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
4764         common/config/vax/vax-common.c,
4765         common/config/xstormy16/xstormy16-common.c,
4766         common/config/xtensa/xtensa-common.c: New.
4767         * config/alpha/alpha.c: Include common/common-target.h.
4768         (alpha_option_optimization_table, alpha_handle_option,
4769         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4770         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
4771         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
4772         * config/arm/arm.c (arm_option_optimization_table,
4773         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
4774         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
4775         arm-common.c.
4776         * config/avr/avr.c (avr_option_optimization_table,
4777         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
4778         to avr-common.c.
4779         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
4780         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
4781         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
4782         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
4783         * config/cris/cris.c (cris_option_optimization_table,
4784         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4785         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
4786         cris-common.c.
4787         * config/fr30/fr30.c (fr30_option_optimization_table,
4788         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
4789         to fr30-common.c.
4790         * config/frv/frv.c (frv_option_optimization_table,
4791         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
4792         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
4793         * config/h8300/h8300.c (h8300_option_optimization_table,
4794         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
4795         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
4796         * config/i386/i386-protos.h (ix86_handle_option): Declare.
4797         * config/i386/i386.c: Include common/common-target.h.
4798         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
4799         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
4800         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
4801         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
4802         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
4803         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
4804         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
4805         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
4806         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
4807         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
4808         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
4809         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
4810         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
4811         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
4812         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
4813         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
4814         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
4815         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
4816         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
4817         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
4818         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
4819         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
4820         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
4821         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
4822         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
4823         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
4824         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
4825         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
4826         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
4827         ix86_option_optimization_table, ix86_option_init_struct,
4828         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
4829         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
4830         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
4831         i386-common.c.
4832         * config/i386/t-i386 (i386.o): Update dependencies.
4833         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
4834         * config/ia64/ia64.c (ia64_option_optimization_table,
4835         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
4836         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4837         ia64_handle_option): Move to ia64-common.c.
4838         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
4839         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
4840         * config/lm32/lm32.c (lm32_option_optimization_table,
4841         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
4842         to lm32-common.c.
4843         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
4844         m32c-common.c.
4845         * config/m32r/m32r.c (m32r_option_optimization_table,
4846         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4847         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
4848         m32r_handle_option): Move to m32r-common.c.
4849         (m32r_memory_move_cost): Remove comment referring to
4850         TARGET_HANDLE_OPTION.
4851         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
4852         Move to m68k-common.c.
4853         * config/mcore/mcore.c (mcore_option_optimization_table,
4854         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
4855         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
4856         * config/mep/mep.c (mep_option_optimization_table,
4857         mep_handle_option, TARGET_HANDLE_OPTION,
4858         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
4859         Move to mep-common.c.
4860         * config/microblaze/microblaze.c
4861         (microblaze_option_optimization_table,
4862         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
4863         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
4864         * config/mips/mips.c (mips_handle_option,
4865         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
4866         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
4867         mips-common.c.
4868         * config/mmix/mmix.c (mmix_option_optimization_table,
4869         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
4870         Move to mmix-common.c.
4871         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
4872         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
4873         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4874         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
4875         * config/pa/pa.c: Include common/common-target.h.
4876         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
4877         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4878         pa_handle_option): Move to pa-common.c.
4879         (pa_option_override): Use targetm_common.except_unwind_info.
4880         (pa_asm_output_mi_thunk, pa_function_section): Use
4881         targetm_common.have_named_sections.
4882         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
4883         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4884         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
4885         pdp11_handle_option, pdp11_option_init_struct): Move to
4886         pdp11-common.c.
4887         * config/picochip/picochip.c (picochip_option_optimization_table,
4888         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
4889         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
4890         * config/rs6000/rs6000.c: Include common/common-target.h.
4891         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
4892         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
4893         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
4894         rs6000_handle_option): Move to rs6000-common.c.
4895         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
4896         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
4897         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
4898         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
4899         * config/s390/s390.c (processor_flags_table,
4900         s390_option_optimization_table, s390_option_init_struct,
4901         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
4902         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
4903         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
4904         * config/s390/s390.h (processor_flags_table): Declare.
4905         * config/score/score.c (score_option_optimization_table,
4906         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4907         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
4908         score_handle_option): Move to score-common.c.
4909         * config/sh/sh.c (sh_option_optimization_table,
4910         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
4911         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4912         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
4913         * config/sparc/sparc.c: Include common/common-target.h.
4914         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
4915         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
4916         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
4917         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
4918         spu_option_init_struct): Move to spu-common.c.
4919         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
4920         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
4921         * config/v850/v850.c (small_memory_physical_max,
4922         v850_handle_memory_optionn v850_handle_option,
4923         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
4924         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
4925         v850-common.c.
4926         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
4927         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
4928         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
4929         Move to xtensa-common.c.
4930         * cfglayout.c: Include common/common-target.h.
4931         (fixup_reorder_chain): Use targetm_common.have_named_sections.
4932         * cfgrtl.c: Include common/common-target.h.
4933         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
4934         targetm_common.have_named_sections.
4935         * dbxout.c: Include common/common-target.h.
4936         (dbxout_function_end): Use targetm_common.have_named_sections.
4937         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
4938         targetm_common.except_unwind_info.
4939         * dwarf2out.c: Include common/common-target.h.
4940         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
4941         dwarf2out_begin_prologue, dwarf2out_frame_init,
4942         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
4943         targetm_common.except_unwind_info.
4944         * except.c: Include common/common-target.h.
4945         (init_eh, finish_eh_generation,
4946         output_one_function_exception_table): Use
4947         targetm_common.except_unwind_info.
4948         (switch_to_exception_section): Use targetm_common.have_named_sections.
4949         * explow.c: Include common/common-target.h.
4950         * expr.c: Include common/common-target.h.
4951         (build_personality_function): Use targetm_common.except_unwind_info.
4952         * function.c: Include common/common-target.h.
4953         (expand_function_end): Use targetm_common.except_unwind_info.
4954         * haifa-sched.c: Include common/common-target.h.
4955         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
4956         * lto-opts.c: Include common/common-target.h instead of target.h.
4957         (lto_reissue_options): Use targetm_common.handle_option.
4958         * opts.c: Include common/common-target.h.
4959         (target_handle_option): Use targetm_common.handle_option.
4960         (init_options_struct): Update comment referring to
4961         targetm.target_option.optimization.  Use
4962         targetm_common.default_target_flags,
4963         targetm_common.unwind_tables_default and
4964         targetm_common.option_init_struct.
4965         (default_options_optimization): Use
4966         targetm_common.option_optimization_table.
4967         (finish_options): Use targetm_common.except_unwind_info,
4968         targetm_common.unwind_tables_default,
4969         targetm_common.have_named_sections and
4970         targetm_common.supports_split_stack.
4971         * toplev.c: Include common/common-target.h.
4972         (process_options): Use targetm_common.have_named_sections.
4973         * tree-tailcall.c: Include common/common-target.h.
4974         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
4975         * tree.c: Include common/common-target.h.
4976         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
4977         * varasm.c: Include common/common-target.h.
4978         (resolve_unique_section, hot_function_section,
4979         default_function_section): Use targetm_common.have_named_sections.
4980
4981 2011-06-14  Easwaran Raman  <eraman@google.com>
4982
4983         PR rtl-optimization/44194
4984         * dse.c: Include tree-flow.h
4985         (insn_info): Add new field non_frame_wild_read.
4986         (group_info): Add new fields escaped_n and escaped_p.
4987         (kill_on_calls): New variable.
4988         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
4989         (dse_step0): Initialize kill_on_calls.
4990         (can_escape): New function.
4991         (set_usage_bits): Add additional parameter; record information
4992         about escaped locations.
4993         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
4994         (dse_step2_nospill): Set kill_on_calls based on
4995         group->escaped_n and group->escaped_n.
4996         (add_wild_read): Refactor into...
4997         (reset_active_stores): ... New function, and
4998         (free_read_records): ... New function.
4999         (add_non_frame_wild_read): New function.
5000         (scan_insn): Call add_non_frame_wild_read on non-const calls.
5001         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
5002         (dse_step5_nospill): Call scan_reads_nospill for instructions
5003         marked as non_frame_wild_read.
5004         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
5005
5006 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
5007
5008         * common/common-target-def.h, common/common-target.def,
5009         common/common-target.h, common/config/default-common.c,
5010         common/config/pa/pa-common.c: New files.
5011         * Makefile.in (common_out_file, common_out_object_file,
5012         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
5013         (OBJS-libcommon-target): Include $(common_out_object_file).
5014         (prefix.o): Update dependencies.
5015         ($(common_out_object_file), common/common-target-hooks-def.h,
5016         s-common-target-hooks-def-h): New.
5017         (s-tm-texi): Also check timestamp on common-target.def.
5018         (build/genhooks.o): Update dependencies.
5019         * config.gcc (common_out_file, target_has_targetm_common): Define.
5020         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
5021         TARGET_ALWAYS_STRIP_DOTDOT.
5022         * configure.ac (common_out_object_file): Define.
5023         (common_out_file, common_out_object_file): Substitute.
5024         (common): Create directory.
5025         * configure: Regenerate.
5026         * doc/tm.texi.in (targetm_common): Document.
5027         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
5028         * doc/tm.texi: Regenerate.
5029         * genhooks.c (hook_array): Also include common/common-target.def.
5030         * prefix.c (tm.h): Don't include.
5031         (common/common-target.h): Include.
5032         (ALWAYS_STRIP_DOTDOT): Don't define.
5033         (update_path): Use targetm_common.always_strip_dotdot instead of
5034         ALWAYS_STRIP_DOTDOT.
5035         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
5036
5037 2011-06-14  David Li  <davidxl@google.com>
5038
5039         * passes.c (execute_function_todo): Remove TODO_dump_func.
5040         (execute_one_pass): Remove TODO_dump_func.
5041         (execute_function_dump): New function.
5042         * tree-vrp.c: Remove TODO_dump_func.
5043         * regrename.c: Remove TODO_dump_func.
5044         * fwprop.c: Remove TODO_dump_func.
5045         * tree-into-ssa.c: Remove TODO_dump_func.
5046         * tree-complex.c: Remove TODO_dump_func.
5047         * tracer.c: Remove TODO_dump_func.
5048         * tree-loop-distribution.c: Remove TODO_dump_func.
5049         * postreload-gcse.c: Remove TODO_dump_func.
5050         * postreload.c: Remove TODO_dump_func.
5051         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
5052         * tree-tailcall.c: Remove TODO_dump_func.
5053         * ipa-cp.c: Remove TODO_dump_func.
5054         * final.c: Remove TODO_dump_func.
5055         * tree-emutls.c: Remove TODO_dump_func.
5056         * omp-low.c: Remove TODO_dump_func.
5057         * tree-ssa-dse.c: Remove TODO_dump_func.
5058         * tree-ssa-uncprop.c: Remove TODO_dump_func.
5059         * auto-inc-dec.c: Remove TODO_dump_func.
5060         * reorg.c: Remove TODO_dump_func.
5061         * tree-ssa-copyrename.c: Remove TODO_dump_func.
5062         * tree-ssa-ccp.c: Remove TODO_dump_func.
5063         * compare-elim.c: Remove TODO_dump_func.
5064         * mode-switching.c: Remove TODO_dump_func.
5065         * modulo-sched.c: Remove TODO_dump_func.
5066         * tree-call-cdce.c: Remove TODO_dump_func.
5067         * cse.c: Remove TODO_dump_func.
5068         * web.c: Remove TODO_dump_func.
5069         * tree-stdarg.c: Remove TODO_dump_func.
5070         * lto-streamer-out.c: Remove TODO_dump_func.
5071         * tree-ssa-math-opts.c: Remove TODO_dump_func.
5072         * tree-ssa-dom.c: Remove TODO_dump_func.
5073         * tree-nrv.c: Remove TODO_dump_func.
5074         * loop-init.c: Remove TODO_dump_func.
5075         * gimple-low.c: Remove TODO_dump_func.
5076         * ipa-inline.c: Remove TODO_dump_func.
5077         * tree-ssa-sink.c: Remove TODO_dump_func.
5078         * jump.c: Remove TODO_dump_func.
5079         * ifcvt.c: Remove TODO_dump_func.
5080         * tree-ssa-loop.c: Remove TODO_dump_func.
5081         * recog.c: Remove TODO_dump_func.
5082         * dse.c: Remove TODO_dump_func.
5083         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
5084         * matrix-reorg.c: Remove TODO_dump_func.
5085         * tree-eh.c: Remove TODO_dump_func.
5086         * regmove.c: Remove TODO_dump_func.
5087         * function.c: Remove TODO_dump_func.
5088         * tree-vectorizer.c: Remove TODO_dump_func.
5089         * ipa-split.c: Remove TODO_dump_func.
5090         * gcse.c: Remove TODO_dump_func.
5091         * tree-if-conv.c: Remove TODO_dump_func.
5092         * init-regs.c: Remove TODO_dump_func.
5093         * tree-ssa-phiopt.c: Remove TODO_dump_func.
5094         * implicit-zee.c: Remove TODO_dump_func.
5095         * lower-subreg.c: Remove TODO_dump_func.
5096         * bt-load.c: Remove TODO_dump_func.
5097         * tree-dfa.c: Remove TODO_dump_func.
5098         * except.c: Remove TODO_dump_func.
5099         * emit-rtl.c: Remove TODO_dump_func.
5100         * store-motion.c: Remove TODO_dump_func.
5101         * cfgexpand.c: Remove TODO_dump_func.
5102         * tree-cfgcleanup.c: Remove TODO_dump_func.
5103         * cfgcleanup.c: Remove TODO_dump_func.
5104         * tree-ssa-pre.c: Remove TODO_dump_func.
5105         * tree-sra.c: Remove TODO_dump_func.
5106         * tree-mudflap.c: Remove TODO_dump_func.
5107         * tree-ssa-copy.c: Remove TODO_dump_func.
5108         * cfglayout.c: Remove TODO_dump_func.
5109         * tree-ssa-forwprop.c: Remove TODO_dump_func.
5110         * tree-ssa-dce.c: Remove TODO_dump_func.
5111         * ira.c: Remove TODO_dump_func.
5112         * tree-ssa.c: Remove TODO_dump_func.
5113         * integrate.c: Remove TODO_dump_func.
5114         * tree-optimize.c: Remove TODO_dump_func.
5115         * tree-ssa-phiprop.c: Remove TODO_dump_func.
5116         * tree-object-size.c: Remove TODO_dump_func.
5117         * combine.c: Remove TODO_dump_func.
5118         * bb-reorder.c: Remove TODO_dump_func.
5119         * cprop.c: Remove TODO_dump_func.
5120         * var-tracking.c: Remove TODO_dump_func.
5121         * tree-profile.c: Remove TODO_dump_func.
5122         * tree-vect-generic.c: Remove TODO_dump_func.
5123         * reg-stack.c: Remove TODO_dump_func.
5124         * sched-rgn.c: Remove TODO_dump_func.
5125         * tree-ssa-structalias.c: Remove TODO_dump_func.
5126         * tree-switch-conversion.c: Remove TODO_dump_func.
5127         * tree-cfg.c: Remove TODO_dump_func.
5128         * tree-ssa-reassoc.c: Remove TODO_dump_func.
5129         * combine-stack-adj.c: Remove TODO_dump_func.
5130         * dce.c: Remove TODO_dump_func.
5131         * tree-ssanames.c: Remove TODO_dump_func.
5132         * regcprop.c: Remove TODO_dump_func.
5133
5134 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
5135
5136         PR middle-end/47364
5137         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
5138         and properly handle result not in Pmode.
5139
5140 2011-06-14  Robert Millan  <rmh@gnu.org>
5141
5142         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
5143         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
5144         `config/linux.h'.
5145
5146         * config/i386/kfreebsd-gnu64.h: New file.
5147         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
5148         with `i386/kfreebsd-gnu64.h'.
5149
5150         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
5151         (GNU_USER_LINK_EMULATION64): New macros.
5152         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
5153         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
5154         of hardcoding `elf_i386' and `elf_x86_64'.
5155
5156 2011-06-14  Nick Clifton  <nickc@redhat.com>
5157
5158         PR target/49403
5159         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
5160
5161         PR target/49402
5162         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
5163
5164 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
5165
5166         PR fortran/49103
5167         * tree.h (DECL_NONSHAREABLE): Define.
5168         (struct tree_decl_common): Change decl_common_unused to
5169         decl_nonshareable_flag.
5170         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
5171         Ignore vars with DECL_NONSHAREABLE bit set.
5172         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
5173         on stores to automatic aggregate vars.
5174
5175         PR rtl-optimization/49390
5176         Revert:
5177         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
5178
5179         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
5180         MEM_ALIAS_SET.
5181
5182 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
5183             Tom de Vries  <tom@codesourcery.com>
5184
5185         PR target/45098
5186         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
5187         Document changed semantics.
5188         (max_stmt_executions, max_stmt_executions_int): Declare.
5189         * tree-data-ref.c (estimated_loop_iterations)
5190         (estimated_loop_iterations_int): Move functions...
5191         * tree-ssa-loop-niter.c (estimated_loop_iterations)
5192         (estimated_loop_iterations_int): here.
5193         (record_estimate): Change nb_iterations_upper_bound and
5194         nb_iterations_estimate semantics.
5195         (max_stmt_executions, max_stmt_executions_int): New function.
5196         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
5197         (max_stmt_executions_tree): this.
5198         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
5199         estimated_loop_iterations_tree.
5200         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
5201         max_stmt_executions_int instead of estimated_loop_iterations_int.
5202         * predict.c (predict_loops): Idem.
5203         * tree-parloops.c (parallelize_loops): Idem.
5204         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
5205         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
5206         (init_omega_for_ddr_1): Idem.
5207         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
5208         (loop_prefetch_arrays): Idem
5209         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
5210         max_stmt_executions instead of estimated_loop_iterations.
5211         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
5212         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
5213         instead of nb_iterations_upper_bound.
5214
5215 2011-06-13  Jan Hubicka  <jh@suse.cz>
5216
5217         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
5218
5219 2011-06-14  Richard Henderson  <rth@redhat.com>
5220
5221         PR debug/48459
5222         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
5223         (based_loc_descr): Assert it's true.
5224         (compute_frame_pointer_to_fb_displacement): Set it, rather than
5225         aborting immediately.
5226
5227 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
5228             Mingfeng Wu  <mingfeng@faraday-tech.com>
5229
5230         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
5231
5232 2011-06-13  Jan Hubicka  <jh@suse.cz>
5233
5234         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
5235
5236 2011-06-13  Jan Hubicka  <jh@suse.cz>
5237
5238         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
5239         similarly to DECL_COMDAT.
5240         * cgraphunit.c (cgraph_analyze_function): Likewise.
5241         * ipa.c (function_and_variable_visibility): Likewise.
5242
5243 2011-06-13  Jan Hubicka  <jh@suse.cz>
5244
5245         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
5246         BINFO_VIRTUALS when streaming for ltrans unit.
5247
5248 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
5249
5250         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
5251         (movdi_internal64): Same.
5252
5253 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
5254
5255         PR target/44618
5256         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
5257         a set of similar patterns, where the MATCH_OPERAND for the function
5258         argument is replaced with individual references to hardware registers.
5259         (save_fpregs_<mode>): Ditto
5260         (restore_gpregs_<mode>): Ditto
5261         (return_and_restore_gpregs_<mode>): Ditto
5262         (return_and_restore_fpregs_<mode>): Ditto
5263         (return_and_restore_fpregs_aix_<mode>): Ditto
5264
5265 2011-06-13  Jan Hubicka  <jh@suse.cz>
5266
5267         * ipa-utils.c (postorder_stack): New structure.
5268         (ipa_reverse_postorder): Handle aliases.
5269
5270 2011-06-13  Jan Hubicka  <jh@suse.cz>
5271
5272         * ipa-inline.c (reset_edge_caches): Walk aliases.
5273         (update_caller_keys): Do not test inlinability of aliases.
5274         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
5275         (do_estimate_growth): Fix typo.
5276
5277 2011-06-13  Jan Hubicka  <jh@suse.cz>
5278
5279         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
5280         (can_remove_node_now_p): ... here; handle same comdat groups.
5281         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
5282         (inline_call): Update use of can_remove_node_now_p.
5283
5284 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5285
5286         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
5287         condition to disallow non-identical memory locations.
5288         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
5289         preference to bit manipulation instructions.
5290
5291 2011-06-13  Jan Hubicka  <jh@suse.cz>
5292
5293         * cgraph.c (cgraph_for_node_thunks_and_aliases,
5294         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
5295         (nonremovable_p): New function.
5296         (cgraph_can_remove_if_no_direct_calls_p): New function.
5297         (used_from_object_file_p): New functoin.
5298         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
5299         references from aliases.
5300         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
5301         * ipa-inline.c (check_caller_edge): New function.
5302         (want_inline_function_called_once_p): Use it; accept aliases called
5303         once, too.
5304         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
5305
5306 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5307
5308         PR target/48454
5309         * config/arm/neon.md (vec_pack_trunc): Set the lengths
5310         correctly for the case with Quad vectors.
5311
5312 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
5313            Ira Rosen  <ira.rosen@linaro.org>
5314
5315         PR tree-optimization/49352
5316         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
5317         all, make sure loop_use_stmt after the loop is a def stmt of a used
5318         SSA_NAME that is the only one defined inside of the loop.  Don't
5319         check for COND_EXPR and GIMPLE_BINARY_RHS.
5320         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
5321         check_reduction is true.
5322
5323 2011-06-11  Jan Hubicka  <jh@suse.cz>
5324
5325         PR middle-end/49373
5326         * ipa.c (cgraph_externally_visible_p): Check resolution info.
5327
5328 2011-06-11  Jan Hubicka  <jh@suse.cz>
5329
5330         PR middle-end/48836
5331         * ipa-inline-transform.c: Include tree-pass.h
5332         (inline_transform): Set TODO_update_ssa_only_virtuals.
5333         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
5334
5335 2011-06-11  Jan Hubicka  <jh@suse.cz>
5336
5337         PR middle-end/49378
5338         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
5339         aliases and thunks.
5340
5341 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
5342
5343         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
5344         Take number of iterations to peel into account for equally frequent
5345         misalignment values.
5346
5347 2011-06-11  Jan Hubicka  <jh@suse.cz>
5348
5349         * lto-streamer-out.c (produce_symtab): Stream out the newly
5350         represented aliases.
5351
5352 2011-06-11  Jan Hubicka  <jh@suse.cz>
5353
5354         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
5355         varying args.
5356         (ipa_update_after_lto_read): Likewise.
5357         (ipa_write_node_info): Do not sream call_with_var_arguments.
5358         (ipa_read_node_info): Likewise.
5359
5360 2011-06-11  Jan Hubicka  <jh@suse.cz>
5361
5362         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
5363
5364 2011-06-11  Jan Hubicka  <jh@suse.cz>
5365
5366         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
5367         (lto_symtab_resolve_can_prevail_p): Likewise.
5368         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
5369         * cgraph.c (same_body_aliases_done): New global var.
5370         (cgraph_same_body_alias_1): Rename to ...
5371         (cgraph_create_function_alias): ... this one; reorg to new
5372         representation.
5373         (cgraph_same_body_alias): Use cgraph_create_function_alias;
5374         record references when asked to.
5375         (cgraph_add_thunk): Fix formating.
5376         (cgraph_get_node): Kill same body alias code.
5377         (cgraph_node_for_asm): Likewise.
5378         (cgraph_remove_same_body_alias): Remove.
5379         (cgraph_remove_node): Kill same body alias code.
5380         (cgraph_mark_address_taken_node): Mark also the aliased function
5381         as having address taken.
5382         (dump_cgraph_node): Dump same body aliases.
5383         (cgraph_for_node_thunks_and_aliases): Update for new alias
5384         representation.
5385         (cgraph_for_node_and_aliases): Likewise.
5386         * cgraph.h (same_body): Kll pointer.
5387         (same_body_alias): Update comment.
5388         (same_body_aliases_done): Declare.
5389         (cgraph_remove_same_body_alias): Remove declaration.
5390         (cgraph_create_function_alias): Declare.
5391         (cgraph_process_same_body_aliases): Declare.
5392         (cgraph_function_with_gimple_body_p): Check for alias.
5393         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
5394         (cgraph_alias_aliased_node): New function.
5395         (cgraph_function_node): Update for new aliases.
5396         (cgraph_function_or_thunk_node): Likewise.
5397         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
5398         (inline_call): Remove dead aliases.
5399         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
5400         name hack for same body aliases.
5401         (clone_of_p): Look through aliases.
5402         (verify_cgraph_node): Verify aliases.
5403         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
5404         (cgraph_process_same_body_aliases): New function.
5405         (process_function_and_variable_attributes): Disable weakref warning on
5406         alias.
5407         (cgraph_analyze_functions): Handle aliases.
5408         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
5409         (assemble_thunks): Rename to ...
5410         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
5411         (cgraph_expand_function): Remove alias output code.
5412         (cgraph_output_in_order): Skip aliases.
5413         (cgraph_preserve_function_body_p): Aliases don't need preserving.
5414         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
5415         (ipa_record_reference): Do not assert on alias references.
5416         (ipa_ref_has_aliases_p): New function.
5417         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
5418         (ipa_ref_has_aliases_p): Declare.
5419         * lto-cgraph.c (lto_output_node): Handle aliases.
5420         (input_node): Likewise.
5421         * lto-streamer-out.c (lto_output): Skip aliases.
5422         (produce_symtab): Kill same_body_alias code.
5423         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
5424         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
5425         * ipa-inline.c (update_caller_keys): Walk aliases.
5426         (inline_small_functions): Fix thinko in previous patch.
5427         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
5428         (function_and_variable_visibility): Do not walk same body aliases.
5429         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
5430         (ipa_pta_execute): Use it.
5431
5432 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
5433
5434         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
5435         (*vec_dupv2df): Rename from vec_dupv2df.
5436         (vec_dupv2df): New expander.
5437
5438 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
5439
5440         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
5441
5442 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
5443
5444         * config/i386/i386.md: Use default value in "isa" attribute.
5445         * config/i386/sse.md: Ditto.
5446         * config/i386/mmx.md: Ditto.
5447
5448 2011-06-10  Wei Guozhi  <carrot@google.com>
5449
5450         PR target/45335
5451         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
5452         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
5453         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
5454         related peephole2.
5455         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
5456         related peephole2.
5457         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
5458         (arm_legitimate_ldrd_p): New prototype.
5459         (arm_output_ldrd): New prototype.
5460         * config/arm/arm.c (arm_check_ldrd_operands): New function.
5461         (arm_legitimate_ldrd_p): New function.
5462         (arm_output_ldrd): New function.
5463
5464 2011-06-10  David Li  <davidxl@google.com>
5465
5466         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
5467         * passes.c (passr_eq): New function.
5468         (create_pass_tab): New function.
5469         (pass_traverse): New function.
5470         (dump_one_pass): New function.
5471         (dump_pass_list): New function.
5472         (dump_passes): New function.
5473
5474 2011-06-10  Jan Hubicka  <jh@suse.cz>
5475
5476         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
5477         setting the nothrow flag.
5478         * ipa-reference.c (propagate): Skip aliases.
5479         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
5480         (propagate_nothrow): Skip aliases; do not update cgraph.
5481         (local_pure_const): Do not update cgraph.
5482         * tree-profile.c (tree_profiling): Do fixup_cfg.
5483
5484 2011-06-10  Jan Hubicka  <jh@suse.cz>
5485
5486         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
5487         (cgraph_local_node_p): ... here; handle aliases.
5488         (has_addr_references_p): Break out from ...;
5489         (cgraph_remove_unreachable_nodes) ... here.
5490
5491 2011-06-10  Jan Hubicka  <jh@suse.cz>
5492
5493         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
5494         * common.opt (flag_inline_functions_called_once): Do not
5495         initialize to 1.
5496
5497 2011-06-10  Jan Hubicka  <jh@suse.cz>
5498
5499         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
5500         (ipcp_initialize_node_lattices): Do not deal with aliases;
5501         Do not try to propagate through thunks.
5502         (ipcp_change_tops_to_bottom): Do not deal with aliases.
5503
5504 2011-06-10  Jan Hubicka  <jh@suse.cz>
5505
5506         * ipa-prop.c (ipa_write_node_info): Stream jump functions
5507         for indirect calls.
5508         (ipa_read_node_info): Likewise.
5509
5510 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5511
5512         PR lto/49302
5513         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
5514         (build_and_insert_call): Likewise.
5515         (build_and_insert_ref): New.
5516         (gimple_expand_builtin_pow): Minor cleanup.
5517         (gimple_expand_builtin_cabs): New.
5518         (execute_cse_sincos): Add case for BUILT_IN_CABS.
5519
5520 2011-06-10  Jan Hubicka  <jh@suse.cz>
5521
5522         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
5523         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
5524         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
5525         (ipcp_propagate_stage): Skip aliases when propagating.
5526         (ipcp_need_redirect_p): Skip aliases.
5527         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
5528         collect_callers_of_node.
5529         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
5530         for aliases.
5531         (ipa_compute_jump_functions): Look through aliases.
5532
5533 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5534
5535         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
5536
5537 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
5538
5539         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
5540         Adjust comments.
5541         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
5542
5543 2011-06-10  Jan Hubicka  <jh@suse.cz>
5544
5545         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
5546         Update call of gimple_get_virt_method_for_binfo.
5547         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
5548         refuse_thunks parameter.
5549         (gimple_fold_call): Update.
5550         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
5551
5552 2011-06-10  Jan Hubicka  <jh@suse.cz>
5553
5554         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
5555         (not_all_callers_have_enough_arguments_p): ... this one; turn into
5556         worker for cgraph_for_node_and_aliases.
5557         (convert_callers_for_node): Break out from ...
5558         (convert_callers): ... here.
5559         (modify_function): Use collect_callers_of_node.
5560         (ipa_early_sra): Use cgraph_for_node_and_aliases.
5561
5562 2011-06-10  Richard Guenther  <rguenther@suse.de>
5563
5564         PR tree-optimization/49361
5565         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
5566         when not already in gimple form.
5567
5568 2011-06-10  Richard Guenther  <rguenther@suse.de>
5569
5570         PR bootstrap/49344
5571         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
5572         FOR_EACH_PHI_OR_STMT_USE.
5573
5574 2011-06-10  Jan Hubicka  <jh@suse.cz>
5575
5576         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
5577         (clone_inlined_nodes): ... here.
5578         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
5579         to real destination prior inlining.
5580         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
5581         can_early_inline_edge_p, want_early_inline_function_p,
5582         want_early_inline_function_p, want_inline_small_function_p,
5583         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
5584         edge_badness, update_all_callee_keys, lookup_recursive_calls,
5585         add_new_edges_to_heap, inline_small_functions, flatten_function,
5586         inline_always_inline_functions, early_inline_small_functions): Use
5587         cgraph_function_or_thunk_node.
5588         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
5589         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
5590         (do_estimate_edge_growth_1): Break out from ...
5591         (do_estimate_growth) ... here; walk aliases.
5592         (inline_generate_summary): Skip aliases.
5593
5594 2011-06-10  Richard Guenther  <rguenther@suse.de>
5595
5596         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
5597         forward when combining, visit inserted stmts when a stmt was changed.
5598
5599 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
5600
5601         * tree.h (error_operand_p): Add.
5602         * dbxout.c (dbxout_type_fields): Use the latter.
5603         * c-decl.c (add_stmt): Likewise.
5604         * gimplify.c (omp_add_variable, omp_notice_variable,
5605         gimplify_scan_omp_clauses): Likewise.
5606
5607 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
5608
5609         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
5610         when a value is actually passed in regs.
5611
5612 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
5613             Laurent Rougé  <laurent.rouge@menta.fr>
5614
5615         * doc/invoke.texi (SPARC options): Add -mflat.
5616         * config/sparc/sparc.opt: Likewise.
5617         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
5618         (sparc_flat_expand_prologue): Declare.
5619         (sparc_flat_expand_epilogue): Likewise.
5620         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
5621         (CPP_ENDIAN_SPEC): Replace with...
5622         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
5623         (CPP_SPEC): Adjust to above change.
5624         (EXTRA_SPECS): Likewise.
5625         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
5626         (INCOMING_REGNO): Likewise.
5627         (OUTGOING_REGNO): Likewise.
5628         (LOCAL_REGNO): Likewise.
5629         (SETUP_FRAME_ADDRESSES): Likewise.
5630         (FIXED_REGISTERS): Set 0 for %fp.
5631         (CALL_USED_REGISTERS): Likewise.
5632         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
5633         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
5634         (RETURN_ADDR_REGNUM): Define.
5635         (RETURN_ADDR_RTX): Use it.
5636         (INCOMING_RETURN_ADDR_REGNUM): Define.
5637         (INCOMING_RETURN_ADDR_RTX): Use it.
5638         (DWARF_FRAME_RETURN_COLUMN): Likewise.
5639         (EH_RETURN_REGNUM): Define.
5640         (EH_RETURN_STACKADJ_RTX): Use it.
5641         (EH_RETURN_HANDLER_RTX): Delete.
5642         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
5643         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
5644         Delete.
5645         (struct machine_function): Add frame_size, apparent_frame_size,
5646         frame_base_reg, frame_base_offset, n_global_fp_regs and
5647         save_local_in_regs_p fields.
5648         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
5649         sparc_frame_base_offset, sparc_n_global_fp_regs,
5650         sparc_save_local_in_regs_p): New macros.
5651         (sparc_option_override): Error out if -fcall-saved-REG is specified
5652         for Out registers.
5653         (eligible_for_restore_insn): Fix formatting.
5654         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
5655         (eligible_for_sibcall_delay): Likewise.
5656         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
5657         (sparc_legitimate_address_p): Adjust to above change.
5658         (save_global_or_fp_reg_p): New predicate.
5659         (return_addr_reg_needed_p): Likewise.
5660         (save_local_or_in_reg_p): Likewise.
5661         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
5662         (SORR_SAVE, SORR_RESTORE): Delete.
5663         (sorr_pred_t): New typedef.
5664         (sorr_act_t): New enum.
5665         (save_or_restore_regs): Rename to...
5666         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
5667         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
5668         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
5669         mechanism.  Add CFI information for double-word saves in 32-bit mode.
5670         (emit_adjust_base_to_offset): New function extracted from...
5671         (emit_save_or_restore_regs): ...this.  Rename the rest to...
5672         (emit_save_or_restore_regs_global_fp_regs): ...this.
5673         (emit_save_or_restore_regs_local_in_regs): New function.
5674         (gen_create_flat_frame_[123]): New functions.
5675         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
5676         (sparc_flat_expand_prologue): New function.
5677         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
5678         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
5679         (sparc_flat_expand_epilogue): New function.
5680         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
5681         (output_return): Likewise.
5682         (output_sibcall): Likewise.
5683         (sparc_output_mi_thunk): Likewise.
5684         (sparc_frame_pointer_required): Likewise.
5685         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
5686         function optimization.
5687         * config/sparc/sparc.md (flat): New attribute.
5688         (prologue): Add TARGET_FLAT handling.
5689         (save_register_window): Disable if TARGET_FLAT.
5690         (create_flat_frame_[123]): New patterns.
5691         (epilogue): Add TARGET_FLAT handling.
5692         (sibcall_epilogue): Likewise.
5693         (eh_return): New expander.
5694         (eh_return_internal): New insn and splitter.
5695         (return_internal): Add TARGET_FLAT handling.
5696         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
5697         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
5698         (nonlocal_goto): Add TARGET_FLAT handling.
5699         * config/sparc/t-elf: Add -mflat multilib.
5700         * config/sparc/t-leon: Likewise.
5701
5702 2011-06-10  Jan Hubicka  <jh@suse.cz>
5703
5704         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
5705         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
5706         (self_recursive_p): Use cgraph_function_node.
5707         (propagate_pure_const): Likewise.
5708         (propagate_nothrow): Likewise.
5709         * ipa-reference.c (ipa_reference_get_not_read_global): Use
5710         cgraph_function_node.
5711         (propagate_bits): Likewise.
5712         (propagate): Likewise.
5713
5714 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5715             Richard Earnshaw  <rearnsha@arm.com>
5716
5717         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
5718         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
5719         (*thumb2_movdi_vfp): Delete.
5720         (*arm_movdi_vfp_cortexa8): Delete.
5721         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
5722         (*movdi_vfp_cortexa8): Likewise.
5723
5724 2011-06-10  Richard Guenther  <rguenther@suse.de>
5725
5726         * stor-layout.c (initialize_sizetypes): Give names to all
5727         sizetype kinds.
5728
5729 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
5730
5731         PR tree-optimization/49318
5732         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
5733         irrelevant pattern statements.
5734
5735 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
5736
5737         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
5738
5739         PR bootstrap/49354
5740         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
5741         to last assignment.
5742
5743 2011-06-09  Jan Hubicka  <jh@suse.cz>
5744
5745         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
5746         do not recompute reachable flag.
5747         (cgraph_finalize_function, cgraph_analyze_functions): Set
5748         redefined_extern_inline here.
5749
5750 2011-06-09  Jan Hubicka  <jh@suse.cz>
5751
5752         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
5753         (cgraph_only_called_directly_p): ... this one; bring offline.
5754         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
5755         varpool_used_from_object_file_p): Drop names from the declaratoin.
5756         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
5757         collect_callers_of_node): New.
5758         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
5759         (cgraph_edge_recursive_p): Use cgraph_function_node.
5760         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
5761         (cgraph_node_cannot_be_local_p_1): Break out from ...
5762         (cgraph_node_can_be_local_p): ... here; walk aliases.
5763         (cgraph_for_node_thunks_and_aliases): New function.
5764         (cgraph_for_node_and_aliases): New function.
5765         (cgraph_make_node_local_1): Break out from ...
5766         (cgraph_make_node_local) ... here; use
5767         cgraph_for_node_thunks_and_aliases.
5768         (cgraph_set_nothrow_flag_1): Break out from ...
5769         (cgraph_set_nothrow_flag) ... here;
5770         use cgraph_for_node_thunks_and_aliases.
5771         (cgraph_set_const_flag_1): Break out from ...
5772         (cgraph_set_const_flag) ... here;
5773         use cgraph_for_node_thunks_and_aliases.
5774         (cgraph_set_pure_flag_1): Break out from ...
5775         (cgraph_set_pure_flag) ... here;
5776         use cgraph_for_node_thunks_and_aliases.
5777         (cgraph_propagate_frequency_1): Break out from ...
5778         (cgraph_propagate_frequency) ... here; use
5779         cgraph_for_node_thunks_and_aliases.
5780         (cgraph_used_from_object_file_p): Do not care about aliases.
5781         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
5782         New functions.
5783         (collect_callers_of_node_1, collect_callers_of_node): New functions.
5784
5785 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
5786
5787         PR rtl-optimization/49154
5788         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
5789         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
5790         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
5791         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
5792         * config/cris/cris.h (cris_register_move_cost): Remove
5793         !TARGET_V32 code.  Tweak comments.
5794
5795 2011-06-09  Jan Hubicka  <jh@suse.cz>
5796
5797         * cgraphbuild.c (record_eh_tables): Mark personality function as having
5798         address taken.
5799
5800 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
5801
5802         PR rtl-optimization/49154
5803         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
5804         is a matching slot in the hashtable, assign it to classes_ptr.
5805
5806         PR rtl-optimization/49154
5807         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
5808         register classes.
5809         * doc/tm.texi: Regenerate.
5810
5811 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
5812
5813         PR target/49307
5814         * config/sh/sh.md (UNSPEC_CHKADD): New.
5815         (chk_guard_add): New define_insn_and_split.
5816         (symGOT_load): Use chk_guard_add instead of blockage.
5817
5818 2011-06-09  Kai Tietz  <ktietz@redhat.com>
5819
5820         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
5821
5822 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
5823
5824         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
5825
5826 2011-06-09  Wei Guozhi  <carrot@google.com>
5827
5828         PR target/46975
5829         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
5830         (peephole2 for conditional move): Generate 16 bit instructions.
5831
5832 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
5833
5834         * config/i386/i386.md (*movdi_internal_rex64): Merge
5835         alternatives 6 and 8.
5836
5837 2011-06-09  David Li  <davidxl@google.com>
5838
5839         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
5840         * passes.c (passr_eq): New function.
5841         (create_pass_tab): New function.
5842         (pass_traverse): New function.
5843         (dump_one_pass): New function.
5844         (dump_pass_list): New function.
5845         (dump_passes): New function.
5846
5847 2011-06-09  David Li  <davidxl@google.com>
5848
5849         * tree-complex.c (tree_lower_complex): Gate cleanup.
5850         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
5851         (execute_optimize_stdarg): Ditto.
5852         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
5853         (execute_cleanup_eh_1): Ditto.
5854         (execute_cleanup_eh): Ditto.
5855         * gcse.c (gate_rtl_pre): Ditto.
5856         (execute_rtl_pre): Ditto.
5857         * except.c (finish_eh_generation): Ditto.
5858         (convert_to_eh_region_ranges): Ditto.
5859         * cprop.c (one_cprop_pass): Ditto.
5860
5861 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
5862
5863         PR target/48673
5864         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
5865         in all basic blocks.
5866
5867 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5868
5869         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
5870         (HAVE_ENABLE_EXECUTE_STACK): Define.
5871         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
5872         (HAVE_ENABLE_EXECUTE_STACK): Define.
5873         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
5874         (HAVE_ENABLE_EXECUTE_STACK): Define.
5875         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
5876         (ENABLE_EXECUTE_STACK): Remove.
5877         (HAVE_ENABLE_EXECUTE_STACK): Define.
5878         [IN_LIBGCC2]: Don't include <windows.h>.
5879         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
5880         (HAVE_ENABLE_EXECUTE_STACK): Define.
5881         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
5882         (HAVE_ENABLE_EXECUTE_STACK): Define.
5883         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
5884         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
5885         (HAVE_ENABLE_EXECUTE_STACK): Define.
5886         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
5887         (HAVE_ENABLE_EXECUTE_STACK): Define.
5888         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
5889         (HAVE_ENABLE_EXECUTE_STACK): Define.
5890         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
5891         (HAVE_ENABLE_EXECUTE_STACK): Define.
5892         * config/alpha/alpha.c (alpha_trampoline_init): Test
5893         HAVE_ENABLE_EXECUTE_STACK.
5894         * config/i386/i386.c (ix86_trampoline_init): Likewise.
5895         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
5896         (sparc64_initialize_trampoline): Likewise.
5897         * libgcc2.c [L_enable_execute_stack]: Remove.
5898         * system.h (ENABLE_EXECUTE_STACK): Poison.
5899         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
5900         * doc/tm.texi: Regenerate.
5901         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
5902
5903 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
5904
5905         PR middle-end/49308
5906         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
5907         variable.  After resetting and rescanning insn continue with previous
5908         statement.
5909
5910 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5911
5912         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
5913         (gcc_cv_ld_hidden): Likewise.
5914         * configure: Regenerate.
5915         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
5916         (ix86_stack_protect_fail): Mark unused.
5917         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
5918         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
5919         [TARGET_MACHO]: Don't define.
5920         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
5921         (TARGET_STACK_PROTECT_FAIL): Likewise.
5922         (rs6000_stack_protect_fail): Mark unused.
5923         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
5924         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
5925
5926 2011-06-08  Andi Kleen  <ak@linux.intel.com>
5927
5928         * varasm.c (get_section): Print location of other conflict
5929         for section conflicts.
5930
5931 2011-06-08  Andi Kleen  <ak@linux.intel.com>
5932
5933         * config/i386/driver-i386.c (host_detect_local_cpu):
5934         Add model 0x2d Intel CPU.
5935
5936 2011-06-08  Andi Kleen  <ak@linux.intel.com>
5937
5938         * reginfo.c (global_regs_decl): Add.
5939         (globalize_reg): Add decl parameter. Compute location.  Pass location
5940         to warnings and add inform. Store decl in global_regs_decl.
5941         * rtl.h (globalize_reg): Update prototype.
5942         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
5943
5944 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
5945
5946         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
5947
5948 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
5949
5950         PR target/49305
5951         * config/sh/predicates.md (general_movsrc_operand): Check
5952         mode for memory with indexed address for QI and HImode.
5953         (general_movdst_operand): Likewise.
5954
5955 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
5956
5957         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
5958
5959 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
5960
5961         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
5962         (num_ssa_operands): Likewise.
5963         (op_iter_init_phiuse): Forward-declare.
5964         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
5965
5966 2011-06-08  Nick Clifton  <nickc@redhat.com>
5967
5968         * doc/invoke.texi (ARM Options): Update description of
5969         -mthumb-interwork.
5970
5971 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
5972
5973         * config/i386/driver-i386.c (host_detect_local_cpu): Support
5974         unknown Intel family 0x6 CPUs.
5975
5976 2011-06-08  Martin Jambor  <mjambor@suse.cz>
5977
5978         * tree-sra.c (mark_rw_status): Removed.
5979         (analyze_access_subtree): New parameter parent instead of
5980         mark_read and mark_write, propagate from that.
5981
5982 2011-06-08  Julian Brown  <julian@codesourcery.com>
5983
5984         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
5985         for double-precision helper functions in hard-float mode if only
5986         single-precision arithmetic is supported in hardware.
5987
5988 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
5989
5990         PR rtl-optimization/49303
5991         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
5992         code_motion_path_driver returned 0 or 1.
5993         (sel_region_finish): Clear h_d_i_d.
5994
5995 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
5996
5997         * config/sh/sh.c (prepare_move_operands): Set pic register
5998         appropriately for global and local dynamic tls models even
5999         if flag_pic is unset.
6000
6001 2011-06-07  Jason Merrill  <jason@redhat.com>
6002
6003         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
6004
6005 2011-06-07  Xinliang David Li  <davidxl@google.com>
6006         * passes.c (enable_disable_pass): Handle assembler name.
6007         (is_pass_explicitly_enabled_or_disabled): Ditto.
6008
6009 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6010
6011         PR tree-optimization/48497
6012         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
6013
6014 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6015
6016         PR tree-optimization/46728
6017         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
6018         to use gimple_val_nonnegative_real_p.
6019         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
6020         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
6021
6022 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
6023
6024         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
6025
6026 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
6027
6028         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
6029         constant vectors.
6030
6031 2011-06-07  Richard Guenther  <rguenther@suse.de>
6032
6033         * stor-layout.c (initialize_sizetypes): Initialize all
6034         sizetypes based on target definitions.
6035         (set_sizetype): Remove.
6036         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
6037         * tree.h (set_sizetype): Remove.
6038
6039 2011-06-07  Nick Clifton  <nickc@redhat.com>
6040
6041         * config.gcc: Unify V850 architecture options and add support for
6042         newer V850 architectures.
6043         * config/v850/t-v850e: Delete.
6044
6045 2011-06-07  Richard Guenther  <rguenther@suse.de>
6046
6047         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
6048         Call set_sizetype from here.
6049
6050 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
6051
6052         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
6053         (*maddhisi4tb, *maddhisi4tt): New define_insns.
6054
6055 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
6056             Andrew Stubbs  <ams@codesourcery.com>
6057
6058         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
6059         multiplies.
6060         * doc/md.texi (Canonicalization of Instructions): Document widening
6061         multiply canonicalization.
6062
6063 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
6064
6065         PR gcov-profile/49299
6066         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
6067
6068 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
6069
6070         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
6071         a pointer.
6072         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
6073         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
6074         vect_recog_pow_pattern): Likewise.
6075         (vect_pattern_recog_1): Remove declaration.
6076         (widened_name_p): Remove declaration.  Add new argument to specify
6077         whether to check that both types are either signed or unsigned.
6078         (vect_recog_widen_mult_pattern): Update documentation.  Handle
6079         unsigned patterns and multiplication by constants.
6080         (vect_pattern_recog_1): Update vect_recog_func references.  Use
6081         statement information from the statement returned from pattern
6082         detection functions.
6083         (vect_pattern_recog): Update vect_recog_func reference.
6084         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
6085         multiplication by a constant use the type of the other operand.
6086
6087 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
6088
6089         PR rtl-optimization/49145
6090         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
6091
6092 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
6093
6094         PR debug/49262
6095         * dwarf2out.c (native_encode_initializer): Decrement count in each
6096         iteration.
6097
6098         PR debug/49294
6099         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
6100         non-MODE_INT modes.
6101
6102         PR c++/49264
6103         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
6104         if stmt folded into nothing.
6105         * tree-inline.c (fold_marked_statements): If a builtin at the end of
6106         a bb folded into nothing, just update cgraph edges and move to next bb.
6107         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
6108         to be NULL.  Don't compute count and frequency if new_call is NULL.
6109
6110 2011-06-04  Diego Novillo  <dnovillo@google.com>
6111
6112         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
6113         (cgraph.o): Likewise.
6114         (cgraphunit.o): Likewise.
6115         * cgraphunit.c: Include lto-streamer.h
6116         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
6117         if LTO is enabled.
6118         * lto-streamer-in.c (unpack_value_fields): Call
6119         streamer_hooks.unpack_value_fields if set.
6120         (lto_materialize_tree): For unhandled nodes, first try to
6121         call lto_streamer_hooks.alloc_tree, if it exists.
6122         (lto_input_ts_decl_common_tree_pointers): Move reading of
6123         DECL_INITIAL to lto_streamer_read_tree.
6124         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
6125         (lto_streamer_read_tree): New.
6126         (lto_reader_init): Rename from lto_init_reader.
6127         Move initialization code to lto/lto.c.
6128         * lto-streamer-out.c (pack_value_fields): Call
6129         streamer_hooks.pack_value_fields if set.
6130         (lto_output_tree_ref): For tree nodes that are not normally indexable,
6131         call streamer_hooks.indexable_with_decls_p before giving up.
6132         (lto_output_ts_decl_common_tree_pointers): Move handling
6133         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
6134         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
6135         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
6136         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
6137         (lto_streamer_write_tree): New.
6138         (lto_output): Call lto_streamer_init directly.
6139         (lto_writer_init): Remove.
6140         * lto-streamer.c (streamer_hooks): New.
6141         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
6142         instead of lto_preload_common_nodes.
6143         (lto_is_streamable): Move from lto-streamer.h
6144         (lto_streamer_hooks_init): New.
6145         (streamer_hooks): New.
6146         (streamer_hooks_init): New.
6147         * lto-streamer.h (struct output_block): Forward declare.
6148         (struct lto_input_block): Likewise.
6149         (struct data_in): Likewise.
6150         (struct bitpack_d): Likewise.
6151         (struct streamer_hooks): Declare.
6152         (streamer_hooks): Declare.
6153         (lto_streamer_hooks_init): Declare.
6154         (lto_streamer_write_tree): Declare.
6155         (lto_streamer_read_tree): Declare.
6156         (streamer_hooks_init): Declare.
6157         (lto_is_streamable): Move to lto-streamer.c
6158
6159 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6160
6161         * longlong.h (smul_ppmm): The resulting register pair contains the
6162         higher order word first.
6163
6164 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6165
6166         PR tree-optimization/46728
6167         * builtins.c (powi_table): Remove.
6168         (powi_lookup_cost): Remove.
6169         (powi_cost): Remove.
6170         (expand_powi_1): Remove.
6171         (expand_powi): Remove.
6172         (expand_builtin_pow_root): Remove.
6173         (expand_builtin_pow): Remove.
6174         (expand_builtin_powi): Eliminate handling of constant exponent.
6175         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
6176
6177 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
6178
6179         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
6180
6181 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
6182
6183         * dce.c (reset_unmarked_insns_debug_uses): New.
6184         (delete_unmarked_insns): Skip debug insns.
6185         (prescan_insns_for_dce): Likewise.
6186         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
6187         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
6188         active reg can be found.
6189         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
6190         (convert_regs_1): Use it.
6191
6192 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
6193
6194         * tree-pretty-print.c (dump_function_header): Add flags.
6195         Don't dump decl_uid with nouid.
6196         * tree-pretty-print.h (dump_function_header): Adjust.
6197         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
6198         * passes.c (pass_init_dump_file): Pass dump_flags on.
6199         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
6200
6201 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
6202
6203         PR bootstrap/49270
6204         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
6205
6206 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
6207
6208         PR tree-optimization/49243
6209         * calls.c (setjmp_call_p): Also check if fndecl has the
6210         returns_twice attribute.
6211
6212 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6213
6214         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
6215         -ffast-math etc.
6216
6217 2011-06-06  Richard Henderson  <rth@redhat.com>
6218             Georg-Johann Lay  <avr@gjlay.de>
6219
6220         PR target/42210
6221         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
6222         New predicates.
6223         * config/avr/avr.md ("insv"): New insn expander.
6224         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
6225         "*insv.not.io", "*insv.reg"): New insns.
6226
6227 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
6228
6229         PR target/49285
6230         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
6231         to nonimmediate_operand from memory_operand for the operand that is to
6232         be forced to memory by the expander.  Lose the constraints.
6233
6234 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
6235
6236         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
6237         EH return when delayed branches are disabled.
6238
6239 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
6240
6241         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
6242         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
6243         calculation.
6244         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
6245         Simplify MODE_V1DF and MODE_V2SF handling.
6246         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
6247         Simplify MODE_SF handling.
6248
6249 2011-06-04  Jan Hubicka  <jh@suse.cz>
6250
6251         PR tree-optimization/48893
6252         PR tree-optimization/49091
6253         PR tree-optimization/49179
6254         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
6255         Bounds check.
6256
6257 2011-06-04  Jan Hubicka  <jh@suse.cz>
6258
6259         PR lto/48954
6260         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
6261         bitmaps.
6262
6263 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
6264
6265         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
6266
6267 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
6268
6269         PR target/49281
6270         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
6271         to be strictly smaller than 1 << shiftcount.
6272
6273 2011-06-04  Jan Hubicka  <jh@suse.cz>
6274
6275         PR tree-optimize/48929
6276         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
6277         of empty predicate.
6278
6279 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
6280
6281         PR debug/48333
6282         * calls.c (emit_call_1): Prefer the __builtin declaration of
6283         builtin functions.
6284
6285 2011-06-03   Diego Novillo  <dnovillo@google.com>
6286
6287         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
6288         (lto_input_tree_pointers): Likewise.
6289         * lto-streamer-out.c (pack_value_fields): Likewise.
6290         (lto_output_tree_pointers): Likewise.
6291         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
6292         and OPTIMIZATION_NODE.
6293
6294 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6295
6296         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
6297         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
6298         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
6299         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
6300         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
6301         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
6302         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
6303         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
6304         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
6305         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
6306         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
6307         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
6308         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
6309         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
6310         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
6311         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
6312         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
6313         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
6314         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
6315         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
6316         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
6317         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
6318         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
6319         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
6320         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
6321         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
6322         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
6323         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
6324         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
6325         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
6326         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
6327         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
6328         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
6329         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
6330         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
6331         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
6332         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
6333         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
6334         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
6335         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
6336         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
6337         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
6338         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
6339         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
6340         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
6341         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
6342         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
6343         * system.h (MD_UNWIND_SUPPORT): Poison.
6344         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
6345         * doc/tm.texi: Regenerate.
6346         * unwind-dw2.c: Include md-unwind-support.h instead of
6347         MD_UNWIND_SUPPORT.
6348         * config/ia64/unwind-ia64.c: Likewise.
6349         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
6350
6351 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
6352
6353         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
6354
6355 2011-06-03  Richard Henderson  <rth@redhat.com>
6356             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6357
6358         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
6359         (sigill_hdlr): Correct insn, insn size.
6360         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
6361
6362 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6363
6364         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
6365         t-slibgcc-dummy.
6366         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
6367         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
6368         * config/mips/t-iris: Remove.
6369         * config/mips/t-irix6: New file.
6370         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
6371
6372 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6373
6374         * Makefile.in (LIB2ADDEHDEP): Remove.
6375         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
6376         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
6377         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
6378         * config/t-darwin (LIB2ADDEHDEP): Remove.
6379         * config/t-freebsd (LIB2ADDEHDEP): Remove.
6380         * config/t-linux (LIB2ADDEHDEP): Remove.
6381
6382 2011-06-03  Diego Novillo  <dnovillo@google.com>
6383
6384         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
6385         (lto_register_var_decl_in_symtab): Likewise.
6386         (lto_register_function_decl_in_symtab): Likewise.
6387         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
6388         logic to uniquify_nodes.
6389
6390 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6391
6392         * config/alpha/t-osf5: Remove.
6393         * config/alpha/t-osf-pthread: Remove.
6394         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
6395         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
6396
6397 2011-06-03  Julian Brown  <julian@codesourcery.com>
6398
6399         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
6400         (strongarm1110): Use strongarm tuning.
6401         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
6402         * config/arm/arm.c (arm_strongarm_tune): New.
6403         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
6404         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
6405         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
6406         setting, using previous defaults or 1 for Cortex-A5.
6407         (arm_option_override): Set max_insns_skipped from current tuning.
6408
6409 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
6410
6411         * doc/install.texi (Options specification): Document --with-specs.
6412
6413 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6414
6415         * config/arm/neon.md (orndi3_neon): Actually split it.
6416
6417 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
6418
6419         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
6420         * var-tracking.c (reverse_op): Limite recurse depth to 5.
6421
6422 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
6423
6424         PR debug/47590
6425         * target.def (delay_sched2, delay_vartrack): New.
6426         * doc/tm.texi.in: Update.
6427         * doc/tm.texi: Rebuild.
6428         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
6429         * var-tracking.c (gate_handle_var_tracking): Likewise.
6430         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
6431         (bfin_flag_var_tracking): Drop.
6432         (output_file_start): Don't save and override flag_var_tracking.
6433         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
6434         (bfin_reorg): Test original variables.
6435         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
6436         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
6437         (ia64_flag_var_tracking): Drop.
6438         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
6439         (ia64_file_start): Don't save and override flag_var_tracking.
6440         (ia64_override_options_after_change): Ditto
6441         flag_schedule_insns_after_reload.
6442         (ia64_reorg): Test original variables.
6443         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
6444         (picochip_flag_var_tracking): Drop.
6445         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
6446         (picochip_option_override): Don't save and override
6447         flag_schedule_insns_after_reload.
6448         (picochip_asm_file_start): Ditto flag_var_tracking.
6449         (picochip_reorg): Test original variables.
6450         * config/spu/spu.c (spu_flag_var_tracking): Drop.
6451         (TARGET_DELAY_VARTRACK): Define.
6452         (spu_var_tracking): New.
6453         (spu_machine_dependent_reorg): Call it.
6454         (asm_file_start): Don't save and override flag_var_tracking.
6455
6456 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
6457
6458         PR target/49163
6459         * config/sh/predicates.md (general_movsrc_operand): Return 0
6460         for memory and memory subreg of which address is an invalid
6461         indexed address for QI and HImode.
6462         (general_movdst_operand): Likewise.
6463
6464 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
6465
6466         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
6467         edges only, when there is a non-local label in the function.
6468         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
6469
6470 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
6471
6472         * config/i386/constraints.md (Y3): New register constraint.
6473         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
6474         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
6475         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
6476         *sse2_interleave_lowv2df.
6477
6478 2011-06-02  Julian Brown  <julian@codesourcery.com>
6479
6480         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
6481         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
6482         (arm_cortex_a5_tune): New.
6483
6484 2011-06-02  Julian Brown  <julian@codesourcery.com>
6485
6486         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
6487         * config/arm/arm.c (arm_default_branch_cost): New.
6488         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
6489         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
6490         (arm_fa726_tune): Set branch_cost field using
6491         arm_default_branch_cost.
6492         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
6493         current_tune structure.
6494         * dojump.c (tm_p.h): Include file.
6495
6496 2011-06-02  Julian Brown  <julian@codesourcery.com>
6497
6498         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
6499         tuning.
6500         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
6501         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
6502         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
6503         field.
6504         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
6505         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
6506         (arm_fa726te_tune): Add prefer_constant_pool setting.
6507         (arm_v6t2_tune, arm_cortex_tune): New.
6508         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
6509         prefer_constant_pool setting.
6510
6511 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
6512
6513         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
6514         switch statement.
6515         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
6516         (*movdf_internal) <case 6,7,8>: Ditto.
6517
6518         * config/i386/constraints.md (Y4): New register constraint.
6519         * config/i386/sse.md (vec_set<mode>_0): Merge with
6520         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
6521         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
6522         *vec_extractv2di_1_sse.
6523         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
6524         and *vec_concatv2di_rex64_sse.
6525
6526 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
6527
6528         PR target/48807
6529         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
6530         of cgraph_local_info for null before attempting to use it.
6531
6532 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
6533
6534         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
6535         (current_function_dynamic_alloc_count): Delete.
6536         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
6537         (expand_builtin_nonlocal_goto): Remove obsolete comment.
6538         (expand_builtin_update_setjmp_buf): Remove dead code.
6539         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
6540         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
6541         support.
6542         * function.c (instantiate_virtual_regs): Likewise.
6543         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
6544         for a block with a single abnormal incoming edge.
6545         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
6546         (SETJMP_VIA_SAVE_AREA): Delete.
6547         * config/sparc/sparc-protos.h (load_got_register): Declare.
6548         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
6549         (load_got_register): Make global.
6550         (sparc_frame_pointer_required): Add 'static'.
6551         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
6552         (sparc_builtin_setjmp_frame_value): New function.
6553         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
6554         (save_stack_nonlocal): New expander.
6555         (restore_stack_nonlocal): Likewise.
6556         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
6557         (nonlocal_goto_internal): New insn.
6558         (goto_handler_and_restore): Delete.
6559         (builtin_setjmp_setup): Likewise.
6560         (do_builtin_setjmp_setup): Likewise.
6561         (setjmp): Likewise.
6562         (builtin_setjmp_receiver): New expander.
6563
6564 2011-06-01  David Li  <davidxl@google.com>
6565
6566         PR middle-end/49261
6567         * tree-pretty-print.c (dump_function_header): Format cleanup.
6568
6569 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
6570
6571         PR target/49238
6572         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
6573         needed when original operands are used for msw_skip comparison.
6574
6575 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
6576
6577         PR debug/49250
6578         * var-tracking.c (add_uses, add_stores): Don't call
6579         cselib_subst_to_values on ENTRY_VALUE.
6580
6581 2011-06-01  Diego Novillo  <dnovillo@google.com>
6582
6583         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
6584         output_record_start with LTO_null instead of output_zero.
6585         (lto_output_ts_binfo_tree_pointers): Likewise.
6586         (lto_output_tree): Likewise.
6587         (output_eh_try_list): Likewise.
6588         (output_eh_region): Likewise.
6589         (output_eh_lp): Likewise.
6590         (output_eh_regions): Likewise.
6591         (output_bb): Likewise.
6592         (output_function): Likewise.
6593         (output_unreferenced_globals): Likewise.
6594         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
6595         instead of NUM_TREE_CODES.
6596         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
6597         (lto_output_int_in_range): Change << to >> when shifting VAL.
6598
6599 2011-06-01  Diego Novillo  <dnovillo@google.com>
6600
6601         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
6602         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
6603
6604 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
6605
6606         PR target/45074
6607         * optabs.h (valid_multiword_target_p): Declare.
6608         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
6609         doing multi-word operations.
6610         * optabs.c (expand_binop): Likewise.
6611         (expand_doubleword_bswap): Likewise.
6612         (expand_absneg_bit): Likewise.
6613         (expand_unop): Likewise.
6614         (expand_copysign_bit): Likewise.
6615         (multiword_target_p): New function.
6616
6617 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
6618
6619         PR rtl-optimization/48830
6620         PR rtl-optimization/48808
6621         PR rtl-optimization/48792
6622         * reload.c (push_reload): Check contains_reg_of_mode.
6623         * reload1.c (strip_paradoxical_subreg): New function.
6624         (gen_reload_chain_without_interm_reg_p): Use it to handle
6625         paradoxical subregs.
6626         (emit_output_reload_insns, gen_reload): Likewise.
6627
6628 2011-06-01  David Li  <davidxl@google.com>
6629
6630         * predict.c : Change pass name
6631         * ipa.c: Ditto.
6632         * dce.c: Ditto.
6633         * tree-profile.c: Ditto.
6634         * except.c: Ditto.
6635
6636 2011-06-01  David Li  <davidxl@google.com>
6637
6638         * tree-pretty-print.c (dump_function_header): New function.
6639         * final.c (rest_of_clean_state): Use header dumper.
6640         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
6641         * passes.c (pass_init_dump_file): Use header dumper.
6642
6643 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
6644
6645         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
6646         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
6647         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
6648         New functions.
6649         (mem_loc_descriptor): Use them.
6650
6651         * var-tracking.c (create_entry_value): New function.
6652         (vt_add_function_parameter): Use it.
6653
6654 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6655
6656         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
6657         Include <signal.h>, <ucontext.h>.
6658         (sigill_caught): Define.
6659         (sigill_hdlr): New function.
6660         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
6661         insns can be executed.
6662         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
6663         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
6664
6665 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6666
6667         * config/t-slibgcc-darwin: Move to ...
6668         * config/t-slibgcc-dummy: ... this.  Clarify comments.
6669         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
6670         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
6671         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
6672         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
6673         Remove i386/t-crtstuff from tmake_file.
6674         (i[34567]86-*-solaris2*): Remove t-svr4,
6675         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
6676         t-slibgcc-dummy.
6677         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
6678         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
6679         sparc/t-crtfm from tmake_file.
6680         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
6681         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
6682         Remove extra_parts.
6683         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
6684         * config/i386/t-nwld (SHLIB_LINK): Remove.
6685         * config/i386/t-rtems-i386: Rename to ...
6686         * config/i386/t-rtems: ... this.
6687         ($(T)crti.o, $(T)crtn.o): Remove.
6688         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
6689         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
6690         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
6691         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
6692         EXTRA_MULTILIB_PARTS): Remove.
6693         * config/sparc/t-sol2-64: Likewise.
6694         * config/sparc/t-sol2: Remove.
6695         * config/sparc/t-crtin: Remove.
6696         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
6697         * config/i386/gmon-sol2.c: Remove.
6698         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
6699         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
6700         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
6701         * config/i386/sol2-gc1.asm: Remove.
6702         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
6703         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
6704         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
6705         * config/t-slibgcc-sld: Remove.
6706
6707 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
6708
6709         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
6710         base_type_for_mode with op_mode instead of mode.
6711
6712 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
6713
6714         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
6715         Cortex-A15.
6716         * config/arm/arm-tune.md: Regenerate.
6717         * config/arm/arm-tables.opt: Regenerate.
6718         * config/arm/arm.c (FL_DIV): Rename...
6719         (FL_THUMB_DIV): ... to this.
6720         (FL_ARM_DIV): Define.
6721         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
6722         (arm_arch_hwdiv): Remove.
6723         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
6724         (arm_issue_rate): Add cortexr5.
6725         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
6726         __ARM_ARCH_EXT_IDIV__.
6727         (TARGET_IDIV): Define.
6728         (arm_arch_hwdiv): Remove.
6729         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
6730         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
6731         (divsi3, udivsi3): New patterns.
6732         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
6733         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
6734
6735 2011-06-01  Martin Jambor  <mjambor@suse.cz>
6736
6737         * ipa-utils.c (ipa_dfs_info): New field scc_no.
6738         * ipa-utils.c (searchc): Set scc_no.
6739
6740 2011-06-01  Martin Jambor  <mjambor@suse.cz>
6741
6742         * ipa-utils.c (searchc_env): New field allow_overwritable.
6743         (searchc): do not ignore edges to overwritable nodes if indicated
6744         by env->allow_overwritable.
6745         (ipa_reduced_postorder): Set env.allow_overwritable.
6746
6747 2011-06-01  Richard Guenther  <rguenther@suse.de>
6748
6749         * tree.c (free_lang_data): Do not reset boolean_type_node nor
6750         char_type_node.
6751         * lto-streamer.c (lto_record_common_node): Take node pointer,
6752         do not register types.
6753         (lto_preload_common_nodes): Explicitly skip preloading nodes
6754         that differ between frontends.
6755
6756 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
6757
6758         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
6759         NON_FLOAT_REGS.
6760
6761 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
6762
6763         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
6764         parameter value for dump. Dump cost on outermost call only.
6765         (rs6000_memory_move_cost): Dump cost on outermost call only.
6766
6767 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
6768
6769         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
6770         DW_OP_GNU_convert ops.
6771
6772         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
6773         cselib_preserve_constants.
6774         (cselib_lookup_1): If cselib_preserve_constants,
6775         a new VALUE is being created for REG and there is a VALUE for the
6776         same register in wider mode, add another loc with lowpart SUBREG of
6777         the wider VALUE.
6778         (cselib_subst_to_values): Handle ENTRY_VALUE.
6779         * var-tracking.c  (replace_expr_with_values): Return NULL for
6780         ENTRY_VALUE too.
6781         * dwarf2out.c (convert_descriptor_to_signed): New function.
6782         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
6783         instead of two shifts.
6784         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
6785         the right mode if needed.
6786         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
6787         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
6788         convert_descriptor_to_signed.
6789         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
6790         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
6791
6792         PR target/48688
6793         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
6794
6795 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
6796
6797         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
6798         of X87MODEI12 and SWI48x instead of SSEMODEI24.
6799         (SWI248x): New mode iterator, rename from X87MODEI.
6800         (X87MODEI): Remove mode iterator.
6801         (X87MODEI12): Ditto.
6802         (SSEMODEI24): Ditto.
6803
6804 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
6805
6806         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
6807         * doc/invoke.texi: Document max-vartrack-expr-depth.
6808         * var-tracking.c (EXPR_DEPTH): New.
6809         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
6810
6811 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
6812
6813         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
6814         * config/i386/sse.md: Add n to negated FMA pattern names.
6815
6816 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
6817
6818         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
6819
6820 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
6821
6822         * gengtype-state.c (read_state_params_structs): Initialize previous.
6823
6824 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
6825
6826         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
6827         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
6828
6829 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
6830
6831         * config/i386/i386.md (*movtf_internal): Avoid allocating general
6832         registers.  Penalize F*r->o alternative to prevent partial memory
6833         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
6834         CONST_DOUBLE immediates when optimizing function for size.  Do not move
6835         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6836         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
6837         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
6838         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
6839         alternatives.
6840         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
6841
6842         (fp_register_operand splitters): Use fp_register_operand
6843         constraint.  Do not use FP_REG_P in insn condition.
6844         (any_fp_register_operand splitters): Use any_fp_register_operand
6845         constraint.  Do not use ANY_FP_REG_P in insn condition.
6846
6847 2011-05-31  Jan Hubicka  <jh@suse.cz>
6848
6849         * cgraph.h (cgraph_inline_failed_t): Give enum a name
6850         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
6851         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
6852         (lto_output_edge): Use output_enum and var_len_unsigned.
6853         (lto_output_varpool_node): Likewise.
6854         (input_overwrite_node): Do not take resolution parameter;
6855         extract it from a bitpack.
6856         (input_node): Do not read resolution; use input_enum and
6857         var_len_unsigned.
6858         (input_varpool_node): Likewise.
6859         (input_edge): Likewise.
6860         (input_cgraph_1): Likewise.
6861
6862 2011-05-31  Richard Guenther  <rguenther@suse.de>
6863
6864         * gimple.c (gimple_register_canonical_type): Do not register
6865         any types via gimple_register_type.
6866
6867 2011-05-31  Jan Hubicka  <jh@suse.cz>
6868
6869         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
6870         of thunks.
6871
6872 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
6873
6874         PR rtl-optimization/49235
6875         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
6876         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
6877
6878 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
6879
6880         PR tree-optimization/49093
6881         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
6882         data references.
6883
6884 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
6885
6886         PR debug/49047
6887         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
6888         for concrete functions containing the code of cloned functions.
6889
6890 2011-05-31  Richard Guenther  <rguenther@suse.de>
6891
6892         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
6893         to ...
6894         (forward_propagate_into_comparison_1): ... this.
6895         (forward_propagate_comparison): Rename to ...
6896         (forward_propagate_into_comparison): ... this.  Split out
6897         real forward propagation code to ...
6898         (forward_propagate_comparison): ... this.
6899         (forward_propagate_into_gimple_cond): Remove looping.
6900         (forward_propagate_into_cond): Likewise.
6901         (simplify_not_neg_expr): Return whether we have done something.
6902         (simplify_gimple_switch): Likewise.
6903         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
6904         (ssa_forward_propagate_and_combine): ... this.  Re-structure
6905         to do a forward forward-propagation walk on BBs and a backward
6906         stmt combining walk on BBs.  Consistently re-scan changed statements.
6907         (pass_forwprop): Adjust.
6908
6909 2011-05-30  Ian Lance Taylor  <iant@google.com>
6910
6911         * godump.c (go_format_type): Correct length of name added to
6912         obstack for anonymous field.
6913
6914 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
6915
6916         PR target/49186
6917         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
6918         part of the second operand is 0.
6919
6920 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
6921
6922         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
6923         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
6924         to memory for !TARGET_MEMORY_MISMATCH_STALL.
6925         (*movdf_internal_rex64): Do not penalize F->r alternative.
6926         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
6927         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
6928         when optimizing function for size.  Do not move CONST_DOUBLEs
6929         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6930         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
6931         SUBREGs.  Do not check for MEM_P operands in the insn condition,
6932         check for ANY_FP_REGNO_P instead.
6933         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
6934         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
6935         function for speed.
6936         * config/i386/i386.c (ix86_option_override_internal): Do not
6937         set TARGET_INTEGER_DFMODE_MOVES here.
6938
6939 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
6940
6941         PR target/49168
6942         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
6943
6944 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
6945
6946         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
6947         DW_TAG_rvalue_reference_type even for
6948         -gdwarf-4 -fno-debug-types-section.
6949
6950 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6951
6952         PR tree-optimization/46728
6953         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
6954         (build_and_insert_binop): New.
6955         (gimple_expand_builtin_pow): Reorder args for
6956         build_and_insert_call; use build_and_insert_binop; add more
6957         optimizations for fractional exponents.
6958
6959 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
6960
6961         PR bootstrap/49190
6962
6963         Revert:
6964         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
6965
6966         * tree.h (struct tree_identifier): Inherit from tree_typed, not
6967         tree_common.
6968         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
6969         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
6970         TS_BASE instead of TS_COMMON.
6971         * varasm.c (assemble_name): Remove assert.
6972
6973 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
6974
6975         * config.gcc: Keep obselete list sorted.
6976
6977 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
6978             Eric Botcazou  <ebotcazou@adacore.com>
6979
6980         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
6981         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
6982         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
6983         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
6984         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
6985
6986 2011-05-30  Richard Guenther  <rguenther@suse.de>
6987
6988         * gimple.c (gimple_types_compatible_p_1): Compare record
6989         and union type members properly.
6990
6991 2011-05-30  Richard Guenther  <rguenther@suse.de>
6992
6993         PR tree-optimization/49210
6994         * ipa-split.c (split_function): Care for the case where the call
6995         result is not trivially convertible to the result holding variable.
6996
6997 2011-05-30  Richard Guenther  <rguenther@suse.de>
6998
6999         PR tree-optimization/49218
7000         * tree-vrp.c (adjust_range_with_scev): Properly check whether
7001         overflow occured.
7002
7003 2011-05-30  Richard Guenther  <rguenther@suse.de>
7004
7005         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
7006         New function split out from ...
7007         (forward_propagate_into_gimple_cond): ... here.  Adjust.
7008         (forward_propagate_into_cond): Likewise.
7009         (forward_propagate_comparison): Also propagate into
7010         comparisons on assignment RHS.  Change return value to
7011         behave similar to forward_propagate_into_cond.
7012         (tree_ssa_forward_propagate_single_use_vars): Handle
7013         strict-overflow warnings properly for forward_propagate_comparison.
7014
7015 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7016
7017         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
7018         from plugin linker.
7019         * configure: Regenerate.
7020
7021 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
7022
7023         PR tree-optimization/49199
7024         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
7025         non-reduction operands are either defined in the loop or by induction.
7026
7027 2011-05-29  Xinliang David Li  <davidxl@google.com>
7028
7029         * opts-global.c (handle_common_deferred_options): Handle new options.
7030         * passes.c (register_one_dump_file): Call register_pass_name.
7031         (execute_one_pass): Check explicit enable/disable flag.
7032         (passr_hash): New function.
7033         (passr_eq): Ditto.
7034         (register_pass_name): Ditto.
7035         (get_pass_by_name): Ditto.
7036         (pass_hash): Ditto.
7037         (pass_eq): Ditto.
7038         (enable_pass): Ditto.
7039         (disable_pass): Ditto.
7040         (is_pass_explicitly_enabled_or_disabled): Ditto.
7041
7042 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
7043
7044         * config/i386/i386.md (*movoi_internal_avx): Use
7045         standard_sse_constant_opcode for alternative 0.
7046         (*movti_internal_sse): Ditto.
7047         (*movti_internal_rex64): Use standard_sse_constant_opcode for
7048         alternative 2.
7049         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
7050         sselog1 type moves.
7051         (*movsi_internal): Ditto.
7052         (*movdi_internal): Ditto.  Add ssecvt type moves.
7053
7054 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
7055
7056         PR target/48830
7057         * rtlanal.c (simplify_subreg_regno): Adjust comment.
7058
7059 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
7060
7061         PR rtl-optimization/49095
7062         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
7063         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
7064
7065 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
7066
7067         PR target/43995
7068         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
7069         recurse_p argument.  Only follow register copies if it is set,
7070         and prevent mips_find_pic_call_symbol from recursing.
7071         (mips_find_pic_call_symbol): Add a recurse_p argument.
7072         Pass it to mips_pic_call_symbol_from_set.
7073         (mips_annotate_pic_calls): Update accordingly.
7074
7075 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
7076
7077         * emit-rtl.c (try_split): Use a loop to search for
7078         NOTE_INSN_CALL_ARG_LOCATIONs.
7079
7080 2011-05-29  Richard Guenther  <rguenther@suse.de>
7081
7082         PR tree-optimization/49217
7083         * ipa-pure-const.c (propagate_pure_const): Fix typos.
7084
7085 2011-05-28  Jan Hubicka  <jh@suse.cz>
7086
7087         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
7088         length.
7089         (string_slot_free): Remove
7090         (create_output_block): Initialize obstack.
7091         (destroy_output_block): Free obstack.
7092         (lto_string_index): Add PERSISTENT parameter; do not duplicate
7093         the string unless it needs to be added into the hash.
7094         (lto_output_string_with_length): Add persistent attribute;
7095         handle NULL strings.
7096         (lto_output_string): Add PERSISTENT parameter.
7097         (output_string_cst, output_identifier): Simplify.
7098         (lto_output_location_bitpack): Update.
7099         (lto_output_builtin_tree): Update.
7100         * lto-streamer.h (struct output_block): Add obstack.
7101         (lto_output_string, lto_output_string_with_length): Remove
7102         declarations; functions are static now.
7103
7104 2011-05-28  Jan Hubicka  <jh@suse.cz>
7105
7106         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
7107         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
7108         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
7109         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
7110         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
7111         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
7112         unpack_ts_decl_with_vis_value_fields,
7113         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
7114         lto_get_builtin_tree): Use enum and variable length i/o.
7115         * basic-block.h (profile_status_d): Add PROFILE_LAST.
7116         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
7117         New functions.
7118         (bp_pack_enum, bp_unpack_enum): New macros.
7119
7120 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
7121
7122         * genrecog.c: Remove redundant forward declarations.
7123
7124 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
7125
7126         * config.gcc: Deprecate mips*-*-openbsd*.
7127
7128 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
7129
7130         PR bootstrap/49195
7131         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
7132         for match_op_dup.
7133
7134 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
7135
7136         PR middle-end/48981
7137         * gengtype.c (vec_prefix_type): New function.
7138         (note_def_vec): Use vec_prefix_type and change the length
7139         attribute to be based on the prefix.
7140         * vec.c: Include coretypes.h before vec.h.
7141         (struct vec_prefix): Remove.
7142         (vec_gc_p_reserve): Change the offsetof to sizeof.
7143         (vec_gc_p_reserve_exact): Likewise.
7144         (vec_heap_p_reserve): Likewise.
7145         (vec_heap_p_reserve_exact): Likewise.
7146         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
7147         (vec_stack_p_reserve): Change the offsetof to sizeof.
7148         (vec_stack_p_reserve_exact): Likewise.
7149         * vec.h (struct vec_prefix): New struct definition.
7150         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
7151         (VEC_T_GTY(T,B)): Likewise.
7152         (DEF_VEC_FUNC_P(T)): Use prefix field.
7153         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
7154         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
7155
7156 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7157
7158         PR tree-optimization/46728
7159         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
7160         (powi_as_mults): Add gimple_set_location.
7161         (build_and_insert_call): New.
7162         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
7163         0.5, 0.25, 0.75, 1./3., or 1./6.
7164
7165 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
7166
7167         * doc/contrib.texi: Update copyright years.
7168         (Contributors): Add Zdenek Sojka.
7169
7170 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
7171
7172         * c-decl.c (c_push_function_context): Copy the current statement
7173         list stack.
7174         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
7175         (finish_struct): Call building_stmt_list_p instead of checking
7176         cur_stmt_list.
7177         * c-parser.c (c_parser_postfix_expression): Likewise.
7178         * c-typeck.c (c_end_compound_stmt): Likewise.
7179         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
7180         * tree-iterator.c (stmt_list_cache): Change to a VEC.
7181         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
7182         (free_stmt_list): Likewise.
7183         * tree.h (struct tree_statement_list): Include typed_tree instead
7184         of tree_common.
7185         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
7186         as TS_TYPED instead of TS_COMMON.
7187
7188 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7189             Uros Bizjak  <ubizjak@gmail.com>
7190
7191         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
7192         (HAVE_AS_IX86_TLSGDPTL): Define.
7193         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
7194         (HAVE_AS_IX86_TLSLDMPLT): Define.
7195         * configure: Regenerate.
7196         * config.in: Regenerate.
7197         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
7198         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
7199         TARGET_SUN_TLS, use @tlsgdplt or @plt.
7200         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
7201         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
7202         @tlsldmplt or @plt.
7203         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
7204
7205 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
7206
7207         * sched-int.h (struct _haifa_deps_insn_data): New members cond
7208         and reverse_cond.
7209         (INSN_COND, INSN_REVERSE_COND): New macros.
7210         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
7211         once.
7212         (sched_get_condition_with_rev): Cache the results, and look them up
7213         if possible.
7214         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
7215         are clobbered by the current insn.
7216         * target.def (exposed_pipline): New sched data hook.
7217         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
7218         * doc/tm.texi: Regenerate.
7219
7220 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7221
7222         PR tree-optimization/49170
7223         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
7224         sincos or cexp.
7225
7226 2011-05-27  Richard Guenther  <rguenther@suse.de>
7227
7228         PR middle-end/49189
7229         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
7230         of comparisons.
7231
7232 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
7233
7234         * haifa-sched.c (sched_scan_info): Remove.
7235         (schedule_block): Call sched_extend_luids rather than sched_init_luids
7236         with NULL args.
7237         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
7238         Remove functions.
7239         (sched_scan): Remove.
7240         (sched_extend_luids): Renamed from luids_extend_insn and no longer
7241         static.  All callers changed.
7242         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
7243         static.  All callers changed.
7244         (sched_init_luids): Remove all arguments except the first.  All
7245         callers changed.  Don't use sched_scan.
7246         (haifa_init_h_i_d): Likewise.
7247         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
7248         manually rather than using sched_init_luids.  Likewise with
7249         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
7250         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
7251         rather than sched_init_luids with NULL args.
7252         * sel-sched-ir.c (new_insns): Remove variable.
7253         (sched_scan): New static function, previously in haifa-sched.c.  Remove
7254         all arguments but the first two; all callers changed.
7255         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
7256         rather than sched_init_luids.
7257         (sel_init_bbs): Remove second argument.  All callers changed.
7258         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
7259         with NULL arguments.
7260         (create_insn_rtx_from_pattern): Likewise.
7261         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
7262         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
7263         (sched_init_insn_luid, sched_extend_luids): Declare.
7264         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
7265         declarations.
7266
7267 2011-05-27  Richard Guenther  <rguenther@suse.de>
7268
7269         PR middle-end/49177
7270         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
7271         A CMP B ? (T) true : (T) false for non-integral types T again.
7272
7273 2011-05-27  Jan Hubicka  <jh@suse.cz>
7274
7275         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
7276         so 0 means NULL string.
7277         (lto_output_string_with_length): ... here.
7278         (lto_output_string, output_string_cst, output_identifier): Update
7279         handling of NULL strings.
7280         (lto_output_location_bitpack): New function.
7281         (lto_output_location): Use it.
7282         (lto_output_tree_ref): Use output_record_start.
7283         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
7284         len values.
7285         * lto-streamer-in.c (string_for_index): Break out from ...; offset
7286         values by 1.
7287         (input_string_internal): ... here;
7288         (input_string_cst, input_identifier, lto_input_string): Update handling
7289         of NULL strings.
7290         (lto_input_location_bitpack): New function
7291         (lto_input_location): Use it.
7292         (unpack_ts_type_common_value_fields): Pack align & alias in var len
7293         values.
7294         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
7295         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
7296         (bp_pack_value): Sanity check the value range.
7297         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
7298         New functions.
7299         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
7300         New functions.
7301
7302 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
7303
7304         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
7305         call_arg_location instructions down the floor.
7306
7307 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
7308
7309         PR rtl-optimization/49154
7310         * ira.c (setup_pressure_classes): Process class without sublcasses
7311         as a candidate for pressure classes.
7312
7313 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
7314
7315         PR rtl-optimization/48575
7316         * genrecog.c (position_type): New enum.
7317         (position): New structure.
7318         (decision): Use position structure instead of a string.
7319         (root_pos, peep2_insn_pos_list): New variables.
7320         (next_position, compare_positions): New functions.
7321         (new_decision): Use position structures instead of strings.
7322         (maybe_both_true): Likewise.
7323         (change_state): Likewise.
7324         (write_tree): Likewise.
7325         (make_insn_sequence): Likewise.
7326
7327 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
7328
7329         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
7330         TS_BASE instead of TS_COMMON.
7331         (find_decls_types_r): Check for TS_TYPED structure before looking at
7332         TREE_TYPE.
7333         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
7334         Add chain field.
7335         (BLOCK_CHAIN): Use new chain field.
7336
7337 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
7338
7339         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
7340         moves expensive on Power7 also.
7341
7342 2011-05-26  Richard Guenther  <rguenther@suse.de>
7343
7344         * fold-const.c (fold_unary_loc): Remove bogus code.
7345
7346 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
7347
7348         * tree.h (struct tree_identifier): Inherit from tree_typed, not
7349         tree_common.
7350         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
7351         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
7352         TS_BASE instead of TS_COMMON.
7353         * varasm.c (assemble_name): Remove assert.
7354
7355 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
7356
7357         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
7358         substituted first.
7359         * libgcc-std.ver: Delete file.
7360
7361 2011-05-26  Richard Guenther  <rguenther@suse.de>
7362
7363         PR tree-optimization/48702
7364         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
7365         only when we know the base address is within bounds.
7366         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
7367         assume the base address of TARGET_MEM_REFs is in bounds.
7368
7369 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7370
7371         PR target/49099
7372         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
7373         declaration in TARGET_SOLARIS.
7374
7375 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
7376
7377         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
7378         The instruction is then expanded explicitly.
7379         (supported_compare): Callable instruction.
7380         (compare): Likewise.
7381
7382 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
7383
7384         PR c++/49165
7385         * gimplify.c (shortcut_cond_r): Don't special case
7386         COND_EXPRs if they have void type on one of their arms.
7387
7388 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
7389
7390         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
7391         to reduce duplication, and to achieve a slightly more logical order
7392         of operations.
7393
7394 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
7395
7396         PR tree-optimization/49161
7397         * tree-vrp.c (struct case_info): New type.
7398         (compare_case_labels): Sort case_info structs instead of
7399         trees, and not primarily by CASE_LABEL uids but by
7400         label_for_block indexes.
7401         (find_switch_asserts): Put case labels into struct case_info
7402         array instead of TREE_VEC, adjust sorting, compare label_for_block
7403         values instead of CASE_LABELs.
7404
7405 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7406
7407         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
7408         ("orndi3_neon"): Likewise.
7409         ("bic<mode>3_neon"): Likewise.
7410
7411 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
7412
7413         PR tree-optimization/49038
7414         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
7415         Ensure at least one epilogue iteration if required by data
7416         accesses with gaps.
7417         * tree-vectorizer.h (struct _loop_vec_info): Add new field
7418         to mark loops that require peeling for gaps.
7419         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
7420         (vect_get_known_peeling_cost): Take peeling for gaps into
7421         account.
7422         (vect_transform_loop): Generate epilogue if required by data
7423         access with gaps.
7424         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
7425         loop as requiring an epilogue if there are gaps in the end of
7426         the strided group.
7427
7428 2011-05-25  Ian Lance Taylor  <iant@google.com>
7429
7430         * godump.c (go_format_type): Output the first field with a usable
7431         Go type, if any.
7432
7433 2011-05-25  Ian Lance Taylor  <iant@google.com>
7434
7435         * godump.c (go_format_type): Check for invalid type names, pointer
7436         target types, and struct field types.
7437
7438 2011-05-25  Jason Merrill  <jason@redhat.com>
7439
7440         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
7441
7442 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
7443
7444         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
7445
7446 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
7447
7448         * config/i386/i386.md (*movqi_extv_1)): Put back
7449         "register_operand" check in "type" calculation.
7450         (*movqi_extzv_2): Likewise.
7451
7452 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
7453
7454         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
7455
7456 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
7457
7458         PR bootstrap/49160
7459         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
7460         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
7461         __divxc3, __divtc3): Wrap definitions in #ifndef.
7462
7463 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
7464
7465         PR target/49142
7466         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
7467         "register_operand" check and replace q_regs_operand with
7468         QIreg_operand in "type" calculation.
7469         (*movqi_extv_1): Likewise.
7470         (*movqi_extzv_2_rex64): Likewise.
7471         (*movqi_extzv_2): Likewise.
7472
7473         * config/i386/predicates.md (QIreg_operand): New.
7474
7475 2011-05-25  Richard Guenther  <rguenther@suse.de>
7476
7477         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
7478         type-based offset disambiguation, streamline MEM_REF and
7479         TARGET_MEM_REF handling.
7480
7481 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
7482
7483         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
7484         (bdesc_special_args): Add pause intrinsic.
7485
7486         * config/i386/i386.md (UNSPEC_PAUSE): New.
7487         (pause): Likewise.
7488         (*pause): Likewise.
7489         * config/i386/ia32intrin.h (__pause): Likewise.
7490
7491         * doc/extend.texi (X86 Built-in Functions): Add documentation for
7492         pause intrinsic.
7493
7494 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7495
7496         PR tree-optimization/46728
7497         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
7498         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
7499
7500 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
7501
7502         * tree.h (struct tree_exp): Inherit from struct tree_typed.
7503         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
7504         instead of TS_COMMON.
7505
7506 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
7507
7508         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
7509         LIBGCC2_GNU_PREFIX is defined.
7510         (__N): New macro.
7511         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
7512         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
7513         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
7514         __clz_tab): Define using __N.
7515         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
7516         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
7517         * target.def (libfunc_gnu_prefix): New hook.
7518         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
7519         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
7520         * doc/tm.texi: Regenerate.
7521         * system.h (LIBGCC2_GNU_PREFIX): Poison.
7522         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
7523         account.
7524         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
7525         (init_optabs): Likewise for the bswap libfuncs.
7526         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
7527         and divide.
7528         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
7529         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
7530         * libgcc-std.ver: Remove.
7531         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
7532         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
7533         libgcc-std.ver.
7534         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
7535         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
7536         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
7537         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
7538         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
7539         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
7540         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
7541         * config/fixed-bit.h (FIXED_OP): Define differently depending on
7542         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
7543         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
7544
7545 2011-05-25  Jan Hubicka  <jh@suse.cz>
7546
7547         * lto-streamer-out.c (output_record_start): Use lto_output_enum
7548         (lto_output_tree): Use output_record_start.
7549         * lto-streamer-in.c (input_record_start): Use lto_input_enum
7550         (lto_get_pickled_tree): Use input_record_start.
7551         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
7552         (lto_value_range_error): New function.
7553         * lto-streamer.h (lto_value_range_error): Declare.
7554         (lto_output_int_in_range, lto_input_int_in_range): New functions.
7555         (lto_output_enum, lto_input_enum): New macros.
7556
7557 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
7558
7559         * common.opt (flag_stack_usage_info): New variable.
7560         (-Wstack-usage): New option.
7561         * doc/invoke.texi (Warning options): Document -Wstack-usage.
7562         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
7563         <OPT_fstack_usage>: Likewise.
7564         * toplev.c (output_stack_usage): Handle -Wstack-usage.
7565         * calls.c (expand_call): Test flag_stack_usage_info variable instead
7566         of flag_stack_usage.
7567         (emit_library_call_value_1): Likewise.
7568         * explow.c (allocate_dynamic_stack_space): Likewise.
7569         * function.c (instantiate_virtual_regs ): Likewise.
7570         (prepare_function_start): Likewise.
7571         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
7572         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
7573         * config/arm/arm.c (arm_expand_prologue): Likewise.
7574         (thumb1_expand_prologue): Likewise.
7575         * config/avr/avr.c (expand_prologue): Likewise.
7576         * config/i386/i386.c (ix86_expand_prologue): Likewise.
7577         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
7578         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
7579         * config/mips/mips.c (mips_expand_prologue): Likewise.
7580         * config/pa/pa.c (hppa_expand_prologue): Likewise.
7581         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
7582         * config/s390/s390.c (s390_emit_prologue): Likewise.
7583         * config/sh/sh.c (sh_expand_prologue): Likewise.
7584         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
7585         * config/spu/spu.c (spu_expand_prologue): Likewise.
7586
7587 2011-05-25  Richard Guenther  <rguenther@suse.de>
7588
7589         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
7590         (gimple_canonical_types_compatible_p): Likewise.
7591
7592 2011-05-25  Jan Hubicka  <jh@suse.cz>
7593
7594         PR middle-end/49062
7595         * ipa.c (function_and_variable_visibility): Only add to same
7596         comdat group list if DECL_ONE_ONLY.
7597
7598 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
7599
7600         PR rtl-optimization/49014
7601         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
7602
7603 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
7604
7605         PR target/49128
7606         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
7607
7608 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
7609
7610         PR rtl-optimization/48757
7611         * ira-build.c (loop_with_eh_edge_p): Rename to
7612         loop_with_complex_edge_p, check edges on complexity, make function
7613         conditional.
7614         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
7615         conditional.
7616
7617 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
7618
7619         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
7620         force flag_ira_share_save_slots to 0.
7621
7622 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
7623
7624         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
7625         (vt_initialize): Set PROLOGUE_BB unconditionally.
7626         Add block comment about CFA_BASE_RTX machinery.
7627         Reset FP_CFA_OFFSET to -1 on all invalid paths.
7628         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
7629
7630 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
7631
7632         PR objc/48187
7633         * c-parser.c (c_parser_objc_class_instance_variables): More robust
7634         parsing of syntax error in ObjC instance variable lists.  In
7635         particular, avoid an infinite loop if there is a stray ']'.
7636         Updated error message.
7637
7638 2011-05-24  Ian Lance Taylor  <iant@google.com>
7639
7640         * godump.c (go_define): Don't accept a string immediately after
7641         another operand.
7642
7643 2011-05-24  Ian Lance Taylor  <iant@google.com>
7644
7645         * godump.c (struct godump_container): Add invalid_hash field.
7646         (go_format_type): Return false if type is found in invalid_hash.
7647         (go_output_typedef): Add invalid type to invalid_hash.
7648         (go_finish): Create and delete invalid_hash.
7649
7650 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7651
7652         PR tree-optimization/46728
7653         * tree-ssa-math-opts.c (powi_table): New.
7654         (powi_lookup_cost): New.
7655         (powi_cost): New.
7656         (powi_as_mults_1): New.
7657         (powi_as_mults): New.
7658         (gimple_expand_builtin_powi): New.
7659         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
7660         (gate_cse_sincos): Remove sincos/cexp restriction.
7661
7662 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7663
7664         PR target/3746
7665         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
7666         mips-tdump native.
7667         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
7668         * mips-tdump.c: Likewise.
7669
7670 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
7671
7672         PR target/49128
7673         * config/i386/driver-i386.c (host_detect_local_cpu): Always
7674         add -mno-XXX.  Handle FMA.
7675
7676 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
7677
7678         PR rtl-optimization/48633
7679         * ira-build.c (loop_with_eh_edge_p): New function.
7680         (mark_loops_for_removal): Use it.
7681
7682 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
7683
7684         PR rtl-optimization/48971
7685         * ira.c (setup_pressure_classes): Don't check register move cost
7686         for classes with one registers.  Don't add pressure class if there
7687         is a pressure class with the same available hard registers.
7688         Check contains_reg_of_mode.  Fix a typo in collecting
7689         temp_hard_regset.  Ignore hard registers not belonging to a class.
7690
7691 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
7692
7693         PR target/49133
7694         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
7695
7696 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
7697             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7698
7699         PR gcov-profile/48845
7700         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
7701
7702 2011-05-24  Richard Guenther  <rguenther@suse.de>
7703
7704         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
7705         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
7706         (gimple_types_compatible_p_1): Adjust.
7707         (iterative_hash_canonical_type): Do not bother about complete vs.
7708         incomplete types.
7709         (gimple_canonical_types_compatible_p): Likewise.
7710
7711 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7712
7713         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
7714
7715 2011-05-24  Richard Guenther  <rguenther@suse.de>
7716
7717         PR bootstrap/49078
7718         * gimple.c (gimple_register_canonical_type): Revert
7719         previous change.
7720         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
7721         does not for a tree for the case where it matters.  Cache
7722         pointer-type alias-sets.
7723
7724 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
7725
7726         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
7727         (OBJS): Remove options.o, opts-common.o and prefix.o.
7728         (OBJS-libcommon-target): New.
7729         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
7730         (BACKEND): Include libcommon-target.a.
7731         (MOSTLYCLEANFILES): Include libcommon-target.a.
7732         (libcommon-target.a): New.
7733         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
7734         prefix.o.
7735
7736 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
7737
7738         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
7739         parts of output shared with the driver.
7740         * optc-gen.awk: Don't generate parts of output not shared with the
7741         driver.
7742         * opth-gen.awk: Remove GCC_DRIVER conditionals.
7743         * doc/options.texi (SourcerInclude): Mention options-save.c.
7744         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
7745         (OBJS): Add options-save.o.
7746         (options-save.c, options-save.o): New.
7747         (options.o): Update dependencies.
7748         (gcc-options.o): Remove.
7749         (mostlyclean): Remove options-save.c.
7750
7751 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
7752
7753         PR debug/49032
7754         * dbxout.c: Include cgraph.h.
7755         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
7756         and without value expr, return NULL if no varpool node exists for
7757         it or if it is not needed.
7758         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
7759
7760         PR c/49120
7761         * c-decl.c (start_decl): Convert expr to void_type_node.
7762
7763 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
7764
7765         PR rtl-optimization/48826
7766         * emit-rtl.c (try_split): When splitting a call that is followed
7767         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
7768
7769 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
7770
7771         * cfgexpand.c (expand_debug_expr): For unused non-addressable
7772         parameters passed in memory prefer using DECL_INCOMING_RTL over
7773         the pseudos it will be copied into.
7774
7775 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
7776
7777         PR target/47315
7778         * config/i386/i386.c (ix86_option_override_internal): Save the
7779         initial options after checking vzeroupper.
7780
7781 2011-05-23  David Li  <davidxl@google.com>
7782
7783         PR tree-optimization/48988
7784         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
7785         Initialize has_valid_pred for each pred chain.
7786
7787 2011-05-23  Richard Guenther  <rguenther@suse.de>
7788
7789         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
7790         (iterative_hash_gimple_type): Always hash type names.
7791
7792 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
7793
7794         * c-typeck.c (build_function_call_vec): Tweak call to
7795         check_function_arguments.
7796
7797 2011-05-23  Richard Guenther  <rguenther@suse.de>
7798
7799         PR tree-optimization/49115
7800         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
7801         is not necessarily carried out, do not claim it kills the ref.
7802         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
7803
7804 2011-05-23  Richard Guenther  <rguenther@suse.de>
7805
7806         PR middle-end/15419
7807         * builtins.c (fold_builtin_memory_op): Be less restrictive about
7808         what pointer types we accept for folding.
7809
7810 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7811
7812         * gthr-gnat.c: Remove.
7813         * gthr-gnat.h: Remove.
7814         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
7815         * config/t-freebsd (LIB2ADDEH): Likewise.
7816         * config/t-linux (LIB2ADDEH): Likewise.
7817         * config/t-sol2 (LIB2ADDEH): Likewise.
7818         * config/ia64/t-vms (LIB2ADDEH): Likewise.
7819         * configure.ac (target_thread_file): Remove gnat handling.
7820         * configure: Regenerate.
7821         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
7822
7823 2011-05-23  Tristan Gingold  <gingold@adacore.com>
7824             Eric Botcazou  <ebotcazou@adacore.com>
7825
7826         * gcov.c (create_file_names): If no object directory is specified,
7827         keep the directory of the file.
7828
7829 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7830
7831         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
7832         * configure: Regenerate.
7833
7834 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
7835
7836         PR middle-end/48973
7837         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
7838         failed and the comparison has a single bit signed type, use
7839         constm1_rtx instead of const1_rtx for true value.
7840         (do_store_flag): If ops->type is single bit signed type, disable
7841         signel bit test optimization and pass -1 instead of 1 as last
7842         parameter to emit_store_flag_force.
7843
7844 2011-05-23  Tom de Vries  <tom@codesourcery.com>
7845
7846         PR target/45098
7847         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
7848         function.
7849         (infer_loop_bounds_from_undefined): Use new function.
7850
7851 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
7852
7853         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
7854         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
7855         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
7856         and -O0 otherwise.
7857         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
7858
7859 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
7860
7861         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
7862         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
7863         returns true.
7864
7865 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
7866
7867         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
7868
7869 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
7870
7871         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
7872         UNSPEC_MOVE_PIC pattern.
7873
7874 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
7875
7876         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
7877         (sparc-*-rtems*): Likewise.
7878         (sparc64-*-elf*): Likewise.
7879         (sparc64-*-rtems*): Likewise.
7880         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
7881         * config/sparc/t-crtin: New file.
7882         * config/sparc/t-sol2 (crti.o): Delete rule.
7883         (crtn.o): Likewise.
7884         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
7885         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
7886         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
7887         (ENDFILE_SPEC): Add crtn.o.
7888
7889 2011-05-22  Tom de Vries  <tom@codesourcery.com>
7890
7891         PR middle-end/48689
7892         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
7893         CODE_CONTAINS_STRUCT (TS_COMMON).
7894
7895 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
7896
7897         PR middle-end/49029
7898         * expmed.c (extract_fixed_bit_field): Test whether target can be used
7899         only after deciding which mode to use.
7900
7901 2011-05-22  Tom de Vries  <tom@codesourcery.com>
7902
7903         PR target/45098
7904         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
7905         for call to get_shiftadd_cost.
7906
7907 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
7908
7909         PR target/49104
7910         * config/i386/cpuid.h (bit_MMXEXT): New define.
7911
7912 2011-05-22  Nick Clifton  <nickc@redhat.com>
7913
7914         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
7915         initialisation of non-existant args[2] element.  Use args[] array
7916         not arg[] array to pass arguments to build_function_type_list.
7917
7918 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
7919
7920         PR tree-optimization/49087
7921         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
7922
7923 2011-05-21  Jason Merrill  <jason@redhat.com>
7924
7925         PR c++/49092
7926         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
7927         static storage duration.
7928
7929 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
7930
7931         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
7932         frame pointer.
7933
7934 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
7935
7936         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
7937         false if there are call-saved registers here...
7938         (sparc_can_use_return_insn_p): ...but here instead.
7939         (save_or_restore_regs): Fix thinko.
7940         (sparc_expand_prologue): Use current_function_is_leaf.
7941         (sparc_frame_pointer_required): Likewise.
7942
7943 2011-05-21  Nick Clifton  <nickc@redhat.com>
7944
7945         PR target/49098
7946         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
7947
7948 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
7949
7950         * gengtype.c (walk_type): Implemented "atomic" GTY option.
7951         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
7952
7953 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
7954
7955         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
7956         * optc-gen.awk: Move common code to opt-read.awk.
7957         * opth-gen.awk: Likewise.
7958         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
7959
7960 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
7961
7962         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
7963
7964 2011-05-20  Tom de Vries  <tom@codesourcery.com>
7965
7966         PR target/45098
7967         * tree-ssa-loop-ivopts.c: Include expmed.h.
7968         (get_shiftadd_cost): New function.
7969         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
7970
7971 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
7972
7973         PR bootstrap/49086
7974         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
7975         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
7976
7977 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
7978
7979         * Makefile.in: Update comment referring to $(OBJS-common).
7980
7981 2011-05-20  Ian Lance Taylor  <iant@google.com>
7982
7983         * godump.c (go_output_typedef): Put enum constants in the macro
7984         hash table to avoid duplicate Go const definitions.
7985
7986 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
7987
7988         * Makefile.in (LIBDEPS): Add libcommon.a.
7989         (LIBS): Likewise.
7990         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
7991         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
7992         pretty-print.o and version.o.
7993         (OBJS-libcommon): New.
7994         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
7995         (BACKEND): Add libcommon.a.
7996         (MOSTLYCLEANFILES): Likewise.
7997         (libcommon.a): New.
7998         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
7999         (cpp$(exeext)): Likewise.
8000         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
8001         pretty-print.o and input.o.
8002         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
8003         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
8004         (errors.o): Remove.
8005         (mips-tfile): Don't explicitly use version.o.
8006         (mips-tdump): Likewise.
8007         (gcov.o): Depend on $(DIAGNOSTIC_H).
8008         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
8009         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
8010         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
8011         * gcov-dump.c: Include intl.h and diagnostic.h.
8012         (main): Initialize diagnostics.
8013         * gcov.c: Include diagnostic.h.
8014         (fnotice): Remove.
8015         (main): Initialize diagnostics.
8016         * lto-wrapper.c: Include diagnostic.h.
8017         (main): Initialize diagnostics.
8018
8019 2011-05-20  Michael Matz  <matz@suse.de>
8020
8021         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
8022
8023 2011-05-20  Michael Matz  <matz@suse.de>
8024             Richard Guenther  <rguenther@suse.de>
8025
8026         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
8027         use lto_streamer_cache_append directly instead of returning a VEC.
8028         (preload_common_node): Remove.
8029         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
8030         track seen nodes.
8031         (lto_streamer_cache_create): Call lto_preload_common_nodes.
8032
8033 2011-05-20  Richard Guenther  <rguenther@suse.de>
8034
8035         PR tree-optimization/49079
8036         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
8037         MEM_REFs correctly for the trailing array access detection.
8038         Special case constants the same way as decls for overall size
8039         constraining.
8040
8041 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
8042
8043         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
8044         argument expansion.
8045
8046 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
8047
8048         PR tree-optimization/49073
8049         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
8050         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
8051         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
8052
8053 2011-05-20  Richard Guenther  <rguenther@suse.de>
8054
8055         PR middle-end/48849
8056         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
8057         of pointer types the same way the middle-end does.
8058
8059 2011-05-20  Richard Guenther  <rguenther@suse.de>
8060
8061         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
8062         or pointer-to chains.  Delay all fixup to uniquify_nodes.
8063
8064 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
8065
8066         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
8067         (fma4_fmaddsub): Likewise
8068
8069 2011-05-19  Jan Hubicka  <jh@suse.cz>
8070
8071         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
8072         (GIMPLE_TYPE_PAIR_SIZE): New macro.
8073         (type_pair_cache): New static var.
8074         (lookup_type_pair): Use fixed sized custom hash; make inline.
8075         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
8076         calls of lookup_type_pair.
8077         (print_gimple_types_stats): Remove cache stats.
8078         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
8079         and gtc_ob.
8080
8081 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
8082
8083         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
8084         when TARGET_RDRND is active.
8085         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
8086         Generate dummy SImode target register when target is NULL.
8087
8088 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
8089
8090         * config/arm/arm-fpus.def: New.
8091         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
8092         arm-fpus.def.
8093         * config/arm/arm-tables.opt: Regenerate.
8094         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
8095         (arm_option_override): Don't decode FPU name to string here.
8096         * config/arm/arm.opt (mfpu=): Use Enum.
8097         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
8098         Update dependencies.
8099
8100 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
8101
8102         * collect2.c: Include diagnostic.h.
8103         (fatal_perror, fatal, error, fancy_abort): Remove.
8104         (main): Set progname.  Call xmalloc_set_program_name and
8105         diagnostic_initialize.
8106         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
8107         scan_libraries, resolve_lib_name): Call fatal_error instead of
8108         fatal and fatal_perror.
8109         * collect2.h (error, fatal, fatal_perror): Don't declare.
8110         * tlink.c: Include diagnostic-core.h.
8111         (recompile_files): Call fatal_error instead of fatal_perror.
8112         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
8113         pretty-print.o and input.o.
8114         (collect2.o, tlink.o): Update dependencies.
8115
8116 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8117
8118         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
8119
8120 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8121
8122         PR target/40483
8123         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
8124         COMDAT group syntax, both SPARC and x86 variants.
8125         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
8126         * configure: Regenerate.
8127         * config/sol2.h (TARGET_SOLARIS): Define.
8128         (PUSHSECTION_FORMAT): Remove.
8129         (SECTION_NAME_FORMAT): Define.
8130         * config/sol2.c: Include hashtab.h.
8131         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
8132         expansion, using SECTION_NAME_FORMAT.
8133         (solaris_comdat_htab): New variable.
8134         (struct comdat_entry): Define.
8135         (comdat_hash): New function.
8136         (comdat_eq): New function.
8137         (solaris_elf_asm_comdat_section): New function.
8138         (solaris_define_comdat_signature): New function.
8139         (solaris_code_end): New function.
8140         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
8141         (solaris_code_end): Declare.
8142         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
8143         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
8144         solaris_code_end.
8145         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
8146         Remove ATTRIBUTE_UNUSED.
8147         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
8148         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
8149         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
8150         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
8151         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
8152         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
8153         (PUSHSECTION_FORMAT): Remove.
8154         (SECTION_NAME_FORMAT): Redefine.
8155
8156 2011-05-19  Kai Tietz  <ktietz@redhat.com>
8157
8158         * tree-cfg.c (verify_gimple_assign_binary): Barf on
8159         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
8160         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
8161
8162 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
8163             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8164
8165         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
8166
8167 2011-05-19  Richard Guenther  <rguenther@suse.de>
8168
8169         PR middle-end/48985
8170         * tree-object-size.c (addr_object_size): If the pointed-to
8171         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
8172
8173 2011-05-19  Richard Guenther  <rguenther@suse.de>
8174
8175         * gimple.c (gimple_types_compatible_p_1): Compare names of
8176         the types themselves.
8177         (iterative_hash_gimple_type): And hash them that way.
8178         (gimple_register_type_1): If we register a main variant properly
8179         initialize the leader to ourselves.
8180
8181 2011-05-19  Tom de Vries  <tom@codesourcery.com>
8182
8183         PR target/45098
8184         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
8185         get_loop_invariant_expr_id.
8186         (get_loop_invariant_expr_id): Use get_expr_id.
8187         (parm_decl_cost): New function.
8188         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
8189         Improve bound cost estimation.  Use different inv_expr_id for elim and
8190         express cases.
8191
8192 2011-05-19  Tom de Vries  <tom@codesourcery.com>
8193
8194         PR target/45098
8195         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
8196         cost_base.cost == 0.
8197
8198 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
8199
8200         PR target/49002
8201         * config/i386/sse.md
8202         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
8203         load cast.
8204
8205 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
8206
8207         PR tree-optimization/49039
8208         * tree-vrp.c (extract_range_from_binary_expr): For
8209         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
8210         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
8211
8212 2011-05-18  Tom de Vries  <tom@codesourcery.com>
8213
8214         PR target/45098
8215         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
8216
8217 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
8218
8219         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
8220         (*tls_global_dynamic_64): Ditto.
8221         (*tls_local_dynamic_base_32_gnu): Ditto.
8222         (*tls_local_dynamic_base_64): Ditto.
8223         (tls_initial_exec_64_sun): Ditto.
8224
8225 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
8226
8227         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
8228         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
8229         bf592-none.
8230         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
8231         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
8232         * config/bfin/bfin.c (bfin_cpus): Add bf592.
8233         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
8234         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
8235         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
8236         * config/bfin/elf.h (LIB_SPEC): Add bf592.
8237
8238 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
8239
8240         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
8241         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
8242         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
8243         target_thread_pointer, arm_structure_size_boundary, struct
8244         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
8245         struct abi_name, arm_all_abis): Remove.
8246         (arm_option_override) Don't process most enumerated option values here.
8247         Don't process target_fpe_name here.  Work with integer not string for
8248         structure size boundary; use separate diagnostics for each case.
8249         * config/arm/arm.h (enum float_abi_type, enum
8250         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
8251         to arm-opts.h.
8252         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
8253         arm_structure_size_boundary): Remove.
8254         * config/arm/arm.opt (mabi=): Use Enum and Init.
8255         (arm_abi_type): New Enum and EnumValue entries.
8256         (mfloat-abi=): Use Enum and Init.
8257         (float_abi_type): New Enum and EnumValue entries.
8258         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
8259         (mfp16-format=): Use Enum and Init.
8260         (arm_fp16_format_type): New Enum and EnumValue entries.
8261         (mstructure-size-boundary=): Use UInteger and Init.
8262         (mtp=): Use Enum and Init.
8263         (arm_tp_type): New Enum and EnumValue entries.
8264
8265 2011-05-18  Richard Guenther  <rguenther@suse.de>
8266
8267         PR tree-optimization/49018
8268         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
8269         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
8270         gimple_has_side_effects.
8271
8272 2011-05-18  Richard Guenther  <rguenther@suse.de>
8273
8274         * gimple.c (gimple_register_type_1): New function, split out from ...
8275         (gimple_register_type): ... here.  Avoid infinite recursion.
8276
8277 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
8278
8279         PR tree-optimization/41881
8280         * tree-vectorizer.h (struct _loop_vec_info): Add new field
8281         reduction_chains along with a macro for its access.
8282         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
8283         (destroy_loop_vec_info): Free reduction chains.
8284         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
8285         (vect_is_slp_reduction): New function.
8286         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
8287         (vect_create_epilog_for_reduction): Support SLP reduction chains.
8288         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
8289         definition types for reduction chains.
8290         (vect_supported_load_permutation_p): Don't allow permutations for
8291         reduction chains.
8292         (vect_analyze_slp_instance): Support reduction chains.
8293         (vect_analyze_slp): Try to build SLP instance from reduction chains.
8294         (vect_get_constant_vectors):  Handle reduction chains.
8295         (vect_schedule_slp_instance): Mark the first statement of the
8296         reduction chain as reduction.
8297
8298 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
8299
8300         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
8301         names for group elements access.
8302         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
8303         reduction chains as well.  Remove data reference and interleaving
8304         related words from the fields names.
8305         * tree-vect-loop.c (vect_transform_loop): Use new names for group
8306         elements access.
8307         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
8308         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
8309         vect_update_interleaving_chain, vect_same_range_drs,
8310         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
8311         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
8312         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
8313         vect_analyze_group_access, vect_analyze_data_ref_access,
8314         vect_create_data_ref_ptr, vect_transform_strided_load,
8315         vect_record_strided_load_vectors): Likewise.
8316         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
8317         vect_model_load_cost, vectorizable_store, vectorizable_load,
8318         vect_remove_stores, new_stmt_vec_info): Likewise.
8319         * tree-vect-slp.c (vect_build_slp_tree,
8320         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
8321
8322 2011-05-18  Richard Guenther  <rguenther@suse.de>
8323
8324         PR middle-end/48989
8325         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
8326         operand verification.
8327         (verify_gimple_assign_binary): Likewise.
8328         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
8329         to non-1-precision BOOLEAN_TYPEs.
8330
8331 2011-05-18  Tom de Vries  <tom@codesourcery.com>
8332
8333         PR target/45098
8334         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
8335
8336 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
8337
8338         PR tree-optimization/49000
8339         * tree-ssa.c (execute_update_addresses_taken): Call
8340         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
8341         be rewritten and decl has been marked for renaming, reset
8342         the debug stmt.
8343
8344 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
8345
8346         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
8347         enum_opts_set when testing if attributes have set -mfpmath=.
8348
8349 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
8350
8351         * config/mips/mips.c (mips_handle_option): Remove unused variable.
8352
8353 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
8354
8355         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
8356         info->entry with 0
8357         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
8358         id.transform_lang_insert_block with NULL.
8359
8360 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
8361
8362         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
8363         (output_fp_compare): Change args 3 and 4 to bool.
8364         (ix86_expand_call): Change arg 6 to bool.
8365         (ix86_attr_length_immediate_default): Change arg 2 to bool.
8366         (ix86_attr_length_vex_default): Change arg 3 to bool.
8367         * config/i386/i386.md: Update all uses.
8368         * config/i386/i386.c: Ditto.
8369         (ix86_flags_dependent): Change return type to bool.
8370
8371 2011-05-17  Richard Guenther  <rguenther@suse.de>
8372
8373         * gimple.c (type_hash_pair_compare): Fix comparison.
8374
8375 2011-05-17  Richard Guenther  <rguenther@suse.de>
8376
8377         * gimple.c (iterative_hash_gimple_type): Simplify singleton
8378         case some more, fix final hash value of the non-singleton case.
8379
8380 2011-05-17  Richard Guenther  <rguenther@suse.de>
8381
8382         PR bootstrap/49013
8383         Revert
8384         2011-05-16  Richard Guenther  <rguenther@suse.de>
8385
8386         * gimple.c (gimple_types_compatible_p_1): Use names of the
8387         type itself, not its main variant.
8388         (iterative_hash_gimple_type): Likewise.
8389
8390 2011-05-17  Richard Guenther  <rguenther@suse.de>
8391
8392         * gimple.c (gimple_register_canonical_type): Use the main-variant
8393         leader for computing the canonical type.
8394
8395 2011-05-17  Nick Clifton  <nickc@redhat.com>
8396
8397         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
8398         moves.
8399
8400         * config/rx/rx.md: Add peephole to remove redundant extensions
8401         after loads.
8402         (bitset_in_memory): Use rx_restricted_mem_operand.
8403         (bitinvert_in_memory): Likewise.
8404         (bitclr_in_memory): Likewise.
8405
8406 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
8407             Nick Clifton  <nickc@redhat.com>
8408
8409         * config/rx/rx.md: Add peepholes to match a register move followed
8410         by a comparison of the moved register.  Replace these with an
8411         addition of zero that does both actions in one instruction.
8412
8413 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
8414
8415         PR target/48986
8416         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
8417         predicate to allow CONST_INT.
8418         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
8419
8420 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
8421
8422         * opts-common.c (opt_enum_arg_to_value): New.
8423         * opts.h (opt_enum_arg_to_value): Declare.
8424         * config/i386/i386.opt (fpmath): Remove.
8425         (mfpmath=): Use Enum, Init and Save.
8426         (fpmath_unit): New Enum and EnumValue entries.
8427         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
8428         name for function fpmath state.
8429         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
8430         * config/i386/i386.c: Include diagnostic.h.
8431         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
8432         (ix86_target_string): Take enum fpmath_unit value instead of string.
8433         (ix86_debug_options): Update call to ix86_target_string.
8434         (ix86_option_override_internal): Don't process fpmath strings here.
8435         (x86_function_specific_save, ix86_function_specific_restore):
8436         Don't handle fpmath state specially.
8437         (ix86_function_specific_print): Pass fpmath state to
8438         ix86_target_string instead of printing in this function.
8439         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
8440         Handle enum attributes.
8441         (IX86_ATTR_ENUM, ix86_opt_enum): New.
8442         (ix86_valid_target_attribute_tree): Update option_strings
8443         handling.  Handle fpmath as enum option.
8444         (ix86_can_inline_p): Update field names for function fpmath state.
8445         (ix86_expand_builtin): Update call to ix86_target_string.
8446         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
8447         (ix86_fpmath): Remove.
8448         * config/i386/t-i386 (i386.o): Update dependencies.
8449
8450 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
8451
8452         PR preprocessor/48677
8453         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
8454         from decoded_options[0], not from itself.
8455
8456 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
8457
8458         * config/i386/constraints.md (z): New constraint.
8459         * config/i386/i386.c (c): New mode attribute.
8460         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
8461         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
8462         constraint for operand 0.
8463         (*call_vzeroupper): Ditto.
8464         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
8465         (*call_rex64_ms_sysv_vzeroupper): Ditto.
8466         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
8467         Use "lzm" constraint for operand 0.
8468         (*call_pop_vzeroupper): Ditto.
8469         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
8470         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
8471         constraint for operand 0.
8472         (*sibcall_vzeroupper): Ditto.
8473         (*sibcall_rex64_ms_sysv): Ditto.
8474         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
8475         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
8476         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
8477         (*sibcall_pop_vzeroupper): Ditto.
8478         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
8479         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
8480         mode iterator.  Use "<c>zm" constraint for operand 1.
8481         (*call_value_vzeroupper): Ditto.
8482         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
8483         for operand 1.
8484         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
8485         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
8486         *call_value_pop_1.  Use "lzm" constraint for operand 1.
8487         (*call_value_pop_vzeroupper): Ditto.
8488         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
8489         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
8490         mode iterator.  Use "Uz" constraint for operand 1.
8491         (*sibcall_value_vzeroupper): Ditto.
8492         (*sibcall_value_rex64_ms_sysv): Ditto.
8493         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
8494         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
8495         constraint for operand 1.
8496         (*sibcall_value_pop_vzeroupper): Ditto.
8497         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
8498         and "z" constraint for operand 2.
8499         (*tls_global_dynamic_32_gnu): Ditto.
8500         (*tls_local_dynamic_base_32_gnu): Ditto.
8501         (*tls_local_dynamic_base_64): Ditto.
8502         (*tls_local_dynamic_32_once): Ditto.
8503         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
8504         Update all callers.
8505         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
8506
8507 2011-05-16  Richard Guenther  <rguenther@suse.de>
8508
8509         * gimple.c (gimple_types_compatible_p_1): Use names of the
8510         type itself, not its main variant.
8511         (iterative_hash_gimple_type): Likewise.
8512
8513 2011-05-16  Richard Guenther  <rguenther@suse.de>
8514
8515         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
8516         always visit pointer target and function result and argument types.
8517
8518 2011-05-16  Jason Merrill  <jason@redhat.com>
8519
8520         PR c++/48999
8521         * tree-inline.c (copy_statement_list): Put back recursion.
8522
8523 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
8524
8525         PR target/27663
8526         PR target/41076
8527         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
8528         * config/avr/avr.md ("*ior<mode>qi.byte0",
8529         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
8530
8531 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
8532
8533         PR target/45099
8534         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
8535         register is needed for a function argument.
8536
8537 2011-05-16  Richard Guenther  <rguenther@suse.de>
8538
8539         * gimple.c (struct type_hash_pair): New type.
8540         (type_hash_pair_compare): New function.
8541         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
8542
8543 2011-05-16  Revital Eres  <revital.eres@linaro.org>
8544
8545         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
8546
8547 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
8548
8549         * config/i386/i386.md (floating point move splitters): Fix
8550         usage of standard_80387_constant_p.
8551         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
8552
8553 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
8554
8555         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
8556
8557 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
8558
8559         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
8560         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
8561         (tree_ssa_lim_finalize): Likewise.
8562
8563 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
8564
8565         * config/i386/constraint.md (Yd, Yx): New register constraints.
8566         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
8567         Yd conditional register constraint.
8568         (*movtf_internal): Use standard_sse_constant_opcode.
8569         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
8570         Yx conditional register constraint.
8571         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
8572         Yd conditional register constraint.  Use standard_sse_constant_p to
8573         check for valid SSE constants and call standard_sse_constant_opcode to
8574         output SSE insn.
8575         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
8576         constants and call standard_sse_constant_opcode to output SSE insn.
8577         * config/i386/i386.c (ix86_option_ovverride_internal): Set
8578         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
8579         optimize_size is set.
8580         (standard_sse_constant_opcode): Output conditional AVX insn templates.
8581
8582 2011-05-14  Tobias Burnus  <burnus@net-b.de>
8583
8584         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
8585
8586 2011-05-13  Martin Jambor  <mjambor@suse.cz>
8587
8588         * ipa-prop.c (ipa_cst_from_jfunc): New function.
8589         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
8590         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
8591         (evaluate_conditions_for_ipcp_clone): Removed.
8592         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
8593         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
8594         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
8595
8596 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
8597
8598         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
8599         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
8600         lieu of MAY_HAVE_DEBUG_STMTS.
8601         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
8602         debug statements if !MAY_HAVE_DEBUG_STMTS.
8603
8604 2011-05-13  Martin Thuresson  <martint@google.com>
8605
8606         PR gcov-profile/47793
8607         * libgcov.c (gcov_exit): Support relative profile paths.
8608         * doc/invoke.texi (-fprofile-dir): Update for above change.
8609
8610 2011-05-13  Richard Guenther  <rguenther@suse.de>
8611
8612         * gimple.c (gimple_canonical_types_compatible_p): Do not use
8613         type-pair caching, do not compare hashes.
8614
8615 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
8616
8617         PR middle-end/48965
8618         * tree-cfg.c (edge_to_cases_cleanup): Return true.
8619         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
8620
8621 2011-05-13  Kai Tietz  <ktietz@redhat.com>
8622
8623         * gimplify.c (gimplify_expr): Make sure operand is boolified.
8624         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
8625         compatible type for TRUTH_NOT_EXPR.
8626
8627 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
8628
8629         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
8630         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
8631         can_create_pseudo_p ().
8632
8633 2011-05-13  Richard Guenther  <rguenther@suse.de>
8634
8635         PR lto/48978
8636         * gimple.c (iterative_hash_gimple_type): Revert change in
8637         pointer target and function result and argument hashing.
8638
8639 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
8640
8641         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
8642         (*movxf_internal_nointeger): Ditto.
8643         (*movdf_internal_rex64): Ditto.
8644         (*movdf_internal): Ditto.
8645         (*movdf_internal_nointeger): Ditto.
8646         (*movsf_internal): Ditto.
8647         (sincos splitters): Use can_create_pseudo ().
8648
8649 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
8650
8651         * config/i386/i386-opts.h: New.
8652         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
8653         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
8654         ix86_section_threshold): Remove.
8655         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
8656         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
8657         OPT_mbranch_cost_.
8658         (ix86_option_override_internal): Don't decode strings for options
8659         other than -march=, -mtune= and -mfpmath=.  Don't allow for
8660         __attribute__ uses in remaining diagnostics for options with
8661         string arguments.  Don't check for integer arguments being negative.
8662         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
8663         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
8664         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
8665         ix86_branch_cost, ix86_section_threshold): Remove.
8666         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
8667         HeaderInclude.
8668         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
8669         but not Var.
8670         (masm=): Use Enum and Init.
8671         (asm_dialect): New Enum and EnumValue entries.
8672         (mbranch-cost=): Use UInteger.
8673         (mlarge-data-threshold=): Use UInteger and Init.
8674         (mcmodel=): Use Enum and Init.
8675         (cmodel): New Enum and EnumValue entries.
8676         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
8677         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
8678         mregparm=): Use UInteger.
8679         (mstringop-strategy=): Use Enum and Init.
8680         (stringop_alg): New Enum and EnumValue entries.
8681         (mtls-dialect=): Use Enum and Init.
8682         (tls_dialect): New Enum and EnumValue entries.
8683         (mabi=): Use Enum and Init.
8684         (calling_abi): New Enum and EnumValue entries.
8685         (mveclibabi=): Use Enum and Init.
8686         (ix86_veclibabi): New Enum and EnumValue entries.
8687
8688 2011-05-13  Nick Clifton  <nickc@redhat.com>
8689
8690         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
8691         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
8692
8693 2011-05-13  Kai Tietz  <ktietz@redhat.com>
8694
8695         PR middle-end/48984
8696         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
8697         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
8698         (gimple_boolify): Check for cast for boolean_type_node instead for
8699         BOOLEAN_TYPE.
8700
8701 2011-05-13  Richard Guenther  <rguenther@suse.de>
8702
8703         PR tree-optimization/48172
8704         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
8705         multiplying by number of iterations for equal step.
8706         (vect_create_cond_for_alias_checks): Likewise.
8707
8708 2011-05-13  Andreas Schwab  <schwab@redhat.com>
8709
8710         * configure.ac: Use AS_HELP_STRING throughout.
8711         * configure: Regenerate.
8712
8713 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
8714
8715         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
8716         (ix86_emit_restore_regs_using_mov): Likewise.
8717         (ix86_emit_restore_sse_regs_using_mov): Likewise.
8718
8719 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
8720
8721         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
8722         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
8723         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
8724         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
8725         RTX_OK_FOR_OLO10_P): ...here.
8726         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
8727         SYMBOLIC_CONST.
8728
8729 2011-05-12  Kai Tietz  <ktietz@redhat.com>
8730
8731         * gimplify.c (gimple_boolify): Re-boolify expression
8732         arguments even if expression type is of kind BOOLEAN_TYPE.
8733         (gimplify_boolean_expr): Removed.
8734         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
8735         and XOR. Additional take care that we keep expression's type.
8736         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
8737         of TRUTH_AND|OR|XOR_EXPR.
8738
8739 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
8740
8741         PR tree-optimization/48975
8742         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
8743         on all bbs here and free and clear ifc_bbs at the end.
8744
8745 2011-05-12  Richard Guenther  <rguenther@suse.de>
8746
8747         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
8748         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
8749         until after simple checks.
8750         (gimple_types_compatible_p): Likewise.
8751         (iterative_hash_gimple_type): Always hash pointer targets
8752         and function return and argument types.
8753         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
8754         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
8755         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
8756         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
8757         completely in the simple compare section.
8758         (gimple_register_canonical_type): Query the cache again after
8759         registering.
8760
8761 2011-05-12  Richard Guenther  <rguenther@suse.de>
8762
8763         PR tree-optimization/48172
8764         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
8765         the number of iterations from the segment size calculation.
8766         (vect_create_cond_for_alias_checks): Adjust.
8767
8768 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
8769
8770         PR debug/48967
8771         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
8772         if validate_subreg fails.
8773
8774 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
8775
8776         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
8777         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
8778         early.
8779
8780 2011-05-12  DJ Delorie  <dj@redhat.com>
8781
8782         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
8783         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
8784         created builtin into rx_builtins array.
8785         (rx_builtin_decl): New function.
8786         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
8787
8788 2011-05-12  DJ Delorie  <dj@redhat.com>
8789             Nick Clifton  <nickc@redhat.com>
8790
8791         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
8792         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
8793         (rx_is_legitimate_address): Add pre-decrement and post-increment
8794         addressing in HImode and QImode.  Fix test for out of range
8795         REG+INT addressing.
8796         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
8797         (rx_align_for_label): Test label before extracting its usage count.
8798         (rx_adjust_insn_lengths): Fix selection of insn codes.
8799         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
8800
8801 2011-05-11  Jason Merrill  <jason@redhat.com>
8802
8803         * tree.c (type_hash_canon): Use struct tree_type_non_common.
8804
8805 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
8806
8807         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
8808         reindent the subsequent block.
8809
8810 2011-05-11  Satoru Takabayashi  <satorux@google.com>
8811             Paul Pluzhnikov  <ppluzhnikov@google.com>
8812
8813         * doc/install.texi (Configuration): Document --with-linker-hash-style.
8814         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
8815         * config.in: Add LINKER_HASH_STYLE.
8816         * configure.ac: Add --with-linker-hash-style.
8817         * configure: Regenerate.
8818
8819 2011-05-11  Richard Guenther  <rguenther@suse.de>
8820
8821         PR middle-end/48964
8822         * gimple.c (iterative_hash_canonical_type): Fix typo.
8823
8824 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
8825
8826         * config/i386/i386.c (legitimize_tls_address)
8827         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
8828         expanders directly for TARGET_GNU2_TLS.  Determine pic and
8829         __tls_get_addr symbol reference here.  Update call to
8830         gen_tls_global_dynamic_{32,64} for added arguments.
8831         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
8832         expanders directly for TARGET_GNU2_TLS.  Determine
8833         __tls_get_addr symbol reference here.  Update call to
8834         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
8835         unique UNSPEC REG_EQUIV to libcall block.
8836         (ix86_tls_get_addr): Declare static.
8837         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
8838         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
8839         Do not determine pic and __tls_get_addr symbol reference here. Do not
8840         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
8841         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
8842         (tls_global_dynamic_64): Add operand 2.  Do not determine
8843         __tls_get_addr symbol reference here.  Do not call
8844         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
8845         (tls_local_dynamic_base64): Ditto for operand 1.
8846
8847 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
8848
8849         * function.c (expand_function_start): Initialize stack_check_probe_note
8850         only if the generic stack checking mechanism is used.
8851
8852 2011-05-11  Richard Guenther  <rguenther@suse.de>
8853
8854         PR tree-optimization/15256
8855         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
8856         (A & B) | C, combine (A op CST1) op CST2.
8857         (tree_ssa_forward_propagate_single_use_vars): Only bother to
8858         visit assigns that have uses.
8859
8860 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
8861
8862         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
8863         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
8864         (unpack_ts_type_common_value_fields): ...this.  Update comment.
8865         (unpack_value_fields): Adjust for renaming.
8866         (lto_input_ts_type_tree_pointers): Split into...
8867         (lto_input_ts_type_common_tree_pointer): ...this and...
8868         (lto_input_ts_type_non_common_tree_pointers): ...this.
8869         (lto_input_tree_pointers): Adjust for above split.
8870         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
8871         (pack_ts_type_common_value_fields): ...this.  Update comment.
8872         (lto_output_ts_type_tree_pointers): Split into...
8873         (lto_output_ts_type_common_tree_pointers): ...this and...
8874         (lto_output_ts_type_non_common_tree_pointers): ...this.
8875         (lto_output_tree_pointers): Adjust for above split.
8876         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
8877         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
8878         * stor-layout.c (vector_type_mode): Adjust location of mode field.
8879         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
8880         Define.
8881         (struct tree_type): Split into...
8882         (struct tree_type_common: ...this and...
8883         (struct tree_type_with_lang_specific): ...this and...
8884         (struct tree_type_non_common): ...this.  Adjust accessor macros
8885         accordingly.
8886         (TYPE_VALUES_RAW): Define.
8887         (union tree_node): Update for above changes.
8888         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
8889         TS_TYPE_NON_COMMON.
8890         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
8891         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
8892         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
8893         * treestructu.def (TS_TYPE): Remove.
8894         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
8895         Define.
8896
8897 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
8898
8899         PR debug/48159
8900         * tree-ssa.c (reset_debug_uses): New function.
8901         * tree-flow.h (reset_debug_uses): New prototype.
8902         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
8903         * tree-loop-distribution.c (generate_loops_for_partition): Call
8904         reset_debug_uses on the stmts that will be removed.  Keep around
8905         all debug stmts, don't count them as bits in partition bitmap.
8906         (generate_builtin): Don't count debug stmts or labels as bits in
8907         partition bitmap.
8908
8909 2011-05-11  Richard Guenther  <rguenther@suse.de>
8910
8911         * gimple.c (gimple_type_hash_1): Merge with ...
8912         (gimple_type_hash): ... this.
8913         (gtc_visit): Remove mode parameter and simplify accordingly.
8914         (gimple_types_compatible_p_1): Likewise.
8915         (gimple_types_compatible_p): Likewise.
8916         (iterative_hash_gimple_type): Likewise.
8917         (visit): Likewise.
8918         (gimple_type_eq): Adjust.
8919
8920 2011-05-11  Revital Eres  <revital.eres@linaro.org>
8921
8922         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
8923         enters the branch create an anti edge in the opposite direction
8924         to prevent the creation of reg-moves.
8925         * modulo-sched.c: Adjust comment to reflect the fact we are
8926         scheduling closing branch.
8927         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
8928         (stage_count): New field in struct partial_schedule.
8929         (calculate_stage_count): New function.
8930         (normalize_sched_times): Rename to reset_sched_times and handle
8931         incrementing the sched time of the nodes by a constant value
8932         passed as parameter.
8933         (duplicate_insns_of_cycles): Skip closing branch.
8934         (sms_schedule_by_order): Schedule closing branch.
8935         (ps_insn_find_column): Handle closing branch.
8936         (sms_schedule): Call reset_sched_times and adjust the code to
8937         support scheduling of the closing branch.
8938         (ps_insert_empty_row): Update calls to normalize_sched_times
8939         and rotate_partial_schedule functions.
8940
8941 2011-05-11  Richard Guenther  <rguenther@suse.de>
8942
8943         PR middle-end/48953
8944         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
8945
8946 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
8947
8948         * opts.c (finish_options): Move warning settings from process_options.
8949         * toplev.c (process_options): Move warning settings to finish_options.
8950
8951 2011-05-11  Richard Guenther  <rguenther@suse.de>
8952
8953         PR tree-optimization/18041
8954         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
8955         (simplify_bitwise_binary): ... this.  Handle operand conversions
8956         by applying them to the result instead.
8957         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
8958
8959 2011-05-11  Richard Guenther  <rguenther@suse.de>
8960
8961         * gimple.c (gimple_canonical_types_compatible_p): Split out
8962         from gimple_types_compatible_p and friends.  Do not recurse
8963         to pointed-to types.
8964         (gimple_canonical_type_eq): Use it.
8965         (iterative_hash_canonical_type): Split out from
8966         iterative_hash_gimple_type and friends.  Do not recurse
8967         to pointed-to types.
8968         (gimple_canonical_type_hash): Use it, allocate the hash here.
8969
8970 2011-05-11  Revital Eres  <revital.eres@linaro.org>
8971
8972         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
8973         recognizing doloop.
8974
8975 2011-05-11  Revital Eres  <revital.eres@linaro.org>
8976
8977         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
8978         instead of PREV_INSN.
8979
8980 2011-05-11  Revital Eres  <revital.eres@linaro.org>
8981
8982         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
8983         * loop-doloop.c (doloop_condition_get): Likewise.
8984         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
8985         (doloop_end): New.
8986         * config/arm/arm.md (*addsi3_compare0): Remove "*".
8987
8988 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
8989
8990         * tree.def (CASE_LABEL_EXPR): Add an operand.
8991         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
8992
8993 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
8994
8995         * c-decl.c (c_override_global_bindings_to_false): Remove.
8996         (global_bindings_p): Don't check
8997         c_override_global_bindings_to_false.
8998         * c-tree.h (c_override_global_bindings_to_false): Remove.
8999         * c-typeck.c (composite_type): Don't set
9000         c_override_global_bindings_to_false.
9001
9002 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
9003
9004         PR target/48857, 48495
9005         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
9006         (VSX_MODE): Ditto.
9007         (VSX_MOVE_MODE): Ditto.
9008         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
9009         VSX vector types.  Add V2DImode.
9010         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
9011         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
9012         (MODES_TIEABLE_P): Ditto.
9013
9014         * config/rs6000/rs6000.c (rs6000_emit_move): Use
9015         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
9016         VSX_VECTOR_MODE.
9017         (init_cumulative_args): Ditto.
9018         (rs6000_function_arg_boundary): Ditto.
9019         (rs6000_function_arg_advance_1): Ditto.
9020         (rs6000_function_arg): Ditto.
9021         (rs6000_function_ok_for_sibcall): Ditto.
9022         (emit_frame_save): Ditto.
9023         (rs6000_function_value): Ditto.
9024         (rs6000_libcall_value): Ditto.
9025
9026 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
9027
9028         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
9029         i386/darwin-lib.h to $libgcc_tm_file.
9030         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
9031
9032 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
9033
9034         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
9035
9036 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
9037
9038         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
9039         * config/rs6000/rs6000-tables.opt: New file (generated).
9040         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
9041         rs6000/rs6000-tables.opt to extra_options.
9042         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
9043         * config/rs6000/rs6000.c (rs6000_select): Remove.
9044         (processor_target_table): Move contents to rs6000-cpus.def.
9045         (darwin_rs6000_override_options): Check
9046         global_options_set.x_rs6000_cpu_index instead of
9047         rs6000_select[1].string.
9048         (rs6000_option_override_internal): Likewise.
9049         (rs6000_handle_option): Don't assert that global structures are in
9050         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
9051         (rs6000_default_cpu): New variable.
9052         (rs6000_file_start): Set it instead of local default_cpu.  Check
9053         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
9054         global_options_set.x_rs6000_tune_index instead of rs6000_select.
9055         (rs6000_darwin_file_start): Check rs6000_default_cpu and
9056         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
9057         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
9058         rs6000_select): Remove.
9059         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
9060         Remove.
9061         (mcpu=, mtune=): Use Var, Init, Enum and Save.
9062         * config/rs6000/t-rs6000
9063         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
9064         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9065         global_options_set.x_rs6000_cpu_index instead of
9066         rs6000_select[1].string.
9067         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9068         global_options_set.x_rs6000_cpu_index instead of
9069         rs6000_select[1].string.
9070
9071 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
9072
9073         * config.gcc (libgcc_tm_file): Define instead of including files
9074         from ../../libgcc/config/ in tm_file.
9075         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
9076         * configure: Regenerate.
9077         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
9078         libgcc_tm.h, cs-libgcc_tm.h): New.
9079         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
9080         (clean): Remove libgcc_tm.h.
9081         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
9082         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
9083         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
9084
9085 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
9086
9087         PR target/48896
9088         * config/avr/avr.c (avr_ret_register): Return unsigned int
9089         instead of int.
9090         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
9091         it to avr_libcall_value.
9092         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
9093         expand_expr.
9094         (avr_expand_binop_builtin): Ditto.
9095         (avr_expand_unop_builtin): Ditto.
9096
9097 2011-05-10  DJ Delorie  <dj@redhat.com>
9098
9099         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
9100         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
9101         * config/rx/rx.c (rx_align_for_label): Add label and
9102         uses_threshold parameters.  Do not align when the label is not
9103         used enough.
9104         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
9105
9106 2011-05-10  Richard Guenther  <rguenther@suse.de>
9107
9108         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
9109         a series of conversions and apply foldings similar to what
9110         fold-const does.
9111         (tree_ssa_forward_propagate_single_use_vars): Call it.
9112
9113 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
9114
9115         PR tree-optimization/48611
9116         PR tree-optimization/48794
9117         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
9118         referenced from RESX or EH_DISPATCH arguments.
9119
9120         PR debug/48928
9121         * dfp.c (decimal_to_decnumber): Handle conversion from
9122         dconst{1,2,m1,half}.
9123
9124 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9125
9126         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
9127         for !flag_prefer_avx128.
9128         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
9129
9130 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
9131
9132         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
9133         (fold_ternary_loc): Use expr_location_or.
9134
9135 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
9136
9137         PR debug/48853
9138         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
9139         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
9140         Pmode and mem_mode is not VOIDmode.
9141
9142 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
9143
9144         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
9145         TYPE_QUAL_RESTRICT): Convert to enum.
9146
9147 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9148
9149         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
9150         (const_pow2_1_to_8_operand): Ditto.
9151         (const_pow2_1_to_128_operand): Ditto.
9152         (const_pow2_1_to_32768_operand): Ditto.
9153         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
9154         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
9155         in insn constraint to check integer value of operand 3.
9156         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
9157
9158         (PINSR_MODE): New mode iterator.
9159         (sse2p4_1): New mode attribute.
9160         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
9161         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
9162         iterator.  Use const_int_operand instead of
9163         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
9164         exact_log2 in insn constraint to check integer value of operand 3.
9165
9166 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9167
9168         * config/i386/sse.md (blendbits): Remove mode attribute.
9169         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
9170         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
9171         Check integer value of operand 3 in insn constraint.
9172
9173 2011-05-09  Richard Guenther  <rguenther@suse.de>
9174
9175         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
9176         for diagnostics.
9177         (lto_symtab_merge): Likewise.  Do not register types here.
9178         (lto_symtab_merge_decls_2): Likewise.
9179         (lto_symtab_merge_decls_1): Likewise.
9180         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
9181         * gimple.c (enum gtc_mode): Declare.
9182         (gimple_types_compatible_p): Make static.
9183
9184 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9185
9186         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
9187         temporary register to match Pmode.
9188
9189 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9190
9191         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
9192         and *vec_concatv4si_1_avx.
9193
9194 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9195
9196         PR rtl-optimization/48927
9197         * ira-conflicts.c (commutative_constraint_p): Use
9198         recog_data.alternative_enabled_p to disable alternatives where
9199         "enabled" attribute is false.
9200         (get_dup_num): Ditto.
9201         * ira-lives.c (single_reg_class): Ditto.
9202         (ira_implicitly_set_insn_hard_regs): Ditto.
9203
9204 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
9205
9206         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
9207         (dataflow_set_preserve_mem_locs): Likewise.
9208
9209 2011-05-09  Philipp Thomas  <pth@suse.de>
9210
9211         * config/mep/mep.c (mep_validate_vliw): Syntax description
9212         should not be translated.
9213
9214 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
9215
9216         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
9217         * config/mips/mips-tables.opt: New file (generated).
9218         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
9219         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
9220         MIPS_ARCH_OPTION_NATIVE): Define.
9221         * config/mips/mips.c (mips_cpu_info_table): Move contents to
9222         mips-cpus.def.
9223         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
9224         mips_parse_cpu): Remove.
9225         (mips_cpu_info_from_opt, mips_default_arch): New.
9226         (mips_handle_option): Don't assert that global structures are in
9227         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
9228         (mips_option_override): Use new variables and functions to set
9229         state of these options.  Use strcmp to check for individual CPU names.
9230         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
9231         definition.
9232         * config/mips/mips.opt (march=): Use ToLower and Enum.
9233         (mips): Use ToLower, Enum and Var.
9234         (mtune=): Use ToLower and Enum.
9235         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
9236
9237 2011-05-08  Jan Hubicka  <jh@suse.cz>
9238
9239         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
9240         Arrange type pairs to be UID ordered.
9241         (gimple_lookup_type_leader): Make inline.
9242
9243 2011-05-09  Nick Clifton  <nickc@redhat.com>
9244
9245         PR target/48899
9246         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
9247         PROCESSOR_DEFAULT.
9248
9249         PR target/48897
9250         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
9251         variable 's'.
9252
9253 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
9254
9255         * combine.c (simplify_comparison): Abstract out parts into...
9256         (simplify_compare_const): ... new function.
9257         (try_combine): Generalize parallel arithmetic/compare combining
9258         to call simplify_compare_const() and CANONICALIZE_COMPARE().
9259
9260 2011-05-08  Jan Hubicka  <jh@suse.cz>
9261
9262         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
9263         (cgraph_create_virtual_clone): Call hooks once virtual clone
9264         is finished.
9265         * cgraph.h (cgraph_clone_node): Update prototype.
9266         * ipa-cp.c (ipcp_estimate_growth): Use
9267         estimate_ipcp_clone_size_and_time.
9268         * ipa-inline-transform.c (clone_inlined_nodes): Update.
9269         * lto-cgraph.c (input_node): Update.
9270         * ipa-inline.c (recursive_inlining): Update.
9271         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
9272         (evaluate_conditions_for_known_args): Break out from ...
9273         (evaluate_conditions_for_edge): ... here.
9274         (evaluate_conditions_for_ipcp_clone): New function.
9275         (inline_node_duplication_hook): Update clone summary based
9276         on parameter map.
9277         (estimate_callee_size_and_time): Rename to ...
9278         (estimate_node_size_and_time): take NODE instead of EDGE;
9279         take POSSIBLE_TRUTHS as argument.
9280         (estimate_callee_size_and_time): Update.
9281         (estimate_ipcp_clone_size_and_time): New function.
9282         (do_estimate_edge_time): Update.
9283
9284 2011-05-08  Richard Guenther  <rguenther@suse.de>
9285
9286         PR middle-end/48908
9287         PR middle-end/48905
9288         * expmed.c (expand_shift_1): Compute adjusted constant shift
9289         amount manually.
9290
9291 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
9292
9293         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
9294
9295 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
9296
9297         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
9298
9299 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
9300
9301         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
9302
9303 2011-05-07  Jan Hubicka  <jh@suse.cz>
9304
9305         * ipa-inline-transform.c (inline_call): Account when program size
9306         decreases.
9307         * ipa-inline.c (relative_time_benefit): New function.
9308         (edge_badness): Reorganize to be power 2 based; fix thinko when
9309         computing badness for negative growth; update comments to match
9310         reality; better dumps.
9311
9312 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
9313
9314         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
9315         type to bool and adjust comment.
9316         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
9317         (fold_mathfn_compare): Remove calls to global_bindings_p.
9318         (fold_inf_compare): Likewise.
9319         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
9320         * c-tree.h (global_bindings_p): Adjust prototype.
9321         * c-decl.c (global_bindings_p): Return bool and simplify.
9322
9323 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
9324
9325         PR tree-optimization/48837
9326         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
9327         when accumulator transformation is performed.
9328
9329 2011-05-06  Jan Hubicka  <jh@suse.cz>
9330
9331         * i386.h (ix86_tune_indices): Add
9332         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
9333         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
9334         * i386.c (initial_ix86_tune_features): Add
9335         X86_SOFTARE_PREFETCHING_BENEFICIAL.
9336         (software_prefetching_beneficial_p): Remove predicate.
9337         (ix86_option_override_internal): Use new macro.
9338
9339 2011-05-06  Jan Hubicka  <jh@suse.cz>
9340
9341         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
9342
9343 2011-05-06  Jan Hubicka  <jh@suse.cz>
9344
9345         * cgraph.c (cgraph_add_thunk): Create real function node instead
9346         of alias node; finalize it and mark needed/reachale; arrange visibility
9347         to be right and add it into the corresponding same comdat group list.
9348         (dump_cgraph_node): Dump thunks.
9349         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
9350         cgraph_function_with_gimple_body_p,
9351         cgraph_first_function_with_gimple_body,
9352         cgraph_next_function_with_gimple_body): New functions.
9353         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
9354         New macros.
9355         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
9356         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
9357         * cgraphunit.c (cgraph_finalize_function): Only look into possible
9358         devirtualization when optimizing.
9359         (verify_cgraph_node): Verify thunks.
9360         (cgraph_analyze_function): Analyze thunks.
9361         (cgraph_mark_functions_to_output): Output thunks only in combination
9362         with function they are assigned to.
9363         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
9364         alias into normal node.
9365         (assemble_thunks): New functoin.
9366         (cgraph_expand_function): Use it.
9367         * lto-cgraph.c (lto_output_node): Stream thunks.
9368         (input_overwrite_node): Stream in thunks.
9369         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
9370         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
9371         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
9372         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
9373         (inline_analyze_function): Do not care about thunk jump functions.
9374         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
9375         * ipa-prop.c (ipa_prop_write_jump_functions): Use
9376         cgraph_function_with_gimple_body_p.
9377         * passes.c (do_per_function_toporder): Use
9378         cgraph_function_with_gimple_body_p.
9379         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
9380         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
9381         (function_called_by_processed_nodes_p): Likewise.
9382
9383 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
9384
9385         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
9386         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
9387         entries.
9388         (mabi=): Replace with separate entries for mabi=altivec,
9389         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
9390         mabi=ieeelongdouble and mabi=ibmlongdouble.
9391         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
9392         check for -mabi=spe without SPE ABI support here.
9393         (rs6000_handle_option): Replace OPT_mabi_ handling with
9394         OPT_mabi_altivec and OPT_mabi_spe handling.
9395
9396 2011-05-06  Cary Coutant  <ccoutant@google.com>
9397
9398         * dwarf2out.c (contains_subprogram_definition): New function.
9399         (should_move_die_to_comdat): Call it.
9400
9401 2011-05-06  Jeff Law  <law@redhat.com>
9402
9403         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
9404         remove_ctrl_stmt_and_useless_edges.
9405         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
9406         (fixup_template_block, thread_single_edge): Likewise.
9407         (mark_threaded_blocks): Use THREAD_TARGET.
9408
9409 2011-05-06  Alan Modra  <amodra@gmail.com>
9410
9411         PR target/48900
9412         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
9413         const0_rtx as the arg to the dummy __tls_get_addr libcall.
9414
9415 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
9416
9417         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
9418         constraint modifier to "r".
9419
9420 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
9421
9422         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
9423         fall through for OPT_mcmodel_.
9424
9425 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9426
9427         * config/s390/s390.c (s390_asm_trampoline_template): Comment
9428         instruction sizes.
9429         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
9430
9431 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9432
9433         PR target/47930
9434         * config/arm/arm.opt (marm): Document it.
9435         (mthumb): Reject negative variant.
9436
9437 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
9438
9439         PR target/48898
9440         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
9441         Fix typo in "ccvt" variable name.
9442
9443 2011-05-06  Tristan Gingold  <gingold@adacore.com>
9444
9445         PR target/48895
9446         * config/vms/vms-ar.c (main): Remove cwd variable.
9447
9448 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
9449
9450         PR debug/48902
9451         * var-tracking.c (prepare_call_arguments): Move else before #endif.
9452
9453 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
9454
9455         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
9456         * gimplify.c (gimplify_switch_expr): Likewise.
9457         * omp-low.c (expand_omp_sections): Likewise.
9458         * tree-eh.c (lower_try_finally_switch): Likewise.
9459         (lower_eh_dispatch): Likewise.
9460         * tree.h (build_case_label): Declare.
9461         * tree.c (build_case_label): Define.
9462
9463 2011-05-05  Jason Merrill  <jason@redhat.com>
9464
9465         PR c++/40975
9466         * tree-inline.c (copy_tree_r): Use copy_statement_list.
9467         (copy_statement_list): Don't recurse.
9468         * stor-layout.c (copy_self_referential_tree_r): Don't allow
9469         STATEMENT_LIST.
9470
9471 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
9472
9473         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
9474         through from -mfpu= handling.
9475         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
9476
9477 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
9478
9479         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
9480         POST_MODIFY.
9481
9482 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
9483
9484         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
9485         for 11.31.
9486         (hppa[12]*-*-hpux11*): Ditto.
9487         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
9488         * config/ia64/hpux-unix2003.h: New.
9489         * config/pa/pa-hpux1131.opt: New.
9490         * config/pa/pa-hpux1131.h: New.
9491         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
9492         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
9493         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
9494
9495 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
9496
9497         PR debug/48853
9498         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
9499         instead of mode as 3rd argument to recursive call.
9500         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
9501         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
9502         VOIDmode.
9503         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
9504         don't give up if mode is Pmode and mem_mode is not VOIDmode.
9505         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
9506         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
9507
9508 2011-05-05  Julian Brown  <julian@codesourcery.com>
9509
9510         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
9511         parenthesis in D-register case.
9512
9513 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
9514
9515         * opt-functions.awk (var_type_struct): Handle Enum options.
9516         * optc-gen.awk: Don't check range of variables of character type.
9517         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
9518         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
9519         rs6000_sdata_name, rs6000_explicit_options): Remove.
9520         (rs6000_option_override_internal): Check for -malign-power here.
9521         Use global_options_set instead of rs6000_explicit_options.
9522         (rs6000_parse_fpu_option): Remove.
9523         (rs6000_handle_option): Access variables via opts and opts_set
9524         pointers.  Use error_at and warning_at.  Add fall-through
9525         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
9526         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
9527         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
9528         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
9529         here.  Don't use rs6000_parse_fpu_option.
9530         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
9531         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
9532         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
9533         (mrecip=): Use Var.
9534         (mspe): Use Var and Save.
9535         (mtraceback=): Use Enum and Var.
9536         (rs6000_traceback_type): New Enum and EnumValue entries.
9537         (mfloat-gprs=): Use Enum, Var and Save.
9538         (rs6000_float_gprs): New Enum and EnumValue entries.
9539         (mlong-double-): use Var and Save.
9540         (msched-costly-dep=, minsert-sched-nops=): Use Var.
9541         (malign-): Use Enum and Var.
9542         (rs6000_alignment_flags): New Enum and EnumValue entries.
9543         (mfpu=): Use Enum.
9544         (fpu_type_t): New Enum and EnumValue entries.
9545         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9546         global_options_set instead of rs6000_explicit_options.
9547         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9548         global_options_set instead of rs6000_explicit_options.
9549         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9550         global_options_set instead of rs6000_explicit_options.
9551         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9552         global_options_set instead of rs6000_explicit_options.
9553         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
9554         global_options_set instead of rs6000_explicit_options.
9555         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
9556         global_options_set instead of rs6000_explicit_options.
9557         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
9558         definition.
9559         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
9560         global_options_set instead of rs6000_explicit_options.
9561         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
9562         (rs6000_cmodel): New Enum and EnumValue entries.
9563         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
9564         global_options_set instead of rs6000_explicit_options.
9565         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
9566         (mtls-size=): Use Enum and Var.
9567         (rs6000_tls_size): New Enum and EnumValue entries.
9568
9569 2011-05-05  Michael Matz  <matz@suse.de>
9570
9571         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
9572         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
9573         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
9574         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
9575         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
9576         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
9577         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
9578         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
9579         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
9580         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
9581         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
9582         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
9583         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
9584         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
9585         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
9586         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
9587
9588 2011-05-05  Richard Guenther  <rguenther@suse.de>
9589
9590         * expmed.c (expand_variable_shift): Rename to ...
9591         (expand_shift_1): ... this.  Take an expanded shift amount.
9592         For rotates recurse directly not building trees for the shift amount.
9593         (expand_variable_shift): Wrap around expand_shift_1.
9594         (expand_shift): Adjust.
9595
9596 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
9597
9598         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
9599
9600 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
9601
9602         * tree.h (get_pending_sizes): Remove prototype.
9603         (put_pending_size): Likewise.
9604         (put_pending_sizes): Likewise.
9605         * stor-layout.c (pending_sizes): Delete.
9606         (get_pending_sizes): Likewise.
9607         (put_pending_size): Likewise.
9608         (put_pending_sizes): Likewise.
9609         (variable_size): Do not call put_pending_size and tidy up.
9610         * function.h (struct function): Remove dont_save_pending_sizes_p.
9611         * lto-streamer-in.c (input_function): Do not stream it.
9612         * lto-streamer-out.c (output_function): Likewise.
9613         * tree-inline.c (initialize_cfun): Do not copy it.
9614         * c-decl.c (store_parm_decls): Do not set it.
9615         * omp-low.c (create_task_copyfn): Likewise.
9616         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9617
9618 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
9619
9620         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
9621         conditions.
9622         (*movdf_internal): Ditto.
9623         (*movdf_internal_nointeger): Ditto.
9624         (*movsf_internal): Ditto.
9625
9626 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
9627
9628         * c-decl.c (finish_decl): Don't call get_pending_sizes.
9629         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
9630         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
9631         (c_variable_size): Remove.
9632         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
9633         call put_pending_sizes.
9634         (get_parm_info): Add parameter expr.  Use it to set
9635         arg_info->pending_sizes.
9636         (store_parm_decls): Use arg_info->pending_sizes instead or calling
9637         get_pending_sizes.
9638         * c-parser.c (c_parser_parms_declarator): Update call to
9639         c_parser_parms_list_declarator.
9640         (c_parser_parms_list_declarator): Take parameter expr.  Update
9641         call to push_parm_decl.  Update recursive call.  Don't call
9642         get_pending_sizes.  Update calls to get_parm_info.
9643         (c_parser_objc_method_definition): Update calls to
9644         c_parser_objc_method_decl and objc_start_method_definition.
9645         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
9646         (c_parser_objc_method_decl): Add parameter expr.  Update call to
9647         grokparm.
9648         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
9649         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
9650         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
9651
9652 2011-05-05  Michael Hope  <michael.hope@linaro.org>
9653
9654         PR pch/45979
9655         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
9656         __ARM_EABI__ hosts.
9657
9658 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9659
9660         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
9661         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
9662         (spu_output_mi_thunk): New function.
9663
9664 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9665
9666         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
9667         targetm.asm_out.print_operand.
9668         * config/sol2.c: Include target.h.
9669
9670 2011-05-04  Jan Hubicka  <jh@suse.cz>
9671
9672         * ipa-inline.c (reset_edge_caches): New function.
9673         (update_caller_keys): Add check_inlinablity_for; do not
9674         reset edge caches; remove now unnecesary loop.
9675         (update_callee_keys): Add comments; reset node_growth_cache of callee.
9676         (update_all_callee_keys): Likewise.
9677         (inline_small_functions): Sanity check cache; update code
9678         recomputing it.
9679
9680 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
9681
9682         PR rtl-optimization/47612
9683         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
9684         as the last insn of the sequence to be moved.
9685
9686 2011-05-04  Tobias Burnus  <burnus@net-b.de>
9687
9688         PR fortran/48864
9689         * doc/invoke.texi (Ofast): Document that it
9690         enables Fortran's -fno-protect-parens.
9691
9692 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
9693
9694         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
9695
9696 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
9697
9698         * stor-layout.c (variable_size): Do not issue errors.
9699
9700 2011-05-04  Richard Guenther  <rguenther@suse.de>
9701
9702         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
9703         for array-ref indices.
9704         (tree_coverage_counter_addr): Likewise.
9705         (build_fn_info_type): Use size_int for index types.
9706         (build_gcov_info): Likewise.
9707
9708 2011-05-04  Richard Guenther  <rguenther@suse.de>
9709
9710         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
9711         to build_int_cst.
9712         * c-typeck.c (really_start_incremental_init): Use bitsize_int
9713         for constructor indices.
9714         (push_init_level): Likewise.
9715
9716 2011-05-04  Richard Guenther  <rguenther@suse.de>
9717
9718         * explow.c (promote_mode): Move variable declarations before code.
9719
9720 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
9721
9722         * tree.h (build_function_type_array): Declare.
9723         (build_varargs_function_type_array): Declare.
9724         (build_function_type_vec, build_varargs_function_type_vec): Define.
9725         * tree.c (build_function_type_array_1): New function.
9726         (build_function_type_array): New function.
9727         (build_varargs_function_type_array): New function.
9728
9729 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
9730
9731         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
9732         before setting STMT_VINFO_TYPE.
9733
9734 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9735
9736         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
9737         instead of spu_pass_by_reference.
9738
9739 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9740
9741         * calls.c (emit_library_call_value_1): Invoke
9742         promote_function_mode hook on libcall arguments.
9743         * explow.c (promote_function_mode, promote_mode): Handle TYPE
9744         argument being NULL.
9745         * targhooks.c (default_promote_function_mode): Lisewise.
9746         * config/s390/s390.c (s390_promote_function_mode): Likewise.
9747         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
9748
9749         * doc/tm.texi: Document that TYPE argument might be NULL.
9750
9751 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
9752
9753         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
9754
9755 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
9756
9757         From Bernd Schmidt
9758         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
9759
9760 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9761
9762         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
9763         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
9764         Move ...
9765         * mips-tfile.c: ... here.
9766         Don't include coretypes.h, tm.h, filenames.h.
9767         (saber_stop): Remove definition and all calls.
9768         [__SABER__]: Remove.
9769         (__LINE__): Remove default.
9770         (Size_t, Ptrdiff_t): Remove definitions.
9771         Replace by size_t, ptrdiff_t.
9772         [!MIPS_DEBUGGING_INFO]: Remove.
9773         (SHASH_SIZE, THASH_SIZE): Remove defaults.
9774         (progname): Add const.
9775         (STATIC): Remove.
9776         Replace all uses by static.
9777         (ALIGN_SYMTABLE_OFFSET): Remove default.
9778         * mips-tdump.c: Don't include coretypes.h, tm.h.
9779         Remove !MIPS_IS_STAB guard.
9780         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
9781         $(TM_H), filenames.h dependencies.
9782         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
9783
9784 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
9785
9786         From Jie Zhang
9787         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
9788         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
9789
9790 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
9791
9792         From Bernd Schmidt
9793         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
9794         account and save/restore RETS.
9795         (PROFILE_BEFORE_PROLOGUE): Define.
9796         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
9797         the push insn to use predecrement.
9798
9799 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
9800
9801         From Jie Zhang
9802         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
9803
9804 2011-05-04  Nick Clifton  <nickc@redhat.com>
9805
9806         * config/mn10300/mn10300.c: Include cfgloop.h.
9807         (DUMP): New macro.
9808         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
9809         Lcc or a FLcc insn into the instruction stream.
9810         (mn10300_block_contains_call): New function.  Returns true if the
9811         given basic block contains a CALL insn.
9812         (mn10300_loop_contains_call_insn): New function.  Returns true if
9813         the given loop contains a CALL insn.
9814         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
9815         to use the SETLB and Lcc or FLcc insns.
9816         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
9817         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
9818         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
9819         disable the SETLB optimization.
9820         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
9821         __SETLB__ or __NO_SETLB__.
9822         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
9823         (movsf_internal): Handle MDR register.
9824         (cmpsi): Make visible.
9825         (setlb): New pattern.
9826         (Lcc): New pattern.
9827         (FLcc): New pattern.
9828
9829 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
9830
9831         PR target/48860
9832         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
9833         for reg<->xmm moves.
9834         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
9835         (vec_concatv2di_rex64_sse): Ditto.
9836         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
9837         (*vec_extractv2di_1_rex64): Ditto.
9838
9839         Revert:
9840         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
9841
9842         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
9843         reg<->xmm moves.
9844         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
9845
9846 2011-05-04  Richard Guenther  <rguenther@suse.de>
9847
9848         * tree.h (int_const_binop): Remove notrunc argument.
9849         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
9850         create integer constants that are properly truncated.
9851         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
9852         (const_binop): Remove zero notrunc argument to int_const_binop.
9853         (size_binop_loc): Likewise.
9854         (fold_div_compare): Likewise.
9855         (maybe_canonicalize_comparison_1): Likewise.
9856         (fold_comparison): Likewise.
9857         (fold_binary_loc): Likewise.
9858         (multiple_of_p): Likewise.
9859         * expr.c (store_constructor): Likewise.
9860         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
9861         (maybe_fold_stmt_addition): Likewise.
9862         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
9863         * stor-layout.c (layout_type): Likewise.
9864         * tree-data-ref.c (tree_fold_divides_p): Likewise.
9865         * tree-sra.c (build_ref_for_offset): Likewise.
9866         (build_user_friendly_ref_for_offset): Likewise.
9867         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
9868         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
9869         * tree-ssa-loop-niter.c (inverse): Likewise.
9870         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
9871         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
9872         * tree-switch-conversion.c (check_range): Likewise.
9873         (build_constructors): Likewise.
9874         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
9875         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
9876         (extract_range_from_assert): Likewise.
9877         (vrp_int_const_binop): Likewise.
9878         (extract_range_from_binary_expr): Likewise.
9879         (extract_range_from_unary_expr): Likewise.
9880         (check_array_ref): Likewise.
9881         (find_case_label_range): Likewise.
9882         (simplify_div_or_mod_using_ranges): Likewise.
9883         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
9884         comparing case labels for merging.
9885
9886 2011-05-03  Mark Wielaard  <mjw@redhat.com>
9887
9888         * dwarf2out.c (debug_str_hash_forced): Removed.
9889         (gen_label_for_indirect_string): Removed.
9890         (get_debug_string_label): Removed.
9891         (AT_string_form): Generate label directly.
9892         (output_indirect_string): Test indirect_string_node for
9893         DW_FORM_strp instead of checking label and refcount.
9894         (prune_indirect_string): Removed.
9895         (prune_unused_types): Don't check debug_str_hash_forced or
9896         call prune_indirect_string.
9897
9898 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
9899
9900         PR other/48093
9901         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
9902
9903 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
9904
9905         PR debug/47994
9906         PR debug/47919
9907         * combine.c (try_combine): Skip debug insns at m_split tests.
9908
9909 2011-04-26  Mark Wielaard  <mjw@redhat.com>
9910
9911         PR42288
9912         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
9913         when info_section_emitted.
9914
9915 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
9916
9917         * config/mips/mips-opts.h: New.
9918         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
9919         to mips-opts.h.
9920         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
9921         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
9922         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
9923         via opts pointer.
9924         * config/mips/mips.h (enum mips_code_readable_setting): Move to
9925         mips-opts.h.
9926         (mips_abi, mips_code_readable): Don't declare.
9927         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
9928         (mabi=): Use Enum and Var.
9929         (mips_abi): New Enum and EnumValue entries.
9930         (mcode-readable=): Use Enum and Var.
9931         (mips_code_readable_setting): New Enum and EnumValue entries.
9932         (mr10k-cache-barrier=): Use Enum and Var.
9933         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
9934
9935 2011-05-03  Jan Hubicka  <jh@suse.cz>
9936
9937         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
9938         replace hash by pointer map.
9939         (cgraph_node_set_element_def, cgraph_node_set_element,
9940         const_cgraph_node_set_element, varpool_node_set_element_def,
9941         varpool_node_set_element, const_varpool_node_set_element): Remove.
9942         (free_cgraph_node_set, free_varpool_node_set): New function.
9943         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
9944         * tree-emutls.c: Free varpool node set.
9945         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
9946         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
9947         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
9948         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
9949         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
9950         Move here from ipa.c; implement using pointer_map
9951         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
9952         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
9953         debug_cgraph_node_set, varpool_node_set_new,
9954         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
9955         dump_varpool_node_set, debug_varpool_node_set):
9956         Move to ipa-uitls.c.
9957         * passes.c (ipa_write_summaries): Update.
9958
9959 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
9960
9961         From Mike Frysinger:
9962         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
9963         bf542/bf544/bf547/bf548/bf549.
9964
9965 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
9966
9967         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
9968
9969 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
9970
9971         From Bernd Schmidt:
9972         * config/bfin/bfin.md (MOVCC): New mode_macro.
9973         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
9974         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
9975         comments from generated assembly.
9976
9977 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
9978
9979         From Bernd Schmidt
9980         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
9981         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
9982         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
9983         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
9984         * config/bfin/lib1funcs.asm (___muldi3): New function.
9985
9986 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
9987
9988         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
9989         build_function_type_list instead of build_function_type.
9990         Rearrange initialization of `args' to do so.
9991
9992 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
9993
9994         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
9995         instead of build_function_type.
9996
9997 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
9998
9999         * config/rs6000/rs6000.c (spe_init_builtins): Call
10000         build_function_type_list instead of build_function_type.
10001         (paired_init_builtins, altivec_init_builtins): Likewise.
10002         (builtin_function_type): Likewise.
10003
10004 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10005
10006         * config/sh/sh.c (sh_media_init_builtins): Call
10007         build_function_type_list instead of build_function_type.
10008
10009 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10010
10011         * config/sparc/sparc.c (sparc_file_end): Call
10012         build_function_type_list instead of build_function_type.
10013
10014 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10015
10016         * config/alpha/alpha.c (alpha_init_builtins): Call
10017         build_function_type_list instead of build_function_type.
10018
10019 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10020
10021         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
10022         build_function_type_list instead of build_function_type.
10023
10024 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10025
10026         * config/iq2000/i2000.c (iq2000_init_builtins): Call
10027         build_function_type_list instead of build_function_type.
10028         Delete `endlink' variable.
10029
10030 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10031
10032         * config/avr/avr.c (avr_init_builtins): Call
10033         build_function_type_list instead of build_function_type.
10034
10035 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10036
10037         * config/picochip/picochip.c (picochip_init_builtins): Call
10038         build_function_type_list instead of build_function_type.
10039         Delete `endlink' variable.
10040
10041 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10042
10043         * config/bfin/bfin.c (bfin_init_builtins): Call
10044         build_function_type_list instead of build_function_type.
10045
10046 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
10047
10048         From Bernd Schmidt
10049         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
10050         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
10051
10052 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
10053
10054         From Jie Zhang:
10055         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
10056         libbffastfp overrides libgcc when -mfast-fp.
10057
10058 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
10059
10060         Originally from Bernd Schmidt
10061         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
10062         * config/bfin/bfin.c (override_options): Test it and error if
10063         TARGET_FDPIC.
10064
10065 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
10066
10067         Originally From Bernd Schmidt
10068         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
10069         FD-PIC.
10070
10071 2011-05-03  Jeff Law  <law@redhat.com>
10072
10073         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
10074         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
10075         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
10076         than accessing AUX field directly.  Free the AUX field before
10077         clearing it.
10078         (thread_block, thread_through_loop_header): Likewise.
10079         (thread_single_edge, mark_threaded_blocks): Likewise.
10080         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
10081         (register_jump_thread): Do not attempt to thread to a NULL edge.
10082
10083 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
10084
10085         * function.c (init_function_start): Call decide_function_section.
10086         * varasm.c (decide_function_section): New function.
10087         (assemble_start_function): When not using
10088         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
10089         or first_function_block_is_cold.
10090         * rtl.h (decide_function_section): Declare.
10091
10092 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
10093             Jakub Jelinek  <jakub@redhat.com>
10094
10095         PR target/48774
10096         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
10097         only succeed if req_mode is the same as set_mode.
10098
10099 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
10100
10101         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
10102         * genemit.c (gen_exp): Handle RETURN.
10103         * emit-rtl.c (verify_rtx_sharing): Likewise.
10104         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
10105         * rtl.c (copy_rtx): RETURN is shared.
10106         * rtl.h (enum global_rtl_index): Add GR_RETURN.
10107         (ret_rtx): New.
10108         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
10109         * config/s390/s390.c (s390_emit_epilogue): Likewise.
10110         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
10111         * config/cris/cris.c (cris_expand_return): Likewise.
10112         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
10113         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
10114         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
10115         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
10116         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
10117         Likewise.
10118         * config/v850/v850.c (expand_epilogue): Likewise.
10119         * config/bfin/bfin.c (bfin_expand_call): Likewise.
10120         * config/arm/arm.md (epilogue): Likewise.
10121         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
10122         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
10123         variable to ret_reg.
10124
10125 2011-05-03  Richard Guenther  <rguenther@suse.de>
10126
10127         PR lto/48846
10128         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
10129         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
10130         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
10131
10132 2011-05-03  Richard Guenther  <rguenther@suse.de>
10133
10134         * c-decl.c (grokdeclarator): Instead of looking at
10135         TREE_OVERFLOW check if the constant fits in the index type.
10136
10137 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
10138
10139         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
10140         (vec_store_lanes<mode><mode>): Likewise.
10141
10142 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
10143
10144         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
10145         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
10146         convert_optab_index values.
10147         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
10148         * genopinit.c (optabs): Initialize the new optabs.
10149         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
10150         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
10151         (expand_STORE_LANES): New functions.
10152         * tree.h (build_array_type_nelts): Declare.
10153         * tree.c (build_array_type_nelts): New function.
10154         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
10155         (vect_model_load_cost): Likewise.
10156         (vect_store_lanes_supported, vect_load_lanes_supported)
10157         (vect_record_strided_load_vectors): Declare.
10158         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
10159         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
10160         (vect_transform_strided_load): Split out statement recording into...
10161         (vect_record_strided_load_vectors): ...this new function.
10162         * tree-vect-stmts.c (create_vector_array, read_vector_array)
10163         (write_vector_array, create_array_ref): New functions.
10164         (vect_model_store_cost): Add store_lanes_p argument.
10165         (vect_model_load_cost): Add load_lanes_p argument.
10166         (vectorizable_store): Try to use store-lanes functions for
10167         interleaved stores.
10168         (vectorizable_load): Likewise load-lanes and loads.
10169         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
10170         to vect_model_store_cost.
10171         (vect_build_slp_tree): Likewise vect_model_load_cost.
10172
10173 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
10174
10175         * hooks.h (hook_bool_mode_uhwi_false): Declare.
10176         * hooks.c (hook_bool_mode_uhwi_false): New function.
10177         * target.def (array_mode_supported_p): New hook.
10178         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
10179         * doc/tm.texi: Regenerate.
10180         * stor-layout.c (mode_for_array): New function.
10181         (layout_type): Use it.
10182         * config/arm/arm.c (arm_array_mode_supported_p): New function.
10183         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
10184
10185 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
10186
10187         PR target/48723
10188         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
10189         for -fstack-check if the size to allocate is negative.
10190
10191 2011-05-02  Lawrence Crowl  <crowl@google.com>
10192
10193         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
10194         (timevar_cond_start): New for starting a timer only when it is not
10195         already running.
10196         (timevar_cond_stop): New for stopping a timer when it was not already
10197         running.
10198
10199         * timevar.c (timevar_stop): Enable start/stop timers to start again.
10200         (timevar_cond_start): New as above.
10201         (timevar_cond_stop): New as above.
10202
10203         * timevar.def: Add start/stop timers for compiler phases,
10204         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
10205         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
10206         and TV_PHASE_FINALIZE.
10207         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
10208         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
10209         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
10210         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
10211         Make unused TV_OVERLOAD into a start/stop timer.
10212
10213         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
10214         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
10215         to indicate that they are start/stop timers.
10216
10217         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
10218         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
10219         Move initialization to do_compile.
10220         (do_compile): Add initialization from above.
10221         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
10222
10223         * c-decl.c (c_write_global_declarations): Add start/stop of
10224         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
10225
10226         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
10227         or TV_PARSE_INLINE, as appropriate.
10228         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
10229         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
10230
10231 2011-05-02  Jason Merrill  <jason@redhat.com>
10232
10233         PR c++/40975
10234         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
10235
10236 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
10237
10238         PR c/35445
10239         * c-decl.c (finish_decl): Only create a composite if the types are
10240         compatible.
10241
10242 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
10243
10244         * config/fr30/fr30-protos.h (Mmode): Don't define.
10245         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
10246         definition where used.
10247         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
10248         define.  Expand definitions where used.
10249         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
10250         Expand definitions where used.
10251         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
10252         rx_function_arg, rx_function_arg_advance,
10253         rx_function_arg_boundary): Expand definitions of those macros.
10254         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
10255         definition where used.
10256
10257 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
10258
10259         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
10260         reg<->xmm moves.
10261         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
10262         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
10263         with *movv2sf_internal_rex64_avx.
10264         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
10265         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
10266         Use %v prefix in insn mnemonic to handle TARGET_AVX.
10267         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
10268         "vex" in "prefix" attribute calculation.
10269         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
10270
10271 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
10272
10273         PR target/47951
10274         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
10275         inputs match the output.
10276
10277 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
10278
10279         PR target/47955
10280         * config/m68k/m68k.c (m68k_expand_prologue): Set
10281         current_function_static_stack_size.
10282
10283 2011-05-02   Jan Hubicka  <jh@suse.cz>
10284
10285         * lto-streamer.c (lto_streamer_cache_insert_1,
10286         lto_streamer_cache_lookup, lto_streamer_cache_create,
10287         lto_streamer_cache_delete): Use pointer map instead of hashtable.
10288         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
10289
10290 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
10291
10292         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
10293         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
10294         config/m68k/t-opts: New files.
10295         * config/m68k/m68k-tables.opt: New file (generated).
10296         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
10297         extra_options and m68k/t-opts to tmake_file.
10298         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
10299         (all_isas): Initialize using m68k-isas.def.
10300         (all_microarchs): Initialize using m68k-microarchs.def.
10301         (m68k_find_selection): Remove.
10302         (m68k_handle_option): Don't assert that global structures are in
10303         use.  Use error_at.  Access variables via opts pointer.  Don't
10304         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
10305         directly for -m68020-40 and -m68020-60.
10306         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
10307         m68k_tune_entry here.
10308         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
10309         to m68k-opts.h.
10310         (m68k_library_id_string): Remove declaration.
10311         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
10312         (m68k_library_id_string): New Variable.
10313         (march=, mcpu=, mtune=): Use Enum and Var.
10314
10315 2011-05-02  Richard Guenther  <rguenther@suse.de>
10316
10317         * varasm.c (output_constructor_regular_field): Compute zero-based
10318         index with double-ints.  Make sure to ICE instead of producing
10319         wrong code.
10320         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
10321         in asserts.  Properly use a signed type.
10322
10323 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
10324
10325         * config/i386/sse.md (V): New mode iterator.
10326         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
10327         TARGET_SSE2.
10328         (V_256): Rename from AVX256MODE.
10329         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
10330         condition to all users.
10331         (VF1): Ditto.
10332         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
10333         condition to all users.
10334         (VF_128): Make V4SF mode unconditional.
10335         (VF_256): Rename from AVX256MODEF2P.
10336         (VI4F_128): Rename from SSEMODE4S.
10337         (VI8F_128): Rename from SSEMODE2D.
10338         (VI4F_256): Rename from AVX256MODE8P.
10339         (VI8F_256): Rename from AVX256MODE4P.
10340         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
10341         (ssescalarmodesuffix): Remove SF and DF modes.
10342         (SSEMODE124): Remove.
10343         (SSEMODE1248): Ditto.
10344         (SSEMODEF2P): Ditto.
10345         (AVXMODEF2P): Ditto.
10346         (AVXMODEFDP): Ditto.
10347         (AVXMODEFSP): Ditto.
10348         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
10349         unconditional.
10350         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
10351         unconditional.
10352         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
10353         xop_pcmov_<mode>256.  Use V mode iterator.
10354
10355         Adjust RTX patterns globally for renamed mode attributes.
10356
10357 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10358
10359         * haifa-sched.c (sched_emit_insn): Emit insn before first
10360         non-scheduled insn.  Inform back-end about new insn.  Add
10361         new insn to scheduled_insns list.
10362
10363 2011-05-02  Richard Guenther  <rguenther@suse.de>
10364
10365         PR tree-optimization/48822
10366         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
10367         (process_scc): Indicate which iteration we start.
10368
10369 2011-05-02  Jan Hubicka  <jh@suse.cz>
10370
10371         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
10372         (lto_section_overrun): New.
10373         * lto-section-out.c (append_block): Rename to ...
10374         (lto_append_block): ... this one; export.
10375         (lto_output_1_stream): Move lto lto-streamer.h
10376         (lto_output_data_stream): Update.
10377         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
10378         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
10379         functions.
10380
10381 2011-05-02  Richard Guenther  <rguenther@suse.de>
10382
10383         * tree.c (tree_code_counts): New global array.
10384         (record_node_allocation_statistics): Count individual tree codes.
10385         (dump_tree_statistics): Dump individual code stats.
10386
10387 2011-05-01  Jan Hubicka  <jh@suse.cz>
10388
10389         * ipa-inline.c (caller_growth_limits): Fix thinko when
10390         looking for largest stack frame.
10391         * ipa-inline.h (dump_inline_summary): Declare.
10392         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
10393         on stack usage.
10394         (dump_inline_summary): Export.
10395         (debug_inline_summary): Declare as DEBUG_FUNCTION.
10396
10397 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
10398
10399         * reginfo.c (memory_move_cost): Change rclass argument type form
10400         'enum reg_class' to reg_class_t.
10401         * reload.h (memory_move_cost): Update prototype.
10402         * postreload.c reload_cse_simplify_set): Change type dclass var to
10403         reg_class_t.
10404         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
10405         Update prototype.
10406         (ira_allocate_and_set_costs): Change aclass argument type form
10407         'enum reg_class' to reg_class_t.
10408         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
10409         Change aclass argument type to reg_class_t.
10410         (update_conflict_hard_reg_costs): Change type aclass and pref vars
10411         to reg_class_t.
10412         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
10413         memory_move_cost call.
10414
10415         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
10416         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
10417         Change type tmp var to reg_class_t.
10418
10419 2011-04-30  Jan Hubicka  <jh@suse.cz>
10420
10421         * ipa-inline.c (can_inline_edge_p): Disregard limits when
10422         inlining into function with flatten attribute.
10423         (want_inline_small_function_p): Be more realistic about inlining
10424         cold calls where callee size grows.
10425
10426 2011-04-30  Jan Hubicka  <jh@suse.cz>
10427
10428         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
10429         flags.
10430
10431 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
10432
10433         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
10434         PRINT_OPERAND_PUNCT_VALID_P): Remove.
10435         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
10436         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
10437         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10438         (print_operand): Rename to...
10439         (sparc_print_operand): ...this. Make static. Adjust
10440         sparc_print_operand function call.
10441         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
10442         functions.
10443
10444 2011-04-30  Jan Hubicka  <jh@suse.cz>
10445
10446         PR middle-end/48752
10447         * ipa-inline.c (early_inliner): Disable when doing late
10448         addition of function.
10449
10450 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
10451
10452         * dwarf2out.c (get_address_mode): New inline.
10453         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
10454         if not dwarf_strict emit
10455         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
10456         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
10457         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
10458         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
10459         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
10460         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
10461         mem_loc_descriptor callers.
10462         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
10463         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
10464         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
10465         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
10466         (base_types): New variable.
10467         (get_base_type_offset, calc_base_type_die_sizes,
10468         base_type_for_mode, mark_base_types, base_type_cmp,
10469         move_marked_base_types): New functions.
10470         (calc_die_sizes): Assert that die_offset is 0 or equal to
10471         next_die_offset.
10472         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
10473         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
10474         callers.  If not dwarf_strict, call mem_loc_descriptor even for
10475         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
10476         (gen_subprogram_die): Don't give up on call site parameters
10477         with non-integral or large integral modes.  Adjust
10478         mem_loc_descriptor callers.
10479         (prune_unused_types): Call prune_unused_types_mark on base_types
10480         vector entries.
10481         (resolve_addr): Call mark_base_types.
10482         (dwarf2out_finish): Call move_marked_base_types.
10483
10484         PR tree-optimization/48809
10485         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
10486         type.
10487         (gen_inbound_check): Don't compute index_expr - range_min in utype
10488         again, instead reuse SSA_NAME initialized in build_arrays.
10489         Remove two useless gsi_for_stmt calls.
10490
10491 2011-04-29  Jeff Law  <law@redhat.com>
10492
10493         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
10494
10495 2011-04-29  Martin Jambor  <mjambor@suse.cz>
10496
10497         * cgraph.h (cgraph_postorder): Remove declaration.
10498         * ipa-utils.h (ipa_free_postorder_info): Declare.
10499         (ipa_reverse_postorder): Likewise.
10500         * cgraphunit.c: Include ipa-utils.h.
10501         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
10502         * ipa-inline.c: Include ipa-utils.h.
10503         (ipa_inline): Update call to ipa_reverse_postorder.
10504         * ipa-pure-const.c (propagate_pure_const): Update call to
10505         ipa_reduced_postorder and ipa_print_order.  Call
10506         ipa_free_postorder_info to clean up.
10507         (propagate_nothrow): Likewise.
10508         * ipa-reference.c (propagate): Removed a useless call to
10509         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
10510         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
10511         * ipa.c: Include ipa-utils.h.
10512         (ipa_profile): Update call to ipa_reverse_postorder.
10513         (cgraph_postorder): Moved to...
10514         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
10515         (ipa_utils_print_order): Renamed to ipa_print_order.
10516         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
10517         comments.
10518         (ipa_free_postorder_info): New function.
10519         * passes.c: Include ipa-utils.h.
10520         (do_per_function_toporder): Update call to ipa_reverse_postorder.
10521         (ipa_write_summaries): Likewise.
10522         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
10523         (cgraphunit.o): Likewise.
10524         (ipa.o): Likewise.
10525         (ipa-inline.o): Likewise.
10526
10527 2011-04-29  Jan Hubicka  <jh@suse.cz>
10528
10529         * gcc.dg/tree-ssa/inline-10.c: New testcase.
10530         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
10531         * ipa-inline.h (clause_t): Turn into unsigned int.
10532         * ipa-inline-analysis.c (add_clause): Do more simplification.
10533         (and_predicates): Shortcut more cases.
10534         (predicates_equal_p): Move forward; check that clauses are properly
10535         ordered.
10536         (or_predicates): Shortcut more cases.
10537         (edge_execution_predicate): Rewrite as...
10538         (set_cond_stmt_execution_predicate): ... this function; handle
10539         __builtin_constant_p.
10540         (set_switch_stmt_execution_predicate): New .
10541         (compute_bb_predicates): New.
10542         (will_be_nonconstant_predicate): Update TODO.
10543         (estimate_function_body_sizes): Use compute_bb_predicates
10544         and free them later, always try to estimate if stmt is constant.
10545         (estimate_time_after_inlining, estimate_size_after_inlining):
10546         Gracefully handle optimized out edges.
10547         (read_predicate): Fix off by one error.
10548
10549 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10550
10551         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
10552
10553 2011-04-27  Xinliang David Li  <davidxl@google.com>
10554
10555         * tree-profile.c (init_ic_make_global_vars): Set
10556         tls attribute on ic vars.
10557         * coverage.c (coverage_end_function): Initialize
10558         function_list with zero.
10559
10560 2011-04-29  Richard Guenther  <rguenther@suse.de>
10561
10562         * builtins.c (fold_builtin_classify_type): Use integer_type_node
10563         for the type of the result.
10564         (fold_builtin_isascii): Likewise.
10565         (fold_builtin_toascii): Use integer_type_node where appropriate.
10566         (fold_builtin_logb): Likewise.
10567         (fold_builtin_frexp): Likewise.
10568         (fold_builtin_strstr): Likewise.
10569         (fold_builtin_strpbrk): Likewise.
10570         (fold_builtin_fputs): Likewise.
10571         (fold_builtin_sprintf): Likewise.
10572         (fold_builtin_snprintf): Likewise.
10573         (fold_builtin_printf): Likewise.
10574         (do_mpfr_remquo): Use a proper type for the assigned constant.
10575         (do_mpfr_lgamma_r): Likewise.
10576         * dwarf2out.c (resolve_one_addr): Use size_int.
10577         * except.c (init_eh): Likewise.
10578         (assign_filter_values): Use integer_type_node for filter values.
10579         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
10580         indices.
10581         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
10582         for EH region numbers.
10583         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
10584         for the shift amount.
10585
10586 2011-04-29  Richard Guenther  <rguenther@suse.de>
10587
10588         * expr.h (expand_shift): Rename to ...
10589         (expand_variable_shift): ... this.
10590         (expand_shift): Take a constant shift amount.
10591         * expmed.c (expand_shift): Rename to ...
10592         (expand_variable_shift): ... this.
10593         (expand_shift): New wrapper around expand_variable_shift.
10594         * expr.c (convert_move, emit_group_load_1, emit_group_store,
10595         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
10596         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
10597         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
10598         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
10599         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
10600         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
10601         emit_store_flag_1, emit_store_flag): Likewise.
10602         * builtins.c (expand_builtin_signbit): Likewise.
10603         * calls.c (load_register_parameters): Likewise.
10604         * function.c (assign_parm_setup_block): Likewise.
10605         * lower-subreg.c (resolve_shift_zext): Likewise.
10606         * optabs.c (widen_bswap, expand_abs_nojump,
10607         expand_one_cmpl_abs_nojump, expand_float): Likewise.
10608         * spu/spu.c (spu_expand_extv): Likewise.
10609         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
10610
10611 2011-04-29  Richard Guenther  <rguenther@suse.de>
10612
10613         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
10614         for the remapped region number.
10615         * predict.c (build_predict_expr): Use integer_type_node for the
10616         predict kind.
10617         * fold-const.c (fold_binary_loc): Use integer_type_node for
10618         the shift amount.  Use a proper type for the PLUS_EXPR operand.
10619
10620 2011-04-29  Michael Matz  <matz@suse.de>
10621
10622         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
10623         other trees that just builtins.
10624         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
10625
10626 2011-04-29  Richard Guenther  <rguenther@suse.de>
10627
10628         * tree-nested.c (get_trampoline_type): Use size_int.
10629         (get_nl_goto_field): Likewise.
10630         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
10631         for all indexes.
10632         (lower_eh_constructs_2): Likewise.
10633         (lower_resx): Likewise.
10634         (lower_eh_dispatch): Likewise.
10635         * tree-mudflap.c (mf_build_string): Use size_int.
10636         (mudflap_register_call): Use integer_type_node for the flag.
10637         (mudflap_enqueue_constant): Use size_int.
10638         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
10639         instead of rebuilding it.
10640
10641 2011-04-29  Richard Guenther  <rguenther@suse.de>
10642
10643         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
10644         Handle OBJ_TYPE_REF.
10645         (find_func_aliases_for_call): Use it more consistently.
10646
10647 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
10648
10649         * haifa-sched.c (last_nondebug_scheduled_insn): New.
10650         (rank_for_schedule): Use it.
10651         (schedule_block): Set it.
10652
10653 2011-04-28  David Li  <davidxl@google.com>
10654
10655         * tree.c (crc32_string): Use crc32_byte.
10656         (crc32_byte): New function.
10657         * tree.h (crc32_byte): New function.
10658         * gcov.c (read_graph_file): Handle new cfg_cksum.
10659         (read_count_file): Ditto.
10660         * profile.c (instrument_values): Ditto.
10661         (get_exec_counts): Ditto.
10662         (read_profile_edge_counts): Ditto.
10663         (compute_branch_probabilities): Ditto.
10664         (compute_value_histograms): Ditto.
10665         (branch_prob): Ditto.
10666         (end_branch_prob): Ditto.
10667         * coverage.c (read_counts_file): Ditto.
10668         (get_coverage_counts): Ditto.
10669         (tree_coverage_counter_addr): Ditto.
10670         (coverage_checksum_string): Ditto.
10671         (coverage_begin_output): Ditto.
10672         (coverage_end_function): Ditto.
10673         (build_fn_info_type): Ditto.
10674         (build_fn_info_value): Ditto.
10675         * libgcov.c (gcov_exit): Ditto.
10676         * gcov-dump.c (tag_function): Ditto.
10677         (compute_checksum): Remove.
10678
10679 2011-04-29  Alan Modra  <amodra@gmail.com>
10680
10681         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
10682         unspec plus offset.  Tidy macho code.
10683
10684 2011-04-29  Martin Jambor  <mjambor@suse.cz>
10685
10686         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
10687         node instead of a decl.  Update all callers.
10688         * cgraph.h: Update declaration.
10689
10690 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
10691
10692         PR tree-optimization/48765
10693         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
10694         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
10695         to indicate if loop aware SLP is being used.  Scan the statements
10696         and update the vectorization factor according to the type of
10697         vectorization before statement analysis.
10698         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
10699         pass it to vect_analyze_loop_operations.
10700         (vectorizable_reduction): Set number of copies to 1 in case of pure
10701         SLP statement.
10702         * tree-vect-stmts.c (vectorizable_conversion,
10703         vectorizable_assignment, vectorizable_shift,
10704         vectorizable_operation, vectorizable_type_demotion,
10705         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
10706         Likewise.
10707         (vectorizable_condition): Move the check that it is not SLP
10708         vectorization before the number of copies check.
10709         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
10710         to vectorize the loop using SLP.
10711
10712 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
10713
10714         PR middle-end/48597
10715         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
10716         inline asm.
10717
10718 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
10719
10720         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
10721         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
10722         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
10723         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
10724         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
10725         linux*.h headers.
10726         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
10727         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
10728         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
10729         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
10730         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
10731         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
10732         REG_NAME.
10733         * config/i386/linux.h (REG_NAME): Don't define.
10734         * config/i386/linux64.h (REG_NAME): Don't define.
10735         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
10736         Undefine before defining.
10737
10738 2011-04-28  Jan Hubicka  <jh@suse.cz>
10739
10740         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
10741         nonconstant_names array.
10742         (estimate_function_body_sizes): Build nonconstant_names array; handle
10743         BUILT_IN_CONSTANT_P.
10744
10745 2011-04-28  Richard Guenther  <rguenther@suse.de>
10746
10747         PR bootstrap/48804
10748         Revert
10749         2011-04-28  Richard Guenther  <rguenther@suse.de>
10750
10751         * tree-ssa-structalias.c (solve_constraints): Build succ graph
10752         as late as possible.
10753
10754 2011-04-28  Richard Guenther  <rguenther@suse.de>
10755
10756         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
10757         (debug_constraint): Do it here.
10758         (dump_constraints): And here.
10759         (rewrite_constraints): And here.
10760         (dump_constraint_edge): Remove.
10761         (dump_constraint_graph): Rewrite to produce DOT output.
10762         (solve_constraints): Build succ graph as late as possible.
10763         Dump constraint graphs before and after solving.
10764
10765 2011-04-28  Richard Guenther  <rguenther@suse.de>
10766
10767         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
10768         New function split out from ...
10769         (find_func_aliases): ... here.  Call it.
10770         (find_func_aliases_for_call): Likewise.
10771
10772 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10773
10774         * internal-fn.h (internal_fn_name_array): Declare.
10775         (internal_fn_flags_array): Likewise.
10776
10777 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
10778
10779         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
10780         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
10781         Move from sse.md.
10782         (ssemodefsuffix): Remove.
10783         (ssevecmodesuffix): New mode attribute.
10784         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
10785         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
10786         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
10787         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
10788         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
10789         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
10790         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
10791         ssemodesuffix mode attribute.
10792         (float splitters): Use ssevecmodesuffix mode attribute.
10793         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
10794         (sseinsmode): Rename from avxvecmode.
10795         (avxsizesuffix): Rename from avxmodesuffix.
10796         (sseintvecmode): Rename from avxpermvecmode.
10797         (ssedoublevecmode): Rename from ssedoublesizemode.
10798         (ssehalfvecmode): Rename from avxhalfvecmode.
10799         (ssescalarmode): Rename from avxscalarmode.
10800         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
10801         templates for ssemodesuffix mode attribute.
10802         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
10803         mode attribute.
10804
10805         Adjust RTX patterns globally for renamed mode attributes.
10806
10807 2011-04-27  Jan Hubcika  <jh@suse.cz>
10808
10809         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
10810         * ipa-inline-analysis.c: Include alloc-pool.h.
10811         (edge_predicate_pool): New.
10812         (trye_predicate_p): New function
10813         (false_predicate_p): New function.
10814         (add_clause): Sanity check that false clauses are "optimized";
10815         never add clauses to predicate that is already known to be false.
10816         (and_predicate): Use flase_predicate_p.
10817         (evaulate_predicate): Rename to ...
10818         (evaluate_predicate): ... this one; update all callers; assert
10819         that false is not listed among possible truths.
10820         (dump_predicate): Use true_predicate_p.
10821         (account_size_time): Use false_predicate_p.
10822         (evaulate_conditions_for_edge): Rename to ...
10823         (evaluate_conditions_for_edge) ... this one.
10824         (edge_set_predicate): New function.
10825         (inline_edge_duplication_hook): Duplicate edge predicates.
10826         (inline_edge_removal_hook): Free edge predicates.
10827         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
10828         (dump_inline_summary): Update.
10829         (estimate_function_body_sizes): Set edge predicates.
10830         (estimate_calls_size_and_time): Handle predicates.
10831         (estimate_callee_size_and_time): Update.
10832         (remap_predicate): Add toplev_predicate; update comment.
10833         (remap_edge_predicates): New function.
10834         (inline_merge_summary): Compute toplev predicate; update.
10835         (read_predicate): New function.
10836         (read_inline_edge_summary): Use it.
10837         (inline_read_section): Likewise.
10838         (write_predicate): New function.
10839         (write_inline_edge_summary): Use it.
10840         (inline_write_summary): Likewise.
10841         (inline_free_summary): Free alloc pool and edge summary vec.
10842
10843 2011-04-27  Richard Guenther  <rguenther@suse.de>
10844
10845         * tree-ssa-structalias.c (changed_count): Remove.
10846         (changed): Use a bitmap.
10847         (unify_nodes): Adjust.
10848         (do_sd_constraint): Likewise.
10849         (do_ds_constraint): Likewise.
10850         (do_complex_constraint): Likewise.
10851         (solve_graph): Likewise.
10852
10853 2011-04-27  Jan Hubicka  <jh@suse.cz>
10854
10855         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
10856
10857 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
10858
10859         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
10860         (avx_vperm2f128_*_operand): Ditto.
10861         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
10862         Use avx_vpermilp_parallel in insn condition.
10863         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
10864         Use avx_vperm2f128_parallel in insn condition.
10865
10866 2011-04-27  Richard Guenther  <rguenther@suse.de>
10867
10868         * Makefile.in (tree-ssa-structalias.o): Remove
10869         gt-tree-ssa-structalias.h dependency.
10870         (GTFILES): Remove tree-ssa-structalias.c.
10871         * tree.c (allocate_decl_uid): New function.
10872         (make_node_stat): Use it.
10873         (copy_node_stat): Likewise.
10874         * tree.h (allocate_decl_uid): Declare.
10875         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
10876         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
10877         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
10878         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
10879         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
10880         (struct heapvar_map): Likewise.
10881         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
10882         heapvar_insert): Likewise.
10883         (make_heapvar_for): Rename to ...
10884         (make_heapvar): ... this.  Simplify.
10885         (fake_var_decl_obstack): New global var.
10886         (build_fake_var_decl): New function.
10887         (make_constraint_from_heapvar): Adjust.
10888         (handle_lhs_call): Likewise.
10889         (create_function_info_for): Likewise.
10890         (intra_create_variable_infos): Likewise.
10891         (init_alias_vars): Allocate fake_var_decl_obstack.
10892         (init_alias_heapvars, delete_alias_heapvars): Remove.
10893         (compute_points_to_sets): Do not call init_alias_heapvars.
10894         (ipa_pta_execute): Likewise.
10895         (delete_points_to_sets): Free fake_var_decl_obstack.
10896
10897 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10898
10899         * config/spu/divmovti4.c (union qword_UTItype): New data type.
10900         (si_from_UTItype, si_to_UTItype): New functions.
10901         (__udivmodti4): Use them to implement type-punning.
10902         * config/spu/multi3.c (union qword_TItype): New data type.
10903         (si_from_TItype, si_to_TItype): New functions.
10904         (__multi3): Use them to implement type-punning.
10905
10906 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10907
10908         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
10909
10910 2011-04-27  Jan Hubicka  <jh@suse.cz>
10911
10912         * ipa-prop.c (function_insertion_hook_holder): New holder.
10913         (ipa_add_new_function): New function.
10914         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
10915         Register/deregister holder.
10916
10917 2011-04-27  Richard Guenther  <rguenther@suse.de>
10918
10919         PR tree-optimization/48772
10920         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
10921
10922 2011-04-27  Richard Guenther  <rguenther@suse.de>
10923
10924         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
10925         TARGET_MEM_REF handling.
10926
10927 2011-04-27  Nick Clifton  <nickc@redhat.com>
10928
10929         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
10930         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
10931         (REG_CLASS_NAMES): Likewise.
10932         (REG_CLASS_CONTENTS): Likewise.
10933         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
10934         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
10935         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
10936         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
10937         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
10938         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
10939         duplicate register classes.
10940         (frv_class_likely_spilled_p): Likewise.
10941         (frv_register_move_cost): Likewise.
10942
10943         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
10944         end of the regno_reg_class array.
10945
10946 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
10947
10948         PR c/48742
10949         * c-typeck.c (build_binary_op): Don't wrap arguments if
10950         int_operands is true.
10951
10952 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
10953
10954         PR target/48767
10955         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
10956         targetm.calls.must_pass_in_stack for void type.
10957
10958 2011-04-26  Jan Hubicka  <jh@suse.cz>
10959
10960         * cgraphbuild.c (build_cgraph_edges): Update call
10961         of cgraph_create_edge and cgraph_create_indirect_edge.
10962         * cgraph.c (cgraph_create_edge_including_clones,
10963         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
10964         cgraph_update_edges_for_call_stmt_node): Do not take nest
10965         argument; do not initialize call_stmt_size/time.
10966         (dump_cgraph_node): Do not dump nest.
10967         (cgraph_clone_edge): Do not take loop_nest argument;
10968         do not propagate it; do not clone call_stmt_size/time.
10969         (cgraph_clone_node): Likewise.
10970         (cgraph_create_virtual_clone): Update.
10971         * cgraph.h (struct cgraph_edge): Remove
10972         call_stmt_size/call_stmt_time/loop_nest.
10973         (cgraph_create_edge, cgraph_create_indirect_edge,
10974         cgraph_create_edge_including_clones, cgraph_clone_node): Update
10975         prototype.
10976         * tree-emutls.c (gen_emutls_addr): Update.
10977         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
10978         loop_nest; handle indirect calls, too.
10979         (clone_inlined_nodes): Do not care about updating inline summaries.
10980         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
10981         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
10982         stream call_stmt_size/call_stmt_time/loop_nest.
10983         * ipa-inline.c (edge_badness): Update.
10984         (ipa_inline): dump summaries after inlining.
10985         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
10986         New.
10987         (inline_edge_summary): New function.
10988         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
10989         (inline_edge_removal_hook): Handle edge summaries.
10990         (inline_edge_duplication_hook): New hook.
10991         (inline_summary_alloc): Alloc hooks.
10992         (initialize_growth_caches): Do not register removal hooks.
10993         (free_growth_caches); Do not free removal hook.
10994         (dump_inline_edge_summary): New function.
10995         (dump_inline_summary): Use it.
10996         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
10997         (inline_update_callee_summaries): New function.
10998         (inline_merge_summary): Use it.
10999         (do_estimate_edge_time, do_estimate_edge_growth): Update.
11000         (read_inline_edge_summary): New function.
11001         (inline_read_section): Use it.
11002         (write_inline_edge_summary): New function.
11003         (inline_write_summary): Use it.
11004         (inline_free_summary): Free edge new holders.
11005         * tree-inline.c (copy_bb): Update.
11006
11007 2011-04-26  Jason Merrill  <jason@redhat.com>
11008
11009         * tree-eh.c (lower_try_finally_switch): Create the label along with
11010         the CASE_LABEL_EXPR.
11011
11012 2011-04-26  David S. Miller  <davem@davemloft.net>
11013             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11014
11015         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
11016         * configure: Regenerate.
11017
11018 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
11019
11020         PR target/48258
11021         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
11022         reduction.
11023         (VEC_reduc): New code iterator and splitters for vector reduction.
11024         (VEC_reduc_name): Ditto.
11025         (VEC_reduc_rtx): Ditto.
11026         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
11027         (reduc_<VEC_reduc_name>_v4sf): Ditto.
11028
11029         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
11030         support for extracting SF on VSX.
11031
11032         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
11033         generating xscvspdp.
11034         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
11035         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
11036         double add, minimum, maximum vector reduction.
11037         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
11038         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
11039         optimize double vector reduction.
11040         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
11041
11042 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
11043
11044         * config/fr30/fr30.h (inhibit_libc): Don't define.
11045         * config/m32r/m32r-protos.h: Correct comment.
11046         * config/v850/v850.h (GHS_default_section_names,
11047         GHS_current_section_names): Use tree, not union tree_node *.
11048
11049 2011-04-26  Xinliang David Li  <davidxl@google.com>
11050
11051         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
11052         * c-family/c-opts.c (c_common_handle_option): Set
11053         warn_maybe_uninitialized.
11054         * opts.c (common_handle_option): Ditto.
11055         * common.opt:  New option.
11056         * tree-ssa.c (warn_uninit): Add one more parameter.
11057         (warn_uninitialized_var): Pass warning code.
11058         * tree-flow.h: Interface change.
11059
11060 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11061
11062         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
11063         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
11064         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
11065
11066 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11067
11068         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
11069         * config/mips/mips.opt (mmips-tfile): Remove.
11070
11071         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
11072         mips-tdump reference to ...
11073         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
11074         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
11075         reference by Tru64 UNIX.
11076
11077 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
11078
11079         PR debug/48768
11080         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
11081         is error_mark_node, set value to NULL.
11082
11083         PR tree-optimization/48734
11084         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
11085         if return value from maybe_fold_*_comparsions isn't something
11086         the code is prepared to handle.
11087
11088 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
11089
11090         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
11091         mode check.
11092         (ext_QIreg_nomode_operands): Remove.
11093         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
11094         (*andsi_1): Ditto.
11095         (*andhi_1): Ditto.
11096
11097 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
11098
11099         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
11100
11101 2011-04-26  Richard Guenther  <rguenther@suse.de>
11102
11103         * c-typeck.c (build_unary_op): Do not expand array-refs via
11104         pointer arithmetic.  Only adjust qualifiers for function types.
11105
11106 2011-04-26  Richard Guenther  <rguenther@suse.de>
11107
11108         PR middle-end/48694
11109         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
11110         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
11111         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
11112         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
11113
11114 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
11115
11116         * doc/extend.texi: Document __underlying_type.
11117
11118 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
11119
11120         * config/rs6000/titan.md (automata_option "progress"): Remove.
11121
11122 2011-04-25  Jeff Law  <law@redhat.com>
11123
11124         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
11125
11126 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
11127
11128         * system.h (ENUM_BITFIELD): Remove.
11129
11130 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
11131             Eric Botcazou  <ebotcazou@adacore.com>
11132
11133         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
11134         for STORE_FLAG_VALUE==-1 case.
11135
11136 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
11137
11138         PR target/43804
11139         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
11140         LEGITIMATE_PIC_OPERAND_P.
11141
11142 2011-04-24  Jan Hubicka  <jh@suse.cz>
11143
11144         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
11145         WPA hack.
11146         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
11147         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
11148         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
11149         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
11150         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
11151         Sanity check predicate length.
11152         (remap_predicate): Likewise; sanity check jump functions.
11153         (inline_read_section, inline_write_summary): Sanity check
11154         predicate length.
11155
11156 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
11157
11158         PR other/48748
11159         * doc/extend.texi (Type Traits): Document __is_standard_layout,
11160         __is_literal_type, and __is_trivial; update throughout about
11161         possibly cv-qualified void types.
11162
11163 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
11164
11165         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
11166         testsuite and make it version agnostic.
11167
11168 2011-04-22  Jan Hubicka  <jh@suse.cz>
11169
11170         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
11171
11172 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
11173
11174         PR c/48685
11175         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
11176         to VOID_TYPE even around MODIFY_EXPR.
11177
11178 2011-04-22  Mike Stump  <mikestump@comcast.net>
11179
11180         * gensupport.c (read_md_rtx): Fix typo in comment.
11181         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
11182         comment.
11183
11184 2011-04-22  Jan Hubicka  <jh@suse.cz>
11185
11186         * gengtype.c (open_base_files): Add ipa-inline.h include.
11187         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
11188         ipa-prop.c; update all uses.
11189         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
11190         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
11191         merge summary of inlined function into former caller.
11192         * ipa-inline.c (max_benefit): Remove.
11193         (edge_badness): Compensate for removal of benefits.
11194         (update_caller_keys): Use
11195         reset_node_growth_cache/reset_edge_growth_cache.
11196         (update_callee_keys): Likewise.
11197         (update_all_callee_keys): Likewise.
11198         (inline_small_functions): Do not collect max_benefit; do not reset
11199         estimated_growth; call free_growth_caches and initialize_growth_caches.
11200         * ipa-inline.h (struct condition, type clause_t, struct predicate,
11201         struct size_time_entry): New structures.
11202         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
11203         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
11204         and estimated_growth.
11205         (edge_growth_cache_entry): New structure.
11206         (node_growth_cache, edge_growth_cache): New global vars.
11207         (estimate_growth): Turn into inline.
11208         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
11209         initialize_growth_caches, free_growth_caches): Declare.
11210         (estimate_edge_growth): Rewrite.
11211         (estimate_edge_time): Implement as inline cache lookup.
11212         (reset_node_growth_cache, reset_edge_growth_cache): New inline
11213         functions.
11214         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
11215         (NUM_CONDITIONS): New constant.
11216         (predicate_conditions): New enum.
11217         (IS_NOT_CONSTANT): New constant.
11218         (edge_removal_hook_holder): New var.
11219         (node_growth_cache, edge_growth_cache): New global vars.
11220         (true_predicate, single_cond_predicate, false_predicate,
11221         not_inlined_predicate, add_condition, add_clause, and_predicates,
11222         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
11223         dump_clause, dump_predicate, account_size_time,
11224         evaulate_conditions_for_edge): New functions.
11225         (inline_summary_alloc): Move to heap.
11226         (inline_node_removal_hook): Clear condition and entry vectors.
11227         (inline_edge_removal_hook): New function.
11228         (initialize_growth_caches, free_growth_caches): New function.
11229         (dump_inline_summary): Update.
11230         (edge_execution_predicate): New function.
11231         (will_be_nonconstant_predicate): New function.
11232         (estimate_function_body_sizes): Compute BB and constantness predicates.
11233         (compute_inline_parameters): Do not clear estimated_growth.
11234         (estimate_edge_size_and_time): New function.
11235         (estimate_calls_size_and_time): New function.
11236         (estimate_callee_size_and_time): New function.
11237         (remap_predicate): New function.
11238         (inline_merge_summary): New function.
11239         (do_estimate_edge_time): New function based on...
11240         (estimate_edge_time): ... this one.
11241         (do_estimate_edge_growth): New function.
11242         (do_estimate_growth): New function based on....
11243         (estimate_growth): ... this one.
11244         (inline_analyze_function): Analyze after deciding on jump functions.
11245         (inline_read_section): New function.
11246         (inline_read_summary): Use it.
11247         (inline_write_summary): Write all the new data.
11248         * ipa-prop.c (ipa_get_param_decl_index): Export.
11249         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
11250         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
11251         Declare.
11252         (ipa_get_lattice): Move here from ipa-cp.c
11253         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
11254         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
11255         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
11256         cgraph_edge_inlinable_p): Remove.
11257         * cgraphunit.c: Include ipainline.h
11258         (cgraph_process_new_functions): Update call of
11259         compute_inline_parameters.
11260
11261 2011-04-22  Richard Guenther  <rguenther@suse.de>
11262
11263         * tree.c (build_int_cst): Properly create canonicalized integer
11264         constants.
11265         (build_int_cst_type): Remove scary comments.
11266
11267 2011-04-22  Xinliang David Li  <davidxl@google.com>
11268
11269         * toplev.c (process_options): Enable -Werror=coverage-mismatch
11270         by default when -Wno-error is not specified.
11271         * opts-global.c (decode_options): Remove call to
11272         control_warning_options.
11273
11274 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
11275
11276         PR tree-optimization/48717
11277         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
11278         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
11279
11280 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
11281
11282         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
11283         definition where used.
11284
11285 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
11286
11287         PR c/48716
11288         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
11289         TREE_STATIC variables declared inside of some OpenMP construct.
11290
11291 2011-04-22  Martin Jambor  <mjambor@suse.cz>
11292
11293         PR middle-end/48585
11294         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
11295
11296 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
11297
11298         PR c/36750
11299         * c-typeck.c (pop_init_level): Do not warn about initializing
11300         with ` = {0}'.
11301
11302 2011-04-22  Alan Modra  <amodra@gmail.com>
11303
11304         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
11305         when returning call_cookie.
11306         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
11307         pointers, to functions with no more vector args than the current
11308         function, and some non-local calls for ABI_V4.
11309         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
11310         sibcall_nonlocal_aix64): Combine to ..
11311         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
11312         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
11313         (sibcall_value_nonlocal_aix<mode>): ..likewise.
11314         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
11315         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
11316         operand.
11317         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
11318         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
11319         sibcall_value_symbolic_64): Delete.
11320
11321 2011-04-21  Xinliang David Li  <davidxl@google.com>
11322
11323         * cgraph.h: Remove pid.
11324         * cgraph.c: Remove pid.
11325         * value-prof.c (init_node_map): New function.
11326         (del_node_map): New function.
11327         (find_func_by_funcdef_no): New function.
11328         (gimple_ic_transform): Call new function.
11329         * cgraphunit.c (cgraph_finalize_function): Remove pid.
11330         * function.c (get_last_funcdef_no): New function.
11331         * function.h (get_last_funcdef_no): New function.
11332         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
11333         to libgcov function.
11334         (tree-profiling): Call node map init and delete function.
11335
11336 2011-04-21  Ian Lance Taylor  <iant@google.com>
11337
11338         * godump.c (go_format_type): Use exported Go name for anonymous
11339         field name.
11340
11341 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
11342
11343         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
11344         Call builtin_function_type_list instead of builtin_function_type.
11345         (UNARY, BINARY, TRINARY, QUAD): Likewise.
11346
11347 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
11348
11349         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
11350         build_function_type_list instead of build_function_type.
11351         Delete variable `endlink'.
11352
11353 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
11354
11355         * config/s390/s390.c (s390_init_builtins): Call
11356         build_function_type_list instead of build_function_type.
11357
11358 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
11359
11360         * config/ia64/ia64.c (ia64_init_builtins): Call
11361         build_function_type_list instead of builtin_function_type.
11362
11363 2011-04-21  Easwaran Raman  <eraman@google.com>
11364
11365         * cfgexpand.c (stack_var): Remove OFFSET...
11366         (add_stack_var): ...and its reference here...
11367         (expand_stack_vars): ...and here.
11368         (stack_var_cmp): Sort by descending order of size.
11369         (partition_stack_vars): Change heuristic.
11370         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
11371         (dump_stack_var_partition): Add newline after each partition.
11372
11373 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
11374             Jeff Law  <law@redhat.com>
11375
11376         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
11377         * gengtype.c (matching_file_name_substitute): Likewise.
11378
11379 2011-04-21  Richard Guenther  <rguenther@suse.de>
11380
11381         PR lto/48703
11382         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
11383
11384 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
11385
11386         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
11387
11388 2011-04-21  Richard Guenther  <rguenther@suse.de>
11389
11390         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
11391         file name.
11392
11393 2011-04-21  Richard Guenther  <rguenther@suse.de>
11394
11395         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
11396         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
11397         Use DECL_P, not SSA_VAR_P.
11398         (ptr_derefs_may_alias_p): Likewise.
11399         (ptr_deref_may_alias_ref_p_1): Likewise.
11400         (decl_refs_may_alias_p): Likewise.
11401         (refs_may_alias_p_1): Likewise.
11402         (ref_maybe_used_by_call_p_1): Likewise.
11403         (call_may_clobber_ref_p_1): Likewise.
11404         (indirect_ref_may_alias_decl_p): Assume indirect refrences
11405         are either MEM_REF or TARGET_MEM_REF.
11406         (indirect_refs_may_alias_p): Likewise.
11407         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
11408         for MEM_EXPR of indirect calls.
11409
11410 2011-04-21  Tristan Gingold  <gingold@adacore.com>
11411
11412         * vmsdbgout.c (write_srccorr): Compute file length from the string.
11413         (dst_file_info_struct): Remove flen field.
11414         (lookup_filename): Remove code that set flen field.
11415
11416 2011-04-21  Tristan Gingold  <gingold@adacore.com>
11417
11418         * config/ia64/ia64.c (ia64_start_function): Add a guard.
11419
11420 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
11421
11422         PR target/48708
11423         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
11424         vec_extract and vec_concat for non-SSE4_1 targets.
11425
11426 2011-04-21  Richard Guenther  <rguenther@suse.de>
11427
11428         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
11429         return statements.
11430
11431 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
11432
11433         * config/i386/cygming.h (union tree_node, TREE): Don't define or
11434         undefine.
11435         (FILE): Don't undefine.
11436
11437 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
11438
11439         * config/alpha/alpha.c (struct machine_function): Use rtx, not
11440         struct rtx_def *.
11441         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
11442         struct rtx_def *.
11443         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
11444         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
11445         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
11446         rtx_def *.
11447         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
11448         definitions where used.
11449         * config/microblaze/microblaze.h (struct microblaze_args): Use
11450         rtx, not struct rtx_def *.
11451         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
11452         rtx_def *.
11453         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
11454         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
11455         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
11456         not struct rtx_def *.
11457         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
11458         struct rtx_def *.
11459         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
11460         rtx_def *.
11461         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
11462
11463 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
11464
11465         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
11466         operand_equal_p to compare DR_BASE_ADDRESSes.
11467         (vect_check_interleaving): Likewise.
11468
11469 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
11470
11471         PR target/46329
11472         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
11473         for all Neon struct constants.
11474
11475 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
11476
11477         * target.def (legitimate_constant_p): New hook.
11478         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
11479         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
11480         * doc/tm.texi: Regenerate.
11481         * hooks.h (hook_bool_mode_rtx_true): Declare.
11482         * hooks.c (hook_bool_mode_rtx_true): Define.
11483         * system.h (LEGITIMATE_CONSTANT_P): Poison.
11484         * calls.c (precompute_register_parameters): Replace uses of
11485         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
11486         (emit_library_call_value_1): Likewise.
11487         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
11488         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
11489         * ira-costs.c (scan_one_insn): Likewise.
11490         * recog.c (general_operand, immediate_operand): Likewise.
11491         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
11492         * reload1.c (init_eliminable_invariants): Likewise.
11493
11494         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
11495         mode argument.
11496         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
11497         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
11498         argument.
11499         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11500         * config/alpha/predicates.md (input_operand): Update call to
11501         alpha_legitimate_constant_p.
11502
11503         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
11504         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
11505         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
11506         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11507         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
11508         (arm_legitimate_constant_p): New functions.
11509         (arm_cannot_force_const_mem): Make static.
11510
11511         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
11512
11513         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
11514         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
11515         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
11516         instead of bfin_legitimate_constant_p.
11517         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
11518         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11519
11520         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
11521
11522         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
11523
11524         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
11525         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
11526         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11527         (frv_legitimate_constant_p): Make static.  Add a mode argument.
11528
11529         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
11530         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
11531         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
11532
11533         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
11534         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
11535         * config/i386/i386.c (legitimate_constant_p): Rename to...
11536         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
11537         argument.
11538         (ix86_cannot_force_const_mem): Update accordingly.
11539         (ix86_legitimate_address_p): Likewise.
11540         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11541         * config/i386/i386.md: Update commentary.
11542
11543         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
11544         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
11545         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11546         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
11547
11548         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
11549
11550         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
11551         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
11552         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11553         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
11554
11555         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
11556         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
11557         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
11558
11559         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
11560         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11561         (m32r_legitimate_constant_p): New function.
11562
11563         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
11564         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
11565         LEGITIMATE_CONSTANT_P.
11566         (LEGITIMATE_CONSTANT_P): Delete.
11567         * config/m68k/m68k.c (m68k_expand_prologue): Call
11568         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
11569         (m68k_legitimate_constant_p): New function.
11570         * config/m68k/m68k.md: Update comments.
11571
11572         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
11573         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11574         (mcore_legitimate_constant_p): New function.
11575
11576         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
11577         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
11578         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
11579         Add a mode argument.
11580         (mep_legitimate_address): Update accordingly.
11581         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11582
11583         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
11584         Delete.
11585         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
11586         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
11587         static.  Check OP's mode for VOIDmode.
11588         (microblaze_legitimate_constant_p): New function.
11589         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11590
11591         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
11592         * config/mips/mips.c (mips_legitimate_constant_p): New function.
11593         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
11594         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11595         * config/mips/predicates.md: Update comments.
11596
11597         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
11598         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
11599         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11600         (mmix_legitimate_constant_p): Make static, return a bool, and take
11601         a mode argument.
11602         (mmix_print_operand_address): Update accordingly.
11603
11604         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
11605         Delete.
11606         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
11607         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
11608         static.  Add a mode argument.
11609         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11610
11611         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
11612
11613         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
11614         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11615         (pa_legitimate_constant_p): New function.
11616
11617         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
11618
11619         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
11620         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11621         (pdp11_legitimate_constant_p): New function.
11622
11623         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
11624         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11625         (rs6000_legitimate_constant_p): New function.
11626
11627         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
11628         (rx_legitimate_constant_p): ...this.
11629         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
11630         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
11631         (rx_legitimate_constant_p): ...this.
11632         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11633         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
11634
11635         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
11636         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
11637         * config/s390/s390.c (legitimate_constant_p): Rename to...
11638         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
11639         and add a mode argument.
11640         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11641
11642         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
11643
11644         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
11645         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11646         (sh_legitimate_constant_p): New function.
11647
11648         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
11649         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
11650         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11651         (legitimate_constant_p): Rename to...
11652         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
11653         argument.
11654         (constant_address_p): Update accordingly.
11655
11656         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
11657         argument and return a bool.
11658         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
11659         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11660         (spu_legitimate_constant_p): Add a mode argument and return a bool.
11661         (spu_rtx_costs): Update accordingly.
11662         * config/spu/predicates.md (vec_imm_operand): Likewise.
11663
11664         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
11665
11666         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
11667         * config/v850/v850.c (v850_legitimate_constant_p): New function.
11668         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11669
11670         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
11671         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
11672         * config/vax/vax.c (legitimate_constant_p): Likewise.
11673
11674         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
11675         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11676         (xtensa_legitimate_constant_p): New function.
11677
11678 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
11679
11680         * target.def (cannot_force_const_mem): Add a mode argument.
11681         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
11682         * doc/tm.texi: Regenerate.
11683         * hooks.h (hook_bool_mode_rtx_false): Declare.
11684         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
11685         (hook_bool_mode_const_rtx_true): Likewise.
11686         (hook_bool_mode_rtx_false): New function.
11687         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
11688         to be non-VOID.  Update call to cannot_force_const_mem.
11689         (find_reloads): Update accordingly.
11690         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
11691         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
11692         argument.
11693         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
11694         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
11695         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
11696         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
11697         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
11698         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
11699         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
11700         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
11701         (m68k_cannot_force_const_mem): ...this new function.
11702         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
11703         argument.
11704         (mips_const_insns, mips_legitimize_const_move): Update calls.
11705         (mips_secondary_reload_class): Likewise.
11706         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
11707         (pa_cannot_force_const_mem): ...this new function.
11708         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
11709         (rs6000_cannot_force_const_mem): ...this new function.
11710         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
11711         argument.
11712         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
11713         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
11714         to...
11715         (xtensa_cannot_force_const_mem): ...this new function.
11716
11717 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
11718
11719         * config/mips/mips.c (mips16_build_function_stub): Call
11720         build_function_type_list instead of build_function_type.
11721         (mips16_build_call_stub): Likewise.
11722
11723 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
11724
11725         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
11726         instead of build_function_type.
11727
11728 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
11729
11730         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
11731         instead of build_function_type.
11732
11733 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
11734
11735         PR target/48678
11736         * config/i386/i386.md (insv): Change operand 0 constraint to
11737         "register_operand".  Change operand 1 and 2 constraint to
11738         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
11739         * config/i386/sse.md (sse4_1_pinsrb): Export.
11740         (sse2_pinsrw): Ditto.
11741         (sse4_1_pinsrd): Ditto.
11742         (sse4_1_pinsrq): Ditto.
11743         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
11744         * config/i386/i386.c (ix86_expand_pinsr): New.
11745
11746 2011-04-20  Easwaran Raman  <eraman@google.com>
11747
11748         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
11749         containing union type only with -fstrict-aliasing.
11750
11751 2011-04-20  Jim Meyering  <meyering@redhat.com>
11752
11753         Remove useless if-before-free tests.
11754         * calls.c (expand_call, save_area): Likewise.
11755         * cfgcleanup.c (try_forward_edges): Likewise.
11756         * collect2.c (collect_execute): Likewise.
11757         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
11758         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
11759         * coverage.c (coverage_checksum_string): Likewise.
11760         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
11761         * cselib.c (cselib_init): Likewise.
11762         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
11763         (df_set_clean_cfg): Likewise.
11764         * function.c (free_after_compilation): Likewise.
11765         * gcc.c (do_spec_1, main): Likewise.
11766         * gcov.c (create_file_names): Likewise.
11767         * gensupport.c (identify_predicable_attribute): Likewise.
11768         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
11769         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
11770         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
11771         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
11772         * ipa-pure-const.c (local_pure_const): Likewise.
11773         * ipa-reference.c (propagate): Likewise.
11774         * ira-costs.c (free_ira_costs): Likewise.
11775         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
11776         * matrix-reorg.c (mat_free): Likewise.
11777         * prefix.c (get_key_value): Likewise.
11778         * profile.c (compute_value_histograms): Likewise.
11779         * reload1.c (free_reg_equiv): Likewise.
11780         * sched-deps.c (free_deps): Likewise.
11781         * sel-sched-ir.c (fence_clear): Likewise.
11782         * sese.c (set_rename, if_region_set_false_region): Likewise.
11783         * tree-data-ref.c (free_rdg): Likewise.
11784         * tree-eh.c (lower_try_finally): Likewise.
11785         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
11786         * tree-ssa-live.c (delete_var_map): Likewise.
11787         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
11788         * tree-ssa-pre.c (phi_trans_add): Likewise.
11789
11790 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
11791
11792         PR tree-optimization/48611
11793         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
11794         beyond ERT_MUST_NOT_THROW region.
11795
11796 2011-04-20  Catherine Moore  <clm@codesourcery.com>
11797
11798         * config/mips/mips.opt (mfix-24k): New.
11799         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
11800         * config/mips/mips.md (length): Increase by 4 for stores if
11801         fixing 24K errata.
11802         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
11803         all noreorder if fixing 24K errata.
11804         * doc/invoke.texi: Document mfix-24k.
11805
11806 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
11807
11808         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
11809         quad-word modes, reduce to 9-bit index range when above 1016 limit.
11810
11811 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
11812
11813         * config/arm/arm.c (arm_gen_constant): Move movw support ....
11814         (const_ok_for_op): ... to here.
11815
11816 2011-04-20  Kai Tietz  <ktietz@redhat.com>
11817
11818         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
11819         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
11820
11821 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
11822
11823         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
11824
11825 2011-04-20  Richard Guenther  <rguenther@suse.de>
11826
11827         PR tree-optimization/47892
11828         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
11829         are if-convertible.
11830
11831 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
11832
11833         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
11834
11835 2011-04-20  Tristan Gingold  <gingold@adacore.com>
11836
11837         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
11838
11839 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
11840
11841         PR target/18145
11842
11843         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
11844         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
11845         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
11846         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
11847         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
11848
11849         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
11850         New prototype.
11851
11852         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
11853         (avr_asm_named_section, avr_asm_output_aligned_common,
11854         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
11855         New functions to update...
11856         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
11857         (avr_asm_init_sections): Overwrite section callbacks for
11858         data_section, bss_section.
11859         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
11860         from here to...
11861         (avr_file_end): ...here.
11862
11863 2011-04-20  Richard Guenther  <rguenther@suse.de>
11864
11865         PR middle-end/48695
11866         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
11867         objects and types here.  Adjust for their offset before comparing.
11868
11869 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
11870
11871         * tree-vect-stmts.c (vectorizable_store): Only chain one related
11872         statement per copy.
11873
11874 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
11875
11876         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
11877         (GIMPLE_H): Include $(INTERNAL_FN_H).
11878         (OBJS-common): Add internal-fn.o.
11879         (internal-fn.o): New rule.
11880         * internal-fn.def: New file.
11881         * internal-fn.h: Likewise.
11882         * internal-fn.c: Likewise.
11883         * gimple.h: Include internal-fn.h.
11884         (GF_CALL_INTERNAL): New gf_mask.
11885         (gimple_statement_call): Put fntype into a union with a new
11886         internal_fn field.
11887         (gimple_build_call_internal): Declare.
11888         (gimple_build_call_internal_vec): Likewise.
11889         (gimple_call_same_target_p): Likewise.
11890         (gimple_call_internal_p): New function.
11891         (gimple_call_internal_fn): Likewise.
11892         (gimple_call_fntype): Return null for internal calls.
11893         (gimple_call_set_fntype): Assert that the function is not internal.
11894         (gimple_call_set_fn): Likewise.
11895         (gimple_call_set_fndecl): Likewise.
11896         (gimple_call_set_internal_fn): New function.
11897         (gimple_call_addr_fndecl): Handle null functions.
11898         (gimple_call_return_type): Likewise null types.
11899         * gimple.c (gimple_build_call_internal_1): New function.
11900         (gimple_build_call_internal): Likewise.
11901         (gimple_build_call_internal_vec): Likewise.
11902         (gimple_call_same_target_p): Likewise.
11903         (gimple_call_flags): Handle calls to internal functions.
11904         (gimple_call_fnspec): New function.
11905         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
11906         (gimple_has_side_effects): Handle null functions.
11907         (gimple_rhs_has_side_effects): Likewise.
11908         (gimple_call_copy_skip_args): Handle calls to internal functions.
11909         * cfgexpand.c (expand_call_stmt): Likewise.
11910         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
11911         * gimple-fold.c (gimple_fold_call): Handle null functions.
11912         (gimple_fold_stmt_to_constant_1): Don't fold
11913         calls to internal functions.
11914         * gimple-low.c (gimple_check_call_args): Handle calls to internal
11915         functions.
11916         * gimple-pretty-print.c (dump_gimple_call): Likewise.
11917         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
11918         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
11919         (do_warn_unused_result): Likewise.
11920         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
11921         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
11922         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
11923         the target of a call.
11924         (initialize_hash_element): Update accordingly.
11925         (hashable_expr_equal_p): Use gimple_call_same_target_p.
11926         (iterative_hash_hashable_expr): Handle calls to internal functions.
11927         (print_expr_hash_elt): Likewise.
11928         * tree-ssa-pre.c (can_value_number_call): Likewise.
11929         (eliminate): Handle null functions.
11930         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
11931         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
11932         (find_func_aliases): Likewise.
11933         * value-prof.c (gimple_ic_transform): Likewise.
11934         (gimple_indirect_call_to_profile): Likewise.
11935         * lto-streamer-in.c (input_gimple_stmt): Likewise.
11936         * lto-streamer-out.c (output_gimple_stmt): Likewise.
11937
11938 2011-04-19  Jan Hubicka  <jh@suse.cz>
11939
11940         * ipa-inline-transform.c (save_inline_function_body): Add comments.
11941         * ipa-inline.c (inline_small_functions): Compute summaries first,
11942         populate heap later.
11943
11944 2011-04-19  Jan Hubicka  <jh@suse.cz>
11945
11946         * cgraph.h (save_inline_function_body): Remove.
11947         * ipa-inline-transform.c: New file, broke out of...
11948         * ipa-inline.c: ... this one; Update toplevel comment.
11949         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
11950         make global.
11951         (update_noncloned_frequencies): Move to ipa-inline-transform.c
11952         (cgraph_mark_inline_edge): Rename to inline_call; move to
11953         ipa-inline-transform.c.
11954         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
11955         move to ipa-inline-transform.c
11956         (recursive_inlining, inline_small_functions, flatten_function,
11957         ipa_inline, inline_always_inline_functions,
11958         early_inline_small_functions): Update.
11959         (inline_transform): Move to ipa-inline-transform.c.
11960         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
11961         Declare.
11962         * Makefile.in (ipa-inline-transform.o): New file.
11963         * cgraphunit.c (save_inline_function_body): Move to
11964         ipa-inline-transform.c
11965
11966 2011-04-19  DJ Delorie  <dj@redhat.com>
11967
11968         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
11969         registers if we already know there aren't any.
11970         (m32c_emit_epilogue): Don't emit a barrier here.
11971         (m32c_emit_eh_epilogue): Likewise.
11972         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
11973         operands at expand time.
11974         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
11975         int" wchar type.
11976         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
11977         duplicates.  Provide aliases instead.
11978         * config/m32c/prologue.md (eh_return): Emit a barrier here.
11979         (eh_epilogue): Add a "(return)" here as a hint to other parts of
11980         the compiler.
11981
11982 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
11983
11984         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
11985         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
11986         (general_or_i64_p, sparc_register_move_cost): New function.
11987
11988 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11989
11990         * doc/install.texi (Configuration, --enable-threads): Remove mach.
11991         Add lynx, mipssde.  Sort table.
11992
11993 2011-04-19  Xinliang David Li  <davidxl@google.com>
11994
11995         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
11996         not negative.
11997
11998 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
11999
12000         PR target/48678
12001         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
12002         is a SUBREG with non-MODE_INT mode inside of it.
12003
12004 2011-04-19  Martin Jambor  <mjambor@suse.cz>
12005
12006         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
12007         also according to actual contants.
12008         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
12009         (gimple_fold_call): Use it.
12010         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
12011
12012 2011-04-19  Martin Jambor  <mjambor@suse.cz>
12013
12014         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
12015         non-pointer assignments.
12016
12017 2011-04-19  Martin Jambor  <mjambor@suse.cz>
12018
12019         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
12020         account anc_offset and otr_type from the indirect edge info.
12021         * ipa-prop.c (get_ancestor_addr_info): New function.
12022         (compute_complex_ancestor_jump_func): Assignment analysis moved to
12023         get_ancestor_addr_info, call it.
12024         (ipa_note_param_call): Do not initialize information about polymorphic
12025         calls, return the indirect call graph edge.  Remove the last
12026         parameter, adjust all callers.
12027         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
12028         parameters.  Initialize polymorphic information in the indirect edge.
12029
12030 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
12031
12032         PR lto/48148
12033         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
12034         the types if they have different enumeration identifiers.
12035
12036 2011-04-19  Jan Hubicka  <jh@suse.cz>
12037
12038         * cgraph.h (cgraph_optimize_for_size_p): Declare.
12039         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
12040         * predict.c (cgraph_optimize_for_size_p): Break out from ...
12041         (optimize_function_for_size_p) ... here.
12042
12043 2011-04-19  Richard Guenther  <rguenther@suse.de>
12044
12045         PR lto/48207
12046         * tree.c (free_lang_data): Do not reset the decl-assembler-name
12047         langhook.
12048
12049 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
12050
12051         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
12052         if DECL_NO_INLINE_WARNING_P is set on the function.
12053
12054 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
12055
12056         PR fortran/47976
12057         * reload1.c (inc_for_reload): Return void. All callers changed.
12058         (emit_input_reload_insns): Don't try to delete previous output
12059         reloads to a register, or record spill_reg_store for autoincs.
12060
12061 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
12062
12063         * gengtype.h: Updated copyright year.
12064         (struct input_file_st): Add inpisplugin field.
12065         (type_fileloc): New function.
12066         * gengtype.c
12067         (write_typed_struct_alloc_def): Add gcc_assert.
12068         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
12069         (write_typed_alloc_defns): Don't output for plugin files.
12070         (input_file_by_name): Clear inpisplugin field.
12071         (main): Set inpisplugin field for plugin files.
12072
12073 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
12074
12075         * gengtype-state.c (string_eq): New.
12076         (read_state): Use string_eq instead of strcmp when creating the
12077         state_ident_tab.
12078
12079 2011-04-19  Wei Guozhi  <carrot@google.com>
12080
12081         PR target/47855
12082         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
12083         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
12084         linkage.
12085         * config/arm/constraints.md (Uu): New constraint.
12086         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
12087
12088 2011-04-19  Tristan Gingold  <gingold@adacore.com>
12089
12090         * config.gcc (-*-*-*vms): Added.
12091         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
12092         definitions moved.
12093         * config/vms/vms-ld.c: New file.
12094         * config/vms/vms-ar.c: New file.
12095         * config/vms/t-vmsnative: New file.
12096
12097 2011-04-18  Xinliang David Li  <davidxl@google.com>
12098
12099         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
12100
12101 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
12102
12103         PR middle-end/48661
12104         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
12105         if TREE_TYPE (v) is non-NULL.
12106
12107         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
12108         gimple_get_virt_mehtod_for_binfo.
12109         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
12110         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
12111         callers.
12112         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
12113
12114 2011-04-18  Michael Matz  <matz@suse.de>
12115             Steve Ellcey  <sje@cup.hp.com>
12116
12117         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
12118         use its mode as source mode if it isn't VOIDmode.
12119
12120 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
12121
12122         * doc/passes.texi: Fill crossref nodes.
12123
12124 2011-04-18  Jim Meyering  <meyering@redhat.com>
12125
12126         Fix doubled-word typos in comments and strings
12127         * config/alpha/vms-unwind.h: s/for for/for/
12128         * config/arm/unwind-arm.h: Likewise.
12129         * config/microblaze/microblaze.c: Likewise.
12130         * config/sh/constraints.md: s/in in/in/
12131         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
12132
12133 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
12134
12135         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
12136         (AVX_FLOAT_MODE_P): Ditto.
12137         (AVX128_VEC_FLOAT_MODE_P): Ditto.
12138         (AVX256_VEC_FLOAT_MODE_P): Ditto.
12139         (AVX_VEC_FLOAT_MODE_P): Ditto.
12140         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
12141         (UNSPEC_MASKSTORE): Ditto.
12142         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
12143         Merge from <sse>_movmsk<ssemodesuffix> and
12144         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
12145         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
12146         iterator.
12147         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
12148         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
12149         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
12150
12151 2011-04-18  Jan Hubicka  <jh@suse.cz>
12152
12153         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
12154
12155         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
12156         (want_inline_function_called_once_p): Break out the logic from
12157         ipa_inline.
12158         (edge_badness): Ensure that profile is not misupdated.
12159         (lookup_recursive_calls): Prioritize by call frequencies.
12160         (inline_small_functions): Move program size estimates here;
12161         actually process whole queue even when unit growth has been
12162         met. (to properly compute inline_failed reasons and for the
12163         case unit size decrease.) Revisit comments on recursive inlining.
12164         (ipa_inline): Remove unit summary code; first inline hot calls
12165         of functions called once, cold calls next.
12166         (order, nnodes): Remove unused variables.
12167         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
12168         (GTFILES): Remove ipa-inline.c
12169         * sel-sched.c (fill_insns): Silence uninitialized var warning.
12170
12171 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
12172
12173         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
12174
12175 2011-04-18  Jie Zhang  <jie@codesourcery.com>
12176             Richard Earnshaw  <rearnsha@arm.com>
12177
12178         * arm.c (neon_builtin_type_bits): Remove.
12179         (typedef enum neon_builtin_mode): New.
12180         (T_MAX): Don't define.
12181         (typedef enum neon_builtin_datum): Remove bits, codes[],
12182         num_vars and base_fcode.  Add mode, code and fcode.
12183         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
12184         VAR10): Change accordingly.
12185         (neon_builtin_data[]): Change accordingly
12186         (arm_init_neon_builtins): Change accordingly.
12187         (neon_builtin_compare): Remove.
12188         (locate_neon_builtin_icode): Remove.
12189         (arm_expand_neon_builtin): Change accordingly.
12190
12191         * arm.h (enum arm_builtins): Move to ...
12192         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
12193
12194         * arm.c (arm_builtin_decl): Declare.
12195         (TARGET_BUILTIN_DECL): Define.
12196         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
12197         (arm_builtin_decls[]): New.
12198         (arm_init_neon_builtins): Store builtin declarations in
12199         arm_builtin_decls[].
12200         (arm_init_tls_builtins): Likewise.
12201         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
12202         (arm_builtin_decl): New.
12203
12204 2011-04-18  Richard Guenther  <rguenther@suse.de>
12205
12206         * tree.c (upper_bound_in_type): Build properly canonicalized
12207         INTEGER_CSTs.
12208         (lower_bound_in_type): Likewise.
12209
12210 2011-04-18  Richard Guenther  <rguenther@suse.de>
12211
12212         * gimple.h (gimple_call_addr_fndecl): New function.
12213         (gimple_call_fndecl): Use it.
12214         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
12215         for direct calls.
12216         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
12217         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
12218
12219 2011-04-18  Richard Guenther  <rguenther@suse.de>
12220
12221         PR middle-end/48650
12222         * tree.c (build_string): STRING_CST is now derived from tree_typed.
12223
12224 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
12225
12226         PR lto/48492
12227         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
12228         DECL_IN_CONSTANT_POOL without RTL.
12229
12230 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
12231             Ira Rosen  <ira.rosen@linaro.org>
12232
12233         PR target/48252
12234         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
12235         to match neon_vzip/vuzp/vtrn_internal.
12236         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
12237         outputs explicitly dependent on both inputs.
12238         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
12239
12240 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
12241
12242         PR tree-optimization/48616
12243         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
12244         whether the shift is by scalar or vector based on whether all SLP
12245         scalar stmts have the same rhs.
12246
12247 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
12248
12249         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
12250         memory operands.
12251
12252 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
12253
12254         PR target/43700
12255         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
12256         registers.
12257
12258 2011-04-17  Jan Hubicka  <jh@suse.cz>
12259
12260         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
12261         * cgrpahunit.c (cgraph_finalize_function): Do not set
12262         finalized_by_frontend.
12263         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
12264         finalized_by_frontend.
12265
12266 2011-04-17  Jan Hubicka  <jh@suse.cz>
12267
12268         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
12269         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
12270         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
12271         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
12272         method.
12273         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
12274         gimple-fold.c
12275         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
12276
12277 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
12278
12279         PR lto/48538
12280         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
12281         is non-null before accessing it.
12282         (input_cgraph): Remove trailing spaces.
12283
12284 2011-04-17  Revital Eres  <revital.eres@linaro.org>
12285
12286         * params.def (sms-min-sc): New param flag.
12287         * modulo-sched.c (sms_schedule): Use it.
12288         * doc/invoke.texi (sms-min-sc): Document it.
12289
12290 2011-04-17  Jan Hubicka  <jh@suse.cz>
12291
12292         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
12293         present, also set gimple_call_set_cannot_inline.
12294         * ipa-inline.c: Update toplevel comment.
12295         (MAX_TIME): Remove.
12296         (cgraph_clone_inlined_nodes): Fix linebreaks.
12297         (cgraph_check_inline_limits): Restructure to ...
12298         (caller_growth_limits): ... this one; be more tolerant
12299         on growth in nested inline chains; add explanatory comment;
12300         fix stack accounting thinko introduced by previous patch.
12301         (cgraph_default_inline_p): Remove.
12302         (report_inline_failed_reason): New function.
12303         (can_inline_edge_p): New function.
12304         (can_early_inline_edge_p): New function.
12305         (leaf_node_p): Move upwards in file.
12306         (want_early_inline_function_p): New function.
12307         (want_inline_small_function_p): New function.
12308         (want_inline_self_recursive_call_p): New function.
12309         (cgraph_edge_badness): Rename to ...
12310         (edge_badness) ... this one; fix linebreaks.
12311         (update_edge_key): Update call of edge_baddness; add
12312         detailed dump about queue updates.
12313         (update_caller_keys): Use can_inline_edge_p and
12314         want_inline_small_function_p.
12315         (cgraph_decide_recursive_inlining): Rename to...
12316         (recursive_inlining): Use can_inline_edge_p and
12317         want_inline_self_recursive_call_p; simplify and remove no longer
12318         valid FIXME.
12319         (cgraph_set_inline_failed): Remove.
12320         (add_new_edges_to_heap): Use can_inline_edge_p and
12321         want_inline_small_function_p.
12322         (cgraph_decide_inlining_of_small_functions): Rename to ...
12323         (inline_small_functions): ... this one; cleanup; use
12324         can/want predicates; cleanup debug ouput; work edges till fibheap
12325         is exhausted and do not stop once unit growth is reached; remove
12326         later loop processing remaining edges.
12327         (cgraph_flatten): Rename to ...
12328         (flatten_function): ... this one; use can_inline_edge_p
12329         and can_early_inline_edge_p predicates.
12330         (cgraph_decide_inlining): Rename to ...
12331         (ipa_inline): ... this one; remove unreachable nodes before
12332         inlining functions called once; simplify the pass.
12333         (cgraph_perform_always_inlining): Rename to ...
12334         (inline_always_inline_functions): ... this one; use
12335         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
12336         (cgraph_decide_inlining_incrementally): Rename to ...
12337         (early_inline_small_functions): ... this one; simplify
12338         using new predicates; cleanup; make dumps prettier.
12339         (cgraph_early_inlining): Rename to ...
12340         (early_inliner): newer inline regular functions into always-inlines;
12341         fix updating of call stmt summaries.
12342         (pass_early_inline): Update for new names.
12343         (inline_transform): Fix formating.
12344         (gate_cgraph_decide_inlining): Rename to ...
12345         (pass_ipa_inline): ... this one.
12346         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
12347         * ipa-inline-analysis.c (dump_inline_summary): Update.
12348         (compute_inline_parameters): Do not compute disregard_inline_limits;
12349         look for mismatching arguments.
12350         (estimate_growth): Fix handlig of non-trivial self recursion.
12351         (inline_read_summary): Do not read info->disregard_inline_limits.
12352         (inline_write_summary): Do not write info->disregard_inline_limits.
12353         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
12354         and move all checks into can_inline_edge_p predicate; re-enable code
12355         comparing optimization levels.
12356         (expand_call_inline): Do not test inline_forbidden_into_p.
12357         * Makefile.in (ipa-inline.o): Update arguments.
12358
12359 2011-04-17  Revital Eres  <revital.eres@linaro.org>
12360
12361         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
12362
12363 2011-04-17  Revital Eres  <revital.eres@linaro.org>
12364
12365         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
12366
12367 2011-04-17  Michael Matz  <matz@suse.de>
12368
12369         PR tree-optimization/48622
12370         PR lto/48645
12371         * ipa-inline-analysis.c (inline_read_summary): Read size/time
12372         in same order as they're written.
12373
12374 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12375
12376         * config/pa/predicates.md: Reorganize and simplify predicates.
12377         Eliminate duplicate code checks.
12378         (arith_operand): Rename to arith14_operand
12379         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
12380         * config/pa/pa.md: Use renamed operands.
12381         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
12382         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
12383         arith11_operand, adddi3_operand, indexed_memory_operand,
12384         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
12385         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
12386         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
12387         move_dest_operand, move_src_operand, prefetch_cc_operand,
12388         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
12389         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
12390         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
12391         div_operand, int5_operand, movb_comparison_operator,
12392         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
12393         arith_double_operand, ireg_operand, lhs_lshift_operand,
12394         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
12395         integer_store_memory_operand): Likewise.
12396         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
12397         (integer_store_memory_operand, read_only_operand,
12398         function_label_operand, borx_reg_operand,
12399         non_hard_reg_operand): Likewise.
12400         (eq_neq_comparison_operator): Delete unused operator.
12401         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
12402         function_label_operand.
12403         (emit_move_sequence): Likewise.
12404
12405 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
12406
12407         * config/i386/sse.md (sseunpackmode): New mode attribute.
12408         (ssepackmode): Ditto.
12409         (vec_pack_trunc_<mode>): Macroize expander from
12410         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
12411         (vec_unpacks_lo_<mode>): Macroize expander from
12412         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12413         (vec_unpacks_hi_<mode>): Macroize expander from
12414         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12415         (vec_unpacku_lo_<mode>): Macroize expander from
12416         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12417         (vec_unpacku_hi_<mode>): Macroize expander from
12418         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12419         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
12420         ix86_expand_sse4_unpack.
12421         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
12422
12423 2011-04-16  Jan Hubicka  <jh@suse.cz>
12424
12425         * cgraphbuild.c: Include ipa-inline.h.
12426         (reset_inline_failed): Use initialize_inline_failed.
12427         * cgraph.c: Include ipa-inline.h.
12428         (cgraph_create_node_1): Do not initialize estimated_growth.
12429         (initialize_inline_failed): More to ipa-inline-analysis.c
12430         (dump_cgraph_node): Do not dump inline flags.
12431         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
12432         and disregard_inline_limits flags.
12433         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
12434         time, size, estimated_growth.
12435         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
12436         Update.
12437         * cgraphunit.c (cgraph_decide_is_function_needed): Use
12438         DECL_DISREGARD_INLINE_LIMITS.
12439         (cgraph_analyze_function): Do not initialize
12440         node->local.disregard_inline_limits.
12441         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
12442         inlinable, versionable and disregard_inline_limits.
12443         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
12444         cgraph_check_inline_limits, cgraph_default_inline_p,
12445         cgraph_edge_badness, update_caller_keys, update_callee_keys,
12446         add_new_edges_to_heap): Update.
12447         (cgraph_decide_inlining_of_small_function): Update; set
12448         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
12449         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
12450         cgraph_decide_inlining_incrementally): Update.
12451         * ipa-inline.h (inline_summary): Add inlinable, versionable,
12452         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
12453         time, size and estimated_growth parameters.
12454         (estimate_edge_growth): Update.
12455         (initialize_inline_failed): Declare.
12456         * ipa-split.c: Include ipa-inline.h
12457         (execute_split_functions): Update.
12458         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
12459         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
12460         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
12461         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
12462         estimated_growth to INT_MIN.
12463         (inline_node_duplication_hook): Likewise.
12464         (dump_inline_summary): Dump new fields.
12465         (compute_inline_parameters): Update.
12466         (estimate_edge_time, estimate_time_after_inlining,
12467         estimate_size_after_inlining, estimate_growth, inline_read_summary,
12468         inline_write_summary):
12469         (initialize_inline_failed): Move here from cgraph.c.
12470         * tree-sra.c: Include ipa-inline.h.
12471         (ipa_sra_preliminary_function_checks): Update.
12472         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
12473         ipa-inline.h.
12474
12475 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
12476
12477         * config/i386/sse.md (V16): New mode iterator.
12478         (VI1, VI8): Ditto.
12479         (AVXMODEQI, AVXMODEDI): Remove.
12480         (sse2, sse3): New mode attribute.
12481         (mov<mode>): Use V16 mode iterator.
12482         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
12483         (push<mode>1): Use V16 mode iterator.
12484         (movmisalign<mode>): Ditto.
12485         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
12486         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
12487         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
12488         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
12489         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
12490         avx_movdqu<avxmodesuffix>.
12491         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
12492         *avx_movdqu<avxmodesuffix>.
12493         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
12494         avx_lddqu<avxmodesuffix>.
12495         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
12496         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
12497         avx_movnt<AVXMODEDI:mode>.
12498         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
12499         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
12500
12501 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
12502
12503         PR target/48629
12504         * haifa-sched.c (prune_ready_list, schedule_block): Use
12505         sched_pressure_p rather than flag_sched_pressure.
12506
12507 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
12508
12509         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
12510         cgraph_get_node instead of cgraph_get_create_node.
12511
12512 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
12513
12514         * cfgexpand.c (expand_debug_expr): Use
12515         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
12516
12517 2011-04-15  Michael Matz  <matz@suse.de>
12518
12519         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
12520         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
12521         * function.c (gimplify_parameters): Ditto.
12522         * gimplify.c (gimplify_vla_decl): Ditto.
12523
12524         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
12525         (gimple_call_set_alloca_for_var): New inline function.
12526         (gimple_call_alloca_for_var_p): Ditto.
12527         * gimple.c (gimple_build_call_from_tree): Remember
12528         CALL_ALLOCA_FOR_VAR_P state.
12529         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
12530
12531         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
12532         calls if they were for VLA objects.
12533
12534 2011-04-15  Martin Jambor  <mjambor@suse.cz>
12535
12536         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
12537         of ADR_EXPRs.
12538
12539 2011-04-15  Martin Jambor  <mjambor@suse.cz>
12540
12541         PR middle-end/48601
12542         * tree-emutls.c (lower_emutls_function_body): Call
12543         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
12544         result is non-NULL.
12545
12546 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
12547
12548         * c-decl.c (detect_field_duplicates): Call
12549         objc_detect_field_duplicates instead of objc_get_interface_ivars.
12550
12551 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
12552
12553         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
12554         * gimple.c (gimple_asm_clobbers_memory_p): Define.
12555         * ipa-pure-const.c (check_stmt): Call it.
12556         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
12557
12558 2011-04-15  Richard Guenther  <rguenther@suse.de>
12559
12560         PR tree-optimization/48290
12561         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
12562         Properly decide inhibiting propagation based on the valueized
12563         operand.  Do loop-closed SSA form preserving here ...
12564         (init_copy_prop): ... not here.
12565
12566 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
12567
12568         PR target/48612
12569         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
12570         (*ieee_smax<mode>3): Likewise.
12571
12572 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12573
12574         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
12575         Replace match_operand with match_dup for the third operand in
12576         these expanders.
12577
12578 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
12579
12580         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
12581         to track processing of conditionals.  Update all callers.
12582         (try_combine, simplify_if_then_else): Update.
12583
12584 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
12585
12586         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
12587         -fsched-pressure.
12588
12589 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
12590
12591         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
12592         instead of match_operand for operand 3.
12593
12594 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
12595
12596         * recog.h (insn_operand_data): Add an "allows_mem" field.
12597         * genoutput.c (output_operand_data): Initialize it.
12598         * optabs.c (maybe_legitimize_operand_same_code): New function.
12599         (maybe_legitimize_operand): Use it when matching the original
12600         op->value.
12601
12602 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
12603
12604         * gimplify.c: Fix issues in comments throughout.
12605         (voidify_wrapper_expr): Fix long line.
12606         (build_stack_save_restore): Likewise.
12607         (gimplify_loop_expr): Likewise.
12608         (gimplify_compound_lval): Likewise.
12609         (gimplify_init_ctor_eval): Likewise.
12610         (gimplify_modify_expr_rhs): Likewise.
12611         (omp_notice_threadprivate_variable): Likewise.
12612
12613 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
12614
12615         * cfgexpand.c (expand_call_stmt): Convert the function type to the
12616         original one if this is not a builtin function.
12617
12618 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
12619
12620         PR target/48605
12621         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
12622         offset it as needed based on top 2 bits in operands[3], change
12623         MEM mode to SFmode and mask those 2 bits away from operands[3].
12624
12625 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
12626
12627         * c-parser.c (c_parser_objc_protocol_definition): Updated for
12628         change from objc_declare_protocols() to objc_declare_protocol().
12629
12630 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
12631
12632         * config/i386/sse.md (sse4_1): New mode attribute.
12633         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
12634         avx_blend<ssemodesuffix><avxmodesuffix> and
12635         sse4_1_blend<ssemodesuffix> using VF mode iterator.
12636         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
12637         avx_blendv<ssemodesuffix><avxmodesuffix> and
12638         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
12639         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
12640         avx_dp<ssemodesuffix><avxmodesuffix> and
12641         sse4_1_dp<ssemodesuffix> using VF mode iterator.
12642         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
12643         (sse4_1_packusdw): Merge with *avx_packusdw.
12644         (sse4_1_pblendvb): Merge with *avx_pblendvb.
12645         (sse4_1_pblendw): Merge with *avx_pblendw.
12646         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
12647         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
12648         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
12649         VF mode iterator.
12650         (sse4_1_round<ssescalarmodesuffix>): Merge with
12651         *avx_round<ssescalarmodesuffix>.
12652         (aesenc): Merge with *avx_aesenc.
12653         (aesenclast): Merge with *avx_aesenclast.
12654         (aesdec): Merge with *avx_aesdec.
12655         (aesdeclast): Merge with *avx_aesdeclast.
12656         (pclmulqdq): Merge with *pclmulqdq.
12657         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
12658         New predicate.
12659         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
12660
12661 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
12662
12663         PR middle-end/48608
12664         * cfgexpand.c (get_decl_align_unit): Renamed to ...
12665         (align_local_variable): This.  Update DECL_ALIGN.
12666         (add_stack_var): Updated.
12667         (expand_one_stack_var): Likewise.
12668
12669 2011-04-14  Richard Guenther  <rguenther@suse.de>
12670
12671         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
12672         Remove.
12673         (dse_initialize_block_local_data, dse_leave_block,
12674         record_voperand_set, get_stmt_uid): Likewise.
12675         (dse_possible_dead_store_p): Allow any kind of killing stmt.
12676         (dse_optimize_stmt): Remove voperand set handling code.
12677         Simplify and improve to handle any kind of killing stmt.
12678         (dse_record_phi): Remove.
12679         (dse_enter_block): Simplify.
12680         (tree_ssa_dse): Likewise.
12681         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
12682
12683 2011-04-14  Jan Hubicka  <jh@suse.cz>
12684
12685         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
12686         * cgraph.h (struct inline_summary): Move to ipa-inline.h
12687         (cgraph_local_info): Remove inline_summary.
12688         * ipa-cp.c: Include ipa-inline.h.
12689         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
12690         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
12691         accesor.
12692         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
12693         (input_overwrite_node): Do not set inline summary.
12694         (input_node): Do not stream inline summary.
12695         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
12696         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
12697         growth; we do not have inline parameters computed for that anyway.
12698         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
12699         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
12700         (inline_summary_t): New type and VECtor.
12701         (debug_inline_summary, dump_inline_summaries): Declare.
12702         (inline_summary): Use VOCtor.
12703         (estimate_edge_growth): Kill hack computing call stmt size directly.
12704         * lto-section-in.c (lto_section_name): Add inline section.
12705         * ipa-inline-analysis.c: Include lto-streamer.h
12706         (node_removal_hook_holder, node_duplication_hook_holder): New holders
12707         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
12708         (inline_summary_vec): Define.
12709         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
12710         dump_inline_summaries): New functions.
12711         (estimate_function_body_sizes): Properly compute size/time of outgoing
12712         calls.
12713         (compute_inline_parameters): Alloc inline_summary; do not compute
12714         size/time of incomming calls.
12715         (estimate_edge_time): Avoid missing time summary hack.
12716         (inline_read_summary): Read inline summary info.
12717         (inline_write_summary): Write inline summary info.
12718         (inline_free_summary): Free all hooks and inline summary vector.
12719         * lto-streamer.h: Add LTO_section_inline_summary section.
12720         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
12721         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
12722
12723 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
12724
12725         * tree-vectorizer.h (vect_strided_store_supported): Add a
12726         HOST_WIDE_INT argument.
12727         (vect_strided_load_supported): Likewise.
12728         (vect_permute_store_chain): Return void.
12729         (vect_transform_strided_load): Likewise.
12730         (vect_permute_load_chain): Delete.
12731         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
12732         count argument.  Check that the count is a power of two.
12733         (vect_strided_load_supported): Likewise.
12734         (vect_permute_store_chain): Return void.  Update after above changes.
12735         Assert that the access is supported.
12736         (vect_permute_load_chain): Likewise.
12737         (vect_transform_strided_load): Return void.
12738         * tree-vect-stmts.c (vectorizable_store): Update calls after
12739         above interface changes.
12740         (vectorizable_load): Likewise.
12741         (vect_analyze_stmt): Don't check for strided powers of two here.
12742
12743 2011-04-14  Richard Guenther  <rguenther@suse.de>
12744
12745         PR tree-optimization/48590
12746         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
12747         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
12748         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
12749         BUILT_IN_STACK_SAVE.
12750         * tree-ssa-dce.c (propagate_necessity): Handle
12751         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
12752
12753 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
12754
12755         * c-parser.c (c_parser_objc_class_declaration): Updated call to
12756         objc_declare_class.
12757
12758 2011-04-14  Richard Guenther  <rguenther@suse.de>
12759
12760         * tree.h (get_object_alignment_1): Declare.
12761         * builtins.c (get_object_alignment_1): Split out worker from ...
12762         (get_object_alignment): ... here.
12763         * fold-const.c (get_pointer_modulus_and_residue): Use
12764         get_object_alignment_1.
12765
12766 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
12767
12768         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
12769         type parameter.
12770         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
12771         parameter.  Generalise code to handle arrays as well as vectors.
12772         (vect_setup_realignment): Update accordingly.
12773         * tree-vect-stmts.c (vectorizable_store): Likewise.
12774         (vectorizable_load): Likewise.
12775
12776 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
12777
12778         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
12779         within the per-copy loop.
12780
12781 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
12782
12783         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
12784         in the dump file.
12785
12786 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
12787
12788         * doc/options.texi (Negative): Explicitly mention that the
12789         Negative chain must be circular.
12790
12791 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
12792
12793         * function.h (block_chainon): Declare.
12794         * function.c (block_chainon): Define.
12795
12796 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
12797             Eric Weddington  <eric.weddington@atmel.com>
12798             Georg-Johann Lay  <avr@gjlay.de>
12799
12800         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
12801         New Includes
12802         (avr_init_builtins, avr_expand_builtin,
12803         avr_expand_delay_cycles, avr_expand_unop_builtin,
12804         avr_expand_binop_builtin ): New functions.
12805         (avr_builtin_id): New enum
12806         (struct avr_builtin_description): New struct
12807         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
12808         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
12809
12810         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
12811         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
12812         UNSPECV_DELAY_CYCLES): new enumeration values
12813         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
12814         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
12815         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
12816         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
12817         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
12818         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
12819         "fmulsu"): New insns
12820
12821         * config/avr/avr-c.c: fix line endings
12822         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
12823         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
12824         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
12825         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
12826         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
12827
12828         * doc/extend.texi (AVR Built-in Functions): New node
12829         (Target Builtins): Add documentation of AVR
12830         built-in functions.
12831
12832 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
12833
12834         PR target/44643
12835         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
12836         alone. Error if non-const data has attribute progmem.
12837
12838 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
12839
12840         * tree.h (struct tree_constructor): Include tree_typed instead of
12841         tree_common.
12842         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
12843         TS_TYPED instead of TS_COMMON.
12844
12845 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
12846
12847         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
12848         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
12849         (sse2_psadbw): Merge with *avx_psadbw.
12850         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
12851         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
12852         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
12853         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
12854         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
12855         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
12856         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
12857         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
12858         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
12859         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
12860         (ssse3_palignrti): Merge with *avx_palignrti.
12861
12862 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
12863
12864         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
12865         * tree-ssanames.c (fini_ssanames): VEC_free it.
12866         (make_ssa_name_fn): Update for VECness of free_ssanames.
12867         (release_ssa_name, release_dead_ssa_names): Likewise.
12868         * tree.h (struct tree_ssa_name): Include tree_typed instead of
12869         tree_common.
12870         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
12871         TS_TYPED instead of TS_COMMON.
12872
12873 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
12874
12875         * postreload-gcse.c (gcse_after_reload_main): Add calls to
12876         statistics_counter_event.
12877         * tree-ssa-copyrename.c (stats): Define.
12878         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
12879         statistics_counter_event.
12880         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
12881         (bswap_stats, widen_mul_stats): Define.
12882         (insert_reciprocals): Increment rdivs_inserted.
12883         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
12884         rfuncs_inserted.  Add calls to statistics_counter_event.
12885         (execute_cse_sincos_1): Increment inserted.
12886         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
12887         statistics_counter_event.
12888         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
12889         of bswap_stats.  Add calls to statistics_counter_event.
12890         (convert_mult_to_widen): Increment widen_mults_inserted.
12891         (convert_plusminus_to_widen): Increment maccs_inserted.
12892         (convert_mult_to_fma): Increment fmas_inserted.
12893         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
12894         calls to statistics_counter_event.
12895
12896 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
12897
12898         PR rtl-optimization/48455
12899         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
12900         `temp_costs->mem_cost'.
12901
12902 2011-04-13  Jan Hubicka  <jh@suse.cz>
12903
12904         * ipa-inline.h: New file.
12905         * ipa-inline-analysis.c: New file. Broken out of ...
12906         * ipa-inline.c: ... this file; update toplevel comment;
12907         include ipa-inline.h
12908         (inline_summary): Move to ipa-inline.h
12909         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
12910         ipa-inline-analysis.c.
12911         (cgraph_estimate_time_after_inlining): Rename to
12912         estiamte_time_after_inlining; move to ipa-inline-analysis.c
12913         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
12914         to estimate_edge_growth.
12915         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
12916         rename to estimate_size_after_inlining.
12917         (cgraph_mark_inline_edge): Update for new naming convention.
12918         (cgraph_check_inline_limits): Likewise.
12919         (cgraph_edge_badness): Likewise.
12920         (cgraph_decide_recursive_inlining): Likewise.
12921         (cgraph_decide_inlining_of_small_functions): Likewise.
12922         (cgraph_decide_inlining_incrementally): Likewise.
12923         (cgraph_estimate_growth): Rename to estimate_growth; move to
12924         ipa-inline-analysis.c.
12925         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
12926         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
12927         (compute_inline_parameters): Likewise.
12928         (compute_inline_parameters_for_current): Likewise.
12929         (pass_inline_parameters): Likewise.
12930         (inline_indirect_intraprocedural_analysis): Likewise.
12931         (analyze_function): Rename to inline_analyze_function; likewise.
12932         (add_new_function): Move to ipa-inline-analysis.c.
12933         (inline_generate_summary): Likewise.
12934         (inline_read_summary): Likewise.
12935         (inline_write_summary): Likewise.
12936         * Makefile.in (ipa-inline-analysis.c): New file.
12937
12938 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12939
12940         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
12941         * configure: Regenerate.
12942
12943 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
12944
12945         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
12946         instead of tree_common.
12947         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
12948         Likewise.
12949         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
12950         TS_TYPED rather than TS_COMMON.
12951         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
12952
12953 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
12954
12955         PR target/45263
12956         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
12957         r20 around calls of __tablejump_elpm__
12958
12959 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
12960
12961         PR middle-end/48591
12962         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
12963         NULL.
12964         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
12965
12966 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
12967
12968         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
12969         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
12970         (cfi_vec): New typedef.
12971         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
12972         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
12973         (cie_cfi_vec): New static variable.
12974         (cie_cfi_head): Delete.
12975         (add_cfi): Accept a cfi_vec * as first argument. All callers and
12976         declaration changed. Use vector rather than list operations.
12977         (new_cfi): Don't initialize the dw_cfi_next field.
12978         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
12979         rather than list operations.
12980         (lookup_cfa): Use vector rather than list operations.
12981         (output_cfis): New argument upto. Accept a cfi_vec rather than
12982         a dw_cfi_ref list head as argument. All callers changed.
12983         Iterate over the vector using upto as a maximum index.
12984         (output_all_cfis): New static function.
12985         (output_fde): Use vector rather than list operations. Use the
12986         new upto argument for output_cfis rather than manipulating a
12987         list.
12988         (dwarf2out_begin_prologue): Change initializations to match
12989         new struct members.
12990         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
12991         from the vector length rather than searching for the end of a list.
12992         Use output_all_cfis.
12993         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
12994
12995 2011-04-13  Nick Clifton  <nickc@redhat.com>
12996
12997         * config/rx/rx.md (movmemsi): Do not use this pattern when
12998         volatile pointers are involved.
12999
13000 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
13001
13002         * config/i386/sse.md (pinsrbits): Remove.
13003         (sse2_packsswb): Merge with *avx_packsswb.
13004         (sse2_packssdw): Merge with *avx_packssdw.
13005         (sse2_packuswb): Merge with *avx_packuswb.
13006         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
13007         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
13008         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
13009         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
13010         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
13011         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
13012         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
13013         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
13014         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
13015         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
13016         (sse2_loadld): Merge with *avx_loadld.
13017         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
13018         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
13019         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
13020         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
13021         (vec_concatv2di): Merge with *vec_concatv2di_avx.
13022
13023 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
13024
13025         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
13026         calling TREE_CHAIN.
13027         * print-tree.c (print_node): Likewise.
13028         * tree-inline.c (copy_tree_r): Likewise.
13029         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
13030         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
13031         instead of TS_COMMON.
13032         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
13033         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
13034         (copy_node_stat): Zero TREE_CHAIN only if necessary.
13035         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
13036         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
13037         ...and these...
13038         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
13039         * tree.h: ...here.
13040         (TREE_CHAIN): Check for a TS_COMMON structure.
13041         (TREE_TYPE): Check for a TS_TYPED structure.
13042
13043 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
13044
13045         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
13046         cgraph_get_create_node instead of cgraph_node.
13047
13048 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
13049
13050         * c-parser.c (c_parser_initelt): Updated call to
13051         objc_build_message_expr.
13052         (c_parser_postfix_expression): Likewise.
13053
13054 2011-04-12  Kai Tietz  <ktietz@redhat.com>
13055
13056         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
13057         MASK_MS_BITFIELD_LAYOUT bit.
13058
13059 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
13060
13061         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
13062         assert it is always true.
13063         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
13064         moves.
13065
13066 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
13067
13068         * c-parser.c (c_lex_one_token): Rewritten conditional used when
13069         compiling Objective-C to be more efficient.
13070
13071 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
13072
13073         * opts-common.c (decode_cmdline_options_to_array): Remove variable
13074         argv_copied.
13075
13076 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
13077
13078         * recog.h, genoutput.c, optabs.c: Revert last patch.
13079
13080 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13081
13082         PR target/48090
13083         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
13084
13085 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
13086
13087         * recog.h (insn_operand_data): Add an "allows_mem" field.
13088         * genoutput.c (output_operand_data): Initialize it.
13089         * optabs.c (maybe_legitimize_operand_same_code): New function.
13090         (maybe_legitimize_operand): Use it when matching the original
13091         op->value.
13092
13093 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
13094
13095         * genpreds.c (process_define_predicate): Move most processing
13096         to gensupport.c.  Continue to validate the expression.
13097         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
13098         (process_define_predicate): Move processing to gensupport.c.
13099         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
13100         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
13101         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
13102         argument.
13103         (valid_predicate_name_p): New function, split out from old
13104         genpreds.c:process_define_predicate.
13105         (process_define_predicate): New function, combining code from
13106         old genpreds.c and genrecog.c functions.
13107         (process_rtx): Call it for DEFINE_PREDICATE and
13108         DEFINE_SPECIAL_PREDICATE.
13109
13110 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
13111
13112         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
13113         size of a '%A' memory reference.
13114         (T_DREG, T_QREG): New neon_builtin_type_bits.
13115         (arm_init_neon_builtins): Assert that the load and store operands
13116         are neon_struct_operands.
13117         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
13118         (NEON_ARG_MEMORY): New builtin_arg.
13119         (neon_dereference_pointer): New function.
13120         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
13121         Handle NEON_ARG_MEMORY.
13122         (arm_expand_neon_builtin): Update after above interface changes.
13123         Use NEON_ARG_MEMORY for loads and stores.
13124         * config/arm/predicates.md (neon_struct_operand): New predicate.
13125         * config/arm/iterators.md (V_two_elem): Tweak formatting.
13126         (V_three_elem): Use BLKmode for accesses that have no associated mode.
13127         (V_four_elem): Tweak formatting.
13128         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
13129         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
13130         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
13131         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
13132         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
13133         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
13134         (neon_vst4<mode>): Replace pointer operand with a memory operand.
13135         Use %A in the output template.
13136         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
13137         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
13138         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
13139         the width of the memory access.  Remove post-increment.
13140         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
13141
13142 2011-04-12  Nick Clifton  <nickc@redhat.com>
13143
13144         * config/v850/v850.c (expand_prologue): Do not use the CALLT
13145         instruction for interrupt handlers if the target is the basic V850
13146         architecture.
13147         (expand_epilogue): Likewise.
13148
13149 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
13150
13151         PR rtl-optimization/48549
13152         * combine.c (propagate_for_debug): Also stop after BB_END of
13153         this_basic_block.  Process LAST and just stop processing after it.
13154         (combine_instructions): If last_combined_insn has been deleted,
13155         set last_combined_insn to its PREV_INSN.
13156
13157 2011-04-12  Richard Guenther  <rguenther@suse.de>
13158
13159         PR tree-optimization/46076
13160         * gimple.h (struct gimple_statement_call): Add fntype field.
13161         (gimple_call_fntype): Adjust.
13162         (gimple_call_set_fntype): New function.
13163         * gimple.c (gimple_build_call_1): Set the call function type.
13164         * gimplify.c (gimplify_call_expr): Preserve the function
13165         type the frontend used for the call.
13166         (gimplify_modify_expr): Likewise.
13167         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
13168         function type.
13169         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
13170         function type.
13171         * tree-ssa.c (useless_type_conversion_p): Function pointer
13172         conversions are useless.
13173
13174 2011-04-12  Martin Jambor  <mjambor@suse.cz>
13175
13176         * cgraph.h (cgraph_node): Remove function declaration.
13177         (cgraph_create_node): Declare.
13178         (cgraph_get_create_node): Likewise.
13179         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
13180         Updated all callers.
13181         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
13182         the decl does not already exist.  Call cgraph_get_create_node instead
13183         of cgraph_node.
13184         (cgraph_get_create_node): New function.
13185         (cgraph_same_body_alias): Update comment.
13186         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
13187         assert it does not return NULL.
13188         (cgraph_update_edges_for_call_stmt): Likewise.
13189         (cgraph_clone_edge): Likewise.
13190         (cgraph_create_virtual_clone): Likewise.
13191         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
13192         instead of cgraph_node.
13193         (cgraph_add_new_function): Call cgraph_create_node or
13194         cgraph_get_create_node instead of cgraph_node.
13195         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
13196         instead of cgraph_node.
13197         (record_eh_tables): Likewise.
13198         (mark_address): Likewise.
13199         (mark_load): Likewise.
13200         (build_cgraph_edges): Call cgraph_get_create_node instead
13201         of cgraph_node.
13202         (rebuild_cgraph_edges): Likewise.
13203         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
13204         instead of cgraph_node.
13205         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
13206         cgraph_node.
13207         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
13208         cgraph_create_node instead of cgraph_node.
13209         * c-decl.c (finish_function): Call cgraph_get_create_node instead
13210         of cgraph_node.
13211         * lto-cgraph.c (input_node): Likewise.
13212         * lto-streamer-in.c (input_function): Likewise.
13213         * varasm.c (mark_decl_referenced): Likewise.
13214         (assemble_alias): Likewise.
13215
13216 2011-04-12  Martin Jambor  <mjambor@suse.cz>
13217
13218         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
13219         instead of cgraph_node and assert it does not return NULL.
13220         * lto-streamer-in.c (lto_read_body): Likewise.
13221         * omp-low.c (new_omp_context): Likewise.
13222         (create_task_copyfn): Likewise.
13223         * tree-emutls.c (lower_emutls_function_body): Likewise.
13224         * matrix-reorg.c (transform_allocation_sites): Likewise.
13225
13226 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
13227
13228         PR c/48552
13229         * c-typeck.c (build_asm_expr): Error out on attempts to use
13230         void type outputs or inputs for constraints that allow reg or
13231         don't allow memory.
13232
13233 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
13234             Richard Earnshaw  <rearnsha@arm.com>
13235
13236         PR target/48250
13237         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
13238         to use sign-magnitude offsets. Reject unsupported unaligned
13239         cases. Add detailed description in comments.
13240         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
13241         condition from TARGET_32BIT to TARGET_ARM.
13242
13243 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
13244
13245         * tree.h (struct typed_tree): New.
13246         (struct tree_common): Include it instead of tree_base.
13247         (TREE_TYPE): Update for new location of type field.
13248         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
13249         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
13250         (union tree_node): Add typed field.
13251         * treestruct.def (TS_TYPED): New.
13252         * lto-streamer.c (check_handled_ts_structures): Handle it.
13253         * tree.c (MARK_TS_TYPED): New macro.
13254         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
13255
13256 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
13257
13258         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
13259         (force_nonfallthru): Do not alter the loop nest if no basic block
13260         was created.
13261
13262 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
13263
13264         * config/i386/sse.md (VI): New mode iterator.
13265         (SSEMODEI): Remove.
13266         (AVX256MODEI): Ditto.
13267         (AVXMODEF4P): Ditto.
13268         (avxvecpsmode): Ditto.
13269         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
13270         (sse2_andnot<mode>3): New expander.
13271         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
13272         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
13273         (<any_logic:code><mode>3): Use VI mode iterator.
13274         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
13275         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
13276         (*andnottf3): Handle AVX three-operand constraints.
13277         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
13278
13279 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
13280             Robert Millan  <rmh@gnu.org>
13281
13282         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
13283         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
13284         GNU_USER_DYNAMIC_LINKER64): Define.
13285         (REG_NAME): Don't undefine.
13286         (MD_UNWIND_SUPPORT): Undefine.
13287         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
13288         (REG_NAME): Don't undefine.
13289         (MD_UNWIND_SUPPORT): Undefine.
13290         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
13291
13292 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
13293
13294         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
13295         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
13296
13297 2011-04-11  Xinliang David Li  <davidxl@google.com>
13298
13299         * value-profile.c (check_ic_target): New function.
13300         (gimple_ic_transform): Sanity check indirect call target.
13301         * gimple-low.c (gimple_check_call_args): Interface change.
13302         (gimple_check_call_matching_types): New function.
13303         * tree-inline.c (tree_can_inline_p): Call new function.
13304
13305 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
13306
13307         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
13308         tree-pretty-print.h & realmpfr.h.
13309
13310 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
13311
13312         PR middle-end/48464
13313         * ira.c (setup_pressure_classes): Fix typo in loop condition.
13314         (setup_allocno_and_important_classes): Ditto.
13315
13316 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
13317
13318         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
13319         GNU_USER_DYNAMIC_LINKER.
13320         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
13321         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13322         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
13323         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13324         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
13325         GNU_USER_TARGET_OS_CPP_BUILTINS.
13326         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
13327         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13328         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
13329         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13330         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
13331         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13332         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
13333         GNU_USER_TARGET_OS_CPP_BUILTINS.
13334         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13335         GNU_USER_DYNAMIC_LINKER.
13336         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13337         GNU_USER_TARGET_OS_CPP_BUILTINS.
13338         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
13339         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13340         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
13341         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13342         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
13343         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
13344         GNU_USER_DYNAMIC_LINKER64): Remove.
13345         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
13346         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13347         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13348         GNU_USER_DYNAMIC_LINKER.
13349         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13350         GNU_USER_TARGET_OS_CPP_BUILTINS.
13351         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13352         GNU_USER_TARGET_OS_CPP_BUILTINS.
13353         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
13354         to GNU_USER_TARGET_OS_CPP_BUILTINS.
13355         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13356         GNU_USER_TARGET_OS_CPP_BUILTINS.
13357         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
13358         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
13359         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
13360         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
13361         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13362         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13363         GNU_USER_DYNAMIC_LINKER.
13364         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
13365         GNU_USER_TARGET_OS_CPP_BUILTINS.
13366         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
13367         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13368         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13369         GNU_USER_DYNAMIC_LINKER.
13370         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
13371         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13372         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
13373         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13374         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13375         GNU_USER_DYNAMIC_LINKER.
13376         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
13377         GNU_USER_DYNAMIC_LINKERN32.
13378         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
13379         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
13380         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
13381         GNU_USER_DYNAMIC_LINKER32.
13382         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
13383         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13384         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13385         GNU_USER_DYNAMIC_LINKER.
13386         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
13387         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13388         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
13389         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13390         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13391         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
13392         GNU_USER_DYNAMIC_LINKER32.
13393         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
13394         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
13395         GNU_USER_DYNAMIC_LINKER.
13396         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
13397         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13398         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
13399         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
13400         GNU_USER_DYNAMIC_LINKER64.
13401         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
13402         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13403         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13404         GNU_USER_DYNAMIC_LINKER.
13405         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
13406         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13407         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13408         GNU_USER_DYNAMIC_LINKER.
13409         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
13410         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13411         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
13412         GNU_USER_DYNAMIC_LINKER32.
13413         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
13414         GNU_USER_DYNAMIC_LINKER64.
13415         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
13416         GNU_USER_DYNAMIC_LINKER64.
13417         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
13418         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13419         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
13420         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13421         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13422
13423 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
13424
13425         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
13426         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
13427         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
13428         GNU_USER_DYNAMIC_LINKER.
13429         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
13430         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
13431         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
13432         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
13433         GNU_USER_DYNAMIC_LINKER64.
13434         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
13435         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
13436         GNU_USER_LINK_EMULATION.
13437         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
13438         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
13439         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
13440         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
13441         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
13442         CPP_SPEC, CC1_SPEC): Remove.
13443         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
13444         (GNU_USER_DYNAMIC_LINKER): Define.
13445         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
13446         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
13447         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
13448         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
13449         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
13450         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
13451         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
13452         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
13453         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
13454         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
13455         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
13456         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
13457         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
13458         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
13459         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
13460         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
13461         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13462         GNU_USER_DYNAMIC_LINKER.
13463         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13464         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
13465         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13466         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
13467         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13468         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
13469         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
13470         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
13471         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
13472         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
13473
13474 2011-04-11  Kai Tietz  <ktietz@redhat.com>
13475
13476         PR target/9601
13477         PR target/11772
13478         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
13479         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
13480         comment.
13481         (ix86_is_msabi_thiscall): Removed.
13482         (ix86_is_type_thiscall): Likewise.
13483         (ix86_get_callcvt): New function.
13484         (ix86_comp_type_attributes): Simplify check.
13485         (ix86_function_regparm): Use ix86_get_callcvt for calling
13486         convention attribute checks.
13487         (ix86_return_pops_args): Likewise.
13488         (ix86_static_chain): Likewise.
13489         (x86_this_parameter): Likewise.
13490         (x86_output_mi_thunk): Likewise.
13491         (ix86_function_type_abi): Optimize check for types without attributes.
13492         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
13493         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
13494         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
13495         by flag-values.
13496         (IX86_BASE_CALLCVT): Helper macro.
13497         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
13498         Use ix86_get_callcvt for calling convention attribute checks and avoid
13499         symbol-decoration for stdcall in TARGET_RTD case.
13500         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
13501         Likewise.
13502         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
13503         for declaration.
13504
13505 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
13506
13507         * config/i386/sse.md (VI_128): New mode iterator.
13508         (VI12_128): Rename from SSEMODE12.
13509         (VI14_128): Rename from SSEMODE14.
13510         (VI124_128): New mode iterator.
13511         (VI24_128): Rename from SSEMODE248.
13512         (VI248_128): Rename from SSEMODE248.
13513         (SSEMODE124C8): Remove.
13514         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
13515         (*sse2_<plusminus_insn><mode>3): Merge with
13516         *avx_<plusminus_insn><mode>3.
13517         (*mulv8hi3): Merge with *avx_mulv8hi3.
13518         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
13519         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
13520         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
13521         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
13522         (ashr<mode>3): Merge with *avx_ashr<mode>3.
13523         (lshr<mode>3): Merge with *avx_lshr<mode>3.
13524         (ashl<mode>3): Merge with *avx_ashl<mode>3.
13525         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
13526         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
13527         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
13528         (*<smaxmin:code>v8hi3): Ditto.
13529         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
13530         (*<smaxmin:code>v16qi3): Ditto.
13531         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
13532         (*sse2_eq<mode>3): Ditto.
13533         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
13534         (*sse2_gt<mode>3): Ditto.
13535         (vcondv2di): Split out of vcond<mode>.
13536         (vconduv2di): Split out of vcondu<mode>.
13537
13538 2011-04-11  Richard Guenther  <rguenther@suse.de>
13539
13540         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
13541         before calling tree_low_cst.
13542
13543 2011-04-11  Richard Guenther  <rguenther@suse.de>
13544
13545         * stor-layout.c (layout_type): Compute all array index size operations
13546         in the original type.
13547         (initialize_sizetypes): Add comment.
13548         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
13549
13550 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
13551
13552         * common.opt (Tbss=, Tdata=, Ttext=): New options.
13553
13554 2011-04-11  Martin Jambor  <mjambor@suse.cz>
13555
13556         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
13557         of cgraph_node, handle NULL return value.
13558         (cgraph_global_info): Likewise.
13559         (cgraph_rtl_info): Likewise.
13560         * tree-inline.c (estimate_num_insns): Likewise.
13561         * gimplify.c (unshare_body): Likewise.
13562         (unvisit_body): Likewise.
13563         (gimplify_body): Likewise.
13564         * predict.c (optimize_function_for_size_p): Likewise.
13565         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
13566         (call_may_clobber_ref_p_1): Likewise.
13567         * varasm.c (function_section_1): Likewise.
13568         (assemble_start_function): Likewise.
13569
13570 2011-04-11  Martin Jambor  <mjambor@suse.cz>
13571
13572         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
13573         of cgraph_node.
13574         * final.c (rest_of_clean_state): Likewise.
13575         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
13576         * passes.c (pass_init_dump_file): Likewise.
13577         (execute_all_ipa_transforms): Likewise.
13578         (function_called_by_processed_nodes_p): Likewise.
13579         * predict.c (maybe_hot_frequency_p): Likewise.
13580         (probably_never_executed_bb_p): Likewise.
13581         (compute_function_frequency): Likewise.
13582         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
13583         (unnest_nesting_tree_1): Likewise.
13584         (lower_nested_functions): Likewise.
13585         * tree-optimize.c (execute_fixup_cfg): Likewise.
13586         (tree_rest_of_compilation): Likewise.
13587         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
13588         * tree-sra.c (ipa_early_sra): Likewise.
13589         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
13590         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
13591         * ipa.c (record_cdtor_fn): Likewise.
13592         * ipa-inline.c (cgraph_early_inlining): Likewise.
13593         (compute_inline_parameters_for_current): Likewise.
13594         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
13595         * ipa-pure-const.c (local_pure_const): Likewise.
13596         * ipa-split.c (split_function): Likewise.
13597         (execute_split_functions): Likewise.
13598         * cgraphbuild.c (build_cgraph_edges): Likewise.
13599         (rebuild_cgraph_edges): Likewise.
13600         (cgraph_rebuild_references): Likewise.
13601         (remove_cgraph_callee_edges): Likewise.
13602         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
13603         (verify_cgraph_node): Likewise.
13604         (cgraph_analyze_functions): Likewise.
13605         (cgraph_preserve_function_body_p): Likewise.
13606         (save_inline_function_body): Likewise.
13607         (save_inline_function_body): Likewise.
13608         * tree-inline.c (copy_bb): Likewise.
13609         (optimize_inline_calls): Likewise.
13610
13611 2011-04-11  Martin Jambor  <mjambor@suse.cz>
13612
13613         PR tree-optimization/48195
13614         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
13615         ipa_check_create_edge_args.
13616         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
13617         ipa_check_create_edge_args.
13618         * ipa-inline.c (inline_generate_summary): Do not call
13619         ipa_check_create_node_params and ipa_check_create_edge_args.
13620         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
13621         ipa_check_create_edge_args.
13622
13623 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
13624
13625         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
13626         instead of loop.
13627         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
13628         * function.c (record_hard_reg_sets): Likewise.
13629         * ira.c (compute_regs_asm_clobbered): Likewise.
13630         * sched-deps.c (sched_analyze_1): Likewise.
13631         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
13632
13633 2011-04-09  Xinliang David Li  <davidxl@google.com>
13634
13635         PR tree-optimization/PR48484
13636         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
13637         has_valid_pred lazily
13638
13639 2011-04-09  Duncan Sands  <baldrick@free.fr>
13640
13641         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
13642
13643 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
13644
13645         * combine.c (combine_validate_cost): Adjust comments.  Set registered
13646         cost of I0 to zero at the end, if any.
13647
13648 2011-04-08  Xinliang David Li  <davidxl@google.com>
13649
13650         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
13651         to insane profile data.
13652
13653 2011-04-08  Xinliang David Li  <davidxl@google.com>
13654
13655         * ipa-cp.c (ipcp_update_profiling): Correct
13656          negative scale factor due to insane profile data.
13657
13658 2011-04-08  Xinliang David Li  <davidxl@google.com>
13659
13660         * final.c (dump_basic_block_info): New function.
13661         (final): Dump basic block.
13662         (final_scan_insn): Remove old dump.
13663
13664 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
13665
13666         PR target/47829
13667         * config.gcc (i386-*-freebsd): Disable unwind table generation for
13668         crtbegin/crtend.
13669
13670 2011-04-08  Michael Matz  <matz@suse.de>
13671
13672         PR middle-end/48389
13673         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
13674         functions.
13675         (rebuild_jump_labels): Call rebuild_jump_labels_1.
13676         * rtl.h (rebuild_jump_labels_chain): Declare.
13677         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
13678         insns inserted on edges.
13679
13680 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
13681
13682         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
13683         * config/arm/arm-arches.def: New.
13684         * config/arm/arm-opts.h: New.
13685         * config/arm/genopt.sh: New.
13686         * config/arm/arm-tables.opt: New (generated).
13687         * config/arm/arm.c (arm_handle_option, arm_target_help,
13688         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
13689         (all_architectures): Get most table contents from arm-arches.def.
13690         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
13691         arm_selected_tune here.
13692         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
13693         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
13694         (march=, mcpu=, mtune=): Use Enum and Var.
13695         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
13696         (arm.o): Update dependencies.
13697
13698 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
13699
13700         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
13701         of header_file.
13702         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
13703         (write_typed_alloc_defns): Likewise.
13704         (main): Calls write_typed_alloc_defns with output_header.
13705
13706 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
13707
13708         PR inline-asm/48435
13709         * ira-color.c (setup_profitable_hard_regs): Add comments.
13710         Don't take prohibited hard regs into account.
13711         (setup_conflict_profitable_regs): Rename to
13712         get_conflict_profitable_regs.
13713         (check_hard_reg_p): Check prohibited hard regs.
13714
13715 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
13716
13717         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
13718         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
13719         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
13720
13721 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13722
13723         PR target/48366
13724         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
13725         move from floating point to shift amount register.
13726         (emit_move_sequence): Remove secondary reload support for floating
13727         point to shift amount amount register copies.
13728         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
13729         amount register copies.
13730         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
13731         register, return false if mode isn't a scalar integer mode.
13732         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
13733
13734 2011-04-08  Richard Guenther  <rguenther@suse.de>
13735
13736         * gimple.c (gimple_call_flags): Remove kludge.
13737
13738 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
13739
13740         * sel-sched.c (sel_region_init): Move call to
13741         sel_setup_region_sched_flags after setup_current_loop_nest.
13742
13743 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
13744
13745         PR rtl-optimization/48272
13746         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
13747         init_insn_reg_pressure_info.  Adjust a caller.
13748         * sched-int.h (init_insn_reg_pressure_info): Declare.
13749         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
13750         when sched-pressure is enabled.
13751
13752 2011-04-08  Richard Guenther  <rguenther@suse.de>
13753
13754         * gimple.c (gimple_set_modified): Do not queue calls to
13755         MODIFIED_NORETURN_CALLS here ...
13756         * tree-ssa-operands.c (update_stmt_operands): ... but here.
13757
13758 2011-04-08  Richard Guenther  <rguenther@suse.de>
13759
13760         PR lto/48467
13761         * toplev.c (lang_dependent_init): Do not open asm_out_file
13762         in WPA mode, nor perform debug machinery initialization.
13763         (finalize): Do not unlink asm_out_file in WPA mode.
13764
13765 2011-04-08  Richard Guenther  <rguenther@suse.de>
13766
13767         * gimple.h (gimple_call_fntype): New function.
13768         (gimple_call_return_type): Use it.
13769         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
13770         * gimple-low.c (gimple_check_call_args): Likewise.
13771         * gimple.c (gimple_call_flags): Likewise.
13772         (gimple_call_arg_flags): Likewise.
13773         (gimple_call_return_flags): Likewise.
13774         * tree-cfg.c (verify_gimple_call): Likewise.
13775         (do_warn_unused_result): Likewise.
13776         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
13777         * value-prof.c (gimple_ic_transform): Fix fndecl check.
13778
13779 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
13780
13781         PR rtl-optimization/48235
13782         * sel-sched.c (code_motion_process_successors): Recompute the last
13783         insn in basic block if control flow changed.
13784         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
13785         Update condition for ilist_remove.
13786
13787 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
13788
13789         PR rtl-optimization/48302
13790         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
13791         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
13792         it to record added preheader blocks.
13793         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
13794         on to sel_add_loop_preheaders.
13795         (sel_region_init): Move call to setup_current_loop_nest after
13796         sel_init_bbs.
13797
13798 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
13799
13800         PR target/48273
13801         * cfgloop.h (loop_has_exit_edges): New helper.
13802         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
13803         non-clonable.
13804         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
13805         that have no exit edges.
13806
13807 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
13808
13809         PR rtl-optimization/48442
13810         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
13811         all callers.  Adjust assert.
13812
13813 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
13814
13815         PR tree-optimization/48377
13816         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
13817         is_packed to true even for types with smaller TYPE_ALIGN than
13818         TYPE_SIZE.
13819
13820 2011-04-08  Richard Guenther  <rguenther@suse.de>
13821
13822         PR bootstrap/48513
13823         * doc/tm.texi: Re-generate.
13824
13825 2011-04-08  Wei Guozhi  <carrot@google.com>
13826
13827         PR target/47855
13828         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
13829         * config/arm/arm.c (arm_attr_length_push_multi): New function.
13830         * config/arm/arm.md (*push_multi): Change the length computation to
13831         call a C function.
13832
13833 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
13834
13835         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
13836         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
13837         * doc/tm.texi: Regenerate.
13838         * system.h (ASM_OUTPUT_BSS): Poison.
13839         * varasm.c (asm_output_bss): Remove function.
13840         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
13841
13842         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
13843         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
13844         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
13845         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13846         Likewise.
13847         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13848         Likewise.
13849         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13850         Likewise.
13851         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
13852
13853 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
13854
13855         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
13856         EnumValue lines.
13857
13858 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
13859
13860         * config/m68k/m68k.c (m68k_handle_option): Don't handle
13861         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
13862         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
13863         OPT_mcpu32.
13864         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
13865         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
13866         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
13867         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
13868         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
13869         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
13870         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
13871         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
13872         options.  Don't map other m68k options manually.  Don't handle
13873         old-style options as canonical.
13874         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
13875         * doc/install.texi (m68k-*-*): Document binutils version requirement.
13876
13877 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
13878
13879         * basic-block.h (force_nonfallthru): Move to...
13880         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
13881         (force_nonfallthru): ...here.
13882         * cfghooks.c (force_nonfallthru): New function.
13883         * cfgrtl.c (force_nonfallthru): Rename into...
13884         (rtl_force_nonfallthru): ...this.
13885         (commit_one_edge_insertion): Do not set AUX field.
13886         (commit_edge_insertions): Do not discover new basic blocks.
13887         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
13888         (cfg_layout_rtl_cfg_hooks): Likewise.
13889         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
13890         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
13891         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
13892
13893 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
13894
13895         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
13896         Remove macros.
13897
13898 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
13899
13900         * config/i386/sse.md: Update copyright year.
13901         (avxcvtvecmode): Remove.
13902         (sse_movhlps): Merge with *avx_movhlps.
13903         (sse_movlhps): Merge with *avx_movlhps.
13904         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
13905         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
13906         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
13907         (sse_loadhps): Merge with *avx_loadhps.
13908         (sse_storelps): Merge with *avx_storelps.
13909         (sse_loadlps): Merge with *avx_loadlps.
13910         (sse_movss): Merge with *avx_movss.
13911         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
13912         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
13913         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
13914         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
13915         (vec_set<mode>_0): Ditto.
13916         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
13917         (sse4_1_insertps): Merge with *avx_insertps.
13918         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
13919         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
13920         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
13921         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
13922         (sse2_storehpd): Merge with *avx_storehpd.
13923         (sse2_loadhpd): Merge with *avx_loadhpd.
13924         (sse2_loadlpd): Merge with *avx_loadlpd.
13925         (sse2_movsd): Merge with *avx_movsd.
13926         (*vec_concatv2df): Merge with *vec_concatv2df.
13927
13928 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
13929
13930         PR debug/48343
13931         * combine.c (combine_instructions): Add last_combined_insn,
13932         update it if insn is after it, pass it to all try_combine calls.
13933         (try_combine): Add last_combined_insn parameter, pass it instead of
13934         i3 to propagate_for_debug.
13935
13936 2011-04-07  Nick Clifton  <nickc@redhat.com>
13937
13938         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
13939         to handle MDR <-> data register transfers.
13940         (movhi_internal): Likewise.
13941
13942 2011-04-07  Alan Modra  <amodra@gmail.com>
13943
13944         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
13945         previous stack info.
13946
13947 2011-04-07  Tom de Vries  <tom@codesourcery.com>
13948
13949         PR target/43920
13950         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
13951         flow_find_cross_jump.  Swap variables to implement backward replacement.
13952         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
13953
13954 2011-04-07  Tom de Vries  <tom@codesourcery.com>
13955
13956         PR target/43920
13957         * cfgcleanup.c (walk_to_nondebug_insn): New function.
13958         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
13959         and bb2.
13960         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
13961         src1 or src2.  Redirect edges to the last basic block.  Update
13962         frequency and count on multiple basic blocks in case of fallthru.
13963
13964 2011-04-07  Tom de Vries  <tom@codesourcery.com>
13965
13966         PR target/43920
13967         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
13968         function.
13969         (old_insns_match_p): Change return type.  Replace return false/true
13970         with return dir_none/dir_both.  Use can_replace_by.
13971         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
13972         direction from dir_p.  Register replacement direction in dir, last_dir
13973         and afterlast_dir.  Handle new return type of old_insns_match_p using
13974         merge_dir.  Return replacement direction in dir_p.
13975         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
13976         return type of old_insns_match_p.
13977         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
13978         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
13979         flow_find_cross_jump.
13980         * basic-block.h (enum replace_direction): New type.
13981         (flow_find_cross_jump): Add parameter to declaration.
13982
13983 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
13984
13985         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
13986         (AVXMODEDCVTPS2DQ): Ditto.
13987         (VEC_FLOAT_MODE): Ditto.
13988         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
13989         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
13990         (<any_logic:code><mode>3): Use VF mode iterator.
13991         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
13992         Use VF mode iterator.
13993         (copysign<mode>3): Use VF mode iterator.
13994         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
13995         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
13996         (*<any_logic:code><MODEF:mode>3): Merge with
13997         *avx_<any_logic:code><MODEF:mode>3.
13998         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
13999         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
14000         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
14001         (avx_cvtdq2ps<avxmodesuffix>): Remove.
14002         (sse2_cvtdq2ps): Use %v modifier.
14003         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
14004         (avx_cvtps2dq<avxmodesuffix>): Remove.
14005         (sse2_cvtps2dq): Use %v modifier.
14006         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
14007         (avx_cvttps2dq<avxmodesuffix>): Remove.
14008         (sse2_cvttps2dq): Use %v modifier.
14009         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
14010         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
14011         (sse2_cvtsd2siq): Fix insn template.
14012         (sse2_cvtsd2siq_2): Ditto.
14013         (sse2_cvttsd2siq): Ditto.
14014         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
14015         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
14016
14017 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
14018
14019         * gcov-io.c: Use GCC Runtime Library Exception.
14020
14021 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
14022
14023         PR debug/48466
14024         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
14025         as base_reg whatever register reg has been eliminated to, instead
14026         of hardcoding STACK_POINTER_REGNUM.
14027
14028 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
14029
14030         * doc/tm.texi.in: Document C target hooks as separate from general
14031         target hooks.
14032         * doc/tm.texi: Regenerate.
14033         * genhooks.c (struct hook_desc): Add docname field.
14034         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
14035         docname field.
14036         (hook_array): Include c-target.def.
14037         (emit_documentation): Use docname field in output.
14038         (emit_init_macros): Take docname argument.  Only emit definitions
14039         for hooks matching docname.
14040         (main): Expect additional arguments in all cases.  Pass argument
14041         to emit_init_macros.
14042         * target.def: Move initial macro definitions and comments to
14043         target-hooks-macros.h.
14044         (gcc_targetcm): Move to c-family/c-target.def.
14045         * target.h (targetcm): Move declaration to c-family/c-target.h.
14046         * targhooks.c (default_handle_c_option): Move to
14047         c-family/c-opts.c.
14048         * targhooks.h (default_handle_c_option): Move declaration to
14049         c-family/c-common.h.
14050         * target-hooks-macros.h: New file.
14051         * config.gcc (target_has_targetcm): Define and use to add to
14052         c_target_objs and cxx_target_objs.
14053         * config/default-c.c: New file.
14054         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
14055         of target.h and target-def.h.
14056         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
14057         (darwin_objc_construct_string, darwin_cfstring_ref_p,
14058         darwin_check_cfstring_format_arg): Make static.
14059         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
14060         TARGET_STRING_OBJECT_REF_TYPE_P,
14061         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
14062         * config/darwin-protos.h (darwin_objc_construct_string,
14063         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
14064         declare.
14065         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
14066         TARGET_STRING_OBJECT_REF_TYPE_P,
14067         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
14068         * config/t-darwin (darwin-c.o): Update dependencies.
14069         * system.h (TARGET_HAS_TARGETCM): Poison.
14070         * Makefile.in (TARGET_H): Update.
14071         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
14072         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
14073         (default-c.o): New target.
14074         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
14075         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
14076         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
14077         c-target.def.
14078         (build/genhooks.o): Update dependencies.
14079
14080 2011-04-06  Richard Guenther  <rguenther@suse.de>
14081
14082         * ipa-inline.c (enum inlining_mode): Remove.
14083         (cgraph_flatten): Use some other token.
14084         (cgraph_edge_early_inlinable_p): New function, split out from ...
14085         (cgraph_perform_always_inlining): New function, split out from ...
14086         (cgraph_decide_inlining_incrementally): ... here.
14087         (cgraph_mark_inline_edge): Adjust.
14088         (cgraph_early_inlining): Re-structure.
14089         (pass_early_inline): Require SSA form.
14090
14091 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
14092             Julian Brown  <julian@codesourcery.com>
14093             Mark Shinwell  <shinwell@codesourcery.com>
14094
14095         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
14096         LO_REGS only for Thumb-1.
14097         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
14098         be used in short instructions when optimising for size on Thumb-2.
14099
14100 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
14101
14102         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
14103         associated with user returns to be preserved.
14104
14105 2011-04-06  Tristan Gingold  <gingold@adacore.com>
14106
14107         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
14108         symbol_queue_size, DBXOUT_DECR_NESTING,
14109         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
14110         if XCOFF_DEBUGGING_INFO.
14111
14112 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
14113
14114         * config/i386/i386.md (attribute isa): New.
14115         (attribute enabled): New.
14116         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
14117         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
14118         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
14119         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
14120         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
14121         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14122         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
14123         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
14124
14125         * config/i386/sse.md (VF): New mode iterator.
14126         (VF1): Ditto.
14127         (VF2): Ditto.
14128         (VF_128): Ditto.
14129         (SSEMODEF4): Remove.
14130         (attribute sse): Handle V8SF and V4DF modes.
14131         (<absneg:code><mode>2): Use VF mode iterator.
14132         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
14133         mode iterator.
14134         (<plusminus_insn><mode>3): Use VF mode iterator.
14135         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
14136         Use VF mode iterator.
14137         (<sse>_vm<plusminus_insn><mode>3): Merge with
14138         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
14139         (mul<mode>3): Use VF mode iterator.
14140         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
14141         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
14142         mode iterator.
14143         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
14144         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
14145         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
14146         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
14147         mode iterator.
14148         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
14149         Use VF1 mode iterator.
14150         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
14151         (sqrt<VF2:mode>2): New expander.
14152         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
14153         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
14154         and sqrtv2df2.  Use VF mode iterator.
14155         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
14156         mode iterator.
14157         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
14158         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
14159         Use VF1 mode iterator.
14160         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
14161         (<smaxmin:code><mode>3): Use VF mode iterator.
14162         (*<smaxmin:code><mode>3_finite): Merge with
14163         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
14164         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14165         (<sse>_vm<smaxmin:code><mode>2): Merge with
14166         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
14167         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
14168         mode iterator.
14169         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
14170         mode iterator.
14171         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
14172         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
14173         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
14174         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
14175         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
14176         VF mode iterator.
14177         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
14178         Use VF_128 mode iterator.
14179         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
14180         mode iterator.
14181         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
14182         VF_128 mode iterator.
14183         (vcond<mode>): Use VF mode iterator.
14184         * config/i386/predicates.md (sse_comparison_operator): Merge with
14185         avx_comparison_float_operator.  Do not declare as special_predicate.
14186         * config/i386/i386.c (struct builtin_description): Update for renamed
14187         compare patterns.
14188         (ix86_expand_args_builtin): Ditto.
14189         (ix86_expand_sse_compare_mask): Ditto.
14190
14191 2011-04-06  Richard Guenther  <rguenther@suse.de>
14192
14193         * tree-inline.c (estimate_num_insns): For calls simply account
14194         for all passed arguments and a used return value.
14195
14196 2011-04-06  Richard Guenther  <rguenther@suse.de>
14197
14198         PR tree-optimization/47663
14199         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
14200         call_stmt_time fields.
14201         (cgraph_edge_inlinable_p): Declare.
14202         (cgraph_edge_recursive_p): New inline function.
14203         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
14204         (cgraph_clone_edge): Copy it.
14205         * ipa-inline.c (cgraph_estimate_edge_time): New function.
14206         Account for call stmt time.
14207         (cgraph_estimate_time_after_inlining): Take edge argument.
14208         (cgraph_estimate_edge_growth): Account call stmt size.
14209         (cgraph_estimate_size_after_inlining): Take edge argument.
14210         (cgraph_mark_inline_edge): Adjust.
14211         (cgraph_check_inline_limits): Likewise.
14212         (cgraph_recursive_inlining_p): Remove.
14213         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
14214         (cgraph_decide_recursive_inlining): Take edge argument and
14215         adjust.
14216         (cgraph_decide_inlining_of_small_functions): Do not avoid
14217         diags for recursive inlining here.
14218         (cgraph_flatten): Adjust.
14219         (cgraph_decide_inlining_incrementally): Likewise.
14220         (estimate_function_body_sizes): Remove call cost handling.
14221         (compute_inline_parameters): Initialize caller edge call costs.
14222         (cgraph_estimate_edge_growth): New function.
14223         (cgraph_estimate_growth): Use it.
14224         (cgraph_edge_badness): Likewise.
14225         (cgraph_check_inline_limits): Take an edge argument.
14226         (cgraph_decide_inlining_of_small_functions): Adjust.
14227         (cgraph_decide_inlining): Likewise.
14228         * tree-inline.c (estimate_num_insns): Only account for call
14229         return value if it is used.
14230         (expand_call_inline): Avoid diagnostics on recursive inline
14231         functions here.
14232         * lto-cgraph.c (lto_output_edge): Output edge call costs.
14233         (input_edge): Input edge call costs.
14234
14235 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14236
14237         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
14238
14239 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
14240
14241         * doc/invoke.texi (Spec Files): Fix typo.
14242
14243 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
14244
14245         * profile.c (branch_prob): Move declaration of local variable.  Remove
14246         obsolete ??? comment.  Expand the location explicitly instead of using
14247         the LOCATION_FILE and LOCATION_LINE macros.
14248
14249 2011-04-06  Wei Guozhi  <carrot@google.com>
14250
14251         PR target/47855
14252         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
14253         (arm_cond_branch): Likewise.
14254         (arm_cond_branch_reversed): Likewise.
14255         (arm_jump): Likewise.
14256         (push_multi): Likewise.
14257         * config/arm/constraints.md (Py): New constraint.
14258
14259 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14260
14261         PR bootstrap/48471
14262         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
14263         Move these...
14264         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
14265         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
14266         #ifdef DBX_DEBUGGING_INFO.
14267
14268 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
14269
14270         PR bootstrap/48403
14271         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
14272         if old and new states differ.
14273
14274 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
14275
14276         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
14277         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
14278         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
14279         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
14280         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
14281         mcfv4e): Use Alias.
14282         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
14283         ColdFire options to -mcpu= options.
14284
14285 2011-04-05  Jeff Law  <law@redhat.com>
14286
14287         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
14288         check if BB is a successor of LOOP->header and return
14289         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
14290
14291 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
14292
14293         * cprop.c (struct reg_use): Remove.
14294         (reg_use_table): Make an array of RTX.
14295         (find_used_regs, constprop_register, local_cprop_pass,
14296         bypass_block): Simplify users of reg_use_table.
14297         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
14298         on one of the uses found by find_used_regs.
14299
14300 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14301
14302         PR bootstrap/48469
14303         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
14304         declaration.
14305
14306 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14307
14308         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
14309         as an rtx.
14310         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
14311
14312 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
14313
14314         PR middle-end/48441
14315         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
14316
14317 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14318
14319         * combine.c: Include obstack.h.
14320         (struct insn_link): Define.
14321         (uid_log_links): Adjust type.
14322         (FOR_EACH_LOG_LINK): New macro.
14323         (insn_link_obstack): Declare.
14324         (alloc_insn_link): Define.
14325         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
14326         type of link variables.
14327         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
14328         (try_combine, record_promoted_values, distribute_notes): Likewise.
14329         (distribute_links): Likewise.  Tweak prototype.
14330         (clear_log_links): Delete.
14331         (adjust_for_new_dest): Call alloc_insn_link.
14332         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
14333
14334 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14335
14336         * gcse.c (modify_mem_list): Convert to an array of VECs.
14337         (canon_modify_mem_list, compute_transp): Tweak formatting.
14338         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
14339         (load_killed_in_block_p): Likewise.
14340         (record_last_mem_set_info): Likewise.
14341         (clear_modify_mem_tables): Likewise.
14342
14343 2011-04-05  Tom de Vries  <tom@codesourcery.com>
14344
14345         PR middle-end/48461
14346         * function.c (emit_use_return_register_into_block): Only define if
14347         HAVE_return.
14348
14349 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
14350
14351         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
14352
14353 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
14354
14355         * config/rx/rx-opts.h: New.
14356         * config/rx/rx.c (rx_cpu_type): Remove.
14357         (rx_handle_option): Don't assert that global structures are in
14358         use.  Access variables via opts pointer.  Defer most handling of
14359         OPT_mint_register_.  Use error_at.
14360         (rx_option_override): Handle deferred OPT_mint_register_ here.
14361         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
14362         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
14363         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
14364         (rx_cpu_types): New Enum and EnumValue entries.
14365         (mint-register=): Use Defer and use Var accordingly.
14366
14367 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14368
14369         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
14370         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
14371         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
14372         Move these...
14373         (debug_free_queue, debug_nesting, symbol_queue_index):
14374         ...and these...
14375         * dbxout.c: ...to here.  Make static.
14376
14377 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14378
14379         * gcse.c (modify_pair): Define.  Define a VEC of it.
14380         (canon_modify_mem_list): Convert to an array of VECs.
14381         (free_insn_expr_list_list): Delete.
14382         (clear_modify_mem_tables): Call VEC_free instead.
14383         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
14384         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
14385         (canon_list_insert, compute_transp): Likewise.
14386
14387 2011-04-05  Tom de Vries  <tom@codesourcery.com>
14388
14389         PR target/43920
14390         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
14391         for size.
14392
14393 2011-04-05  Tom de Vries  <tom@codesourcery.com>
14394
14395         PR target/43920
14396         * function.c (emit_use_return_register_into_block): New function.
14397         (thread_prologue_and_epilogue_insns): Use
14398         emit_use_return_register_into_block.
14399
14400 2011-04-05  Tom de Vries  <tom@codesourcery.com>
14401
14402         PR target/43920
14403         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
14404         insn.
14405
14406 2011-04-05  Tom de Vries  <tom@codesourcery.com>
14407
14408         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
14409
14410 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
14411
14412         * config/arm/arm.md (define_constants for unspec): Replace with
14413         define_c_enum.
14414         (define_constants for unspecv): Replace with define_c_enum.
14415         * config/arm/neon.md (define_constants for unspec): Replace with
14416         define_c_enum.
14417
14418 2011-04-04  Richard Henderson  <rth@redhat.com>
14419
14420         PR bootstrap/48400
14421         * dwarf2out.c (output_line_info): Always emit line info from
14422         at least one section.
14423         (dwarf2out_init): Create text_section_line_info here ...
14424         (set_cur_line_info_table): ... not here.
14425
14426 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
14427
14428         PR target/48380
14429         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
14430         not called.
14431
14432         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
14433
14434 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
14435
14436         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
14437         (expr_equiv_p): Remove.
14438         (insert_set_in_table): Look at <dest, src> pair instead of expr.
14439         (hash_scan_set): Update call to insert_set_in_table.
14440         (dump_hash_table): Dump <dest, src> pair.
14441         (lookup_set): Simplify.  Lookup <dest, src> pair.
14442         (compute_transp): Remove, fold heavily simplified code into...
14443         (compute_local_properties): ...here.  Expect COMP and TRANSP
14444         unconditionally.
14445         (find_avail_set): Take set directly from struct expr.
14446         (find_bypass-set): Likewise.
14447         (bypass_block): Likewise.
14448         (cprop_insn): Likewise.  Remove redundant INSN_P test.
14449
14450         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
14451         checks on form of COND from find_implicit_sets to here.
14452         (find_implicit_sets): Cleanup control flow. Split critical edges
14453         if it exposes implicit sets.  Allocate/resize implicit_sets as
14454         necessary.
14455         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
14456         changed something.  Run df_analyze after find_implicit_sets if any
14457         edges were split.  Do not allocate implicit_sets here.
14458
14459         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
14460         (gcse_obstack): Renamed to cprop_obstack.
14461         (GNEW, GNEWVEC, GNEWVAR): Remove.
14462         (gmalloc): Remove.
14463         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
14464         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
14465         (gcse_alloc): Likewise, and rename to cprop_alloc.
14466         (alloc_gcse_men, free_gcse_mem): Remove.
14467         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
14468         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
14469         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
14470
14471         * cprop.c (oprs_not_set_p): Remove.
14472         (mark_set, mark_clobber): Remove.
14473         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
14474         (reg_not_set_p): New function.
14475         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
14476         (cprop_insn): Likewise.
14477         (cprop_jump): Use FOR_EACH_EDGE.
14478
14479 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
14480
14481         PR bootstrap/48403
14482         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
14483         (rank_for_schedule): Use scheduled_insns vector instead of
14484         last_scheduled_insn.
14485         (ok_for_early_queue_removal): Likewise.
14486         (queue_to_ready): Search forward in nonscheduled_insns_begin if
14487         we have a dbg_cnt.
14488         (choose_ready): Likewise.
14489         (commit_schedule): Use VEC_iterate.
14490         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
14491         a dbg_cnt, use it and ensure the first insn is in the ready list.
14492         (haifa_sched_init): Allocate scheduled_insns.
14493         (sched_extend_ready_list): Don't allocate it; reserve space.
14494         (haifa_sched_finish): Free it.
14495
14496 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
14497
14498         * optc-gen.awk: Always remove type from Variable entry before
14499         recording in var_seen.
14500
14501 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
14502
14503         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
14504         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
14505         call to tidy_fallthru_edges.
14506
14507 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
14508
14509         * doc/options.texi (ToLower): Document.
14510         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
14511         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
14512         * opts.h (cl_option): Add cl_tolower field.
14513         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
14514         arguments with lowercase strings.
14515         * config/rx/rx.opt (mcpu=): Add ToLower.
14516         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
14517         argument.
14518
14519 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
14520
14521         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
14522
14523 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
14524
14525         * config/vax/vax.c: Include reload.h.
14526
14527 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
14528
14529         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
14530         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
14531         (sparc_preferred_reload_class): New function.
14532
14533 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
14534
14535         PR debug/48401
14536         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
14537         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
14538
14539 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
14540
14541         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
14542         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
14543
14544 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
14545
14546         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
14547         (ASM_OUTPUT_ALIGNED_BSS): Define.
14548
14549 2011-04-03  Michael Matz  <matz@suse.de>
14550
14551         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
14552         and next_slot members.
14553         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
14554         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
14555         (lto_streamer_cache_append): Declare.
14556         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
14557         unsigned index, remove offset parameter, ensure that we append
14558         or update existing entries.
14559         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
14560         parameter, update next_slot for append.
14561         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
14562         parameter.
14563         (lto_streamer_cache_insert_at): Likewise.
14564         (lto_streamer_cache_append): New function.
14565         (lto_streamer_cache_lookup): Use unsigned index.
14566         (lto_streamer_cache_get): Likewise.
14567         (lto_record_common_node): Don't test tree_node_can_be_shared.
14568         (preload_common_node): Adjust call to lto_streamer_cache_insert.
14569         (lto_streamer_cache_delete): Don't free offsets member.
14570         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
14571         (lto_output_string_with_length): Use lto_output_data_stream.
14572         (lto_output_tree_header): Remove ix parameter, don't write it.
14573         (lto_output_builtin_tree): Likewise.
14574         (lto_write_tree): Adjust callers to above, don't track and write
14575         offset, write unsigned index.
14576         (output_unreferenced_globals): Don't emit all global vars.
14577         (write_global_references): Use unsigned indices.
14578         (lto_output_decl_state_refs): Likewise.
14579         (write_symbol): Likewise.
14580         * lto-streamer-in.c (lto_input_chain): Move earlier.
14581         (input_function): Use unsigned index.
14582         (input_alias_pairs): Don't read and then ignore all global vars.
14583         (lto_materialize_tree): Remove ix_p parameter, don't read index,
14584         don't pass it back, use lto_streamer_cache_append.
14585         (lto_register_var_decl_in_symtab): Use unsigned index.
14586         (lto_register_function_decl_in_symtab): Likewise.
14587         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
14588         index.
14589         (lto_get_builtin_tree): Don't read index, use
14590         lto_streamer_cache_append.
14591         (lto_read_tree): Adjust call to lto_materialize_tree.
14592
14593         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
14594         don't use function calls in arguments to MIN.
14595
14596         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
14597         twice.
14598
14599         * gimple.c (gimple_type_leader_entry): Mark deletable.
14600
14601 2011-04-03  Alan Modra  <amodra@gmail.com>
14602
14603         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
14604
14605 2011-04-03  Michael Matz  <matz@suse.de>
14606
14607         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
14608         an integer.
14609         * tree.h (tree_decl_non_common.vindex): Adjust comment.
14610
14611 2011-04-03  Michael Matz  <matz@suse.de>
14612
14613         * cgraphbuild.c (record_reference): Canonicalize constructor values.
14614         * gimple-fold.c (canonicalize_constructor_val): Accept being called
14615         without function context.
14616         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
14617         current_function_decl and cfun.
14618
14619 2011-04-03  Michael Matz  <matz@suse.de>
14620
14621         * tree.c (decl_init_priority_insert): Don't create entry for
14622         default priority.
14623         (decl_fini_priority_insert): Ditto.
14624         (fields_compatible_p, find_compatible_field): Remove.
14625         * tree.h (fields_compatible_p, find_compatible_field): Remove.
14626         * gimple.c (gimple_compare_field_offset): Adjust block comment.
14627
14628 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
14629
14630         * combine.c (try_combine): Remove useless local variable.
14631
14632 2011-04-03  Richard Guenther  <rguenther@suse.de>
14633             Ira Rosen  <ira.rosen@linaro.org>
14634
14635         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
14636         non-variable offsets and compare the remaining bases of the two
14637         accesses instead of looking for exact same data-ref.
14638
14639 2011-04-02  Kai Tietz  <ktietz@redhat.com>
14640
14641         PR target/48416
14642         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
14643
14644         * i386.c (ix86_is_msabi_thiscall): New helper function.
14645         (ix86_is_type_thiscall): New helper function.
14646         (ix86_comp_type_attributes): Handle thiscall for method-functions
14647         special.
14648         (init_cumulative_args): Likewise.
14649         (find_drap_reg): Likewise.
14650         (ix86_static_chain): Likewise.
14651         (x86_this_parameter): Likewise.
14652         (x86_output_mi_thunk): Likewise.
14653
14654 2011-04-01  Olivier Hainque  <hainque@adacore.com>
14655             Nicolas Setton  <setton@adacore.com>
14656             Eric Botcazou  <ebotcazou@adacore.com>
14657
14658         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
14659         (add_gnat_descriptive_type_attribute): New function.
14660         (gen_array_type_die): Call it.
14661         (gen_enumeration_type_die): Likewise.
14662         (gen_struct_or_union_type_die): Likewise.
14663         (modified_type_die): Likewise.
14664         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
14665         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
14666         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
14667
14668 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
14669
14670         PR bootstrap/48148
14671         * dwarf2out.c (resolve_addr): Don't call force_decl_die
14672         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
14673
14674         Revert:
14675         2011-03-17  Richard Guenther  <rguenther@suse.de>
14676
14677         PR bootstrap/48148
14678         * lto-cgraph.c (input_overwrite_node): Clear the abstract
14679         origin for decls in other ltrans units.
14680         (input_varpool_node): Likewise.
14681
14682 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
14683
14684         PR middle-end/48335
14685         * expr.c (expand_assignment): Handle all possibilities
14686         if TO_RTX is CONCAT.
14687         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
14688         (store_split_bit_field): If SUBREG_REG (op0) or
14689         op0 itself has smaller mode than word, return it
14690         for offset 0 and const0_rtx for out-of-bounds stores.
14691         If word is const0_rtx, skip it.
14692
14693 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
14694
14695         * config/h8300/h8300.c (print_operand_address): Rename to...
14696         (h8300_print_operand_address): ...this. Make static. Adjust comments.
14697         Call h8300_print_operand and h8300_print_operand_address instead of
14698         print_operand and print_operand_address. Declare.
14699         (print_operand): Renake to...
14700         (h8300_print_operand): ...this. Make static. Adjust comments.
14701         Call h8300_print_operand instead of print_operand. Declare.
14702         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
14703         (h8300_register_move_cost): Likewise.
14704         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
14705         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
14706         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
14707         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
14708         * config/h8300/h8300-protos.h (print_operand): Delete.
14709         (print_operand_address): Delete.
14710
14711 2011-04-01  Richard Henderson  <rth@redhat.com>
14712
14713         PR 48400
14714         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
14715         in strict mode before dwarf4.  Re-order tests to early out
14716         before switching sections.
14717
14718 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
14719
14720         * config/h8300/constraints.md: New file.
14721         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
14722         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
14723         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
14724         * config/h8300/predicates.md (bit_operand): Likewise.
14725         (incdec_operand): Use satisfies_constraint_M and
14726         satisfies_constraint_O.  Don't use C code block.
14727         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
14728         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
14729         (compute_mov_length): Use satisfies_constraint_G.
14730         (fix_bit_operand): Use satisfies_constraint_U.
14731         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
14732         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
14733         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
14734         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
14735         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
14736         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
14737         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14738         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
14739         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
14740         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
14741         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
14742         (EXTRA_MEMORY_CONSTRAINT): Delete.
14743
14744 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
14745             Michael Meissner  <meissner@linux.vnet.ibm.com>
14746
14747         PR target/48262
14748         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
14749         operands, as per the specifications.
14750
14751         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
14752         (vec_extract_evenv4sf): Ditto.
14753         (vec_extract_evenv8hi): Ditto.
14754         (vec_extract_evenv16qi): Ditto.
14755         (vec_extract_oddv4si): Ditto.
14756
14757 2011-03-31  Mark Wielaard  <mjw@redhat.com>
14758
14759         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
14760         high_pc attribute if the CU has no associated code. Only output
14761         DW_AT_entry_pc for CU if not generating strict dwarf and
14762         dwarf_version < 4.
14763
14764 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
14765
14766         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
14767         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
14768         out of ...
14769         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
14770         * final.c (final_start_function): Call the new function rather
14771         than using a NULL argument for dwarf2out_frame_debug.
14772
14773         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
14774         that contains the prologue.
14775
14776         * haifa-sched.c (queue_insn): New arg REASON.  All callers
14777         changed.  Print it in debugging output.
14778
14779         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
14780
14781         * sched-ebb.c (begin_schedule_ready): Remove second argument.
14782         Split most of the code into...
14783         (begin_move_insn): ... here.  New function.
14784         (ebb_sched_info): Add a pointer to it.
14785         * haifa-sched.c (scheduled_insns): New static variable.
14786         (sched_extend_ready_list): Allocate it.
14787         (schedule_block): Use it to record the order of scheduled insns.
14788         Perform RTL changes to move insns only after all scheduling
14789         decisions have been made.
14790         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
14791         begin_move_insn field.
14792         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
14793         * sched-int.h (struct haifa_sched_info): Remove second argument
14794         from begin_schedule_ready hook.  Add new member begin_move_insn.
14795         * sched-rgn.c (begin_schedule_ready): Remove second argument.
14796         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
14797
14798         * haifa-sched.c (prune_ready_list): New function, broken out of
14799         schedule_block.
14800         (schedule_block): Use it.
14801
14802 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14803
14804         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
14805
14806 2011-04-01  Kai Tietz  <ktietz@redhat.com>
14807
14808         * config.gcc (*-*-mingw*): Allow as option the
14809         posix threading model.
14810         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
14811         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
14812         definition.
14813         (CPP_SPEC): Add pthread/no-pthread handling.
14814         (LIB_SPEC): Likewise.
14815         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
14816         (LIB_SPEC): Likewise.
14817         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
14818         flag to pass -pthread option for shared libgcc build.
14819         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
14820         for shared libgcc build.
14821         * config/i386/t-mingw-pthread: New file.
14822         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
14823         New define to enable use of library pthread by default.
14824         * config/i386/mingw.opt (pthread): New driver option.
14825         (no-pthread): New driver option.
14826         * config/i386/cygming.opt: Make sure trailing empty line is retained.
14827         * config/i386/mingw-w64.opt: Likewise.
14828
14829 2011-04-01  Gary Funck  <gary@intrepid.com>
14830
14831         * c-decl.c (grokdeclarator): Fix formatting.
14832
14833 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
14834
14835         * expr.c (emit_block_move_via_movmem): Use n_generator_args
14836         instead of n_operands.
14837         (set_storage_via_setmem): Likewise.
14838         * optabs.c (maybe_gen_insn): Likewise.
14839         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
14840         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
14841         (mips_expand_builtin_direct): Likewise.
14842         * config/spu/spu.c (expand_builtin_args): Likewise.
14843
14844 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
14845
14846         * recog.h (insn_data_d): Add n_generator_args.
14847         * genoutput.c (data): Likewise.
14848         (output_insn_data): Print it.
14849         (max_opno, num_dups): Delete.
14850         (scan_operands): Just fill in "d->operand[...]".
14851         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
14852
14853 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
14854
14855         * gensupport.h (pattern_stats): New structure.
14856         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
14857         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
14858         (max_operand_1, max_operand_vec): Delete.
14859         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
14860
14861 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
14862
14863         * emit-rtl.c (emit_pattern_after_setloc): New function.
14864         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
14865         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
14866         (emit_pattern_after): New function.
14867         (emit_insn_after, emit_jump_insn_after): Call it.
14868         (emit_call_insn_after, emit_debug_insn_after): Likewise.
14869         (emit_pattern_before_setloc): New function.
14870         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
14871         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
14872         Likewise.
14873         (emit_pattern_before): New function.
14874         (emit_insn_before, emit_jump_insn_before): Call it.
14875         (emit_call_insn_before, emit_debug_insn_before): Likewise.
14876
14877 2011-03-31  Richard Henderson  <rth@redhat.com>
14878
14879         * dwarf2out.c (dw_separate_line_info_ref): Remove.
14880         (dw_separate_line_info_entry): Remove.
14881         (enum dw_line_info_opcode): New.
14882         (dw_line_info_entry): Use it.
14883         (dw_line_info_table, dw_line_info_table_p): New.
14884         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
14885         (line_info_table, line_info_label_num): Remove.
14886         (line_info_table_in_use): Remove.
14887         (separate_line_info_table): Remove.
14888         (separate_line_info_table_allocated): Remove.
14889         (separate_line_info_table_in_use): Remove.
14890         (LINE_INFO_TABLE_INCREMENT): Remove.
14891         (line_info_label_num): New.
14892         (cur_line_info_table): New.
14893         (text_section_line_info, cold_text_section_line_info): New.
14894         (separate_line_info): New.
14895         (SEPARATE_LINE_CODE_LABEL): Remove.
14896         (print_dwarf_line_table): Remove.
14897         (debug_dwarf): Don't dump it.
14898         (output_one_line_info_table): New.
14899         (output_line_info): Use it.
14900         (new_line_info_table): New.
14901         (set_cur_line_info_table): New.
14902         (dwarf2out_switch_text_section): Use it.
14903         (dwarf2out_begin_function): Likewise.
14904         (push_dw_line_info_entry): New.
14905         (dwarf2out_source_line): Rewrite for new line info tables.
14906         (dwarf2out_init): Remove dead initailizations.
14907
14908 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
14909
14910         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
14911         various flags.
14912         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
14913         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
14914         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
14915         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
14916         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
14917         * opt-functions.awk (flag_init, switch_bit_fields): New.
14918         (switch_flags): Don't handle flags moved to bit-fields.  Don't
14919         generate CL_MISSING_OK or CL_SAVE.
14920         * optc-gen.awk: Update to generate bit-field output as well as
14921         flags field.
14922         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
14923         bit-field instead of CL_REJECT_DRIVER flag.
14924         * opts-common.c (generate_canonical_option,
14925         decode_cmdline_option): Use bit-fields instead of CL_* flags.
14926         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
14927         instead of CL_REJECT_NEGATIVE flag.
14928         * toplev.c (print_switch_values): Use cl_report bit-field instead
14929         of CL_REPORT flag.
14930
14931 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
14932
14933         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
14934         a zero minimum index only if it is redundant.
14935
14936 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
14937
14938         PR rtl-optimization/48381
14939         * ira-color.c (assign_hard_reg): Use hard reg set intersection
14940         instead of ira_class_hard_reg_index for calculating conflicting
14941         hard registers.
14942
14943 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
14944
14945         * cprop.c: Clean up hash table building.
14946         (reg_avail_info): Remove.
14947         (oprs_available_p): Remove.
14948         (record_last_reg_set_info): Remove.
14949         (record_last_set_info): Remove.
14950         (reg_available_p): New function.
14951         (gcse_constant_p): Do not treat unfolded conditions as constants.
14952         (make_set_regs_unavailable): New function.
14953         (hash_scan_set): Simplify with new reg_available_p.
14954         (compute_hash_table_work): Traverse insns stream only once.
14955         Do not compute reg_avail_info. Traverse insns in reverse order.
14956         Record implicit sets after recording explicit sets from the block.
14957
14958 2011-03-31  Michael Matz  <matz@suse.de>
14959
14960         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
14961
14962 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
14963
14964         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
14965         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
14966         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14967         (h8300_mode_dependent_address_p): New function.
14968         (h8300_get_index): Make static.
14969
14970 2011-03-31  Jeff Law  <law@redhat.com>
14971
14972         * reload1.c (elimination_effects): Fix typo in recent change.
14973
14974         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
14975         typo potentially leading to null pointer dereference.
14976
14977         * caller-save.c (new_saved_hard_reg): Eliminate return value.
14978         (setup_save_areas): Corresponding changes to avoid useless
14979         assignments.
14980
14981         * jump.c (reversed_comparison_code_parts): Avoid successive return
14982         statements when REVERSE_CONDITION is defined.
14983
14984         * expr.c (expand_assignment): Avoid useless assignments.
14985         (expand_expr_real_1): Likewise.
14986         (expand_expr_real_2): Avoid useless statements.
14987
14988         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
14989
14990         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
14991
14992         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
14993         statements.
14994
14995         * stmt.c (expand_expr_stmt): Avoid useless assignment.
14996
14997 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
14998
14999         PR target/47109
15000         * doc/tm.texi.in (TARGET_VERSION): Remove.
15001         * doc/tm.texi: Regenerate.
15002         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
15003         * collect2.c (main): Don't use TARGET_VERSION.
15004         * mips-tdump.c (main): Don't use TARGET_VERSION.
15005         * mips-tfile.c (main): Don't use TARGET_VERSION.
15006         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
15007         * config/rs6000/vxworksae.h: Remove.
15008         * config/alpha/alpha.h (TARGET_VERSION): Remove.
15009         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
15010         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
15011         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
15012         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
15013         * config/arm/arm.h (TARGET_VERSION): Remove.
15014         * config/arm/coff.h (TARGET_VERSION): Remove.
15015         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
15016         * config/arm/elf.h (TARGET_VERSION): Remove.
15017         * config/arm/freebsd.h (TARGET_VERSION): Remove.
15018         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
15019         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
15020         * config/arm/pe.h (TARGET_VERSION): Remove.
15021         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
15022         * config/arm/semi.h (TARGET_VERSION): Remove.
15023         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
15024         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
15025         * config/arm/vxworks.h (TARGET_VERSION): Remove.
15026         * config/avr/avr.h (TARGET_VERSION): Remove.
15027         * config/bfin/bfin.h (TARGET_VERSION): Remove.
15028         * config/fr30/fr30.h (TARGET_VERSION): Remove.
15029         * config/frv/frv.h (TARGET_VERSION): Remove.
15030         * config/h8300/h8300.h (TARGET_VERSION): Remove.
15031         * config/i386/cygwin.h (TARGET_VERSION): Remove.
15032         * config/i386/darwin.h (TARGET_VERSION): Remove.
15033         * config/i386/darwin64.h (TARGET_VERSION): Remove.
15034         * config/i386/djgpp.h (TARGET_VERSION): Remove.
15035         * config/i386/freebsd.h (TARGET_VERSION): Remove.
15036         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
15037         * config/i386/gnu.h (TARGET_VERSION): Remove.
15038         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
15039         * config/i386/i386elf.h (TARGET_VERSION): Remove.
15040         * config/i386/linux.h (TARGET_VERSION): Remove.
15041         * config/i386/linux64.h (TARGET_VERSION): Remove.
15042         * config/i386/lynx.h (TARGET_VERSION): Remove.
15043         * config/i386/mingw32.h (TARGET_VERSION): Remove.
15044         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
15045         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
15046         * config/i386/netware.h (TARGET_VERSION): Remove.
15047         * config/i386/nto.h (TARGET_VERSION): Remove.
15048         * config/i386/openbsd.h (TARGET_VERSION): Remove.
15049         * config/i386/vxworks.h (TARGET_VERSION): Remove.
15050         * config/ia64/elf.h (TARGET_VERSION): Remove.
15051         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
15052         * config/ia64/hpux.h (TARGET_VERSION): Remove.
15053         * config/ia64/linux.h (TARGET_VERSION): Remove.
15054         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
15055         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
15056         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
15057         * config/lm32/lm32.h (TARGET_VERSION): Remove.
15058         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
15059         * config/m32c/m32c.h (TARGET_VERSION): Remove.
15060         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
15061         * config/m32r/m32r.h (TARGET_VERSION): Remove.
15062         * config/m68k/linux.h (TARGET_VERSION): Remove.
15063         * config/m68k/m68k.h (TARGET_VERSION): Remove.
15064         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
15065         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
15066         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
15067         * config/mep/mep.h (TARGET_VERSION): Remove.
15068         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
15069         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
15070         * config/mips/iris6.h (MACHINE_TYPE): Remove.
15071         * config/mips/linux.h (TARGET_VERSION): Remove.
15072         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
15073         * config/mips/vxworks.h (TARGET_VERSION): Remove.
15074         * config/mmix/mmix.h (TARGET_VERSION): Remove.
15075         * config/mn10300/linux.h (TARGET_VERSION): Remove.
15076         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
15077         * config/pa/pa.h (TARGET_VERSION): Remove.
15078         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
15079         * config/picochip/picochip.h (TARGET_VERSION): Remove.
15080         * config/rs6000/aix.h (TARGET_VERSION): Remove.
15081         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
15082         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
15083         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
15084         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
15085         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
15086         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
15087         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
15088         * config/rs6000/linux.h (TARGET_VERSION): Remove.
15089         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
15090         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
15091         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
15092         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
15093         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
15094         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
15095         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
15096         * config/s390/linux.h (TARGET_VERSION): Remove.
15097         * config/s390/s390.h (TARGET_VERSION): Remove.
15098         * config/s390/tpf.h (TARGET_VERSION): Remove.
15099         * config/score/score.h (TARGET_VERSION): Remove.
15100         * config/sh/linux.h (TARGET_VERSION): Remove.
15101         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
15102         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
15103         * config/sh/sh.h (TARGET_VERSION): Remove.
15104         * config/sh/sh64.h (TARGET_VERSION): Remove.
15105         * config/sh/superh.h (TARGET_VERSION): Remove.
15106         * config/sh/vxworks.h (TARGET_VERSION): Remove.
15107         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
15108         * config/sparc/linux.h (TARGET_VERSION): Remove.
15109         * config/sparc/linux64.h (TARGET_VERSION): Remove.
15110         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
15111         TARGET_NAME32, TARGET_NAME): Remove.
15112         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
15113         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
15114         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
15115         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
15116         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
15117         * config/spu/spu.h (TARGET_VERSION): Remove.
15118         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
15119         * config/v850/v850.h (TARGET_VERSION): Remove.
15120         * config/vax/linux.h (TARGET_VERSION): Remove.
15121         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
15122         * config/xtensa/elf.h (TARGET_VERSION): Remove.
15123         * config/xtensa/linux.h (TARGET_VERSION): Remove.
15124
15125 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
15126
15127         PR target/48142
15128         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
15129         frame-related from frame-unrelated adjustments to the stack pointer.
15130
15131 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
15132
15133         * common.opt (fdebug-types-section): Move earlier.
15134         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
15135
15136 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
15137
15138         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
15139         var.
15140
15141 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
15142
15143         * tree.h (CASE_CHAIN): Define.
15144         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
15145         (gimple_redirect_edge_and_branch): Likewise.
15146
15147 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
15148
15149         PR middle-end/48367
15150         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
15151         calculation.
15152
15153 2011-03-30  Jeff Law  <law@redhat.com>
15154
15155         * PR bootstrap/48371
15156         * reload1.c (reload): Fix botch in last change.
15157
15158         * reload.h (struct reload): Fix typo introduced in last change.
15159
15160 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
15161
15162         * config/arm/arm.opt (mhard-float, msoft-float): Mark
15163         Undocumented.  Remove help text.
15164         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
15165         -mhard-float.
15166
15167 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
15168
15169         * doc/options.texi (NegativeAlias): Document.
15170         (Alias): Mention NegativeAlias.
15171         * opt-functions.awk: Handle NegativeAlias.
15172         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
15173         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
15174         * opts.h (CL_NEGATIVE_ALIAS): Define.
15175         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
15176         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
15177         OPT_mspe_.
15178         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
15179         Alias entries.
15180         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
15181         mno-spe and mno-isel instead of mspe=no and -misel=no.
15182
15183 2011-03-29  Mark Wielaard  <mjw@redhat.com>
15184
15185         * common.opt (fdebug-types-section): New flag.
15186         * doc/invoke.texi: Document new -fno-debug-types-section flag.
15187         * dwarf2out.c (use_debug_types): New define.
15188         (struct die_struct): Mark die_id with GTY desc use_debug_types.
15189         (print_die): Guard output of type unit signatures using
15190         use_debug_types.
15191         (build_abbrev_table): Replace assert of dwarf_version >= 4
15192         with assert on use_debug_types.
15193         (size_of_die): Likewise.
15194         (unmark_dies): Likewise.
15195         (value_format): Decide AT_ref_external form on use_debug_types.
15196         (output_die): Replace dwarf_version version check guard with
15197         use_debug_types where appropriate.
15198         (modified_type_die): Likewise.
15199         (gen_reference_type_die): Likewise.
15200         (dwarf2out_start_source_file): Likewise.
15201         (dwarf2out_end_source_file): Likewise.
15202         (prune_unused_types_walk_attribs): Likewise.
15203         (dwarf2out_finish): Likewise.
15204
15205 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
15206
15207         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
15208
15209 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
15210
15211         PR rtl-optimization/48332
15212         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
15213         mode of input operand N and modeN to its actual mode.
15214
15215 2011-03-30  Jeff Law  <law@redhat.com>
15216
15217         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
15218         define accessor macro.
15219         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
15220         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
15221         (reg_equiv_init): Likewise.
15222         (reg_equivs_size): New variable.
15223         (reg_equiv_init_size): Remove.
15224         (allocate_initial_values): Move prototype to here from....
15225         * integrate.h (allocate_initial_values): Remove prototype.
15226         * integrate.c: Include reload.h.
15227         (allocate_initial_values): Corresponding changes.
15228         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
15229         (fix_reg_equiv_init, no_equiv): Corresponding changes.
15230         (update_equiv_regs): Corresponding changes.
15231         (ira): Corresponding changes.
15232         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
15233         (push_secondary_reload): Corresponding changes.
15234         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
15235         (make_memloc, find_reloads_address): Corresponding changes.
15236         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
15237         (find_reloads_address_1): Corresponding changes.
15238         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
15239         (refers_to_regno_for_reload_p): Corresponding changes.
15240         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
15241         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
15242         * reload1.c: Include ggc.h.
15243         (grow_reg_equivs): New function.
15244         (replace_pseudos_in, reload): Corresponding changes.
15245         (calculate_needs_all_insns, alter_regs): Corresponding changes.
15246         (eliminate_regs_1, elimination_effects): Corresponding changes.
15247         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
15248         (delete_output_reload): Likewise.
15249         * caller-save.c (mark_referenced_regs): Corresponding changes.
15250         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
15251         * frv/predicates.md (frv_load_operand): Corresponding changes.
15252         * microblaze/microblaze.c (double_memory_operand): Corresponding
15253         changes.
15254         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
15255         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
15256         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
15257         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
15258         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
15259         changes.
15260         * pa/pa.c (emit_move_sequence): Corresponding changes.
15261         * vax/vax.c (nonindexed_address_p): Corresponding changes.
15262
15263 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
15264
15265         PR target/47551
15266         * config/arm/arm.c (coproc_secondary_reload_class): Handle
15267         structure modes.  Don't check neon_vector_mem_operand for
15268         vector or structure modes.
15269
15270 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
15271             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
15272
15273         PR target/43590
15274         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
15275         operand 1 and reshuffle the operands to match.
15276         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
15277
15278 2011-03-30  Christian Schüler  <cschueler@gmx.de>
15279
15280         PR driver/48208
15281         * config/c.opt (F): Added 'Driver' to -F option.
15282
15283         PR driver/48260
15284         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
15285           handler function.
15286         * config/darwin.opt: Added '-arch' option.
15287
15288 2011-03-30  Nick Clifton  <nickc@redhat.com>
15289
15290         * config/rx/rx.md: Add peepholes and patterns to combine
15291         extending loads and simple arithmetic instructions.
15292         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
15293         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
15294         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
15295         modes to use pre-decrement and post-increment addressing.
15296         (rx_is_restricted_memory_address): Add range checking of REG+INT
15297         addresses.
15298         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
15299         (rx_memory_move_cost): Adjust cost of stores.
15300         (rx_adjust_insn_length): New function.
15301
15302 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
15303
15304         PR c/48305
15305         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
15306         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
15307         matching arg00/arg01 types.
15308
15309 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
15310
15311         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
15312         last_location to UNKNOWN_LOCATION.
15313
15314 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
15315
15316         PR target/48349
15317         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
15318         FLOAT_SSE_REGS.
15319
15320 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
15321             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15322
15323         PR bootstrap/48337
15324         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
15325         Init(PROCESSOR_V7).
15326         (sparc_cpu): Likewise.
15327         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
15328         PROCESSOR_V7.
15329
15330 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
15331
15332         PR target/48336
15333         PR middle-end/48342
15334         PR rtl-optimization/48345
15335         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
15336         hard regs for given mode from profitable regs when doing secondary
15337         allocation.
15338
15339 2011-03-29  Jeff Law  <law@redhat.com>
15340
15341         PR bootstrap/48327
15342         * tree-ssa-threadupdate.c (struct redirection_data): Remove
15343         do_not_duplicate field.
15344         (lookup_redirection_data): Corresponding changes.
15345         (create_duplicates): Always create a template block.
15346         (redirect_edges): Remove code which reused the original block
15347         when it was going to become unreachable code.
15348         (thread_block): Don't set do_not_duplicate field.
15349
15350 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
15351
15352         * lto-opts.c (register_user_option_p, lto_register_user_option):
15353         Make type argument unsigned.
15354         * lto-streamer.h (lto_register_user_option): Make type argument
15355         unsigned.
15356         * opth-gen.awk: Make CL_* macros unsigned.
15357         * opts-common.c (find_opt): Make lang_mask argument unsigned.
15358         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
15359         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
15360         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
15361         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
15362         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
15363         (find_opt): Make lang_mask argument unsigned.
15364
15365 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
15366
15367         PR rtl-optimization/48331
15368         PR rtl-optimization/48334
15369         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
15370         for any used algorithm.
15371
15372 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
15373
15374         * ira-conflicts.c (build_object_conflicts): Add unused attribute
15375         to parent_max.
15376
15377 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
15378
15379         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
15380         (alpha_option_override): Don't set alpha_sr_alias_set.
15381         (emit_frame_store_1): Use gen_frame_mem rather than calling
15382         set_mem_alias_set.
15383         (alpha_expand_epilogue): Ditto.
15384
15385 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
15386
15387         PR tree-optimization/48290
15388         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
15389         vectorization, check that relevant phis in the basic block after
15390         the inner loop are really inner loop's exit phis.
15391
15392 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
15393
15394         PR debug/48190
15395         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
15396         (cached_dw_loc_list_def): New structure.
15397         (cached_dw_loc_list): New typedef.
15398         (cached_dw_loc_list_table): New variable.
15399         (cached_dw_loc_list_table_hash): New function.
15400         (cached_dw_loc_list_table_eq): Likewise.
15401         (add_location_or_const_value_attribute): Take a bool cache_p.
15402         Cache the list when the parameter is true.
15403         (gen_formal_parameter_die): Update caller.
15404         (gen_variable_die): Likewise.
15405         (dwarf2out_finish): Likewise.
15406         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
15407         while generating debug info for the decl.
15408         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
15409         (dwarf2out_init): Initialize cached_dw_loc_list_table.
15410         (resolve_addr): Cache the result of resolving a chain of
15411         location lists.
15412
15413 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
15414
15415         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
15416         conflict object hard regset nodes have intersecting hard reg sets.
15417
15418         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
15419         after regstat_init_n_sets_and_refs.
15420
15421         * ira.c: Add more comments at the top.
15422         (setup_stack_reg_pressure_class, setup_pressure_classes):
15423         Add comments how we compute the register pressure classes.
15424         (setup_allocno_and_important_classes): Add more comments.
15425         (setup_class_translate_array, reorder_important_classes)
15426         (setup_reg_class_relations): Add comments.
15427
15428         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
15429         start of the file.
15430
15431         * ira-color.c: Add 2011 to the Copyright line.
15432         (assign_hard_reg):  Add more comments.
15433         (improve_allocation): Ditto.
15434
15435         * ira-costs.c: Add 2011 to the Copyright line.
15436         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
15437         comments.
15438         (setup_regno_cost_classes_by_mode): Ditto.
15439
15440         Initial patches from ira-improv branch:
15441
15442         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
15443
15444         * ira-build.c (ira_create_object): Remove initialization of
15445         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
15446         (ira_create_allocno): Remove initialization of
15447         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
15448         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
15449         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
15450         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
15451         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
15452         Initialize ALLOCNO_ADD_DATA.
15453         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
15454         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
15455         ALLOCNO_REG.
15456         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
15457         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
15458
15459         * ira.c (ira_reallocate): Remove.
15460         (setup_pressure_classes): Call
15461         ira_init_register_move_cost_if_necessary.  Use
15462         ira_register_move_cost instead of ira_get_register_move_cost.
15463         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
15464         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
15465
15466         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
15467         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
15468         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
15469         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
15470         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
15471         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
15472         Fix formatting.
15473         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
15474         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
15475         (struct allocno_color_data): New.
15476         (allocno_color_data_t): New typedef.
15477         (allocno_color_data): New definition.
15478         (ALLOCNO_COLOR_DATA): New macro.
15479         (struct object_color_data): New.
15480         (object_color_data_t): New typedef.
15481         (object_color_data): New definition.
15482         (OBJECT_COLOR_DATA): New macro.
15483         (update_copy_costs, calculate_allocno_spill_cost): Call
15484         ira_init_register_move_cost_if_necessary.  Use
15485         ira_register_move_cost instead of ira_get_register_move_cost.
15486         (move_spill_restore, update_curr_costs): Ditto.
15487         (allocno_spill_priority): Make it inline.
15488         (color_pass): Allocate and free allocno_color_dat and object_color_data.
15489         (struct coalesce_data, coalesce_data_t): New.
15490         (allocno_coalesce_data): New definition.
15491         (ALLOCNO_COALESCE_DATA): New macro.
15492         (merge_allocnos, coalesced_allocno_conflict_p): Use
15493         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
15494         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
15495         (coalesce_allocnos): Ditto.
15496         (setup_coalesced_allocno_costs_and_nums): Ditto.
15497         (collect_spilled_coalesced_allocnos): Ditto.
15498         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
15499         (setup_slot_coalesced_allocno_live_ranges): Ditto.
15500         (coalesce_spill_slots): Ditto.
15501         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
15502         free allocno_coalesce_data.
15503
15504         * ira-conflicts.c: Fix formatting.
15505         (process_regs_for_copy): Call
15506         ira_init_register_move_cost_if_necessary.  Use
15507         ira_register_move_cost instead of ira_get_register_move_cost.
15508         (build_object_conflicts): Optimize.
15509
15510         * ira-costs.c (record_reg_classes): Optimize.  Call
15511         ira_init_register_move_cost_if_necessary.  Use
15512         ira_register_move_cost, ira_may_move_in_cost, and
15513         ira_may_move_out_cost instead of ira_get_register_move_cost and
15514         ira_get_may_move_cost.
15515         (record_address_regs): Ditto.
15516         (scan_one_insn): Optimize.
15517         (find_costs_and_classes): Optimize.
15518         (process_bb_node_for_hard_reg_moves): Call
15519         ira_init_register_move_cost_if_necessary.  Use
15520         ira_register_move_cost instead of ira_get_register_move_cost.
15521
15522         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
15523         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
15524         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
15525         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
15526         definitions.
15527         (ira_initiate_emit_data, ira_finish_emit_data)
15528         (create_new_allocno): New functions.
15529         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
15530         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
15531         Use ira_register_move_cost instead of ira_get_register_move_cost.
15532
15533         * ira-int.h: Fix some comments.
15534         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
15535         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
15536         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
15537         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
15538         add_data.
15539         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
15540         bitfield after mode.  Make hard_regno a short int.  Make
15541         hard_regno short.  Remove first_coalesced_allocno and
15542         next_coalesced_allocno.  Move mem_optimized_dest_p,
15543         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
15544         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
15545         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
15546         temp, colorable_p.  Add new member add_data.
15547         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
15548         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
15549         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
15550         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
15551         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
15552         (ALLOCNO_ADD_DATA): New macro.
15553         (ira_emit_data_t): New typedef.
15554         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
15555         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
15556         from struct ira_allocno.
15557         (ALLOCNO_EMIT_DATA): New macro.
15558         (ira_allocno_emit_data, allocno_emit_reg): New.
15559         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
15560         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
15561         (OBJECT_ADD_DATA): New macro.
15562         (ira_reallocate): Remove.
15563         (ira_initiate_emit_data, ira_finish_emit_data): New.
15564         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
15565         (ira_init_register_move_cost_if_necessary): New.
15566         (ira_object_conflict_iter_next): Merge into
15567         ira_object_conflict_iter_cond.
15568         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
15569
15570         * ira-live.c (process_single_reg_class_operands): Call
15571         ira_init_register_move_cost_if_necessary.  Use
15572         ira_register_move_cost instead of ira_get_register_move_cost.
15573
15574         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
15575
15576         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
15577
15578         * ira-costs.c: Fix formatting.
15579         (cost_classes, cost_classes_num): Remove.
15580         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
15581         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
15582         (cost_classes_del, cost_classes_htab): New.
15583         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
15584         (initiate_regno_cost_classes, setup_cost_classes): New.
15585         (setup_regno_cost_classes_by_aclass): New.
15586         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
15587         (record_reg_classes): Use regno_cost_classes instead of
15588         cost_classes.  Move checking opposite operand up.
15589         (record_address_regs): Use regno_cost_classes
15590         instead of cost_classes.
15591         (scan_one_insn): Ditto.  Use always general register.
15592         (print_allocno_costs): Use regno_cost_classes instead of
15593         cost_classes.
15594         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
15595         (find_costs_and_classes): Set up cost classes for each registers.
15596         Use also their mode for this.  Use regno_cost_classes instead of
15597         cost_classes.
15598         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
15599         cost_classes.
15600         (free_ira_costs, ira_init_costs): Don't use cost_classes.
15601         (ira_costs, ira_set_pseudo_classes): Call
15602         initiate_regno_cost_classes and finish_regno_cost_classes.
15603
15604         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
15605
15606         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
15607
15608         * target.def (ira_cover_classes): Remove.
15609
15610         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
15611
15612         * doc/tm.texi.in: Ditto.
15613
15614         * ira-conflicts.c: Remove mentioning cover classes from the file.
15615         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
15616         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
15617
15618         * targhooks.c (default_ira_cover_classes): Remove.
15619
15620         * targhooks.h (default_ira_cover_classes): Ditto.
15621
15622         * haifa-sched.c: Remove mentioning cover classes from the file.
15623         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
15624         ira_pressure_classes and ira_pressure_classes_num instead of
15625         ira_reg_class_cover_size and ira_reg_class_cover.  Use
15626         sched_regno_pressure_class instead of sched_regno_cover_class.
15627         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
15628         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
15629
15630         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
15631         classes from the file.
15632         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
15633         (struct object_hard_regs, struct object_hard_regs_node): New.
15634         (struct ira_object): New members profitable_hard_regs,
15635         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
15636         (struct ira_allocno): Rename cover_class to aclass.  Rename
15637         cover_class_cost and updated_cover_class_cost to class_cost and
15638         updated_class_cost.  Remove splay_removed_p and
15639         left_conflict_size.  Add new members colorable_p.
15640         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
15641         (ALLOCNO_COLORABLE_P): New macro.
15642         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
15643         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
15644         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
15645         (OBJECT_...): Rename parameter C to O.
15646         (OBJECT_PROFITABLE_HARD_REGS): New macro.
15647         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
15648         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
15649         (struct target_ira_int): New members x_ira_max_memory_move_cost,
15650         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
15651         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
15652         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
15653         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
15654         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
15655         x_ira_reg_class_subunion.
15656         (ira_max_memory_move_cost, ira_max_register_move_cost)
15657         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
15658         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
15659         (ira_important_class_nums, ira_reg_class_superunion): New macros.
15660         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
15661         (ira_reg_class_union): Rename to ira_reg_class_subunion.
15662         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
15663         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
15664         (ira_tune_allocno_costs_and_cover_classes): Rename to
15665         ira_tune_allocno_costs.
15666         (ira_debug_hard_regs_forest): New.
15667         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
15668         (ira_object_conflict_iter_next): Fix comments.
15669         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
15670         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
15671         cover_class to aclass.
15672         (ira_allocate_and_accumulate_costs): Ditto.
15673         (ira_allocate_and_set_or_copy_costs): Ditto.
15674
15675         * opts.c (decode_options): Remove ira_cover_class check.
15676
15677         * ira-color.c: Remove mentioning cover classes from the file.  Use
15678         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
15679         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
15680         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
15681         (splay-tree.h): Remove include.
15682         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
15683         before copy_freq_compare_func.
15684         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
15685         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
15686         New definitions.
15687         (hard_regs_roots, hard_regs_node_vec): Ditto.
15688         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
15689         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
15690         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
15691         (create_new_object_hard_regs_node): Ditto.
15692         (add_new_object_hard_regs_node_to_forest): Ditto.
15693         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
15694         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
15695         Ditto.
15696         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
15697         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
15698         (remove_unused_object_hard_regs_nodes): Ditto.
15699         (enumerate_object_hard_regs_nodes): Ditto.
15700         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
15701         (object_hard_regs_subnode_t): Ditto.
15702         (struct object_hard_regs_subnode): Ditto.
15703         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
15704         (setup_object_hard_regs_subnode_index): Ditto.
15705         (get_object_hard_regs_subnodes_num): Ditto.
15706         (form_object_hard_regs_nodes_forest): Ditto.
15707         (finish_object_hard_regs_nodes_tree): Ditto.
15708         (finish_object_hard_regs_nodes_forest): Ditto.
15709         (allocnos_have_intersected_live_ranges_p): Rename to
15710         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
15711         (pseudos_have_intersected_live_ranges_p): Rename to
15712         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
15713         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
15714         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
15715         (update_copy_costs): Remove assert.  Skip cost update if the hard
15716         reg does not belong the class.
15717         (assign_hard_reg): Process only profitable hard regs.
15718         (uncolorable_allocnos_num): Make it scalar.
15719         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
15720         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
15721         and ira_reg_class_max_nregs.
15722         (bucket_allocno_compare_func): Check frequency first.
15723         (sort_bucket): Add compare function as a parameter.
15724         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
15725         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
15726         (push_allocno_to_stack): Rewrite for checking new allocno
15727         colorability.
15728         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
15729         (push_only_colorable): Pass new parameter to sort_bucket.
15730         (push_allocno_to_spill): Remove.
15731         (allocno_spill_priority_compare): Make it inline and rewrite.
15732         (splay_tree_allocate, splay_tree_free): Remove.
15733         (allocno_spill_sort_compare): New function.
15734         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
15735         build and use splay tree.  Choose first allocno in uncolorable
15736         allocno bucket to spill.  Remove setting spill cost.
15737         (all_conflicting_hard_regs): Remove.
15738         (setup_allocno_available_regs_num): Check only profitable hard
15739         regs.  Print info about hard regs nodes.
15740         (setup_allocno_left_conflicts_size): Remove.
15741         (put_allocno_into_bucket): Don't call
15742         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
15743         (improve_allocation): New.
15744         (color_allocnos): Call setup_profitable_hard_regs,
15745         form_object_hard_regs_nodes_forest, improve_allocation,
15746         finish_object_hard_regs_nodes_forest.  Setup spill cost.
15747         (print_loop_title): Use pressure classes.
15748         (color_allocnso): Ditto.
15749         (do_coloring): Remove allocation and freeing splay_tree_node_pool
15750         and allocnos_for_spilling.
15751         (ira_sort_regnos_for_alter_reg): Don't setup members
15752         {first,next}_coalesced_allocno.
15753         (color): Remove allocating and freeing removed_splay_allocno_vec.
15754         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
15755         prohibited_class_mode_regs.
15756
15757         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
15758         formatting.
15759         (update_allocno_pressure_excess_length): Use pressure classes.
15760         (inc_register_pressure, dec_register_pressure): Check for pressure
15761         class.
15762         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
15763         pressure class.  Use ira_reg_class_nregs instead of
15764         ira_reg_class_max_nregs.
15765         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
15766         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
15767         (single_reg_class): Use ira_reg_class_nregs instead of
15768         ira_reg_class_max_nregs.
15769         (process_bb_node_lives): Use pressure classes.
15770
15771         * ira-emit.c: Remove mentioning cover classes from the file.  Use
15772         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
15773         (change_loop): Use pressure classes.
15774         (modify_move_list): Call ira_set_allocno_class instead of
15775         ira_set_allocno_cover_class.
15776
15777         * ira-build.c: Remove mentioning cover classes from the file.  Use
15778         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
15779         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
15780         ALLOCNO_UPDATED_CLASS_COST instead of
15781         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
15782         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
15783         (ira_create_allocno): Remove initialization of
15784         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
15785         ALLOCNO_COLORABLE_P.
15786         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
15787         Update conflict regs for the objects.
15788         (create_cap_allocno): Remove assert.  Don't propagate
15789         ALLOCNO_AVAILABLE_REGS_NUM.
15790         (ira_free_allocno_costs): New function.
15791         (finish_allocno): Change a part of code into call of
15792         ira_free_allocno_costs.
15793         (low_pressure_loop_node_p): Use pressure classes.
15794         (object_range_compare_func): Don't compare classes.
15795         (setup_min_max_conflict_allocno_ids): Ditto.
15796
15797         * loop-invariant.c: Remove mentioning cover classes from the file.
15798         Use ira_pressure_classes and ira_pressure_classes_num instead of
15799         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
15800         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
15801         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
15802         Use reg_allocno_class instead of reg_cover_class.
15803         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
15804         STACK_REG_COVER_CLASS.
15805         (get_regno_cover_class): Rename to get_regno_pressure_class.
15806         (move_loop_invariants): Initialize and finalize regstat.
15807
15808         * ira.c: Remove mentioning cover classes from the file.  Add
15809         comments about coloring without cover classes.  Use ALLOCNO_CLASS
15810         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
15811         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
15812         setup_class_subset_and_memory_move_costs.
15813         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
15814         (setup_cover_and_important_classes): Rename to
15815         setup_allocno_and_important_classes.
15816         (setup_class_translate_array): New.
15817         (setup_class_translate): Call it for allocno and pressure classes.
15818         (cover_class_order): Rename to allocno_class_order.
15819         (comp_reg_classes_func): Use ira_allocno_class_translate instead
15820         of ira_class_translate.
15821         (reorder_important_classes): Set up ira_important_class_nums.
15822         (setup_reg_class_relations): Set up ira_reg_class_superunion.
15823         (print_class_cover): Rename to print_classes.  Add parameter.
15824         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
15825         Print pressure classes too.
15826         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
15827         setup_reg_subclasses.
15828         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
15829         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
15830         (setup_prohibited_class_mode_regs): Use
15831         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
15832         (clarify_prohibited_class_mode_regs): New function.
15833         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
15834         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
15835         (ira_init_once): Initialize them.
15836         (free_register_move_costs): Process them.
15837         (ira_init): Move calls of find_reg_classes and
15838         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
15839         Call clarify_prohibited_class_mode_regs.
15840         (ira_no_alloc_reg): Remove.
15841         (too_high_register_pressure_p): Use pressure classes.
15842
15843         * sched-deps.c: Remove mentioning cover classes from the file.
15844         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
15845         ira_pressure_classes and ira_pressure_classes_num instead of
15846         ira_reg_class_cover_size and ira_reg_class_cover.
15847         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
15848         sched_regno_pressure_class instead of sched_regno_cover_class.
15849         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
15850         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
15851
15852         * ira.h: Add 2010 to Copyright.
15853         (ira_no_alloc_reg): Remove external.
15854         (struct target_ira): Rename x_ira_hard_regno_cover_class,
15855         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
15856         x_ira_class_translate to x_ira_hard_regno_allocno_class,
15857         x_ira_allocno_classes_num, x_ira_allocno_classes, and
15858         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
15859         x_ira_pressure_classes, x_ira_pressure_class_translate, and
15860         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
15861         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
15862         x_ira_no_alloc_regs.
15863         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
15864         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
15865         ira_allocno_classes_num and ira_allocno_classes.
15866         (ira_class_translate): Rename to ira_allocno_class_translate.
15867         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
15868         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
15869         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
15870         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
15871         (ira_no_alloc_regs): New.
15872
15873         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
15874         classes from the file.  Use ALLOCNO_CLASS instead of
15875         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
15876         ALLOCNO_COVER_CLASS_COST.
15877         (regno_cover_class): Rename to regno_aclass.
15878         (record_reg_classes): Use ira_reg_class_subunion instead of
15879         ira_reg_class_union.
15880         (record_address_regs): Check overflow.
15881         (scan_one_insn): Ditto.
15882         (print_allocno_costs): Print total mem cost fore regional allocation.
15883         (print_pseudo_costs): Use REG_N_REFS.
15884         (find_costs_and_classes): Use classes intersected with them on the
15885         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
15886         ira_reg_class_union.  Use ira_allocno_class_translate and
15887         regno_aclass instead of ira_class_translate and regno_cover_class.
15888         Modify code for finding regno_aclass.  Setup preferred classes for
15889         the next pass.
15890         (setup_allocno_cover_class_and_costs): Rename to
15891         setup_allocno_class_and_costs.  Use regno_aclass instead of
15892         regno_cover_class.  Use ira_set_allocno_class instead of
15893         ira_set_allocno_cover_class.
15894         (init_costs, finish_costs): Use regno_aclass instead of
15895         regno_cover_class.
15896         (ira_costs): Use setup_allocno_class_and_costs instead of
15897         setup_allocno_cover_class_and_costs.
15898         (ira_tune_allocno_costs_and_cover_classes): Rename to
15899         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
15900         by processing objects.  Use ira_reg_class_max_nregs instead of
15901         ira_reg_class_nregs.
15902
15903         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
15904
15905         * sched-int.h: Remove mentioning cover classes from the file.
15906         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
15907
15908         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
15909         classes from the file.
15910         (struct reg_pref): Rename coverclass into allocnoclass.
15911         (reg_cover_class): Rename to reg_allocno_class.
15912
15913         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
15914
15915         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
15916
15917         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
15918
15919         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
15920
15921         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
15922
15923         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
15924
15925         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
15926
15927         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
15928
15929         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
15930
15931         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
15932
15933         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
15934         (i386_ira_cover_classes): Ditto.
15935
15936         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
15937
15938         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
15939
15940         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
15941
15942         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
15943
15944         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
15945
15946         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
15947
15948         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
15949         (mips_ira_cover_classes): Ditto.
15950
15951         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
15952
15953         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
15954
15955         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
15956
15957         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
15958
15959         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
15960
15961         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
15962         (IRA_COVER_CLASSES_VSX): Ditto.
15963
15964         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
15965         (rs6000_ira_cover_classes): Ditto.
15966
15967         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
15968
15969         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
15970
15971         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
15972
15973         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
15974
15975         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
15976
15977         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
15978
15979         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
15980
15981         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
15982
15983         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
15984
15985         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
15986
15987 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
15988
15989         PR debug/48253
15990         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
15991         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
15992         dw_fde_unlikely_section_end_label, cold_in_std_section,
15993         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
15994         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
15995         fields.
15996         (output_fde): Use dw_fde_second_{begin,end} if second is
15997         true, otherwise dw_fde_{begin,end}.
15998         (output_call_frame_info): Test dw_fde_second_begin != NULL
15999         instead of dw_fde_switched_sections.
16000         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
16001         fields, initialize new fields.  Initialize in_std_section
16002         unconditionally from the first partition.
16003         (dwarf2out_end_epilogue): Don't override dw_fde_end when
16004         dw_fde_second_begin is non-NULL.
16005         (dwarf2out_switch_text_section): Stop initializing removed
16006         dw_fde_struct fields, initialize new fields, initialize
16007         also dw_fde_end here.  Set dw_fde_switch_cfi even when
16008         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
16009         (struct var_loc_list_def): Add last_before_switch field.
16010         (arange_table, arange_table_allocated, arange_table_in_use,
16011         ARANGE_TABLE_INCREMENT, add_arange): Removed.
16012         (size_of_aranges): Count !in_std_section and !second_in_std_section
16013         hunks in fdes, instead of looking at arange_table_in_use.
16014         (output_aranges): Add aranges_length argument, don't call
16015         size_of_aranges here.  Instead of using aranges_table*
16016         emit ranges for fdes when !in_std_section resp.
16017         !second_in_std_section.
16018         (dw_loc_list): Break ranges crossing section switch.
16019         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
16020         use dw_fde_second_end instead of dw_fde_end as end of last range.
16021         (gen_subprogram_die): Don't call add_arange.  Use
16022         dw_fde_{begin,end} for first partition and if switched
16023         section dw_fde_second_{begin,end} for the second.
16024         (var_location_switch_text_section_1,
16025         var_location_switch_text_section): New functions.
16026         (dwarf2out_begin_function): Initialize cold_text_section even
16027         when function_section () isn't text_section.
16028         (prune_unused_types): Don't walk arange_table.
16029         (dwarf2out_finish): Don't needlessly test
16030         flag_reorder_blocks_and_partition when testing cold_text_section_used.
16031         If info_section_emitted, call size_of_aranges and if it indicates
16032         non-empty .debug_aranges, call output_aranges with the computed
16033         size.  Stop using removed dw_fde_struct fields, use
16034         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
16035         for second.
16036
16037         PR debug/48203
16038         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
16039         create ENTRY_VALUE if incoming or address of incoming's MEM
16040         is a hard REG.
16041         * dwarf2out.c (mem_loc_descriptor): Don't emit
16042         DW_OP_GNU_entry_value of DW_OP_fbreg.
16043         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
16044         on ENTRY_VALUE is able to find the canonical parameter VALUE.
16045         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
16046         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
16047         ENTRY_VALUE_EXPs.
16048         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
16049         is a REG_P or MEM_P with REG_P address, compute hash directly
16050         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
16051         (preserve_only_constants): Don't clear VALUES forwaring
16052         ENTRY_VALUE to some other VALUE.
16053
16054 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
16055
16056         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
16057         instead of GEN_INT.
16058
16059 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
16060
16061         * cfgexpand.c (expand_gimple_cond): Always set the source location and
16062         block before expanding the statement.
16063         (expand_gimple_stmt_1): Likewise.  Set them here...
16064         (expand_gimple_stmt): ...and not here.  Tidy.
16065         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
16066         unknown.
16067
16068 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
16069
16070         * Makefile.in: New rule for cprop.o.
16071         * gcse.c: Move constant/copy propagation to cprop.c.
16072         (compute_local_properties): Only handle expression tables.
16073         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
16074         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
16075         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
16076         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
16077         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
16078         compute_cprop_data, find_used_regs, try_replace_reg,
16079         find_avail_set, cprop_jump, constprop_register, cprop_insn,
16080         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
16081         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
16082         find_bypass_set, reg_killed_on_edge, bypass_block,
16083         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
16084         execute_rtl_cprop, pass_rtl_cprop): Move to...
16085         * cprop.c: ...here.  New file, constant/copy propagation for RTL
16086         moved from gcse.c to here with minor cleanups in duplicated code.
16087
16088 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
16089
16090         * config/i386/i386.c (flag_opts): Fix a typo in
16091         -mavx256-split-unaligned-store.
16092
16093 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
16094
16095         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
16096         LIBCALL_VALUE): Remove macros.
16097         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16098         TARGET_FUNCTION_VALUE_REGNO_P): Define.
16099         (h8300_function_value, h8300_libcall_value,
16100         h8300_function_value_regno_p): New functions.
16101
16102 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
16103
16104         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
16105
16106 2011-03-28  Jeff Law  <law@redhat.com>
16107
16108         * tree-ssa-threadupdate.c (redirect_edges): Call
16109         create_edge_and_update_destination_phis as needed.
16110         (create_edge_and_update_destination_phis): Accept new BB argument.
16111         All callers updated.
16112         (thread_block): Do not update the profile when threading around
16113         intermediate blocks.
16114         (thread_single_edge): Likewise.
16115         (determine_bb_domination_status): If BB is not a successor of the
16116         loop header, return NONDOMINATING.
16117         (register_jump_thread): Note when we register a jump thread around
16118         an intermediate block.
16119         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
16120         (thread_across_edge): Use it.
16121
16122 2011-03-28  Tristan Gingold  <gingold@adacore.com>
16123
16124         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
16125         when for_return is 2.
16126
16127 2011-03-28  Jeff Law  <law@redhat.com>
16128
16129         * var-tracking.c (canonicalize_values_mark): Delete unused
16130         lhs assignment.
16131         (canonicalize_values_star, set_variable_part): Likewise.
16132         (clobber_variable_part, delete_variable_part): Likewise.
16133
16134 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
16135
16136         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
16137
16138 2011-03-28  Martin Jambor  <mjambor@suse.cz>
16139
16140         * tree-inline.c (expand_call_inline): Do not check that destination
16141         node is analyzed.
16142         (optimize_inline_calls): Assert that destination node is analyzed.
16143         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
16144         not call tree_lowering_passes.
16145         * cgraph.h (cgraph_analyze_function): Declare.
16146         * cgraphunit.c (cgraph_analyze_function): Make public.
16147
16148 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
16149
16150         * config/sparc/sparc-opts.h: New.
16151         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
16152         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
16153         (sparc_option_override): Store processor_type enumeration rather
16154         than string in cpu_default.  Remove name and enumeration from
16155         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
16156         without using sparc_select.  Use target_flags_explicit instead of
16157         fpu_option_set.
16158         * config/sparc/sparc.h (enum processor_type): Move to
16159         sparc-opts.h.
16160         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
16161         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
16162         HeaderInclude entry.
16163         (mcpu=, mtune=): Use Var and Enum.
16164         (sparc_processor_type): New Enum and EnumValue entries.
16165
16166 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16167             Iain Sandoe  <iains@gcc.gnu.org>
16168
16169         PR target/48245
16170         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
16171
16172 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
16173
16174         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
16175         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
16176         Insert new statements at it in lieu of STMT.
16177         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
16178         * tree-vect-stmts.c (vectorizable_store): Likewise.
16179         (vectorizable_load): Likewise.
16180
16181 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
16182
16183         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
16184         (divtf3): Ditto.
16185         (multf3): Ditto.
16186         (subtf3): Ditto.
16187
16188 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
16189
16190         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
16191         unaligned 256bit load/store.
16192         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
16193         (*avx_movdqu<avxmodesuffix>): Likewise.
16194
16195 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16196
16197         PR target/48288
16198         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
16199         * config/pa/pa.md (iordi3): Use new predicate in expander.
16200         (iorsi3): Likewise.
16201
16202 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
16203
16204         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
16205         FUNCTION_VALUE_REGNO_P): Remove macros.
16206         * config/mips/mips-protos.h (mips_function_value): Remove.
16207         * config/mips/mips.c (mips_function_value): Rename to...
16208         (mips_function_value_1): ... this. Make static.  Handle receiving
16209         the function type in 'fn_decl_or_type' argument.
16210         (mips_function_value, mips_libcall_value,
16211         mips_function_value_regno_p): New function.
16212         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16213         TARGET_FUNCTION_VALUE_REGNO_P): Define.
16214
16215 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
16216
16217         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
16218         and -mavx256-split-unaligned-store.
16219         (ix86_option_override_internal): Split 32-byte AVX unaligned
16220         load/store by default.
16221         (ix86_avx256_split_vector_move_misalign): New.
16222         (ix86_expand_vector_move_misalign): Use it.
16223
16224         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
16225         -mavx256-split-unaligned-store.
16226
16227         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
16228         256bit load/store.  Generate unaligned store on misaligned memory
16229         operand.
16230         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
16231         256bit load/store.
16232         (*avx_movdqu<avxmodesuffix>): Likewise.
16233
16234         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
16235         -mavx256-split-unaligned-store.
16236
16237 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
16238
16239         PR target/38598
16240         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
16241         Update commentary.
16242
16243 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
16244
16245         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
16246         opno arguments with an expand_operand.  Use create_input_operand.
16247         (mips_prepare_builtin_target): Delete.
16248         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
16249         functions.
16250         (mips_expand_builtin_direct): Use create_output_operand and
16251         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
16252         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
16253         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
16254
16255 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
16256
16257         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
16258         function.
16259         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
16260
16261 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
16262
16263         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
16264         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
16265         basic blocks and call commit_edge_insertions directly.
16266         (fixup_abnormal_edges): Move from here to...
16267         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
16268         on the edges and return whether some have actually been inserted.
16269         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
16270         compensation code.
16271
16272 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
16273
16274         PR rtl-optimization/48144
16275         * sel-sched-ir.c (merge_history_vect): Factor out from ...
16276         (merge_expr_data): ... here.
16277         (av_set_intersect): Rename to av_set_code_motion_filter.
16278         Update all callers.  Call merge_history_vect when an expression
16279         is found in both sets.
16280         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
16281
16282 2011-03-26  Alan Modra  <amodra@gmail.com>
16283
16284         * config/rs6000/predicates.md (word_offset_memref_op): Handle
16285         cmodel medium addresses.
16286         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
16287         64-bit gpr loads and stores.
16288         (rs6000_secondary_reload_ppc64): New function.
16289         * config/rs6000/rs6000-protos.h: Declare it.
16290         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
16291
16292 2011-03-26  Alan Modra  <amodra@gmail.com>
16293
16294         PR target/47487
16295         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
16296         GNU Go in traceback table.
16297
16298 2011-03-25  Richard Henderson  <rth@redhat.com>
16299
16300         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
16301         if there are exactly 6 operands.
16302         (set_storage_via_setmem): Similarly.
16303
16304 2011-03-25  Kai Tietz  <ktietz@redhat.com>
16305
16306         * collect2.c (write_c_file_stat): Handle backslash
16307         as right-hand directory separator.
16308         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
16309         checking just for slash.
16310         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
16311         instead of checking for trailing slash.
16312         * gcc.c (record_temp_file): Use filename_cmp instead
16313         of strcmp.
16314         (do_spec_1): Likewise.
16315         (replace_outfile_spec_function): Likewise.
16316         (is_directory): Use filename_ncmp instead of strncmp.
16317         (print_multilib_info): Likewise.
16318         * gcov.c (find_source): Use filename_cmp instead
16319         instead of strcmp.
16320         (make_gcov_file_name): Fix order of slash/backslash
16321         checks.
16322         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
16323         (add_standard_paths): Likewise.
16324         * mips-tfile.c (saber_stop): Handle backslash.
16325         * prefix.c (update_path): Use filename_ncmp instead of
16326         strncmp.
16327         * profile.c (output_location): Use filename_cmp instead
16328         of strcmp.
16329         * read-md.c (handle_toplevel_file): Handle backslash.
16330         * tlink.c (frob_extension):  Likewise.
16331         * tree-cfg.c (same_line_p): Use filename_cmp instead of
16332         strcmp.
16333         * tree-dump.c (dequeue_and_dump): Handle backslash.
16334         * tree.c (get_file_function_name): Likewise.
16335         * gengtype.c (read_input_list): Likewise.
16336         (get_file_realbasename): Likewise.
16337         (get_output_file_with_visibility): Use filename_cmp
16338         instead of strcmp.
16339
16340 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
16341
16342         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
16343         case to VFPv1.
16344
16345 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
16346
16347         * fold-const.c (expr_location_or): New function.
16348         (fold_truth_not_expr): Call it.
16349
16350 2011-03-25  Jeff Law  <law@redhat.com>
16351
16352         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
16353         va_end.
16354         * c-family/c-common.c (def_fn_type): Likewise.
16355         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
16356         * emit-rtl.c (gen_rtvec): Likewise.
16357         * lto/lto-lang.c (def_fn_type): Likewise.
16358
16359 2011-03-25  Richard Guenther  <rguenther@suse.de>
16360
16361         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
16362         also generate copies.
16363         (fini_copy_prop): Handle constant values properly.
16364
16365 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
16366
16367         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
16368         mode size instead of bitsize with DWARF2_ADDR_SIZE.
16369         (hash_loc_operands, compare_loc_operands): Handle
16370         DW_OP_GNU_entry_value.
16371
16372 2011-03-25  Kai Tietz  <ktietz@redhat.com>
16373
16374         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
16375         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
16376         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
16377         comment and use macro TARGET_64BIT_MS_ABI instead.
16378         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
16379         and change default behavior for 32-bit MS_ABI.
16380         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
16381         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
16382         32-bit, too.
16383         (ix86_cfun_abi): Likewise.
16384         (ix86_maybe_switch_abi): Adjust comment.
16385         (init_cumulative_args): Check for bit-ness in MS_ABI case.
16386         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
16387         instead of checking for SYSV_ABI.
16388         (ix86_nsaved_sseregs): Likewise.
16389         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
16390         to 16 bytes.
16391         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
16392         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
16393         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
16394         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
16395         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
16396
16397 2011-03-25  Richard Guenther  <rguenther@suse.de>
16398
16399         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
16400         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
16401         (verify_gimple): Remove.
16402         * tree-cfg.c (verify_gimple_call): Merge verification
16403         from verify_stmts.
16404         (verify_gimple_phi): Merge verification from verify_stmts.
16405         (verify_gimple_label): New function.
16406         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
16407         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
16408         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
16409         (verify_stmts): Rename to verify_gimple_in_cfg.
16410         (verify_gimple_in_cfg): New function.
16411         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
16412         * tree-ssa.c (verify_ssa): Likewise.
16413         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
16414
16415 2011-03-25  Richard Guenther  <rguenther@suse.de>
16416
16417         * passes.c (init_optimization_passes): Add FRE pass after
16418         early SRA.
16419
16420 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
16421             Andrew Stubbs  <ams@codesourcery.com>
16422
16423         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
16424         for Cortex-A8.
16425         (arm_movdi_vfp_cortexa8): New pattern.
16426         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
16427         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
16428         instructions when tuning for Cortex-A8.  Set attribute "arch".
16429         * config/arm/arm.md: Move include arm-tune.md up a bit.
16430         (define_attr "arch"): Add "onlya8" and "nota8" values.
16431         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
16432
16433 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
16434
16435         PR bootstrap/48282
16436         Revert:
16437         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
16438
16439         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
16440         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
16441         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
16442         * passes.c (init_optimization_passes): Move
16443         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
16444
16445 2011-03-25  Kai Tietz  <ktietz@redhat.com>
16446
16447         * c-typeck.c (comptypes_internal): Replace target
16448         hook call of comp_type_attributes by version in tree.c file.
16449         * gimple.c (gimple_types_compatible_p_1): Likewise.
16450         * tree-ssa.c (useless_type_conversion_p): Likewise.
16451         * tree.c (build_type_attribute_qual_variant): Likewise.
16452         (attribute_value_equal): New static helper function.
16453         (comp_type_attributes): New function.
16454         (merge_attributes): Use attribute_value_equal for comparison.
16455         (attribute_list_contained): Likewise.
16456         * tree.h (comp_type_attributes): New prototype.
16457
16458 2011-03-25  Richard Guenther  <rguenther@suse.de>
16459
16460         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
16461         of complex types at -O0.
16462         (verify_gimple_assign_binary): Likewise.
16463         (verify_gimple_assign_ternary): Likewise.
16464
16465 2011-03-24  Mark Wielaard  <mjw@redhat.com>
16466
16467         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
16468         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
16469
16470 2011-03-24  Mark Wielaard  <mjw@redhat.com>
16471
16472         PR debug/48041
16473         * dwarf2out.c (output_abbrev_section): Only write table when
16474         abbrev_die_table_in_use > 1.
16475
16476 2011-02-24  Richard Henderson  <rth@redhat.com>
16477
16478         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
16479         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
16480         (alpha_expand_unaligned_load_words): Use extql.
16481         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
16482         (emit_insxl): Handle all modes for consistency.
16483
16484 2011-02-24  Richard Henderson  <rth@redhat.com>
16485
16486         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
16487         (alpha_expand_unaligned_load): Likewise.
16488         (alpha_expand_unaligned_store): Likewise.
16489         (alpha_expand_unaligned_load_words): Likewise.
16490         (alpha_expand_unaligned_store_words): Likewise.
16491         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
16492         (alpha_split_lock_test_and_set_12): Likewise.
16493         (print_operand, alpha_fold_builtin_extxx): Likewise.
16494         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
16495         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
16496         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
16497         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
16498         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
16499         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
16500         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
16501         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
16502         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
16503         (extwl, extll, extql): Similarly.
16504         (inswh, inslh, insqh): Similarly.
16505         (mskbl, mskwl, mskll, mskql): Similarly.
16506         (mskwh, msklh, mskqh): Similarly.
16507
16508 2011-02-24  Richard Henderson  <rth@redhat.com>
16509
16510         * config/alpha/alpha.md (attribute isa): Add er, ner.
16511         (attribute enabled): Handle them.
16512         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
16513
16514 2011-02-24  Richard Henderson  <rth@redhat.com>
16515
16516         * config/alpha/alpha.md (attribute isa): Add vms.
16517         (attribute enabled): Handle it.
16518         (*movsf): Merge *movsf_{nofix,fix,nofp}.
16519         (*movdf): Merge *movdf_{nofix,fix,nofp}.
16520         (*movtf): Rename from *movtf_internal for consistency.
16521         (*movsi): Merge with *movsi_nt_vms.
16522         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
16523         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
16524         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
16525         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
16526
16527 2011-02-24  Richard Henderson  <rth@redhat.com>
16528
16529         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
16530         (extendqisi2, extendhisi2): Likewise.
16531         (extendqidi2): Simplify BWX/non-BWX expansions.
16532         (extendhidi2): Similarly.
16533
16534 2011-02-24  Richard Henderson  <rth@redhat.com>
16535
16536         * config/alpha/alpha.md (attribute isa): New.
16537         (attribute enabled): New.
16538         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
16539         (zero_extendqisi2, zero_extendqidi2): Similarly.
16540         (zero_extendhisi2, zero_extendhidi2): Similarly.
16541         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
16542
16543 2011-02-24  Richard Henderson  <rth@redhat.com>
16544
16545         * config/alpha/predicates.md (input_operand): Revert last change;
16546         update comment to mention 32-bit VMS rather than Windows.
16547
16548 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
16549
16550         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
16551         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
16552         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
16553         * passes.c (init_optimization_passes): Move
16554         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
16555
16556 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
16557
16558         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
16559
16560 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
16561
16562         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
16563         correctly.
16564
16565 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
16566
16567         PR debug/48204
16568         * simplify-rtx.c (simplify_const_unary_operation): Call
16569         real_convert when changing mode class with FLOAT_EXTEND.
16570
16571 2011-03-24  Nick Clifton  <nickc@redhat.com>
16572
16573         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
16574         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
16575         * config/rx/rx.c (rx_option_override): Set align_jumps,
16576         align_loops and align_labels if not set by the user.
16577         (rx_align_for_label): New function.
16578         (rx_max_skip_for_label): New function.
16579         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
16580         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
16581         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
16582         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
16583         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
16584
16585 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
16586
16587         PR rtl-optimization/48263
16588         * optabs.c (expand_binop_directly): Reinstate convert_modes code
16589         and original commutative_p handling.  Use maybe_gen_insn.
16590
16591 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16592
16593         * reload.c (find_reloads_subreg_address): Add address_reloaded
16594         parameter and return true there if the full address has been
16595         reloaded.
16596         (find_reloads_toplev): Pass address_reloaded flag.
16597         (find_reloads_address_1): Don't use address_reloaded parameter.
16598
16599 2011-03-24  Jeff Law  <law@redhat.com>
16600
16601         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
16602         unused variable "ann".
16603         (remove_unused_locals): Likewise.
16604
16605         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
16606         statement.
16607
16608         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
16609         after it is freed.
16610
16611 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16612
16613         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
16614         for invalid symbolic addresses.
16615         (s390_secondary_reload): Don't use s390_check_symref_alignment for
16616         larl operands.
16617
16618 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
16619
16620         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
16621         the argument in calls to fold_truth_not_expr.
16622
16623 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
16624
16625         * tree.c (record_node_allocation_statistics): New function.
16626         (make_node_stat, copy_node_stat, build_string): Call it.
16627         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
16628         (build1_stat, build_omp_clause): Likewise.
16629
16630 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
16631
16632         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
16633         last commit.
16634
16635 2011-03-24  Richard Guenther  <rguenther@suse.de>
16636
16637         PR tree-optimization/48271
16638         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
16639         blocks that still exist.
16640
16641 2011-03-24  Richard Guenther  <rguenther@suse.de>
16642
16643         PR tree-optimization/48270
16644         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
16645         not free datarefs before ddrs.
16646
16647 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
16648
16649         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
16650         from the address built for a reference with variable offset.
16651
16652 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
16653
16654         PR target/48237
16655         * config/i386/i386.md (*movdf_internal_rex64): Do not split
16656         alternatives that can be handled with movq or movabsq insn.
16657         (*movdf_internal): Disable for !TARGET_64BIT.
16658         (*movdf_internal_nointeger): Ditto.
16659         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
16660
16661 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
16662
16663         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
16664         (FUNCTION_ARG_ADVANCE): Likewise.
16665         * tm.texi.in: Change references to them to hook references.
16666         * tm.texi: Regenerate.
16667         * targhooks.c (default_function_arg): Eliminate check for target macro.
16668         (default_function_incoming_arg): Likewise.
16669         (default_function_arg_advance): Likewise.
16670         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
16671         (function_arg_advance): Likewise.
16672         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
16673
16674 2011-03-24  Richard Guenther  <rguenther@suse.de>
16675
16676         PR middle-end/48269
16677         * tree-object-size.c (addr_object_size): Do not double-account
16678         for MEM_REF offsets.
16679
16680 2011-03-24  Diego Novillo  <dnovillo@google.com>
16681
16682         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
16683         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
16684         (lto_input_data_block): Move from lto-opts.c.  Make extern.
16685         Update all users.
16686         (lto_input_string): Rename from input_string.  Make extern.
16687         Update all users.
16688         * lto-streamer-out.c (lto_output_string_with_length): Rename from
16689         output_string_with_length.
16690         Output 0 to indicate a non-NULL string.  Update all callers to
16691         not emit 0.
16692         (lto_output_string): Rename from output_string.  Make extern.
16693         Update all users.
16694         (lto_output_decl_state_streams): Make extern.
16695         (lto_output_decl_state_refs): Make extern.
16696         * lto-streamer.h (lto_input_string): Declare.
16697         (lto_input_data_block): Declare.
16698         (lto_output_string): Declare.
16699         (lto_output_string_with_length): Declare.
16700         (lto_output_decl_state_streams): Declare.
16701         (lto_output_decl_state_refs): Declare.
16702
16703 2011-03-24  Richard Guenther  <rguenther@suse.de>
16704
16705         PR tree-optimization/46562
16706         * tree.c (build_invariant_address): New function.
16707         * tree.h (build_invariant_address): Declare.
16708         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
16709         a renamed function moved ...
16710         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
16711         Take valueization callback parameter.
16712         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
16713         * gimple-fold.h: New file.
16714         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
16715         (ccp_fold, fold_const_aggregate_ref,
16716         fold_ctor_reference, fold_nonarray_ctor_reference,
16717         fold_array_ctor_reference, fold_string_cst_ctor_reference,
16718         get_base_constructor): Move ...
16719         * gimple-fold.c: ... here.
16720         (gimple_fold_stmt_to_constant_1): New function
16721         split out from ccp_fold.  Take a valueization callback parameter.
16722         Valueize all operands.
16723         (gimple_fold_stmt_to_constant): New wrapper function.
16724         (fold_const_aggregate_ref_1): New function split out from
16725         fold_const_aggregate_ref.  Take a valueization callback parameter.
16726         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
16727         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
16728         invariant POINTER_PLUS_EXPRs to invariant form.
16729         (vn_valueize): New function.
16730         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
16731         * tree-vrp.c (vrp_valueize): New function.
16732         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
16733         to fold statements to constants.
16734         * tree-ssa-pre.c (eliminate): Properly guard propagation of
16735         function declarations.
16736         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
16737         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
16738
16739 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
16740
16741         * config/h8300/predicates.md (jump_address_operand): Fix register
16742         mode check.
16743
16744 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
16745
16746         * doc/invoke.texi (max-stores-to-sink): Document.
16747         * params.h (MAX_STORES_TO_SINK): Define.
16748         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
16749         if either vectorization or if-conversion is disabled.
16750         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
16751         tree-vect-data-refs.c vect_equal_offsets.
16752         (dr_equal_offsets_p): New function.
16753         (find_data_references_in_bb): Remove static.
16754         * tree-data-ref.h (find_data_references_in_bb): Declare.
16755         (dr_equal_offsets_p): Likewise.
16756         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
16757         (vect_drs_dependent_in_basic_block): Update calls to
16758         vect_equal_offsets.
16759         (vect_check_interleaving): Likewise.
16760         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
16761         (cond_if_else_store_replacement): Rename to...
16762         (cond_if_else_store_replacement_1): ... this.  Change arguments and
16763         documentation.
16764         (cond_if_else_store_replacement): New function.
16765         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
16766         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
16767
16768 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
16769
16770         PR target/46934
16771         * config/arm/arm.md (casesi): Use the gen_int_mode() function
16772         to subtract lower bound instead of GEN_INT().
16773
16774 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
16775
16776         PR other/48179
16777         PR other/48221
16778         PR other/48234
16779         * doc/extend.texi (Alignment): Move section to match order in TOC.
16780         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
16781         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
16782
16783 2011-03-23  Jeff Law  <law@redhat.com>
16784
16785         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
16786         before removing the edge.
16787
16788         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
16789         it may have been freed by redirect_branch_edge or
16790         redirect_edge_succ_nodup.
16791
16792 2011-03-23  Richard Guenther  <rguenther@suse.de>
16793
16794         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
16795         (check_va_list_escapes): Likewise.
16796         (check_all_va_list_escapes): Likewise.
16797
16798 2011-03-23  Richard Guenther  <rguenther@suse.de>
16799
16800         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
16801         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
16802         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
16803         (alias.o): Likewise.
16804         (ipa-type-escape.o): Remove.
16805         (ipa-struct-reorg.o): Likewise.
16806         (GTFILES): Remove ipa-struct-reorg.c.
16807         * alias.c: Do not include ipa-type-escape.h.
16808         * tree-ssa-alias.c: Likewise.
16809         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
16810         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
16811         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
16812         and ipa-type-escape passes.
16813         * tree-pass.h (pass_ipa_type_escape): Remove.
16814         (pass_ipa_struct_reorg): Likewise.
16815         * ipa-struct-reorg.h: Remove.
16816         * ipa-struct-reorg.c: Likewise.
16817         * ipa-type-escape.h: Likewise.
16818         * ipa-type-escape.c: Likewise.
16819         * doc/invoke.texi (-fipa-struct-reorg): Remove.
16820         (--param struct-reorg-cold-struct-ratio): Likewise.
16821         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
16822         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
16823         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
16824
16825 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16826
16827         * config/s390/2084.md: Enable all insn reservations also for z9_ec
16828         cpu attribute value.
16829         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
16830         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
16831         * config/s390/s390.c (processor_flags_table): New constant array.
16832         (s390_handle_arch_option): Remove.
16833         (s390_handle_option): Remove s390_handle_arch_option invocations
16834         and OPT_mwarn_framesize_ handling.
16835         (s390_option_override): Remove s390_handle_arch_option invocation.
16836         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
16837         warnings.
16838         * config/s390/s390.md (cpu attribute): Add z9_ec value.
16839         * config/s390/s390.opt (s390_tune, s390_arch)
16840         (march=): Replace s390_arch_option enum and values with
16841         processor_type.  Set variable name to s390_arch.  Set
16842         initialization value.
16843         (mtune=): Replace s390_arch_option with processor_type.  Set
16844         variable name to s390_tune.  Set initialization value.
16845
16846 2011-03-23  Julian Brown  <julian@codesourcery.com>
16847
16848         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
16849         accesses which are not naturally aligned.
16850
16851 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
16852
16853         PR target/47553
16854         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
16855
16856 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
16857
16858         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
16859         parameter from "int" to "enum insn_code".
16860         (expand_operand_type): New enum.
16861         (expand_operand): New structure.
16862         (create_expand_operand): New function.
16863         (create_fixed_operand, create_output_operand): Likewise
16864         (create_input_operand, create_convert_operand_to): Likewise.
16865         (create_convert_operand_from, create_address_operand): Likewise.
16866         (create_integer_operand): Likewise.
16867         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
16868         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
16869         (expand_insn, expand_jump_insn): Likewise.
16870         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
16871         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
16872         (expand_movstr, expand_builtin___clear_cache): Likewise.
16873         (expand_builtin_lock_release): Likewise.
16874         * explow.c (allocate_dynamic_stack_space): Likewise.
16875         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
16876         and use the default handling in that case.
16877         * expmed.c (check_predicate_volatile_ok): Delete.
16878         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
16879         (emit_cstore): Likewise.
16880         * expr.c (emit_block_move_via_movmem): Likewise.
16881         (set_storage_via_setmem, expand_assignment): Likewise.
16882         (emit_storent_insn, try_casesi): Likewise.
16883         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
16884         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
16885         (expand_vec_shift_expr, expand_binop_directly): Likewise.
16886         (expand_twoval_unop, expand_twoval_binop): Likewise.
16887         (expand_unop_direct, emit_indirect_jump): Likewise.
16888         (emit_conditional_move, vector_compare_rtx): Likewise.
16889         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
16890         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
16891         (expand_sync_lock_test_and_set): Likewise.
16892         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
16893         (emit_unop_insn): Likewise.
16894         (expand_copysign_absneg): Change icode to an insn_code.
16895         (create_convert_operand_from_type): New function.
16896         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
16897         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
16898         (expand_insn, expand_jump_insn): Likewise.
16899         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
16900         than const_int_operand for operand 2.
16901
16902 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16903
16904         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
16905         if possible.
16906
16907 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
16908
16909         * emit-rtl.c (emit_pattern_before_noloc): New function.
16910         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
16911         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
16912         (emit_pattern_after_noloc): New function.
16913         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
16914         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
16915
16916 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
16917
16918         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
16919         (__ffsDI2): Likewise.
16920
16921 2011-03-22  Richard Henderson  <rth@redhat.com>
16922
16923         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
16924         of !TARGET_ABI_OPEN_VMS.
16925         (alpha_trampoline_init, alpha_start_function): Likewise.
16926         (alpha_expand_epilogue, alpha_file_start): Likewise.
16927         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
16928         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
16929         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
16930         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
16931         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
16932
16933 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
16934
16935         * config/s390/s390-opts.h: New.
16936         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
16937         s390_arch_flags, s390_warn_framesize, s390_stack_size,
16938         s390_stack_guard): Remove.
16939         (s390_handle_arch_option): Return void.  Take enum
16940         s390_arch_option value instead of string and searching array.
16941         (s390_handle_option): Don't assert that global structures are in
16942         use.  Access variables via opts pointer.  Use error_at.  Don't use
16943         sscanf for -mstack-guard= or -mstack-size=.  Update call to
16944         s390_handle_arch_option.
16945         (s390_option_override): Update call to s390_handle_arch_option.
16946         (s390_emit_prologue): Use %d format for s390_stack_size in
16947         diagnostic.  Use %wd for HOST_WIDE_INT.
16948         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
16949         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
16950         * config/s390/s390.opt (config/s390/s390-opts.h): New
16951         HeaderInclude entry.
16952         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
16953         s390_arch_flags, s390_warn_framesize): New Variable entries.
16954         (s390_arch_option): New Enum and EnumValue entries.
16955         (march=): Use Enum instead of Var.
16956         (mstack-guard=, mstack-size=): Use UInteger and Var.
16957         (mtune=): Use Enum.
16958
16959 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
16960
16961         * config/score/score.c (score_handle_option): Don't assert that
16962         global structures are in use.  Access target_flags via opts
16963         pointer.  Use value of -march= option to determine target_flags
16964         settings.
16965         * config/score/score.opt (march=): Use Enum.
16966         (score_arch): New Enum and EnumValue entries.
16967
16968 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
16969
16970         * config/mep/mep.c (option_mtiny_specified): Remove.
16971         (mep_option_override): Move register handling for -mivc2 from
16972         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
16973         instead of option_mtiny_specified.
16974         (mep_handle_option): Access target_flags via opts pointer.  Don't
16975         assert that global structures are in use.  Defer part of -mivc2
16976         handling and move it to mep_option_override.
16977         * config/mep/mep.opt (IVC2): New Mask entry.
16978         (mivc2): Use Var and Defer instead of Mask.
16979
16980 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
16981
16982         * config/v850/v850-opts.h: New.
16983         * config/v850/v850.c (small_memory): Replace with
16984         small_memory_physical_max array.  Make that array static const.
16985         (v850_handle_memory_option): Take integer value of argument.  Take
16986         gcc_options pointer, option text and location.  Return void.
16987         Update for changes to small memory structures.
16988         (v850_handle_option): Access target_flags via opts pointer.  Don't
16989         assert that global structures are in use.  Update calls to
16990         v850_handle_memory_option.
16991         (v850_encode_data_area): Update references to small memory settings.
16992         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
16993         (enum small_memory_type): Move to v850-opts.h.
16994         * config/v850/v850.opt (config/v850/v850-opts.h): New
16995         HeaderInclude entry.
16996         (small_memory_max): New Variable entry.
16997         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
16998         (mtda, mzda): Likewise.
16999
17000 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17001
17002         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
17003         pointer.  Don't assert that global structures are in use.
17004
17005 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17006
17007         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
17008         via opts pointer.  Don't assert that global structures are in use.
17009
17010 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17011
17012         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
17013         (munix=93): Use Var.
17014         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
17015         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
17016         * config/pa/pa-opts.h: New.
17017         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
17018         (pa_handle_option): Don't assert that global structures are in
17019         use.  Access target_flags via opts pointer.  Don't handle
17020         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
17021         OPT_munix_98 here.
17022         (pa_option_override): Handle deferred OPT_mfixed_range_.
17023
17024 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17025
17026         * config/mn10300/mn10300-opts.h: New.
17027         * config/mn10300/mn10300.c (mn10300_processor,
17028         mn10300_tune_string): Remove.
17029         (mn10300_handle_option): Don't assert that global structures are
17030         in use.  Access mn10300_processor via opts pointer.  Don't handle
17031         OPT_mtune_ here.
17032         * config/mn10300/mn10300.h (enum processor_type): Move to
17033         mn10300-opts.h.
17034         (mn10300_processor): Remove.
17035         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
17036         HeaderInclude entry.
17037         (mn10300_processor): New Variable entry.
17038         (mtune=): Use Var.
17039
17040 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17041
17042         * config/microblaze/microblaze.c: Don't include opts.h.
17043         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
17044         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
17045         (mno-clearbss): Use Var and Warn.
17046
17047 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17048
17049         * config/m32r/m32r-opts.h: New.
17050         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
17051         (m32r_handle_option): Don't assert that global structures are in
17052         use.  Access target_flags and m32r_cache_flush_func via opts
17053         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
17054         OPT_mno_flush_trap here.
17055         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
17056         include of m32r-opts.h.
17057         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
17058         HeaderInclude entry.
17059         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
17060         (mmodel=): Use Enum and Var.
17061         (m32r_model): New Enum and EnumValue entries.
17062         (mno-flush-trap): Use Var.
17063         (msdata=): Use Enum and Var.
17064         (m32r_sdata): New Enum and EnumValue entries.
17065
17066 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17067
17068         * config/m32c/m32c.c: Don't include opts.h.
17069         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
17070         m32c_handle_option): Remove.
17071         (m32c_option_override): Check global_options_set.x_target_memregs
17072         instead of target_memregs_set.
17073         * config/m32c/m32c.h (target_memregs): Remove.
17074         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
17075         variable.
17076
17077 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17078
17079         * config/iq2000/iq2000-opts.h: New.
17080         * config/iq2000/iq2000.c: Don't include opts.h.
17081         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
17082         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
17083         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
17084         HeaderInclude entry.
17085         (iq2000_tune): New Variable entry.
17086         (march=): Add comment.  Use Enum.
17087         (iq2000_arch): New Enum and EnumValue entries.
17088         (mcpu=): Use Enum and Var.
17089         (iq2000_tune): New Enum and EnumValue entries.
17090
17091 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17092
17093         * config/ia64/ia64-opts.h: New.
17094         * config/ia64/ia64.c (ia64_tune): Remove.
17095         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
17096         here.  Use error_at.
17097         (ia64_option_override): Handle deferred OPT_mfixed_range_.
17098         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
17099         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
17100         HeaderInclude entry.
17101         (ia64_tune): New Variable entry.
17102         (mfixed-range=): Use Defer and Var.
17103         (mtune=): Use Enum and Var.
17104         (ia64_tune): New Enum and EnumValue entries.
17105
17106 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17107
17108         * config/frv/frv-opts.h: New.
17109         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
17110         frv-opts.h.
17111         (frv_cpu_type): Remove.
17112         * config/frv/frv.c: Don't include opts.h.
17113         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
17114         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
17115         (frv_cpu_type): New Variable entry.
17116         (frv_cpu): New Enum and EnumValue entries.
17117
17118 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17119
17120         * config/cris/cris.c (cris_handle_option): Access target_flags via
17121         opts pointer.  Don't assert that global structures are in use.
17122         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
17123         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
17124
17125 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17126
17127         * config/bfin/bfin-opts.h: New.
17128         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
17129         bfin_si_revision, bfin_workarounds): Remove.
17130         (bfin_cpus): Make static const.
17131         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
17132         not bfin_lib_id_given.
17133         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
17134         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
17135         pointer. Use error_at.  Don't assert that global structures are in use.
17136         * config/bfin/bfin.h: Include bfin-opts.h.
17137         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
17138         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
17139         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
17140         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
17141         entries.
17142
17143 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17144
17145         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
17146         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
17147         or -msoft-float here.
17148         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
17149         -msoft-float and -mhard-float.
17150         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
17151         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
17152         msoft-float.
17153         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
17154         -msoft-float.
17155         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
17156         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
17157         not mhard-float.
17158         (LIBGCC_SPEC): Don't handle -msoft-float.
17159         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
17160         -mhard-float.
17161         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
17162         msoft-float.
17163         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
17164         -mfloat-abi=*, not -msoft-float and -mhard-float.
17165         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
17166         -msoft-float.
17167         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
17168         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
17169         mhard-float and msoft-float.
17170         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
17171         mfloat-abi=soft in comments, not mhard-float and msoft-float.
17172         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
17173         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
17174         mhard-float.
17175         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
17176         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
17177         msoft-float.
17178         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
17179         not mhard-float.
17180         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
17181         not msoft-float.
17182
17183 2011-03-22  Richard Henderson  <rth@redhat.com>
17184
17185         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
17186         TARGET_ABI_WINDOWS_NT.
17187         (alpha_output_function_end_prologue): Likewise.
17188         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
17189         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
17190         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
17191         (trap, *movsi_nt_vms): Likewise.
17192         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
17193         (*tablejump_osf_nt_internal): Remove.
17194         * config/alpha/predicates.md (input_operand): Only test Pmode.
17195
17196 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17197
17198         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
17199         via opts pointer.  Use error_at.  Don't assert that global
17200         structures are in use.
17201
17202 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17203
17204         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
17205         (ix86_handle_option): Access ix86_isa_flags and
17206         ix86_isa_flags_explicit via opts pointer.  Don't assert that
17207         global structures are in use.
17208         (ix86_function_specific_save, ix86_function_specific_restore):
17209         Update ix86_isa_flags_explicit field name.
17210         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
17211         (ix86_isa_flags_explicit): Rename TargetSave entry to
17212         x_ix86_isa_flags_explicit.
17213
17214 2011-03-22  Richard Henderson  <rth@redhat.com>
17215
17216         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
17217         (alpha_option_override, direct_return): Likewise.
17218         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
17219         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
17220         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
17221         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
17222         (alpha_expand_epilogue, alpha_end_function): Likewise.
17223         (alpha_init_libfuncs): Likewise.
17224         (struct machine_function): Remove unicosmk members.
17225         (print_operand) ['t']: Remove.
17226         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
17227         unicosmk_output_module_name, unicosmk_output_common,
17228         current_section_align, unicosmk_output_text_section_asm_op,
17229         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
17230         unicosmk_section_type_flags, unicosmk_unique_section,
17231         unicosmk_asm_named_section, unicosmk_insert_attributes,
17232         unicosmk_output_align, unicosmk_defer_case_vector,
17233         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
17234         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
17235         unicosmk_output_ssib, unicosmk_add_call_info_word,
17236         unicosmk_extern_head, unicosmk_output_default_externs,
17237         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
17238         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
17239         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
17240         * config/alpha/alpha-protos.h: Update.
17241         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
17242         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
17243         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
17244         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
17245         (*mulsi_se, mulvsi3): Likewise.
17246         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
17247         (*divmodsi_internal, call, call_value, realign): Likewise.
17248         (moddi3, umoddi3): Likewise; remove duplicate expander.
17249         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
17250         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
17251         (*movdi_nofix): Remove r/U alternative.
17252         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
17253         * config/alpha/constraints.md ("U"): Remove.
17254         * config/alpha/predicates.md (call_operand"): Don't test
17255         TARGET_ABI_UNICOSMK.
17256
17257 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17258
17259         * target.def (handle_option): Take gcc_options and
17260         cl_decoded_option pointers and location_t.
17261         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
17262         * doc/tm.texi: Regenerate.
17263         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
17264         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
17265         * lto-opts.c (lto_reissue_options): Generate option structure for
17266         targetm.handle_option call.
17267         * opts.c (target_handle_option): Update call to
17268         targetm.handle_option.  Remove assertions about values now passed
17269         down to hook.
17270         * targhooks.c (default_target_handle_option): New.
17271         * targhooks.h (default_target_handle_option): Declare.
17272         * config/alpha/alpha.c: Include opts.h.
17273         (alpha_handle_option): Update to new hook interface.
17274         * config/arm/arm.c: Include opts.h.
17275         (arm_handle_option): Update to new hook interface.
17276         * config/arm/t-arm (arm.o): Update dependencies.
17277         * config/bfin/bfin.c: Include opts.h.
17278         (bfin_handle_option): Update to new hook interface.
17279         * config/cris/cris.c: Include opts.h.
17280         (cris_handle_option): Update to new hook interface.
17281         * config/frv/frv.c: Include opts.h.
17282         (frv_handle_option): Update to new hook interface.
17283         * config/i386/i386.c: Include opts.h.
17284         (ix86_handle_option): Update to new hook interface.
17285         (ix86_valid_target_attribute_inner_p): Generate option structure
17286         for call to ix86_handle_option.
17287         * config/i386/t-i386 (i386.o): Update dependencies.
17288         * config/ia64/ia64.c: Include opts.h.
17289         (ia64_handle_option): Update to new hook interface.
17290         * config/ia64/t-ia64 (ia64.o): Update dependencies.
17291         * config/iq2000/iq2000.c: Include opts.h.
17292         (iq2000_handle_option): Update to new hook interface.
17293         * config/m32c/m32c.c: Include opts.h.
17294         (m32c_handle_option): Update to new hook interface.
17295         * config/m32r/m32r.c: Include opts.h.
17296         (m32r_handle_option): Update to new hook interface.
17297         * config/m68k/m68k.c: Include opts.h.
17298         (m68k_handle_option): Update to new hook interface.
17299         * config/mep/mep.c: Include opts.h.
17300         (mep_handle_option): Update to new hook interface.
17301         * config/microblaze/microblaze.c: Include opts.h.
17302         (microblaze_handle_option): Update to new hook interface.
17303         * config/mips/mips.c: Include opts.h.
17304         (mips_handle_option): Update to new hook interface.
17305         * config/mn10300/mn10300.c: Include opts.h.
17306         (mn10300_handle_option): Update to new hook interface.
17307         * config/pa/pa.c: Include opts.h.
17308         (pa_handle_option): Update to new hook interface.
17309         * config/pdp11/pdp11.c: Include opts.h.
17310         (pdp11_handle_option): Update to new hook interface.
17311         * config/rs6000/rs6000.c: Include opts.h.
17312         (rs6000_handle_option): Update to new hook interface.
17313         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
17314         * config/rx/rx.c: Include opts.h.
17315         (rx_handle_option): Update to new hook interface.
17316         * config/s390/s390.c: Include opts.h.
17317         (s390_handle_option): Update to new hook interface.
17318         * config/score/score.c: Include opts.h.
17319         (score_handle_option): Update to new hook interface.
17320         * config/sh/sh.c: Include opts.h.
17321         (sh_handle_option): Update to new hook interface.
17322         * config/sparc/sparc.c: Include opts.h.
17323         (sparc_handle_option): Update to new hook interface.
17324         * config/v850/v850.c: Include opts.h.
17325         (v850_handle_option): Update to new hook interface.
17326
17327 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17328
17329         * gcc.c (driver_unknown_option_callback): Only permit and save
17330         unknown -Wno- options.
17331         (driver_wrong_lang_callback): Save options directly instead of via
17332         driver_unknown_option_callback.
17333
17334 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
17335
17336         * combine.c (simplify_set): Try harder to find the best CC mode when
17337         simplifying a nested COMPARE on the RHS.
17338
17339 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17340
17341         * config/alpha/gnu.h: Remove.
17342         * config/arc: Remove directory.
17343         * config/arm/netbsd.h: Remove.
17344         * config/arm/t-pe: Remove.
17345         * config/crx: Remove directory.
17346         * config/i386/netbsd.h: Remove.
17347         * config/m68hc11: Remove directory.
17348         * config/m68k/uclinux-oldabi.h: Remove.
17349         * config/mcore/mcore-pe.h: Remove.
17350         * config/mcore/t-mcore-pe: Remove.
17351         * config/netbsd-aout.h: Remove.
17352         * config/rs6000/gnu.h: Remove.
17353         * config/sh/sh-symbian.h: Remove.
17354         * config/sh/symbian-base.c: Remove.
17355         * config/sh/symbian-c.c: Remove.
17356         * config/sh/symbian-cxx.c: Remove.
17357         * config/sh/symbian-post.h: Remove.
17358         * config/sh/symbian-pre.h: Remove.
17359         * config/sh/t-symbian: Remove.
17360         * config/svr3.h: Remove.
17361         * config/vax/netbsd.h: Remove.
17362         * config.build: Don't handle i[34567]86-*-pe.
17363         * config.gcc: Remove handling of deprecations for most deprecated
17364         targets.
17365         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
17366         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
17367         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
17368         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
17369         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
17370         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
17371         Remove cases.
17372         * config.host: Don't handle i[34567]86-*-pe.
17373         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
17374         (ASM_SPEC32): Don't handle -mcall-gnu.
17375         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
17376         -mcall-gnu.
17377         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
17378         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
17379         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
17380         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
17381         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
17382         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
17383         conditional on SYMBIAN.
17384         * configure.ac: Don't handle powerpc*-*-gnu*.
17385         * configure: Regenerate.
17386         * doc/extend.texi (interrupt attribute): Don't mention CRX.
17387         * doc/install-old.texi (m6811, m6812): Don't mention.
17388         * doc/install.texi (arc-*-elf*): Don't document multilib option.
17389         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
17390         (m68k-uclinuxoldabi): Don't mention.
17391         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
17392         Remove.
17393         (-mcall-gnu): Remove.
17394         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
17395         families): Remove constraint documentation.
17396
17397 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
17398
17399         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
17400         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
17401         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
17402
17403 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
17404
17405         PR target/48226
17406         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
17407         vector when peeking at the next token for vector, don't expand the
17408         keywords.
17409
17410 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
17411
17412         * config/avr/avr-protos.h (expand_epilogue): Change prototype
17413         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
17414         * config/avr/avr.c (init_cumulative_args)
17415         (avr_function_arg_advance): Use it.
17416         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
17417         sibcall epilogues.
17418         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
17419         (avr_function_ok_for_sibcall): ...this new function.
17420         (avr_lookup_function_attribute1): New static Function.
17421         (avr_naked_function_p, interrupt_function_p)
17422         (signal_function_p, avr_OS_task_function_p)
17423         (avr_OS_main_function_p): Use it.
17424         * config/avr/avr.md ("sibcall", "sibcall_value")
17425         ("sibcall_epilogue"): New expander.
17426         ("*call_insn", "*call_value_insn"): New insn.
17427         ("call_insn", "call_value_insn"): Remove
17428         ("call", "call_value", "epilogue"): Change expander to handle
17429         sibling calls.
17430
17431 2011-03-21  Nick Clifton  <nickc@redhat.com>
17432
17433         * doc/invoke.texi (Overall Options): Move closing brace to end of
17434         options list.
17435         (Optimization Options): Add missing @gol.
17436         (Directory Options): Likewise.
17437         (i386 and x86-64 Options): Likewise.
17438         (RS6000 and PowerPC Options): Likewise.
17439         (i386 and x86-64 Windows Options): Likewise.
17440         (V850 Options): Add text missing from descriptions.
17441
17442 2011-03-22  Richard Henderson  <rth@redhat.com>
17443
17444         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
17445         (avr_incoming_return_addr_rtx): New.
17446         (emit_push_byte): New.
17447         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
17448         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
17449         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
17450         (emit_pop_byte): New.
17451         (expand_epilogue): Use it.  Pop frame pointer by bytes.
17452         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
17453         (INCOMING_RETURN_ADDR_RTX): New.
17454         (INCOMING_FRAME_SP_OFFSET): New.
17455         (ARG_POINTER_CFA_OFFSET): New.
17456         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
17457         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
17458         (pophi): Remove.
17459
17460         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
17461
17462 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
17463
17464         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
17465         (FUNCTION_ARG_ADVANCE): Likewise.
17466         * tm.texi.in: Change references to them to hook references.
17467         * tm.texi: Regenerate.
17468         * targhooks.c (default_function_arg): Eliminate check for target
17469         macro.
17470         (default_function_incoming_arg): Likewise.
17471         (default_function_arg_advance): Likewise.
17472         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
17473         (function_arg_advance): Likewise.
17474         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
17475
17476 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
17477
17478         * tree.c (build_call_1): New function.
17479         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
17480
17481 2011-03-22  Richard Guenther  <rguenther@suse.de>
17482
17483         PR tree-optimization/48228
17484         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
17485         for single-arg PHIs.
17486
17487 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
17488
17489         PR rtl-optimization/48143
17490         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
17491         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
17492         sse2_cvtps2pd): Likewise.
17493
17494 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17495
17496         * recog.c (canonicalize_change_group): Use validate_unshare_change.
17497
17498 2011-03-22  Richard Guenther  <rguenther@suse.de>
17499
17500         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
17501         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
17502         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
17503         and REALIGN_LOAD_EXPR.
17504         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
17505         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
17506         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
17507         DOT_PROD_EXPR case ...
17508         (expand_expr_real_2): ... here.
17509         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
17510         and REALIGN_LOAD_EXPR.
17511         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
17512         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
17513         (vect_create_epilog_for_reduction): Likewise.
17514         (vectorizable_reduction): Likewise.
17515         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
17516         * tree-vect-stmts.c (vectorizable_load): Likewise.
17517
17518 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
17519
17520         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
17521
17522 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17523
17524         * config/s390/s390.c (s390_delegitimize_address): Fix offset
17525         handling for PLTOFF/GOTOFF.
17526
17527 2011-03-22  Nick Clifton  <nickc@redhat.com>
17528
17529         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
17530         trailing backslash from the end of the macro definition.
17531
17532 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17533
17534         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
17535         and PLT unspecs.
17536
17537 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
17538
17539         * expr.h (prepare_operand): Move to...
17540         * optabs.h (prepare_operand): ...here and change the insn code
17541         parameter from "int" to "enum insn_code".
17542         (insn_operand_matches): Declare.
17543         * expr.c (init_expr_target): Use insn_operand_matches.
17544         (compress_float_constant): Likewise.
17545         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
17546         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
17547         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
17548         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
17549         Likewise.
17550         (gen_cond_trap): Likewise.
17551         (prepare_operand): Likewise.  Change icode to an insn_code.
17552         (insn_operand_matches): New function.
17553         * reload.c (find_reloads_address_1): Use insn_operand_matches.
17554         * reload1.c (gen_reload): Likewise.
17555         * targhooks.c (default_secondary_reload): Likewise.
17556
17557 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
17558
17559         * config/alpha/alpha.md (unspec): New define_c_enum.
17560         (unspecv): Ditto.
17561
17562 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
17563
17564         PR debug/48214
17565         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
17566         between a call and its CALL_ARG_LOCATION note.
17567
17568 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
17569
17570         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
17571
17572 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
17573
17574         PR c/42544
17575         PR c/48197
17576         * c-common.c (shorten_compare): If primopN is first sign-extended
17577         to opN and then zero-extended to result type, set primopN to opN.
17578
17579 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
17580
17581         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
17582         for barrier handlers.
17583
17584 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
17585
17586         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
17587         UNSPEC constants to be in the unspec enumeration, and redefine
17588         all UNSPECV constants to be in the unspecv enumeration, so that
17589         dumps print which unspec/unspec_volatile this is.
17590         * config/rs6000/vector.md (UNSPEC_*): Ditto.
17591         * config/rs6000/paired.md (UNSPEC_*): Ditto.
17592         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
17593         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
17594         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
17595
17596         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
17597         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
17598         UNSPECV_LWSYNC, since these are used as unspec_volatile.
17599         * config/rs6000/sync.md (isync, lwsync): Ditto.
17600
17601 2011-03-21  Richard Guenther  <rguenther@suse.de>
17602
17603         * params.def (lto-min-partition): Fix typo.
17604
17605 2011-03-21  Richard Guenther  <rguenther@suse.de>
17606
17607         PR c/47939
17608         * c-decl.c (grokdeclarator): Drop to the main variant only
17609         for array types.  Drop flag_gen_aux_info check.
17610
17611 2011-03-21  Richard Guenther  <rguenther@suse.de>
17612
17613         PR translation/47911
17614         * params.def (lto-partitions): Fix typo.
17615         (lto-min-partition): Fix wording.
17616
17617 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
17618
17619         * config/rs6000/t-freebsd: Remove duplication from file.
17620
17621 2011-03-21  Richard Guenther  <rguenther@suse.de>
17622
17623         PR middle-end/47661
17624         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
17625
17626 2011-03-21  Richard Guenther  <rguenther@suse.de>
17627
17628         PR lto/48210
17629         * params.def (lto-partitions): Require at least 1 partition.
17630
17631 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17632
17633         * gthr-solaris.h: Remove.
17634         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
17635         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
17636         (LIB_SPEC): Likewise.
17637         * config/sol2.opt (threads): Remove.
17638         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
17639         (sparc*-*-solaris2*): Likewise.
17640         * configure.ac (enable_threads): Enable solaris support.
17641         * configure: Regenerate.
17642         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
17643         * doc/install.texi (Configuration, --enable-threads=lib): Remove
17644         solaris.
17645
17646 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17647
17648         * config.gcc: Obsolete *-*-solaris2.8*.
17649         * doc/install.texi (Specific, *-*-solaris2*): Document it.
17650
17651 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17652
17653         PR bootstrap/48135
17654         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
17655         reference.  Solaris 8 perl works.
17656
17657 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17658
17659         PR bootstrap/48135
17660         * doc/install.texi (Prerequisites): Move jar etc. up.
17661         Explain support library version requirements.
17662
17663 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17664
17665         PR bootstrap/48135
17666         * doc/install.texi (Prerequisites): Move Perl to build
17667         requirements.  Always necessary on Solaris 2 with Sun ld.
17668
17669 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17670
17671         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
17672         binutils 2.21.
17673         (Specific, i?86-*-solaris2.[89]): Likewise.
17674         (Specific, i?86-*-solaris2.10): Likewise.
17675         (Specific, mips-sgi-irix6): Likewise.
17676         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
17677         Update for binutils 2.21.
17678
17679 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17680
17681         * configure.ac (gcc_cv_lto_plugin): Fix typo.
17682         Allow -fuse-linker-plugin for non-default plugin linker.
17683         * configure: Regenerate.
17684
17685 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
17686
17687         PR bootstrap/48167
17688         * gengtype.c (files_rules): Added rule for cp/parser.h.
17689
17690 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
17691
17692         PR target/48213
17693         * config/s390/s390.c (s390_delegitimize_address): Don't call
17694         lowpart_subreg if orig_x has BLKmode.
17695
17696 2011-03-21  Kai Tietz  <ktietz@redhat.com>
17697
17698         PR target/12171
17699         * doc/plugins.texi: Adjust documentation for plugin register_callback.
17700         * tree.h (attribute_spec): Add new member affects_type_identity.
17701         * attribs.c (empty_attribute_table): Adjust attribute_spec
17702         initializers.
17703         * config/alpha/alpha.c: Likewise.
17704         * config/arc/arc.c: Likewise.
17705         * config/arm/arm.c: Likewise.
17706         * config/avr/avr.c: Likewise.
17707         * config/bfin/bfin.c: Likewise.
17708         * config/crx/crx.c: Likewise.
17709         * config/darwin.h: Likewise.
17710         * config/h8300/h8300.c: Likewise.
17711         * config/i386/cygming.h: Likewise.
17712         * config/i386/i386.c: Likewise.
17713         * config/ia64/ia64.c: Likewise.
17714         * config/m32c/m32c.c: Likewise.
17715         * config/m32r/m32r.c: Likewise.
17716         * config/m68hc11/m68hc11.c: Likewise.
17717         * config/m68k/m68k.c: Likewise.
17718         * config/mcore/mcore.c: Likewise.
17719         * config/mep/mep.c: Likewise.
17720         * config/microblaze/microblaze.c: Likewise.
17721         * config/mips/mips.c: Likewise.
17722         * config/rs6000/rs6000.c: Likewise.
17723         * config/rx/rx.c: Likewise.
17724         * config/sh/sh.c: Likewise.
17725         * config/sol2.h: Likewise.
17726         * config/sparc/sparc.c: Likewise.
17727         * config/spu/spu.c: Likewise.
17728         * config/stormy16/stormy16.c: Likewise.
17729         * config/v850/v850.c: Likewise.
17730
17731 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
17732
17733         * simplify-rtx.c (simplify_binary_operation_1): Handle
17734         (xor (and A B) C) case when B and C are both constants.
17735
17736 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
17737
17738         * tree-dfa.c (add_referenced_var): Fix typo in comment.
17739
17740 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
17741
17742         PR bootstrap/48168
17743         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
17744
17745 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
17746
17747         PR rtl-optimization/48156
17748         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
17749         assume df and df_lr are not NULL.
17750
17751 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
17752
17753         PR debug/48023
17754         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
17755         between a call and its CALL_ARG_LOCATION note.
17756
17757 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
17758
17759         PR debug/48178
17760         * config/sh/sh.c (find_barrier): Don't emit a constant pool
17761         between a call and its corresponding CALL_ARG_LOCATION note.
17762
17763 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
17764
17765         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
17766         instead of loop. Use HARD_REGISTER_NUM_P predicate.
17767         * haifa-sched.c (setup_ref_regs): Ditto.
17768         * caller-save.c (add_used_regs_1): Ditto.
17769         * dse.c (look_for_hardregs): Ditto.
17770         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
17771         * sched-rgn.c (check_live_1): Ditto.
17772
17773 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
17774
17775         * c-decl.c (diagnose_mismatched_decls): Give an error for
17776         redefining a typedef with variably modified type.
17777
17778 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
17779
17780         * c-decl.c (grokfield): Don't allow typedefs for structures or
17781         unions with no tag by default.
17782         * doc/extend.texi (Unnamed Fields): Update.
17783
17784 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
17785
17786         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
17787         Rewrite using indirect functions.
17788         (lwp_slwpcb): Ditto.
17789         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
17790         (avx_vinsertf128<mode>): Ditto.
17791
17792 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17793
17794         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
17795         unspecs.
17796
17797 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17798
17799         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
17800         splitting between a call and its corresponding CALL_ARG_LOCATION note.
17801
17802 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
17803
17804         PR rtl-optimization/48170
17805         * gcse.c (hoist_code): Remove bogus asserts.
17806
17807 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
17808
17809         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
17810         computation for prologue/epilogue.
17811
17812 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17813
17814         * Makefile.in (check-consistency): Remove.
17815
17816 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
17817
17818         PR debug/48176
17819         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
17820         arange_table_in_use is 0, but either text_section_used or
17821         cold_text_section_used is true.  Don't call it if
17822         !info_section_emitted.
17823
17824 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
17825
17826         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
17827         FUNCTION_VALUE_REGNO_P): Remove.
17828         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
17829         Remove.
17830         * config/avr/avr.c (avr_ret_register): Make static inline.
17831         (avr_function_value_regno_p): New function.
17832         (avr_libcall_value): Make static. Add 'func' argument.
17833         (avr_function_value): Make static. Rename 'func' argument to
17834         'fn_decl_or_type', forward it to avr_libcall_value. Call
17835         avr_ret_register function instead of RET_REGISTER macro.
17836         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
17837
17838 2011-03-18  Jason Merrill  <jason@redhat.com>
17839
17840         PR c++/23372
17841         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
17842
17843 2011-03-18  Richard Guenther  <rguenther@suse.de>
17844
17845         * doc/install.texi (--enable-gold): Remove.
17846         (--with-plugin-ld): Document.
17847         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
17848
17849 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
17850
17851         PR middle-end/47790
17852         * expr.c (optimize_bitfield_assignment_op): Revamp to work
17853         again after expansion changes.
17854
17855 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
17856
17857         * combine.c (try_combine): Do simplification only call of
17858         subst() on i2 even when i1 is present. Update comments.
17859
17860 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
17861
17862         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
17863         and UNSPEC_PCREL_SYMOFF.
17864
17865 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17866
17867         * config/s390/s390.md: Use define_c_enum for the unspec constant
17868         definitions.
17869
17870 2011-03-18  Richard Henderson  <rth@redhat.com>
17871             Jakub Jelinek  <jakub@redhat.com>
17872
17873         PR bootstrap/48161
17874         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
17875         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
17876
17877 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
17878
17879         PR middle-end/47725
17880         * combine.c (cant_combine_insn_p): Don't check zero/sign
17881         extended hard registers.
17882
17883 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
17884
17885         PR middle-end/47725
17886         * combine.c (cant_combine_insn_p): Check zero/sign extended
17887         hard registers.
17888
17889 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
17890
17891         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
17892         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
17893         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
17894         Change return type to bool.
17895         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
17896
17897 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
17898
17899         PR debug/48163
17900         * var-tracking.c (prepare_call_arguments): If CALL target
17901         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
17902         pc instead of looking it up using cselib_lookup and use
17903         Pmode for it if x has VOIDmode.
17904         * dwarf2out.c (gen_subprogram_die): If also both first and
17905         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
17906
17907         PR debug/48163
17908         * function.c (assign_parms): For data.passed_pointer parms
17909         use MEM of data.entry_parm instead of data.entry_parm itself
17910         as DECL_INCOMING_RTL.
17911         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
17912         also when passed and declared mode is the same, DECL_RTL
17913         is a MEM with pseudo as address and DECL_INCOMING_RTL is
17914         a MEM too.
17915
17916 2011-03-16  Jeff Law  <law@redhat.com>
17917
17918         PR rtl-optimization/37273
17919         * ira-costs.c (scan_one_insn): Detect constants living in memory and
17920         handle them like argument loads from stack slots.  Do not double
17921         count memory for memory constants and argument loads from stack slots.
17922
17923 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
17924
17925         PR debug/48160
17926         * var-tracking.c (prepare_call_arguments): Check SUBREG.
17927
17928 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
17929
17930         PR target/48171
17931         * config/i386/i386.opt: Add Save to -mavx and -mfma.
17932
17933 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
17934
17935         PR bootstrap/48153
17936         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
17937         if dwarf_strict.
17938         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
17939         Clear call_arg_locations and call_arg_loc_last always.
17940
17941         PR middle-end/48152
17942         * var-tracking.c (prepare_call_arguments): If argument needs to be
17943         passed by reference, adjust argtype and mode.
17944
17945 2011-03-17  Richard Guenther  <rguenther@suse.de>
17946
17947         PR middle-end/48134
17948         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
17949         a value make sure to fold the statement.
17950
17951 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
17952
17953         PR target/43872
17954         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
17955         return condition with !cfun->calls_alloca.
17956
17957 2011-03-17  Richard Guenther  <rguenther@suse.de>
17958
17959         PR bootstrap/48148
17960         * lto-cgraph.c (input_overwrite_node): Clear the abstract
17961         origin for decls in other ltrans units.
17962         (input_varpool_node): Likewise.
17963
17964 2011-03-17  Richard Guenther  <rguenther@suse.de>
17965
17966         PR middle-end/48165
17967         * tree-object-size.c (compute_object_offset): Properly return
17968         the offset operand of MEM_REFs as sizetype.
17969
17970 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
17971
17972         PR rtl-optimization/48141
17973         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
17974         * dse.c: Include params.h.
17975         (active_local_stores_len): New variable.
17976         (add_wild_read, dse_step1): Clear it when setting active_local_stores
17977         to NULL.
17978         (record_store, check_mem_read_rtx): Decrease it when removing
17979         from the chain.
17980         (scan_insn): Likewise.  Increase it when adding to chain, if it
17981         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
17982         set active_local_stores to NULL before the addition.
17983         * Makefile.in (dse.o): Depend on $(PARAMS_H).
17984
17985         PR rtl-optimization/48141
17986         * dse.c (record_store): If no positions are needed in an insn
17987         that cannot be deleted, at least unchain it from active_local_stores.
17988
17989 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
17990
17991         PR debug/47510
17992         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
17993         (lookup_type_die_strip_naming_typedef): ... here.
17994         (get_context_die): Use it.
17995         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
17996         the anonymous struct named by the naming typedef.
17997
17998 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
17999
18000         PR target/48154
18001         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
18002         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
18003
18004 2011-03-16  Jeff Law  <law@redhat.com>
18005
18006         * tree-vrp.c (identify_jump_threads): Slightly simplify type
18007         check for operands of conditional.  Allow type to be a pointer.
18008
18009 2011-03-16  Richard Guenther  <rguenther@suse.de>
18010
18011         PR tree-optimization/48149
18012         * fold-const.c (fold_binary_loc): Fold
18013         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
18014
18015 2011-03-16  Richard Guenther  <rguenther@suse.de>
18016
18017         PR tree-optimization/26134
18018         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
18019         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
18020         (non_rewritable_mem_ref_base): Handle complex type component
18021         accesses, constrain offsets for vector and complex extracts
18022         more properly.
18023
18024 2011-03-16  Richard Guenther  <rguenther@suse.de>
18025
18026         PR tree-optimization/48146
18027         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
18028         operands avoiding the need for renaming.
18029
18030 2011-03-16  Richard Guenther  <rguenther@suse.de>
18031
18032         * gimple-fold.c (maybe_fold_reference): Open-code relevant
18033         constant folding.  Move MEM_REF canonicalization first.
18034         Rely on fold_const_aggregate_ref for initializer folding.
18035         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
18036
18037 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
18038
18039         PR middle-end/48136
18040         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
18041         arg0/arg1 or their arguments are always fold converted to matching
18042         types.
18043
18044         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
18045         to nargs.
18046
18047 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18048
18049         PR lto/46944
18050         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
18051         Handle in-tree gold.
18052         (ld_vers): Extract binutils version for gold.
18053         (gcc_cv_ld_hidden): Handle gold here.
18054         (gcc_cv_lto_plugin): Determine level of linker plugin support.
18055         * configure: Regenerate.
18056         * config.in: Regenerate.
18057         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
18058         -fuse-linker-plugin otherwise.
18059         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
18060         (LINK_COMMAND_SPEC): Use it.
18061         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
18062
18063 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
18064
18065         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
18066         * calls.c: Remove debug.h include.
18067         (emit_call_1): Don't call virtual_call_token debug hook.
18068         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
18069         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
18070         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
18071         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
18072         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
18073         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
18074         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
18075         dwarf2out_virtual_call): Remove.
18076         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
18077         copy_call_info and virtual_call hooks.
18078         (dwarf2out_init): Don't initialize vcall_insn_table,
18079         debug_dcall_section and debug_vcall_section.
18080         (prune_unused_types): Don't mark nodes from dcall_table.
18081         (dwarf2out_finish): Don't output dcall or vcall tables.
18082         * final.c (final_scan_insn): Don't call direct_call or
18083         virtual_call debug hooks.
18084         * debug.h (struct gcc_debug_hooks): Remove direct_call,
18085         virtual_call_token, copy_call_info and virtual_call hooks.
18086         (debug_nothing_uid): Remove prototype.
18087         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
18088         copy_call_info and virtual_call hooks.
18089         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
18090         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
18091         * debug.c (do_nothing_debug_hooks): Likewise.
18092         (debug_nothing_uid): Remove.
18093         * doc/invoke.texi (-fenable-icf-debug): Remove.
18094         * common.opt (-fenable-icf-debug): Likewise.
18095
18096         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
18097         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
18098         call's MEM.  Handle functions returning aggregate through a hidden
18099         first pointer.  For virtual calls add clobbered pc to call arguments
18100         chain.
18101         * dwarf2out.c (gen_subprogram_die): Emit
18102         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
18103         can't be emitted.
18104
18105         PR debug/45882
18106         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
18107         * rtl.h (ENTRY_VALUE_EXP): Define.
18108         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
18109         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
18110         * print-rtl.c (print_rtx): Likewise.
18111         * gengtype.c (adjust_field_rtx_def): Likewise.
18112         * var-tracking.c (vt_add_function_parameter): Adjust
18113         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
18114         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
18115         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
18116         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
18117         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
18118
18119         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
18120         Call var_location debug hook even on CALL_INSNs.
18121         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
18122         * rtl.def (ENTRY_VALUE): New.
18123         * dwarf2out.c: Include cfglayout.h.
18124         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
18125         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
18126         (struct call_arg_loc_node): New type.
18127         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
18128         tail_call_site_count): New variables.
18129         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
18130         DW_TAG_GNU_call_site_parameter.
18131         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
18132         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
18133         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
18134         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
18135         and DW_AT_GNU_all_source_call_sites.
18136         (mem_loc_descriptor): Handle ENTRY_VALUE.
18137         (add_src_coords_attributes): Don't add enything if
18138         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
18139         (dwarf2out_abstract_function): Save and clear call_arg_location,
18140         call_site_count and tail_call_site_count around dwarf2out_decl call.
18141         (gen_call_site_die): New function.
18142         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
18143         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
18144         (dwarf2out_function_decl): Clear call_arg_locations,
18145         call_arg_loc_last, set call_site_count and tail_call_site_count
18146         to -1 and free block_map.
18147         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
18148         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
18149         followed by any real instructions.
18150         (dwarf2out_begin_function): Set call_site_count and
18151         tail_call_site_count to 0.
18152         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
18153         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
18154         attempt to force a DIE for it and worst case remove the attribute.
18155         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
18156         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
18157         the decl itself.
18158         * var-tracking.c: Include tm_p.h.
18159         (vt_stack_adjustments): For calls call note_register_arguments.
18160         (argument_reg_set): New variable.
18161         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
18162         ensure the VALUE is resolved.
18163         (call_arguments): New variable.
18164         (prepare_call_arguments): New function.
18165         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
18166         (struct expand_loc_callback_data): Add ignore_cur_loc field.
18167         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
18168         always use the best expression.
18169         (vt_expand_loc): Add ignore_cur_loc argument.
18170         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
18171         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
18172         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
18173         note for all calls.
18174         (vt_add_function_parameter): Use cselib_lookup_from_insn.
18175         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
18176         argument.  Don't call cselib_preserve_only_values and
18177         cselib_reset_table.
18178         (note_register_arguments): New function.
18179         (vt_initialize): Compute argument_reg_set.  Call
18180         vt_add_function_parameters before processing basic blocks instead of
18181         afterwards.  For calls call prepare_call_arguments before calling
18182         cselib_process_insn.
18183         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
18184         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
18185         (var-tracking.o): Depend on $(TM_P_H).
18186         * cfglayout.h (insn_scope): New prototype.
18187         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
18188         * cfglayout.c (insn_scope): No longer static.
18189         * insn-notes.def (CALL_ARG_LOCATION): New.
18190         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
18191         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
18192         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
18193         nothing for DECL_EXTERNAL BLOCK_VARS.
18194
18195 2011-03-16  Alan Modra  <amodra@gmail.com>
18196
18197         PR target/45844
18198         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
18199         create invalid offset address for vsx splat insn.
18200         * config/rs6000/predicates.md (splat_input_operand): New.
18201         * config/rs6000/vsx.md (vsx_splat_*): Use it.
18202
18203 2011-03-15  Xinliang David Li  <davidxl@google.com>
18204
18205         PR c/47837
18206         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
18207         (normalize_preds): New function.
18208         (is_use_properly_guarded): Normalize def predicates.
18209
18210 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
18211
18212         PR target/46788
18213         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
18214         in the output template.
18215
18216 2011-03-15  Richard Guenther  <rguenther@suse.de>
18217
18218         PR middle-end/47650
18219         * tree-pretty-print.c (dump_function_declaration): Properly
18220         dump unprototyped and varargs function types.
18221
18222 2011-03-15  Richard Guenther  <rguenther@suse.de>
18223
18224         PR tree-optimization/13954
18225         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
18226         and friends.
18227
18228 2011-03-15  Richard Guenther  <rguenther@suse.de>
18229
18230         PR tree-optimization/48037
18231         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
18232         selects into BIT_FIELD_REFs.
18233         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
18234         vector select.
18235
18236 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
18237
18238         PR tree-optimization/48129
18239         * builtins.c (fold_builtin_snprintf): Convert to type of
18240         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
18241         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
18242
18243 2011-03-15  Richard Guenther  <rguenther@suse.de>
18244
18245         PR tree-optimization/41490
18246         * tree-ssa-dce.c (propagate_necessity): Handle returns without
18247         value but with VUSE.
18248         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
18249         return statements.
18250         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
18251         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
18252         * tree-tailcall.c (find_tail_calls): Ignore returns.
18253
18254 2011-03-15  Richard Guenther  <rguenther@suse.de>
18255
18256         PR middle-end/48031
18257         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
18258         or variable-indexed array accesses when in gimple form.
18259
18260 2011-03-15  Richard Guenther  <rguenther@suse.de>
18261
18262         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
18263
18264 2011-03-15  Alan Modra  <amodra@gmail.com>
18265
18266         PR target/48032
18267         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
18268         presume symbol_refs without a symbol_ref_decl are suitably
18269         aligned, nor other trees we may see here.  Handle anchor symbols.
18270         (legitimate_constant_pool_address_p): Comment.  Add mode param.
18271         Check cmodel=medium addresses.  Adjust all calls.
18272         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
18273         creating cmodel=medium optimized access to locals.
18274         * config/rs6000/constraints.md (R): Pass QImode to
18275         legitimate_constant_pool_address_p.
18276         * config/rs6000/predicates.md (input_operand): Pass mode to
18277         legitimate_constant_pool_address_p.
18278         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
18279         Update prototype.
18280
18281 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
18282
18283         PR target/48053
18284         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
18285         64-bit constants being loaded into registers other than GPRs such
18286         as loading 0 into a VSX register.
18287
18288 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18289
18290         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
18291
18292 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
18293
18294         PR middle-end/47917
18295         * builtins.c (fold_builtin_snprintf): New function.
18296         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
18297         (fold_builtin_4): Likewise.
18298
18299         PR middle-end/38878
18300         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
18301         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
18302         and C - X == X also strip nops from +/-/p+ operand.
18303         When optimizing -X == C, fold C to arg0's type.
18304
18305         PR debug/47946
18306         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
18307         emit it as add_AT_int instead of add_AT_unsigned.
18308
18309 2011-03-14  Tom Tromey  <tromey@redhat.com>
18310
18311         * unwind-dw2.c: Include sys/sdt.h if it exists.
18312         (_Unwind_DebugHook): Use STAP_PROBE2.
18313         * config.in, configure: Rebuild.
18314         * configure.ac: Check for sys/sdt.h.
18315
18316 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
18317
18318         * config/i386/i386.md (ROUND_FLOOR): New constant.
18319         (ROUND_CEIL): Ditto.
18320         (ROUND_TRUNC): Ditto.
18321         (ROUND_MXCSR): Ditto.
18322         (ROUND_NO_EXC): Ditto.
18323         (rint<mode>2): Use new defines instead of numerical constants.
18324         (floor<mode>2): Ditto.
18325         (ceil<mode>2): Ditto.
18326         (btrunc<mode>2): Ditto.
18327         * config/i386/i386-builtin-types.def: Define ROUND function type
18328         aliases.
18329         * config/i386/i386.c (enum ix86_builtins): Add
18330         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
18331         (struct builtin_description): Add
18332         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
18333         (ix86_expand_sse_round): New static function.
18334         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
18335         function types.
18336         (ix86_builtin_vectorized_function): Handle
18337         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
18338
18339 2011-03-14  Tom Tromey  <tromey@redhat.com>
18340
18341         * c-parser.c (c_parser_asm_string_literal): Clear
18342         warn_overlength_strings.
18343
18344 2011-03-14  Tom Tromey  <tromey@redhat.com>
18345
18346         * c-parser.c (disable_extension_diagnostics): Save
18347         warn_overlength_strings.
18348         (restore_extension_diagnostics): Restore warn_overlength_strings.
18349
18350 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
18351
18352         * BASE-VER: Change to 4.7.0.
18353
18354 2011-03-14  Richard Guenther  <rguenther@suse.de>
18355
18356         PR middle-end/48098
18357         * tree.c (build_vector_from_val): Adjust assert to requirements
18358         and reality.
18359
18360 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
18361
18362         PR bootstrap/48102
18363         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
18364
18365 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
18366
18367         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
18368         terms of target_flags_explicit. Adjust copyright year.
18369
18370         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
18371         * config/rs6000/t-freebsd: New file. Add override for
18372         LIB2FUNCS_EXTRA.
18373
18374 2011-03-13  Chris Demetriou  <cgd@google.com>
18375
18376         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
18377         (-fno-diagnostics-show-option): this, to reflect current default.
18378         (-Werror=): Update text about -fno-diagnostics-show-option.
18379
18380 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
18381
18382         PR target/48053
18383         * config/rs6000/predicates.md (easy_vector_constant_add_self,
18384         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
18385         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
18386         mode is not V2DImode or V2DFmode.
18387         (vspltis_constant): Do not handle V2DImode and V2DFmode.
18388         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
18389         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
18390         registers to 0.
18391         (movdi_internal64): Likewise.
18392
18393 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
18394
18395         PR tree-optimization/47127
18396         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
18397         parameter.
18398         (set_cloog_options): Same.
18399         (scop_to_clast): Same.
18400         (print_clast_stmt): Do not call cloog_state_malloc and
18401         cloog_state_free.
18402         (print_generated_program): Same.
18403         (gloog): Same.
18404         * graphite-clast-to-gimple.h (cloog_state): Declared.
18405         (scop_to_clast): Adjust declaration.
18406         * graphite.c (cloog_state): Defined here.
18407         (graphite_initialize): Call cloog_state_malloc.
18408         (graphite_finalize): Call cloog_state_free.
18409
18410 2011-03-11  Jason Merrill  <jason@redhat.com>
18411
18412         * attribs.c (lookup_attribute_spec): Take const_tree.
18413         * tree.h: Adjust.
18414
18415 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
18416
18417         * config/sparc/sparc.c (sparc_option_override): Use
18418         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
18419
18420 2011-03-11  Richard Guenther  <rguenther@suse.de>
18421
18422         PR tree-optimization/48067
18423         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
18424         multiplication result will be only used once on the target
18425         stmt.
18426
18427 2011-03-11  Richard Guenther  <rguenther@suse.de>
18428
18429         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
18430
18431 2011-03-11  Richard Guenther  <rguenther@suse.de>
18432
18433         PR lto/48073
18434         * tree.c (find_decls_types_r): Do not walk types only reachable
18435         from IDENTIFIER_NODEs.
18436
18437 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
18438
18439         PR middle-end/48044
18440         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
18441         all vnode->force_output nodes as needed.
18442
18443 2011-03-11  Jason Merrill  <jason@redhat.com>
18444
18445         PR c++/48069
18446         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
18447         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
18448
18449 2011-03-11  Martin Jambor  <mjambor@suse.cz>
18450
18451         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
18452         cgraph_node.
18453
18454 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
18455
18456         PR tree-optimization/48063
18457         * ipa-inline.c (cgraph_decide_inlining): Don't try to
18458         inline functions called once if !tree_can_inline_p (node->callers).
18459
18460 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
18461
18462         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
18463         extra_objs.
18464         * config/score/score3.c: Delete.
18465         * config/score/score3.h: Delete.
18466         * config/score/mul-div.S: Delete.
18467         * config/score/sfp-machine.h: Add new file.
18468         * config/score/constraints.md: Add new file.
18469         * config/score/t-score-softfp: Add new file.
18470         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
18471         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
18472         (score7_extra_constraint): Delete.
18473         (score7_option_override): Remove unused code.
18474         * config/score/score.c: Remove score3 and score5 define and code.
18475         * config/score/score.h: Remove score3 and score5 define and code.
18476         * config/score/score.md: Remove score3 template and unusual insn.
18477         * config/score/score.opt: Remove score3 and score5 options.
18478
18479 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18480
18481         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
18482         when _HPUX_SOURCE is defined.
18483         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
18484
18485 2011-03-10  Jason Merrill  <jason@redhat.com>
18486
18487         PR c++/48029
18488         * stor-layout.c (layout_type): Don't set structural equality
18489         on arrays of incomplete type.
18490         * tree.c (type_hash_eq): Handle comparing them properly.
18491
18492 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
18493
18494         PR debug/48043
18495         * config/s390/s390.c (s390_delegitimize_address): Make sure the
18496         result mode matches original rtl mode.
18497
18498 2011-03-10  Nick Clifton  <nickc@redhat.com>
18499
18500         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
18501         (andsi3, andsi3_flags): Fix timings for three operand alternative.
18502
18503 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
18504
18505         PR rtl-optimization/47866
18506         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
18507         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
18508         if target wasn't scalar.
18509         * function.c (assign_stack_temp_for_type): Assert that neither
18510         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
18511         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
18512         macro.
18513         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
18514
18515 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18516
18517         * config/s390/s390-protos.h (s390_label_align): New prototype.
18518         * config/s390/s390.c (s390_label_align): New function.
18519         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
18520
18521 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
18522
18523         PR target/47755
18524         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
18525         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
18526         (output_vec_const_move): Ditto.
18527
18528 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
18529
18530         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
18531         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
18532         * config/mips/mips.c (mips_preferred_reload_class): Make static.
18533         Change 'rclass' argument and result type to reg_class_t.
18534         (TARGET_PREFERRED_RELOAD_CLASS): Define.
18535
18536 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
18537
18538         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
18539         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
18540         (TARGET_MEMORY_MOVE_COST): Define.
18541         (avr_register_move_cost, avr_memory_move_cost): New Functions.
18542
18543 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
18544
18545         PR debug/47881
18546         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
18547         removed anything.
18548
18549         PR tree-optimization/48022
18550         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
18551         for EQ/NE_EXPR.
18552
18553 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
18554
18555         PR debug/47991
18556         * var-tracking.c (find_use_val): Return NULL for
18557         cui->sets && cui->store_p BLKmode MEMs.
18558
18559 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
18560
18561         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
18562         Remove.
18563         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
18564         xstormy16_print_operand_address): Remove.
18565         * config/stormy16/stormy16.c (xstormy16_print_operand,
18566         xstormy16_print_operand_address): Make static.
18567         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
18568
18569 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
18570
18571         PR target/47862
18572         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
18573         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
18574         before definition.
18575
18576 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
18577
18578         PR bootstrap/48000
18579         * cfgloopmanip.c (fix_bb_placements): Return immediately
18580         if FROM is BASE_LOOP's header.
18581
18582 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
18583
18584         * gimplify.c (gimplify_function_tree): Fix building calls
18585         to __builtin_return_address.
18586
18587 2011-03-07  Alan Modra  <amodra@gmail.com>
18588
18589         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
18590         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
18591         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
18592         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
18593         return_mode args.
18594         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
18595         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
18596         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
18597         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
18598         * config/rs6000/rs6000.c
18599         (rs6000_elf_end_indicate_exec_stack): Rename to..
18600         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
18601         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
18602         (rs6000_file_start): ..here.
18603         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
18604         file scope variables.
18605         (call_ABI_of_interest): New function.
18606         (init_cumulative_args): Set above vars when function return value
18607         is a float, vector, or small struct.
18608         (rs6000_function_arg_advance_1): Likewise for function args.
18609         (rs6000_va_start): Set rs6000_passes_float if variable arg function
18610         references float args.
18611
18612 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
18613
18614         * doc/cfg.texi: Remove "See" before @ref.
18615         * doc/invoke.texi: Likewise.
18616
18617 2011-03-05  Jason Merrill  <jason@redhat.com>
18618
18619         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
18620
18621 2011-03-05  Anthony Green  <green@moxielogic.com>
18622
18623         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
18624
18625 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
18626
18627         PR rtl-optimization/47899
18628         * cfgloopmanip.c (fix_bb_placements): Fix first argument
18629         to flow_loop_nested_p when moving the loop upward.
18630
18631 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
18632
18633         PR target/47719
18634         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
18635
18636 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
18637
18638         PR tree-optimization/47967
18639         * ipa-cp.c (build_const_val): Return NULL instead of creating
18640         VIEW_CONVERT_EXPR for mismatching sizes.
18641         (ipcp_create_replace_map): Return NULL if build_const_val failed.
18642         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
18643         give up on versioning.
18644
18645 2011-03-05  Alan Modra  <amodra@gmail.com>
18646
18647         PR target/47986
18648         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
18649         full cmodel medium/large lo_sum + high addresses.
18650
18651 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18652
18653         * config/s390/s390.c (s390_decompose_address): Reject non-literal
18654         pool references in UNSPEC_LTREL_OFFSET.
18655
18656 2011-03-04  Jan Hubicka  <jh@suse.cz>
18657
18658         PR lto/47497
18659         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
18660         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
18661         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
18662         Add node pointers.
18663         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
18664         cgraph_add_thunk): Add node pointers.
18665         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
18666         associated to right node.
18667         (input_node): Update use of cgraph_same_body_alias
18668         and cgraph_add_thunk.
18669
18670 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
18671
18672         * config/i386/i386.opt (mprefer-avx128): New flag.
18673         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
18674         modes when the flag -mprefer-avx128 is on.
18675
18676 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
18677
18678         * dwarf2out.c (compare_loc_operands): Fix address handling.
18679
18680 2011-03-04  Alan Modra  <amodra@gmail.com>
18681
18682         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
18683
18684 2011-03-04  Richard Guenther  <rguenther@suse.de>
18685
18686         PR middle-end/47968
18687         * expmed.c (extract_bit_field_1): Prefer vector modes that
18688         vec_extract patterns can handle.
18689
18690 2011-03-04  Richard Guenther  <rguenther@suse.de>
18691
18692         PR middle-end/47975
18693         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
18694
18695 2011-03-04  Richard Henderson  <rth@redhat.com>
18696
18697         * explow.c (emit_stack_save): Remove 'after' parameter.
18698         (emit_stack_restore): Likewise.
18699         * expr.h: Update to match.
18700         * builtins.c, calls.c, stmt.c: Likewise.
18701         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
18702         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
18703         * function.c (expand_function_end): Insert the emit_stack_save
18704         sequence before parm_birth_insn instead of after.
18705
18706 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
18707
18708         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
18709         (ssse3_pmaddubsw128): Ditto.
18710         (ssse3_pmaddubsw): Ditto.
18711
18712 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
18713
18714         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
18715
18716 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
18717
18718         PR c/47963
18719         * gimplify.c (omp_add_variable): Only call omp_notice_variable
18720         on TYPE_SIZE_UNIT if it is a DECL.
18721
18722         PR debug/47283
18723         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
18724         first operand is not is_gimple_mem_ref_addr, try to fold it.
18725         If the operand still isn't is_gimple_mem_ref_addr, clear
18726         MEM_EXPR on op0.
18727
18728 2011-03-03  Richard Guenther  <rguenther@suse.de>
18729
18730         PR middle-end/47283
18731         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
18732         match comment.
18733         (refs_may_alias_p_1): For release branches return true if
18734         we are confused by our input.
18735
18736 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18737
18738         * config/s390/s390.c (s390_function_value): Rename to ...
18739         (s390_function_and_libcall_value): ... this.
18740         (s390_function_value): New function.
18741         (s390_libcall_value): New function.
18742         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
18743         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
18744         target macro definitions.
18745         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
18746
18747 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
18748
18749         * config/i386/freebsd64.h (CC1_SPEC): Define.
18750         * config/i386/linux64.h (CC1_SPEC): Define.
18751         * config/i386/x86-64.h (CC1_SPEC): Don't define.
18752
18753 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
18754
18755         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
18756         Remove.
18757         * config/stormy16/stormy16.c: Include reload.h.
18758         (xstormy16_memory_move_cost): New function.
18759         (TARGET_MEMORY_MOVE_COST): Define.
18760
18761 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
18762
18763         PR rtl-optimization/47925
18764         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
18765         with side effects.  Remove the more-specific check for volatile asms.
18766
18767 2011-03-02  Alan Modra  <amodra@gmail.com>
18768
18769         PR target/47935
18770         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
18771         toc relative addresses for valid offsets.
18772
18773 2011-03-01  Richard Guenther  <rguenther@suse.de>
18774
18775         PR tree-optimization/47890
18776         * tree-vect-loop.c (get_initial_def_for_induction): Set
18777         related stmt properly.
18778
18779 2011-03-01  Richard Guenther  <rguenther@suse.de>
18780
18781         PR lto/47924
18782         * lto-streamer.c (lto_record_common_node): Also register
18783         the canonical type.
18784
18785 2011-03-01  Richard Guenther  <rguenther@suse.de>
18786
18787         PR lto/46911
18788         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
18789         Do not stream DECL_ABSTRACT_ORIGIN.
18790         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
18791         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
18792         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
18793         Do not stream DECL_ABSTRACT_ORIGIN.
18794         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
18795         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
18796
18797 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
18798
18799         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
18800         FUNCTION_VALUE_REGNO_P): Remove.
18801         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
18802         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
18803         Add 'outgoing' argument.
18804         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
18805         function.
18806         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18807         TARGET_FUNCTION_VALUE_REGNO_P): Define.
18808
18809 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
18810
18811         PR debug/28047
18812         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
18813         (lookup_filename): Likewise.
18814         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
18815
18816 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
18817             Jakub Jelinek  <jakub@redhat.com>
18818
18819         PR middle-end/47893
18820         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
18821         (assign_stack_local_1): Change last argument type to int.
18822         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
18823         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
18824         don't record padding space into frame_space_list nor use those areas.
18825         (assign_stack_local): Adjust caller.
18826         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
18827         of assign_stack_local, pass 0 as last argument.
18828         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
18829         callers.
18830
18831 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
18832
18833         PR debug/47283
18834         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
18835         Use target address_mode and pointer_mode hooks instead of hardcoded
18836         Pmode and ptr_mode.  Handle some simple cases of extending if
18837         POINTERS_EXTEND_UNSIGNED < 0.
18838         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
18839         Call convert_debug_memory_address.
18840         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
18841         convert_debug_memory_address.
18842
18843         PR middle-end/46790
18844         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
18845         * configure: Regenerated.
18846         * config.in: Regenerated.
18847         * varasm.c (default_function_section): Return NULL
18848         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
18849
18850 2011-02-28  Martin Jambor  <mjambor@suse.cz>
18851
18852         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
18853         the description to match the printed values.
18854
18855 2011-02-28  Richard Guenther  <rguenther@suse.de>
18856
18857         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
18858         of the copied scope tree.
18859
18860 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18861
18862         * doc/extend.texi (Function Attributes): Avoid deeply (and
18863         wrongly) nested tables.
18864
18865 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
18866
18867         PR middle-end/47903
18868         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
18869         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
18870         r isn't op0 nor op1.
18871
18872 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
18873
18874         * config/avr/avr.md: Remove magic comment for emacs.
18875
18876 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
18877
18878         PR target/45261
18879         * config/avr/avr.c (avr_option_override): Use error on bad options.
18880         (avr_help): New function.
18881         (TARGET_HELP): Define.
18882
18883 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
18884
18885         PR target/42240
18886         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
18887         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
18888
18889 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
18890
18891         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
18892         (ARM Options): Ditto.
18893         (i386 and x86-64 Options): Ditto.
18894         (RX Options): Ditto.
18895         (SPARC Options): Ditto.
18896
18897 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
18898
18899         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
18900         FreeBSD 6 and later.  Generally use cpu generic.
18901
18902 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
18903
18904         * doc/cpp.texi: Update copyright years.
18905
18906 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
18907
18908         PR target/46898
18909         * config/lm32/lm32.md (ashrsi3): Added needed variable.
18910
18911 2011-02-25  Jon Beniston  <jon@beniston.com>
18912
18913         PR target/46898
18914         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
18915         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
18916         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
18917         (lm32_block_move_inline): Add type cast to remove warning.
18918         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
18919         (gen_int_relational): Move declarations to start of function.
18920
18921 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
18922
18923         PR tree-optimization/45470
18924         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
18925         can throw internally only.
18926         * tree-vect-stmts.c (vectorizable_call): Likewise.
18927
18928 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
18929
18930         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
18931         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
18932         * config/stormy16/stormy16-protos.h
18933         (xstormy16_preferred_reload_class): Remove.
18934         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
18935         static. Change 'rclass' argument and return type to reg_class_t.
18936         (TARGET_PREFERRED_RELOAD_CLASS,
18937         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
18938
18939 2011-02-24  Richard Guenther  <rguenther@suse.de>
18940
18941         * lto-streamer-in.c (input_bb): Do not find referenced vars
18942         in debug statements.
18943
18944 2011-02-23  Jason Merrill  <jason@redhat.com>
18945
18946         * common.opt (fabi-version): Document v5 and v6.
18947
18948 2011-02-23  Richard Guenther  <rguenther@suse.de>
18949
18950         PR tree-optimization/47849
18951         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
18952
18953 2011-02-23  Jie Zhang  <jie@codesourcery.com>
18954
18955         * opts-common.c (decode_cmdline_option): Print empty string
18956         argument as "" in decoded->orig_option_with_args_text.
18957         * gcc.c (execute): Print empty string argument as ""
18958         in the verbose output.
18959         (do_spec_1): Keep empty string argument.
18960
18961 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
18962
18963         * config.gcc: Declare score-* and crx-* obsolete.
18964
18965 2011-02-23  Jie Zhang  <jie@codesourcery.com>
18966
18967         PR rtl-optimization/47763
18968         * web.c (web_main): Ignore naked clobber when replacing register.
18969
18970 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
18971
18972         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
18973         Remove.
18974
18975 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
18976
18977         PR doc/47848
18978         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
18979
18980 2011-02-22  Mike Stump  <mikestump@comcast.net>
18981
18982         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
18983         assembler.
18984         * configure: Regenerate.
18985
18986 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
18987
18988         PR rtl-optimization/46002
18989         * ira-color.c (update_copy_costs): Change class intersection
18990         test to reg_class_contents[] test of 'hard_regno'.
18991
18992 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
18993
18994         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
18995         than Driver option.
18996         * config/hpux11.opt (mt): Likewise.
18997         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
18998         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
18999         * config/vax/elf.opt (mno-asm-pic): Likewise.
19000         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
19001
19002 2011-02-21  Mike Stump  <mikestump@comcast.net>
19003
19004         PR target/47822
19005         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
19006         tree so we can get save the type.
19007         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
19008         for CFString instead of trying to use past the end of the builtins.
19009         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
19010         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
19011         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
19012         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
19013         Rename to darwin_builtin_cfstring.
19014         (darwin_init_cfstring_builtins): Return the built type.
19015
19016 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
19017
19018         PR target/47840
19019         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
19020         (_mm256_insert_epi64): Use _mm_insert_epi64.
19021
19022 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
19023
19024         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
19025         * config/stormy16/stormy16-protos.h
19026         (xstormy16_mode_dependent_address_p): Remove.
19027         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
19028         Make static. Change return type to bool. Change argument type to
19029         const_rtx. Remove dead code.
19030         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19031
19032 2011-02-21  Richard Guenther  <rguenther@suse.de>
19033
19034         PR lto/47820
19035         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
19036         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
19037         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
19038         TUs context.
19039         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
19040         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
19041
19042 2011-02-20  Richard Guenther  <rguenther@suse.de>
19043
19044         PR lto/47822
19045         * tree.c (free_lang_data_in_decl): Clean builtins from
19046         the TU decl BLOCK_VARS.
19047
19048 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
19049
19050         PR debug/47620
19051         PR debug/47630
19052         * haifa-sched.c (fix_tick_ready): Skip tick computation
19053         for debug insns.
19054
19055 2011-02-19  Richard Guenther  <rguenther@suse.de>
19056
19057         PR lto/47647
19058         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
19059         Remove lazy BLOCK_VARS streaming.
19060         (lto_input_ts_block_tree_pointers): Likewise.
19061         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
19062
19063 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
19064
19065         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
19066
19067 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
19068
19069         * config/i386/biarch32.h, config/i386/mach.h,
19070         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
19071
19072 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
19073
19074         PR target/47800
19075         * config/i386/i386.md (peephole2 for shift and plus): Use
19076         operands[1] original mode in the first insn.
19077
19078 2011-02-18  Mike Stump  <mikestump@comcast.net>
19079
19080         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
19081
19082 2011-02-18  Jan Hubicka  <jh@suse.cz>
19083
19084         PR middle-end/47788
19085         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
19086         to zero when the function is not inlinable at all.
19087
19088 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19089
19090         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
19091         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
19092         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
19093         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
19094         * config/pa/t-pa64: Likewise.
19095         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
19096
19097 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
19098
19099         PR driver/47787
19100         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
19101
19102 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19103
19104         PR target/47792
19105         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
19106
19107 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
19108
19109         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
19110         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
19111         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
19112         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
19113         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
19114         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
19115         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
19116         m32r_load_postinc_p, m32r_store_preinc_predec_p,
19117         m32r_legitimate_address_p): New functions.
19118         * config/m32r/constraints.md (constraint "S"): Don't use
19119         STORE_PREINC_PREDEC_P.
19120         (constraint "U"): Don't use LOAD_POSTINC_P.
19121
19122 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
19123
19124         PR rtl-optimization/46178
19125         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
19126         compute ira_hard_regno_cover_class[].
19127
19128 2011-02-18  Richard Guenther  <rguenther@suse.de>
19129
19130         PR lto/47798
19131         * lto-streamer.h (lto_global_var_decls): Declare.
19132         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
19133         statics for global var processing.
19134
19135 2011-02-18  Richard Guenther  <rguenther@suse.de>
19136
19137         PR tree-optimization/47737
19138         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
19139         edge dominance check.
19140
19141 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
19142
19143         PR debug/47780
19144         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
19145         avoid invalid rtx sharing.
19146
19147 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
19148
19149         * doc/cpp.texi (Obsolete Features): Add background on the
19150         origin of assertions.
19151
19152 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
19153
19154         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
19155         objc_abi == 2.
19156         * config/darwin.c (output_objc_section_asm_op): Added support for
19157         ABI v1 and v2.
19158         (is_objc_metadata): New.
19159         (darwin_objc2_section): New.
19160         (darwin_objc1_section): New.
19161         (machopic_select_section): Added support for ABI v1 and v2.
19162         (darwin_emit_objc_zeroed): New.
19163         (darwin_output_aligned_bss): Detect objc metadata and treat it
19164         appropriately.
19165         (darwin_asm_output_aligned_decl_common): Same.
19166         (darwin_asm_output_aligned_decl_local): Same.
19167         * config/darwin-sections.def: Updated for ABI v1 and v2.
19168         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
19169         compiling Objective-C code for the NeXT runtime, default to using
19170         ABI version 0 for 32-bit, and version 2 for 64-bit.
19171
19172 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19173
19174         * common.opt (optimize_fast): New Variable.
19175         * opts.c (default_options_optimization): Use opts->x_optimize_fast
19176         instead of local variable ofast.
19177
19178 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
19179
19180         * doc/invoke.texi (fobjc-abi-version): Documented.
19181         (fobjc-nilcheck): Documented.
19182         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
19183         version.
19184
19185 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19186
19187         PR driver/47390
19188         * common.opt (export-dynamic): New Driver option.
19189         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
19190
19191 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19192
19193         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
19194
19195 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
19196             Jan Hubicka  <jh@suse.cz>
19197
19198         PR debug/47106
19199         PR debug/47402
19200         * cfgexpand.c (account_used_vars_for_block): Remove.
19201         (estimated_stack_frame_size): Use referenced vars.
19202         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
19203         that were referenced in the original function.  Test src_fn
19204         rather than cfun.  Drop redundant get_var_ann.
19205         (setup_one_parameter): Drop redundant get_var_ann.
19206         (declare_return_variable): Likewise.
19207         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
19208         (copy_arguments_for_versioning): Drop redundant get_var_ann.
19209         * ipa-inline.c (compute_inline_parameters): Do not compute
19210         disregard_inline_limits here.
19211         (compute_inlinable_for_current, pass_inlinable): New.
19212         (pass_inline_parameters): Require PROP_referenced_vars.
19213         * cgraphunit.c (cgraph_process_new_functions): Don't run
19214         compute_inline_parameters explicitly unless function is in SSA form.
19215         (cgraph_analyze_function): Set .disregard_inline_limits.
19216         * tree-sra.c (convert_callers): Compute inliner parameters
19217         only for functions already in SSA form.
19218
19219 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19220
19221         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
19222         -mlittle-endian-data.
19223
19224 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19225
19226         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
19227         -mno-fpu, not -fpu and -no-fpu.
19228         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
19229         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
19230
19231 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
19232
19233         PR target/43653
19234         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
19235         input reload with PLUS RTX.
19236
19237 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19238
19239         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
19240         of InverseVar(MDMX).
19241
19242 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19243
19244         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
19245         --m4-340.
19246
19247 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19248
19249         * config/mn10300/mn10300.opt (mno-crt0): New.
19250
19251 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19252
19253         * config/m68k/uclinux.opt (static-libc): New Driver option.
19254
19255 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19256
19257         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
19258
19259 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19260
19261         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
19262         %{muser-extend-enabled}.
19263
19264 2011-02-16  Richard Guenther  <rguenther@suse.de>
19265
19266         PR tree-optimization/47738
19267         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
19268         the TODO from tree_predictive_commoning.
19269
19270 2011-02-15  Jeff Law  <law@redhat.com>
19271
19272         Revert
19273         2011-01-25  Jeff Law  <law@redhat.com>
19274
19275         PR rtl-optimization/37273
19276         * ira-costs.c (scan_one_insn): Detect constants living in memory and
19277         handle them like argument loads from stack slots.  Do not double
19278         count memory for memory constants and argument loads from stack slots.
19279
19280 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
19281
19282         PR middle-end/47725
19283         * combine.c (cant_combine_insn_p): Revert the last change.
19284
19285 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
19286
19287         PR target/47755
19288         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
19289         mode for vector constants.  Remove code that checks for TImode.
19290
19291 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
19292
19293         PR debug/47106
19294         PR debug/47402
19295         * cgraph.h (compute_inline_parameters): Return void.
19296         * ipa-inline.c (compute_inline_parameters): Adjust.
19297
19298 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
19299
19300         PR debug/47106
19301         PR debug/47402
19302         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
19303         rather than decl.
19304         * cfgexpand.c (estimated_stack_frame_size): Likewise.
19305         * ipa-inline.c (compute_inline_parameters): Adjust.
19306
19307 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
19308
19309         PR debug/47106
19310         PR debug/47402
19311         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
19312         Adjust all users.  Pass FN to...
19313         * tree-flow-inline.h (first_referenced_var): ... this.  Add
19314         fn argument.
19315         * ipa-struct-reorg.c: Adjust.
19316         * tree-dfa.c: Adjust.
19317         * tree-into-ssa.c: Adjust.
19318         * tree-sra.c: Adjust.
19319         * tree-ssa-alias.c: Adjust.
19320         * tree-ssa-live.c: Adjust.
19321         * tree-ssa.c: Adjust.
19322         * tree-ssanames.c: Adjust.
19323         * tree-tailcall.c: Adjust.
19324
19325 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
19326
19327         PR debug/47106
19328         PR debug/47402
19329         * tree-flow.h (referenced_var_lookup): Add fn parameter.
19330         Adjust all callers.
19331         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
19332         * tree-flow-inline.h: Adjust.
19333         * gimple-pretty-print.c: Adjust.
19334         * tree-into-ssa.c: Adjust.
19335         * tree-ssa.c: Adjust.
19336         * cfgexpand.c: Adjust.
19337
19338 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
19339
19340         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
19341         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19342         (EXTRA_CONSTRAINT): Delete.
19343         * config/iq2000/constraints.md: New file.
19344         * config/iq2000/iq2000.md: Include it.
19345         (define_insn ""): Delete.
19346         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
19347         unsupported constraint letters from patterns.
19348         (call_value, call_value_internal1): Likewise.
19349         (call_value_multiple_internal1): Likewise.
19350
19351 2011-02-15  Nick Clifton  <nickc@redhat.com>
19352
19353         * config/mn10300/mn10300.c: Include tm-constrs.h.
19354         (struct liw_data): New data structure describing an LIW candidate
19355         instruction.
19356         (extract_bundle): Use struct liw_data.  Allow small integer
19357         operands for some instructions.
19358         (check_liw_constraints): Use struct liw_data.  Remove swapped
19359         parameter.  Add comments describing the checks.  Fix bug when
19360         assigning the source of liw1 to the source of liw2.
19361         (liw_candidate): Delete.  Code moved into extract_bundle.
19362         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
19363         before swapping.
19364         * config/mn10300/predicates.md (liw_operand): New predicate.
19365         Allows registers and small integer constants.
19366         * config/mn10300/constraints.md (O): New constraint.  Accetps
19367         integers in the range -8 to +7 inclusive.
19368         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
19369         for moving a small integer into a register.  Give this alternative
19370         LIW attributes.
19371         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
19372         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
19373         using the J,K,L and M constraints,
19374         (liw): Remove SI mode on second operands to allow for HI and QI
19375         mode values.
19376         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
19377         instruction.
19378
19379 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
19380
19381         PR middle-end/47725
19382         * combine.c (cant_combine_insn_p): Check zero/sign extended
19383         hard registers.
19384
19385 2011-02-15  Richard Guenther  <rguenther@suse.de>
19386
19387         PR tree-optimization/47743
19388         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
19389         for a non-type-compatible VN lookup bail out.
19390
19391 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
19392
19393         * config/fr30/constraints.md: New file.
19394         * config/fr30/fr30.md: Include it.
19395         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
19396         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19397         (EXTRA_CONSTRAINT): Delete.
19398
19399 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
19400
19401         * config/frv/constraints.md: New file.
19402         * config/frv/predicates.md: Include it.
19403         * config/frv/frv.c (reg_class_from_letter): Delete.
19404         (frv_option_override): Don't initialize it.
19405         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
19406         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
19407         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
19408         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
19409         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
19410         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19411         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
19412         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
19413         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
19414         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
19415         (REG_CLASS_FROM_CONSTRAINT): Delete.
19416
19417 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
19418
19419         PR middle-end/47581
19420         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
19421         if frame size is 0 in a leaf function.
19422
19423 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19424
19425         PR pch/14940
19426         * config/alpha/host-osf.c: New file.
19427         * config/alpha/x-osf: New file.
19428         * config.host (alpha*-dec-osf*): Use it.
19429
19430 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
19431
19432         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
19433         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
19434         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
19435         (rx_mode_dependent_address_p): ...this. Make static. Change argument
19436         type to const_rtx.
19437         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19438
19439 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
19440
19441         * config/stormy16/constraints.md: New file.
19442         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
19443         Use satisfies_constraint_Q and satisfies_constraint_R.
19444         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
19445         Delete.
19446         (xstormy16_legitiamte_address_p): Declare.
19447         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
19448         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19449         (EXTRA_CONSTRAINT): Delete.
19450         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
19451         Un-staticize.
19452         (xstormy16_extra_constraint_p): Delete.
19453
19454 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
19455
19456         PR tree-optimization/46494
19457         * loop-unroll.c (split_edge_and_insert): Adjust comment.
19458         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
19459         (pass_rtl_loop_done): Add TODO_verify_flow.
19460         * fwprop.c (pass_rtl_fwprop): Likewise.
19461         * modulo-sched.c (pass_sms): Likewise.
19462         * tree-ssa-dom.c (pass_dominator): Likewise.
19463         * tree-ssa-loop-ch.c (pass_ch): Likewise.
19464         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
19465         (pass_tree_loop_done): Likewise.
19466         * tree-ssa-pre.c (execute_pre): Likewise.
19467         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
19468         * tree-ssa-sink.c (pass_sink_code): Likewise.
19469         * tree-vrp.c (pass_vrp): Likewise.
19470
19471 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
19472
19473         * config/v850/constraints.md: New file.
19474         * config/v850/v850.md: Include it.
19475         * config/v850/predicates.md (reg_or_0_operand): Use
19476         satisfies_constraint_G.
19477         (special_symbolref_operand): Use satisfies_constraint_K.
19478         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
19479         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
19480         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
19481         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
19482         (EXTRA_CONSTRAINT): Delete.
19483         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
19484         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
19485         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
19486
19487 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
19488
19489         PR target/47696
19490         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
19491         description.
19492
19493 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
19494
19495         * config/mcore/constraints.md: New file.
19496         * config/mcore/mcore.md: Include it.
19497         * config/mcore/mcore.c (reg_class_from_letter): Delete.
19498         * config/mcore/mcore.h (reg_class_from_letter): Delete.
19499         (REG_CLASS_FROM_LETTER): Delete.
19500         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
19501         insn_const_int_ok_for_constraint.
19502         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
19503         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
19504         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19505         (EXTRA_CONSTRAINT): Delete.
19506
19507 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19508
19509         PR ada/41929
19510         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
19511         (IS_SIGHANDLER): Define.
19512         (sparc64_is_sighandler): New function, split off from
19513         sparc64_fallback_frame_state.
19514         (sparc_is_sighandler): New function, split off from
19515         sparc_fallback_frame_state.
19516         (sparc64_fallback_frame_state): Merge with ...
19517         (sparc_fallback_frame_state): ... this into ...
19518         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
19519         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
19520         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
19521         stack instead of hardcoded offsets.
19522
19523 2011-02-14  Andriy Gapon  <avg@freebsd.org>
19524
19525         PR target/45808
19526         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
19527
19528 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19529
19530         * configure: Regenerate.
19531
19532 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
19533
19534         PR driver/45731
19535         * gcc.c (asm_options): Correct spec matching --target-help.
19536
19537 2011-02-12  Martin Jambor  <mjambor@suse.cz>
19538
19539         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
19540         to gimple call error.
19541
19542 2011-02-12  Mike Stump  <mikestump@comcast.net>
19543
19544         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
19545         comments in backslash regions.
19546
19547 2011-02-12  Mike Stump  <mikestump@comcast.net>
19548             Jakub Jelinek  <jakub@redhat.com>
19549             Iain Sandoe  <iains@gcc.gnu.org>
19550
19551         PR target/47324
19552         * dwarf2out.c (output_cfa_loc): When required, apply the
19553         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
19554         (output_loc_sequence): Likewise.
19555         (output_loc_operands_raw): Likewise.
19556         (output_loc_sequence_raw): Likewise.
19557         (output_cfa_loc): Likewise.
19558         (output_loc_list): Suppress register number adjustment when
19559         calling output_loc_sequence()
19560         (output_die): Likewise.
19561
19562 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
19563
19564         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19565         Remove macros.
19566         * config/xtensa/xtensa.c (xtensa_register_move_cost,
19567         xtensa_memory_move_cost): New functions.
19568         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
19569
19570 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
19571
19572         PR lto/47225
19573         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
19574         in the current directory.
19575         * configure: Rebuilt.
19576
19577 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
19578
19579         * config/darwin.c (darwin_override_options): Add a hunk missed
19580         from the commit of r168571.  Trim comment line lengths and
19581         correct indents of the preceding block.
19582
19583 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
19584
19585         * gcc.c (driver_handle_option): Concatenate the argument to -F with
19586         the switch.
19587
19588 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
19589
19590         * common.opt (nostartfiles): New Driver option.
19591
19592 2011-02-11  Xinliang David Li  <davidxl@google.com>
19593
19594         PR tree-optimization/47707
19595         * tree-chrec.c (convert_affine_scev): Keep type precision.
19596
19597 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
19598
19599         PR tree-optimization/47420
19600         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
19601
19602 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
19603
19604         PR rtl-optimization/47614
19605         * rtl.h (check_for_inc_dec): Declare.
19606         * dse.c (check_for_inc_dec): Externalize...
19607         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
19608         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
19609
19610 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
19611
19612         PR driver/47678
19613         * gcc.c (main): Do not compile inputs if there were errors in
19614         option handling.
19615         * opts-common.c (read_cmdline_option): Check for wrong language
19616         after other error checks.
19617
19618 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
19619
19620         * cgraph.c: Fix comment typos.
19621         * cgraph.h: Likewise.
19622         * cgraphunit.c: Likewise.
19623         * ipa-cp.c: Likewise.
19624         * ipa-inline.c: Likewise.
19625         * ipa-prop.c: Likewise.
19626         * ipa-pure-const.c: Likewise.
19627         * ipa-ref.c: Likewise.
19628         * ipa-reference.c: Likewise.
19629
19630 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
19631
19632         PR debug/47684
19633         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
19634
19635 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19636
19637         PR testsuite/47400
19638         * doc/sourcebuild.texi (Require Support): Document
19639         dg-require-ascii-locale.
19640
19641 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
19642
19643         * doc/lto.texi (Write summary): Fix missing parentheses.
19644
19645 2011-02-10  DJ Delorie  <dj@redhat.com>
19646
19647         * config/m32c/m32c.c (m32c_option_override): Disable
19648         -fcombine-stack-adjustments until flag value tracking and compare
19649         optimization can be rewritten.
19650
19651 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
19652
19653         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
19654         PROCESSOR_POWER7.
19655         (PROCESSOR_DEFAULT64): Likewise.
19656
19657 2011-02-10  Richard Henderson  <rth@redhat.com>
19658
19659         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
19660         change from 2011-02-03.
19661         * config/rx/rx.c (flags_from_code): Likewise.
19662         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
19663         is valid, n/pz otherwise.
19664         (rx_select_cc_mode): Return CCmode if Y is not zero.
19665
19666 2011-02-10  Richard Guenther  <rguenther@suse.de>
19667
19668         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
19669
19670 2011-02-10  Richard Guenther  <rguenther@suse.de>
19671
19672         PR tree-optimization/47677
19673         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
19674
19675 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
19676
19677         PR target/47665
19678         * combine.c (make_compound_operation): Only change shifts into
19679         multiplication for SCALAR_INT_MODE_P.
19680
19681 2011-02-10  Jie Zhang  <jie@codesourcery.com>
19682
19683         PR testsuite/47622
19684         Revert
19685         2011-02-05  Jie Zhang  <jie@codesourcery.com>
19686         PR debug/42631
19687         * web.c (entry_register): Don't clobber the number of the
19688         first uninitialized reference in used[].
19689
19690 2011-02-09  Richard Guenther  <rguenther@suse.de>
19691
19692         PR tree-optimization/47664
19693         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
19694         all edges again.
19695
19696 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
19697
19698         PR target/46481
19699         PR target/47032
19700         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
19701         PROCESSOR_POWER7.
19702         (PROCESSOR_DEFAULT64): Same.
19703         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
19704
19705 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19706
19707         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
19708
19709 2011-02-09  Martin Jambor  <mjambor@suse.cz>
19710
19711         PR middle-end/45505
19712         * tree-sra.c (struct access): New flags grp_scalar_read and
19713         grp_scalar_write.  Changed description of assignment read and write
19714         flags.
19715         (dump_access): Dump new flags, reorder all of them.
19716         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
19717         to detect multiple scalar reads.
19718         (analyze_access_subtree): Use the new scalar read write flags instead
19719         of the old flags.  Adjusted comments.
19720
19721 2011-02-08  DJ Delorie  <dj@redhat.com>
19722
19723         PR target/47548
19724         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
19725         patterns.
19726
19727 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19728
19729         * config/m68k/uclinux.opt: New.
19730         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
19731
19732 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19733
19734         * config/cris/elf.opt (sim): New Driver option.
19735
19736 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19737
19738         * config/xtensa/elf.opt: New.
19739         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
19740
19741 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19742
19743         * config/vax/elf.opt: New.
19744         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
19745
19746 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19747
19748         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
19749
19750 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19751
19752         * config/gnu-user.opt: New.
19753         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
19754         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
19755         *-*-uclinux*): Use gnu-user.opt.
19756
19757 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
19758
19759         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
19760         * config/i386/gnu.h (CPP_SPEC): Likewise.
19761
19762 2011-02-08  Ian Lance Taylor  <iant@google.com>
19763
19764         * common.opt (fcx-limited-range): Add SetByCombined flag.
19765         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
19766         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
19767         (fassociative-math, freciprocal-math): Likewise.
19768         (funsafe-math-optimizations): Likewise.
19769         * opth-gen.awk: Handle SetByCombined.
19770         * optc-gen.awk: Likewise.
19771         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
19772         (set_unsafe_math_optimizations_flags): Likewise.
19773         * doc/options.texi (Option properties): Document SetByCombined.
19774
19775 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19776
19777         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
19778         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
19779         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
19780         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
19781         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
19782
19783 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
19784
19785         PR tree-optimization/46834
19786         PR tree-optimization/46994
19787         PR tree-optimization/46995
19788         * graphite-sese-to-poly.c (used_outside_reduction): New.
19789         (detect_commutative_reduction): Call used_outside_reduction.
19790         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
19791         translate_scalar_reduction_to_array only when at least one
19792         loop-phi/close-phi tuple has been detected.
19793
19794 2011-02-08  Richard Guenther  <rguenther@suse.de>
19795
19796         PR middle-end/47639
19797         * tree-vect-generic.c (expand_vector_operations_1): Update
19798         stmts here ...
19799         (expand_vector_operations): ... not here.  Cleanup EH info
19800         and the CFG if required.
19801
19802 2011-02-08  Richard Guenther  <rguenther@suse.de>
19803
19804         PR tree-optimization/47641
19805         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
19806         require type compatibility.
19807
19808 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19809
19810         * gimple-low.c (lower_function_body): Don't remove the location of
19811         the return statement here.
19812         (lower_gimple_return): Do it here instead but only if the return
19813         statement is actually used twice.
19814
19815 2011-02-08  Richard Guenther  <rguenther@suse.de>
19816
19817         PR tree-optimization/47632
19818         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
19819         unused up_to_stmt parameter, return whether cfg-cleanup is
19820         necessary, remove EH info properly.
19821         (forward_propagate_into_gimple_cond): Adjust caller.
19822         (forward_propagate_into_cond): Likewise.
19823         (forward_propagate_comparison): Likewise.
19824         (tree_ssa_forward_propagate_single_use_vars): Make
19825         forward_propagate_comparison case similar to the two others.
19826
19827 2011-02-08  Nick Clifton  <nickc@redhat.com>
19828
19829         * config/mn10300/mn10300.opt (mliw): New command line option.
19830         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
19831         (liw_bundling): New automaton.
19832         (liw): New attribute.
19833         (liw_op): New attribute.
19834         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
19835         (movsi_internal): Add LIW attributes.
19836         (andsi3): Likewise.
19837         (iorsi3): Likewise.
19838         (xorsi3): Likewise.
19839         (addsi3): Separate register and immediate alternatives.
19840         Add LIW attributes.
19841         (subsi3): Likewise.
19842         (cmpsi): Likewise.
19843         (aslsi3): Likewise.
19844         (lshrsi3): Likewise.
19845         (ashrsi3): Likewise.
19846         (liw): New pattern.
19847         * config/mn10300/mn10300.c (liw_op_names): New
19848         (mn10300_print_operand): Handle 'W' operand descriptor.
19849         (extract_bundle): New function.
19850         (check_liw_constraints): New function.
19851         (liw_candidate): New function.
19852         (mn10300_bundle_liw): New function.
19853         (mn10300_reorg): New function.
19854         (TARGET_MACHINE_DEPENDENT_REORG): Define.
19855         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
19856         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
19857         __LIW__ or __NO_LIW__.
19858         * doc/invoke.texi: Describe the -mliw command line option.
19859
19860 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19861
19862         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
19863         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
19864         pthread_mutex_unlock): Remove.
19865         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
19866         * config/pa/t-pa64: Likewise.
19867         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
19868         shared libc if not linking against libpthread.
19869         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
19870
19871 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
19872
19873         PR target/47558
19874         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
19875         on 10.6 and later to ensure that we always use the unwinder from
19876         the system.  Only add -no_compact_unwind when tarteting darwin
19877         10.6 or later.
19878
19879 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
19880
19881         PR target/46997
19882         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
19883         (vec_interleave_lowv2sf): Ditto.
19884         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
19885         (vec_extract_oddv2sf): Ditto.
19886
19887 2011-02-07  Mike Stump  <mikestump@comcast.net>
19888
19889         PR target/42333
19890         Add __ieee_divdc3 entry point.
19891         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
19892         entry point.
19893         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
19894         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
19895         * config/darwin.c (darwin_rename_builtins): Add.
19896         * config/darwin-protos.h (darwin_rename_builtins): Add.
19897
19898 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
19899
19900         PR target/47636
19901         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
19902         for the condition.
19903
19904 2011-02-07  Mike Stump  <mikestump@comcast.net>
19905
19906         * config/darwin.opt (mmacosx-version-min): Update default OS version.
19907
19908 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
19909
19910         PR target/47534
19911         * config/avr/libgcc.S (exit): Move .endfunc
19912
19913 2011-02-07  Richard Guenther  <rguenther@suse.de>
19914
19915         PR tree-optimization/47615
19916         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
19917         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
19918         (run_scc_vn): Initialize it.
19919         (visit_reference_op_load): Use it.
19920         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
19921
19922 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19923
19924         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
19925         DImode trapping arithmetic libfuncs.
19926
19927 2011-02-07  Richard Guenther  <rguenther@suse.de>
19928
19929         PR tree-optimization/47621
19930         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
19931         two duplicates ...
19932         (execute_update_addresses_taken): ... here.  Make it more
19933         conservative in what we accept.
19934
19935 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
19936
19937         * config/sparc/freebsd.h (ASM_SPEC): Define.
19938         * config/sparc/vxworks.h (ASM_SPEC): Define.
19939
19940 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
19941
19942         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
19943
19944 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
19945
19946         * doc/invoke.texi: Remove reference to compiler internals from
19947         user documentation.
19948
19949         * reg-notes.def: Remove REG_VALUE_PROFILE.
19950         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
19951
19952 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
19953
19954         PR middle-end/47610
19955         * varasm.c (default_section_type_flags): If decl is NULL,
19956         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
19957
19958 2011-02-05  Jie Zhang  <jie@codesourcery.com>
19959
19960         PR debug/42631
19961         * web.c (entry_register): Don't clobber the number of the
19962         first uninitialized reference in used[].
19963
19964 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
19965
19966         PR tree-optimization/46194
19967         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
19968         (build_classic_dist_vector_1): Do not represent classic distance
19969         vectors when the access functions are variating in different loops.
19970
19971 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
19972
19973         * config/mips/iris6.opt: New.
19974         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
19975
19976 2011-02-04  Richard Henderson  <rth@redhat.com>
19977             Steve Ellcey  <sje@cup.hp.com>
19978
19979         PR target/46997
19980         * config/ia64/predicates.md (mux1_brcst_element): New.
19981         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
19982         * config/ia64/ia64.c (ia64_unpack_assemble): New.
19983         (ia64_unpack_sign): New.
19984         (ia64_expand_unpack): Rewrite using new routines.
19985         (ia64_expand_widen_sum): Ditto.
19986         (ia64_expand_dot_prod_v8qi): Ditto.
19987         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
19988         routines, add endian check.
19989         (pmpy2_even): Rename from pmpy2_r, add endian check.
19990         (pmpy2_odd): Rename from pmpy2_l, add endian check.
19991         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
19992         (vec_widen_smult_hi_v4hi): Ditto.
19993         (vec_widen_umult_lo_v4hi): Ditto.
19994         (vec_widen_umult_hi_v4hi): Ditto.
19995         (mulv2si3): Change endian checks.
19996         (sdot_prodv4hi): Rewrite with new calls.
19997         (udot_prodv4hi): New.
19998         (vec_pack_ssat_v4hi): Add endian check.
19999         (vec_pack_usat_v4hi): Ditto.
20000         (vec_pack_ssat_v2si): Ditto.
20001         (max1_even): Rename from max1_r, add endian check.
20002         (max1_odd): Rename from max1_l, add endian check.
20003         (*mux1_rev): Format change.
20004         (*mux1_mix): Ditto.
20005         (*mux1_shuf): Ditto.
20006         (*mux1_alt): Ditto.
20007         (*mux1_brcst_v8qi): Use new predicate.
20008         (vec_extract_evenv8qi): Remove endian check.
20009         (vec_extract_oddv8qi): Ditto.
20010         (vec_interleave_lowv4hi): Format change.
20011         (vec_interleave_highv4hi): Ditto.
20012         (mix2_even): Rename from mix2_r, add endian check.
20013         (mix2_odd): Rename from mux2_l, add endian check.
20014         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
20015         (vec_extract_evenodd_helper): Format change.
20016         (vec_extract_evenv4hi): Remove endian check.
20017         (vec_extract_oddv4hi): Remove endian check.
20018         (vec_interleave_lowv2si): Format change.
20019         (vec_interleave_highv2si): Format change.
20020         (vec_initv2si): Remove endian check.
20021         (vecinit_v2si): Add endian check.
20022         (reduc_splus_v2sf): Add endian check.
20023         (reduc_smax_v2sf): Ditto.
20024         (reduc_smin_v2sf): Ditto.
20025         (vec_initv2sf): Remove endian check.
20026         (fpack): Add endian check.
20027         (fswap): Add endian check.
20028         (vec_interleave_highv2sf): Add endian check.
20029         (vec_interleave_lowv2sf): Add endian check.
20030         (fmix_lr): Add endian check.
20031         (vec_setv2sf): Format change.
20032         (*vec_extractv2sf_0_be): Use shift to extract operand.
20033         (*vec_extractv2sf_1_be): New.
20034         (vec_pack_trunc_v4hi): Add endian check.
20035         (vec_pack_trunc_v2si): Format change.
20036
20037 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
20038
20039         PR inline-asm/23200
20040         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
20041         do bb, locus and block comparison and disallow loads if it is not set.
20042         (stmt_is_replaceable_p): New function.
20043         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
20044         callers.
20045         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
20046         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
20047         SSA_NAME_DEF_STMT.
20048         * tree-flow.h (stmt_is_replaceable_p): New prototype.
20049
20050 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
20051
20052         * config/rs6000/xilinx.opt: New.
20053         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
20054
20055 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
20056
20057         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
20058
20059 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
20060
20061         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
20062         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
20063         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
20064         secondary_reload_info, xtensa_secondary_reload): Remove.
20065         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
20066         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
20067         (xtensa_preferred_reload_class): Make static. Change return and
20068         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
20069         Use CONST_DOUBLE_P predicate.
20070         (xtensa_preferred_output_reload_class): New function.
20071         (xtensa_secondary_reload): Make static.
20072
20073 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
20074
20075         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
20076         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
20077         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
20078
20079 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
20080
20081         PR middle-end/31490
20082         * output.h (SECTION_RELRO): Define.
20083         (SECTION_MACH_DEP): Adjust.
20084         (get_variable_section): New prototype.
20085         * varpool.c (varpool_finalize_named_section_flags): New function.
20086         (varpool_assemble_pending_decls): Call it.
20087         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
20088         * cgraphunit.c (cgraph_output_in_order): Call
20089         varpool_finalize_named_section_flags.
20090         * varasm.c (get_section): Allow section flags conflicts between
20091         relro and read-only sections if the section hasn't been declared yet.
20092         Set SECTION_OVERRIDE after diagnosing section type conflict.
20093         (get_variable_section): No longer static.
20094         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
20095         readonly sections that need relocations.
20096         (decl_readonly_section_1): New function.
20097         (decl_readonly_section): Use it.
20098
20099         Revert:
20100         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
20101                     Steve Ellcey  <sje@cup.hp.com>
20102
20103         PR middle-end/31490
20104         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
20105         if section attribute used.
20106
20107 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
20108
20109         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
20110         * config/darwin.c (SECTION_NO_ANCHOR): Define.
20111         (darwin_init_sections): Remove assertion.
20112
20113 2011-02-03  Nick Clifton  <nickc@redhat.com>
20114
20115         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
20116         lt and ge.
20117         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
20118         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
20119         instead of "n" and "pz".
20120         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
20121         CC_FLAG_S.
20122
20123 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
20124
20125         PR target/47312
20126         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
20127         fma, expand FMA_EXPR as fma{,f,l} call.
20128
20129         PR lto/47274
20130         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
20131         copy them into a unsigned char variable and pass address of it to
20132         lto_output_data_stream.
20133
20134         PR target/47564
20135         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
20136         around backend_init_target and lang_dependent_init_target calls.
20137         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
20138         (verify_cgraph_node): Don't call set_cfun here.  Use
20139         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
20140         Set error_found for incorrectly represented calls to thunks.
20141
20142 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
20143
20144         PR debug/43092
20145         PR rtl-optimization/43494
20146         * rtl.h (for_each_inc_dec_fn): New type.
20147         (for_each_inc_dec): Declare.
20148         * rtlanal.c (struct for_each_inc_dec_ops): New type.
20149         (for_each_inc_dec_find_inc_dec): New fn.
20150         (for_each_inc_dec_find_mem): New fn.
20151         (for_each_inc_dec): New fn.
20152         * dse.c (struct insn_size): Remove.
20153         (replace_inc_dec, replace_inc_dec_mem): Remove.
20154         (emit_inc_dec_insn_before): New fn.
20155         (check_for_inc_dec): Use it, along with for_each_inc_dec.
20156         (canon_address): Pass mem modes to cselib_lookup.
20157         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
20158         (cselib_lookup_from_insn): Likewise.
20159         (cselib_subst_to_values): Likewise.
20160         * cselib.c (find_slot_memmode): New var.
20161         (cselib_find_slot): New fn.  Use it instead of
20162         htab_find_slot_with_hash everywhere.
20163         (entry_and_rtx_equal_p): Use find_slot_memmode.
20164         (autoinc_split): New fn.
20165         (rtx_equal_for_cselib_p): Rename and implement in terms of...
20166         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
20167         Deal with autoinc.  Special-case recursion into MEMs.
20168         (cselib_hash_rtx): Likewise.
20169         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
20170         address and MEM modes.
20171         (cselib_subst_to_values): Add memmode, pass it on.
20172         Deal with autoinc.
20173         (cselib_lookup): Add memmode argument, pass it on.
20174         (cselib_lookup_from_insn): Add memmode.
20175         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
20176         (struct cselib_record_autoinc_data): New.
20177         (cselib_record_autoinc_cb): New fn.
20178         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
20179         mode to cselib_lookup.  Reset autoinced REGs here instead of...
20180         (cselib_process_insn): ... here.
20181         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
20182         to cselib_lookup.
20183         (add_uses): Likewise, also to cselib_subst_to_values.
20184         (add_stores): Likewise.
20185         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
20186         cselib_subst_to_values.
20187         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
20188         * gcse.c (do_local_cprop): Adjusted.
20189         * postreload.c (reload_cse_simplify_set): Adjusted.
20190         (reload_cse_simplify_operands): Adjusted.
20191         * sel-sched-dump (debug_mem_addr_value): Pass mode.
20192
20193 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
20194
20195         PR tree-optimization/45122
20196         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
20197         unsafe assumptions when there's more than one loop exit.
20198
20199 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
20200
20201         PR target/47272
20202         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
20203         Document using vector double with the load/store builtins, and
20204         that the load/store builtins always use Altivec instructions.
20205
20206         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
20207         to use altivec memory instructions, even on VSX.
20208         (vector_altivec_store_<mode>): Ditto.
20209
20210         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
20211         function.
20212
20213         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20214         V2DF, V2DI support to load/store overloaded builtins.
20215
20216         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
20217         altivec load/store builtins for V2DF/V2DI types.
20218
20219         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
20220         set avoid indexed addresses on power6 if -maltivec.
20221         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
20222         vector_altivec_load/vector_altivec_store builtins.
20223         (altivec_expand_st_builtin): Ditto.
20224         (altivec_expand_builtin): Add VSX memory builtins.
20225         (rs6000_init_builtins): Add V2DI types to internal types.
20226         (altivec_init_builtins): Add support for V2DF/V2DI altivec
20227         load/store builtins.
20228         (rs6000_address_for_altivec): Insure memory address is appropriate
20229         for Altivec.
20230
20231         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
20232         vec_vsx_ld and vec_vsx_st.
20233         (vsx_store_<mode>): Ditto.
20234
20235         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
20236         variables to hold long long types for VSX vector memory builtins.
20237         (RS6000_BTI_unsigned_long_long): Ditto.
20238         (long_long_integer_type_internal_node): Ditti.
20239         (long_long_unsigned_type_internal_node): Ditti.
20240
20241         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
20242         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
20243         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
20244
20245         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
20246         short cuts.
20247         (vec_vsx_st): Ditto.
20248
20249 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
20250
20251         * config/pa/pa-hpux10.opt: New.
20252         * config/hpux11.opt (pthread): New Driver option.
20253         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
20254         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
20255
20256 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
20257
20258         * config/ia64/vms.opt: New.
20259         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
20260
20261 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
20262
20263         PR target/47580
20264         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
20265         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
20266         generator functions.
20267         (vsx_floatuns<VSi><mode>2): Ditto.
20268         (vsx_fix_trunc<mode><VSi>2): Ditto.
20269         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
20270
20271 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
20272
20273         * config/i386/djgpp.opt (posix): New Driver option.
20274
20275 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
20276
20277         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
20278         Move to the unsupported targets list.
20279
20280 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
20281
20282         PR rtl-optimization/47525
20283         * df-scan.c: Update copyright years.
20284         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
20285         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
20286
20287 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20288
20289         * config/i386/sysv4.h (TARGET_VERSION): Remove.
20290         (SUBTARGET_RETURN_IN_MEMORY): Remove.
20291         (ASM_OUTPUT_ASCII): Remove.
20292         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
20293
20294 2011-02-02  Jeff Law  <law@redhat.com>
20295
20296         PR middle-end/47543
20297         * reload.c (find_reloads_address): Handle reg+d address where both
20298         components are invalid by reloading the entire address.
20299
20300 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
20301             Richard Guenther  <rguenther@suse.de>
20302
20303         PR tree-optimization/40979
20304         PR bootstrap/47044
20305         * passes.c (init_optimization_passes): After LIM call copy_prop
20306         and DCE to clean up.
20307         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
20308
20309 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
20310
20311         PR tree-optimization/47576
20312         PR tree-optimization/47555
20313         * doc/invoke.texi (scev-max-expr-complexity): Documented.
20314         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
20315         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
20316         * tree-scalar-evolution.c (follow_ssa_edge): Use
20317         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
20318
20319 2011-02-02  Richard Guenther  <rguenther@suse.de>
20320
20321         PR tree-optimization/47566
20322         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
20323
20324 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
20325
20326         PR debug/47106
20327         PR debug/47402
20328         * tree-inline.c (declare_return_variable): Remove unused caller
20329         variable.
20330
20331         PR debug/47106
20332         PR debug/47402
20333         * tree-flow-inline.h (clear_is_used, is_used_p): New.
20334         * cfgexpand.c (account_used_vars_for_block): Use them.
20335         * tree-nrv.c (tree_nrv): Likewise.
20336         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
20337         (dump_scope_block): Likewise.
20338         (remove_unused_locals): Likewise.
20339
20340         PR debug/47106
20341         PR debug/47402
20342         * tree-inline.c (declare_return_variable): Add result decl to
20343         local decls only once.
20344         * gimple-low.c (record_vars_into): Mark newly-created variables
20345         as referenced.
20346
20347 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
20348
20349         PR debug/47498
20350         PR debug/47501
20351         PR debug/45136
20352         PR debug/45130
20353         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
20354         debug insns.
20355         (no_real_insns_p, schedule_block, set_priorities): Drop special
20356         treatment of boundary debug insns.
20357         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
20358         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
20359         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
20360         (BOUNDARY_DEBUG_INSN_P): Likewise.
20361         (SCHEDULE_DEBUG_INSN_P): Likewise.
20362         * sched-rgn.c (init_ready_list): Drop special treatment of
20363         boundary debug insns.
20364         * final.c (rest_of_clean_state): Clear notes' BB.
20365
20366 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20367
20368         * config/openbsd.opt (assert=): New Driver option.
20369
20370 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20371
20372         * config/i386/nto.opt: New.
20373         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
20374
20375 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20376
20377         * config/i386/netware.opt: New.
20378         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
20379
20380 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20381
20382         * config/interix.opt (posix): New Driver option.
20383
20384 2011-02-01  DJ Delorie  <dj@redhat.com>
20385
20386         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
20387
20388         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
20389         class for A0/A1.
20390
20391 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
20392
20393         PR tree-optimization/47561
20394         * toplev.c (process_options): Print the Graphite flags.  Add
20395         flag_loop_flatten to the list of options requiring Graphite.
20396
20397 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20398
20399         * config/i386/cygming.opt (posix): New Driver option.
20400
20401 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20402
20403         * config/arm/vxworks.opt: New.
20404         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
20405
20406 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20407
20408         * config/alpha/elf.opt: New.
20409         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
20410         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
20411
20412 2011-02-01  Richard Guenther  <rguenther@suse.de>
20413
20414         PR tree-optimization/47559
20415         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
20416         store-motion on references that can throw.
20417
20418 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
20419
20420         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
20421         * tree-pass.h (TDF_CSELIB): New macro.
20422         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
20423         cselib_lookup): Check for it rather than for TDF_DETAILS.
20424
20425 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
20426
20427         PR driver/47547
20428         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
20429         is HOST_BIT_BUCKET.
20430
20431         * opts.c (finish_options): Don't add x_aux_base_name if it is
20432         HOST_BIT_BUCKET.
20433
20434 2011-02-01  Richard Guenther  <rguenther@suse.de>
20435
20436         PR tree-optimization/47555
20437         Revert
20438         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
20439
20440         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
20441
20442 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
20443
20444         PR gcc/46692
20445         * config/lm32/t-lm32: Add multilib for all CPU options.
20446
20447 2011-02-01  Richard Guenther  <rguenther@suse.de>
20448
20449         PR tree-optimization/47541
20450         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
20451         sure to have a field at offset zero.
20452
20453 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
20454
20455         * config/arc/arc.opt (EB, EL): New Driver options.
20456
20457 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
20458
20459         * config/alpha/osf5.opt: New.
20460         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
20461
20462 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
20463
20464         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
20465
20466 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
20467
20468         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
20469         -floop-interchange.
20470         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
20471         is an alias of -floop-interchange and that it requires the
20472         Graphite infrastructure.
20473         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
20474         flag_loop_interchange based on the value of flag_tree_loop_linear.
20475
20476 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
20477             Richard Guenther  <rguenther@suse.de>
20478
20479         PR tree-optimization/47538
20480         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
20481         type instead of r1type, except for comparisons.  For right
20482         shifts and comparisons punt if there are mismatches in
20483         sizetype vs. non-sizetype types.
20484
20485 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20486
20487         * doc/sourcebuild.texi (Effective-Target Keywords): Document
20488         avx_runtime.
20489
20490 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20491
20492         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
20493         version number.
20494         * configure: Regenerate.
20495
20496 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20497
20498         * configure.ac (gcc_cv_ld_static_option): Define.
20499         (gcc_cv_ld_dynamic_option): Define.
20500         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
20501         instead.
20502         (HAVE_LD_STATIC_DYNAMIC): Update message.
20503         (LD_STATIC_OPTION): Define.
20504         (LD_DYNAMIC_OPTION): Define.
20505         * configure: Regenerate.
20506         * config.in: Regenerate.
20507         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
20508         HAVE_LD_STATIC_DYNAMIC]: Use them.
20509
20510 2011-01-31  Nick Clifton  <nickc@redhat.com>
20511
20512         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
20513         registers inside interrupt handlers if the handler is not a leaf
20514         function.
20515
20516 2011-01-31  Nick Clifton  <nickc@redhat.com>
20517
20518         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
20519         reg_renumber returning an INVALID_REGNUM.
20520
20521 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
20522
20523         PR libgcj/44341
20524         * doc/install.texi: Document host options discarded when cross
20525         configuring target libraries.
20526
20527 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
20528
20529         Reverted:
20530         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
20531         PR debug/45136
20532         PR debug/45130
20533         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
20534         debug insns.
20535         (no_real_insns_p, schedule_block, set_priorities): Drop special
20536         treatment of boundary debug insns.
20537         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
20538         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
20539         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
20540         (BOUNDARY_DEBUG_INSN_P): Likewise.
20541         (SCHEDULE_DEBUG_INSN_P): Likewise.
20542         * sched-rgn.c (init_ready_list): Drop special treatment of
20543         boundary debug insns.
20544         * final.c (rest_of_clean-state): Clear notes' BB.
20545
20546 2011-01-31  Alan Modra  <amodra@gmail.com>
20547
20548         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
20549         toc relative expressions as we do in print_operand_address.
20550
20551 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
20552
20553         * doc/extend.texi: Follow spelling conventions.
20554         * doc/invoke.texi: Fix a typo.
20555
20556 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
20557
20558         * config/hpux11.opt: New.
20559         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
20560         ia64*-*-hpux*): Use hpux11.opt.
20561
20562 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
20563
20564         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
20565         to tmake_file.
20566
20567 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
20568
20569         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
20570         support sites.
20571
20572 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
20573
20574         * doc/install.texi (Binaries): Remove outdated reference for
20575         Motorola 68HC11/68HC12 downloads.
20576
20577 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
20578
20579         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
20580         Drepper's paper.
20581
20582 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
20583
20584         PR bootstrap/47147
20585         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
20586         used by NetBSD.
20587
20588 2011-01-28  Ahmad Sharif  <asharif@google.com>
20589
20590         * value-prof.c (check_counter): Corrected error message.
20591
20592 2011-01-29  Jie Zhang  <jie@codesourcery.com>
20593
20594         * config/arm/arm.c (arm_legitimize_reload_address): New.
20595         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
20596         arm_legitimize_reload_address.
20597         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
20598
20599 2011-01-28  Ian Lance Taylor  <iant@google.com>
20600
20601         * godump.c (go_define): Ignore macros whose definitions include
20602         two adjacent operands.
20603
20604 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
20605
20606         PR target/42894
20607         * varasm.c (force_const_mem): Store copy of x in desc->constant
20608         instead of x itself.
20609         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
20610         itself into REG_EQUAL note.
20611
20612 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
20613
20614         * config/freebsd.opt (posix, rdynamic): New Driver options.
20615
20616 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20617
20618         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
20619         -Bstatic/-Bdynamic.
20620         * configure: Regenerate.
20621
20622 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
20623
20624         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
20625         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
20626
20627 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
20628
20629         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
20630         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
20631         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
20632         (s390_preferred_reload_class): Make static. Change return and
20633         'rclass' argument type to reg_class_t.
20634
20635 2011-01-27  Jan Hubicka  <jh@suse.cz>
20636
20637         PR middle-end/46949
20638         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
20639         (process_function_and_variable_attributes): Check defined weakrefs.
20640
20641 2011-01-27  Martin Jambor  <mjambor@suse.cz>
20642
20643         PR tree-optimization/47228
20644         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
20645         build_ref_for_offset.
20646
20647 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20648
20649         * config/spu/spu-elf.h (ASM_SPEC): Remove.
20650
20651 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
20652
20653         PR rtl-optimization/46856
20654         * postreload.c (reload_combine_recognize_const_pattern): Do not
20655         separate cc0 setter and user on cc0 targets.
20656
20657 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
20658
20659         PR c/43082
20660         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
20661         passed a VOID_TYPE expression, immediately emit an error and
20662         return error_mark_node.
20663
20664 2011-01-26  Jeff Law  <law@redhat.com>
20665
20666         PR rtl-optimization/47464
20667         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
20668         rather than may_trap_p as needed.
20669
20670 2011-01-26  DJ Delorie  <dj@redhat.com>
20671
20672         PR rtl-optimization/46878
20673         * combine.c (insn_a_feeds_b): Check for the implicit cc0
20674         setter/user dependency as well.
20675
20676 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
20677
20678         PR rtl-optimization/44469
20679         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
20680         after removing trivially dead basic blocks.
20681
20682 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
20683
20684         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
20685         * config/frv/frv.h (LINK_SPEC): Likewise.
20686         * config/i386/netware.h (LINK_SPEC): Likewise.
20687         * config/m68k/linux.h (ASM_SPEC): Likewise.
20688         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
20689         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
20690         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
20691         * config/sparc/linux.h (ASM_SPEC): Likewise.
20692         * config/sparc/linux64.h (ASM_SPEC): Likewise.
20693         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
20694
20695 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
20696
20697         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
20698         * config/frv/frv.h (ASM_SPEC): Likewise.
20699         * config/m68k/linux.h (ASM_SPEC): Likewise.
20700         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
20701         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
20702         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
20703         * config/sparc/linux.h (ASM_SPEC): Likewise.
20704         * config/sparc/linux64.h (ASM_SPEC): Likewise.
20705         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
20706
20707 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
20708
20709         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
20710         * config/frv/frv.h (LINK_SPEC): Likewise.
20711         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
20712
20713 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
20714
20715         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
20716         * config/frv/frv.h (ASM_SPEC): Likewise.
20717         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
20718         * config/m68k/linux.h (ASM_SPEC): Likewise.
20719         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
20720         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
20721         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
20722         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
20723         * config/sparc/linux.h (ASM_SPEC): Likewise.
20724         * config/sparc/linux64.h (ASM_SPEC): Likewise.
20725         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
20726         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
20727
20728 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
20729
20730         PR target/46997
20731         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
20732         (*mux2): Ditto.
20733         (vec_extract_evenodd_help): Ditto.
20734         (vec_extract_evenv4hi): Ditto.
20735         (vec_extract_oddv4hi): Ditto.
20736         (vec_interleave_lowv2si): Ditto.
20737         (vec_interleave_highv2si): Ditto.
20738         (vec_extract_evenv2si): Ditto.
20739         (vec_extract_oddv2si: Ditto.
20740         (vec_pack_trunc_v2si): Ditto.
20741
20742 2011-01-22  Jan Hubicka  <jh@suse.cz>
20743
20744         PR target/47237
20745         * cgraph.h (cgraph_local_info): New field can_change_signature.
20746         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
20747         signature can change.
20748         (ipcp_estimate_growth): Call sequence simplify only if calle signature
20749         can change.
20750         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
20751         (cgraph_function_versioning): We can not change signature of functions
20752         that don't allow that.
20753         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
20754         (lto_input_node): Likewise.
20755         * ipa-inline.c (compute_inline_parameters): Compute
20756         local.can_change_signature.
20757         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
20758         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
20759         functions that can not change signature.
20760         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
20761         init_cumulative_args): Do not use local calling conventions
20762         for functions that can not change signature.
20763
20764 2011-01-22  Jan Hubicka  <jh@suse.cz>
20765
20766         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
20767
20768 2011-01-26  Richard Guenther  <rguenther@suse.de>
20769
20770         PR tree-optimization/47190
20771         * cgraphunit.c (process_common_attributes): New function.
20772         (process_function_and_variable_attributes): Use it.
20773
20774 2011-01-26  Richard Guenther  <rguenther@suse.de>
20775
20776         PR lto/47423
20777         * cgraphbuild.c (record_eh_tables): Record reference to personality
20778         function.
20779
20780 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
20781
20782         PR debug/45454
20783         * sel-sched.c (moveup_expr): Don't let debug insns prevent
20784         non-debug insns from moving up.
20785
20786 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
20787
20788         PR target/40125
20789         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
20790         t-dlldir{,-x} fragment for build and add it to tmake_file.
20791         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
20792         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
20793         * config/i386/t-dlldir: New file.
20794         (SHLIB_DLLDIR): Define.
20795         * config/i386/t-dlldir-x: New file.
20796         (SHLIB_DLLDIR): Define.
20797         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
20798         (SHLIB_INSTALL): Use it.
20799
20800 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
20801
20802         PR target/47246
20803         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
20804         lower bound of the allowed Thumb-2 coprocessor load/store
20805         index range to -256. Add explaining comment.
20806
20807 2011-01-25  Ian Lance Taylor  <iant@google.com>
20808
20809         * godump.c (go_define): Improve lexing of macro expansion to only
20810         accept expressions which match Go spec.
20811
20812 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
20813
20814         PR c++/43601
20815         * tree.c (handle_dll_attribute): Handle it.
20816         * doc/extend.texi (@item dllexport): Mention it.
20817         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
20818
20819 2011-01-25  Ian Lance Taylor  <iant@google.com>
20820
20821         PR tree-optimization/26854
20822         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
20823         (decl_jump_unsafe): Move higher in file, with no other change.
20824         (bind): Set has_jump_unsafe_decl if appropriate.
20825         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
20826         (check_earlier_gotos): Likewise.
20827         (c_check_switch_jump_warnings): Likewise.
20828
20829 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
20830
20831         * doc/invoke.texi (Warning Options): Add missing hyphen.
20832         (-fprofile-dir): Minor grammatical fixes.
20833         (-fbranch-probabilities): Likewise.
20834
20835 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
20836
20837         PR debug/45136
20838         PR debug/45130
20839         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
20840         debug insns.
20841         (no_real_insns_p, schedule_block, set_priorities): Drop special
20842         treatment of boundary debug insns.
20843         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
20844         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
20845         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
20846         (BOUNDARY_DEBUG_INSN_P): Likewise.
20847         (SCHEDULE_DEBUG_INSN_P): Likewise.
20848         * sched-rgn.c (init_ready_list): Drop special treatment of
20849         boundary debug insns.
20850         * final.c (rest_of_clean-state): Clear notes' BB.
20851
20852 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
20853
20854         * Makefile.in (LAMBDA_H): Removed.
20855         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
20856         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
20857         lambda-trans.o, and tree-loop-linear.o.
20858         (lto-symtab.o): Remove dependence on LAMBDA_H.
20859         (tree-loop-linear.o): Remove rule.
20860         (lambda-mat.o): Same.
20861         (lambda-trans.o): Same.
20862         (lambda-code.o): Same.
20863         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
20864         (tree-vect-slp.o): Same.
20865         * hwint.h (gcd): Moved here.
20866         (least_common_multiple): Same.
20867         * lambda-code.c: Removed.
20868         * lambda-mat.c: Removed.
20869         * lambda-trans.c: Removed.
20870         * lambda.h: Removed.
20871         * tree-loop-linear.c: Removed.
20872         * lto-symtab.c: Do not include lambda.h.
20873         * omega.c (gcd): Removed.
20874         * passes.c (init_optimization_passes): Remove pass_linear_transform.
20875         * tree-data-ref.c (print_lambda_vector): Moved here.
20876         (lambda_vector_copy): Same.
20877         (lambda_matrix_copy): Same.
20878         (lambda_matrix_id): Same.
20879         (lambda_vector_first_nz): Same.
20880         (lambda_matrix_row_add): Same.
20881         (lambda_matrix_row_exchange): Same.
20882         (lambda_vector_mult_const): Same.
20883         (lambda_vector_negate): Same.
20884         (lambda_matrix_row_negate): Same.
20885         (lambda_vector_equal): Same.
20886         (lambda_matrix_right_hermite): Same.
20887         * tree-data-ref.h: Do not include lambda.h.
20888         (lambda_vector): Moved here.
20889         (lambda_matrix): Same.
20890         (dependence_level): Same.
20891         (lambda_transform_legal_p): Removed declaration.
20892         (lambda_collect_parameters): Same.
20893         (lambda_compute_access_matrices): Same.
20894         (lambda_vector_gcd): Same.
20895         (lambda_vector_new): Same.
20896         (lambda_vector_clear): Same.
20897         (lambda_vector_lexico_pos): Same.
20898         (lambda_vector_zerop): Same.
20899         (lambda_matrix_new): Same.
20900         * tree-flow.h (least_common_multiple): Removed declaration.
20901         * tree-parloops.c (lambda_trans_matrix): Moved here.
20902         (LTM_MATRIX): Same.
20903         (LTM_ROWSIZE): Same.
20904         (LTM_COLSIZE): Same.
20905         (LTM_DENOMINATOR): Same.
20906         (lambda_trans_matrix_new): Same.
20907         (lambda_matrix_vector_mult): Same.
20908         (lambda_transform_legal_p): Same.
20909         * tree-pass.h (pass_linear_transform): Removed declaration.
20910         * tree-ssa-loop.c (tree_linear_transform): Removed.
20911         (gate_tree_linear_transform): Removed.
20912         (pass_linear_transform): Removed.
20913         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
20914         flag_loop_interchange.
20915
20916 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
20917
20918         PR tree-optimization/47265
20919         PR tree-optimization/47443
20920         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
20921         if name still has some uses.
20922
20923 2011-01-25  Martin Jambor  <mjambor@suse.cz>
20924
20925         PR tree-optimization/47382
20926         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
20927         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
20928
20929 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
20930
20931         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
20932         sjlj_except_unwind_info.
20933
20934 2011-01-25  Richard Guenther  <rguenther@suse.de>
20935
20936         PR tree-optimization/47426
20937         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
20938         visible functions results escape.
20939
20940 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
20941
20942         PR target/45701
20943         * config/arm/arm.c (any_sibcall_uses_r3): New function.
20944         (arm_get_frame_offsets): Use it.
20945
20946 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
20947             Jakub Jelinek  <jakub@redhat.com>
20948
20949         PR tree-optimization/47271
20950         * tree-if-conv.c (bb_postdominates_preds): New.
20951         (if_convertible_bb_p): Call bb_postdominates_preds.
20952         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
20953         (predicate_scalar_phi): Call bb_postdominates_preds.
20954
20955 2011-01-25  Nick Clifton  <nickc@redhat.com>
20956
20957         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
20958         * config/rx/rx.c (rx_function_value): Likewise.
20959         (rx_promote_function_mode): Likewise.
20960         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
20961         in order to make it legitimate.
20962         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
20963         make sure that the first operand is the same as the result register.
20964         (addsi3_unspec): Delete.
20965         (subdi3): Do not accept immediate operands.
20966         (subdi3_internal): Likewise.
20967
20968 2011-01-25  Jeff Law  <law@redhat.com>
20969
20970         PR rtl-optimization/37273
20971         * ira-costs.c (scan_one_insn): Detect constants living in memory and
20972         handle them like argument loads from stack slots.  Do not double
20973         count memory for memory constants and argument loads from stack slots.
20974
20975 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
20976
20977         PR tree-optimization/47427
20978         PR tree-optimization/47428
20979         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
20980         coalesce if the new root var would be TREE_READONLY.
20981
20982 2011-01-25  Richard Guenther  <rguenther@suse.de>
20983
20984         PR middle-end/47414
20985         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
20986         correct type for TBAA.
20987
20988 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
20989
20990         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
20991         (close_phi_written_to_memory): Call for_each_index with
20992         dr_indices_valid_in_loop.
20993
20994 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
20995
20996         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
20997         when it is initialized.
20998
20999 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21000
21001         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
21002         call to graphite_find_data_references_in_stmt.
21003         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
21004         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
21005         call to graphite_find_data_references_in_stmt.
21006         (analyze_drs_in_stmts): Same.
21007         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
21008         in which the scalar analysis of indices is performed.
21009         (create_data_ref): Same.  Update call to dr_analyze_indices.
21010         (find_data_references_in_stmt): Update call to create_data_ref.
21011         (graphite_find_data_references_in_stmt): Same.
21012         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
21013         declaration.
21014         (create_data_ref): Same.
21015         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
21016         call to create_data_ref.
21017
21018 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21019
21020         * graphite-sese-to-poly.c (build_poly_scop): Move
21021         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
21022
21023 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21024
21025         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
21026         VAR_DECL, PARM_DECL, and RESULT_DECL.
21027
21028 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21029
21030         * graphite-dependences.c (reduction_dr_1): Allow several reductions
21031         in a reduction PBB.
21032         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
21033         that have already been marked as PBB_IS_REDUCTION.
21034
21035 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21036
21037         * graphite-scop-detection.c (same_close_phi_node): New.
21038         (remove_duplicate_close_phi): New.
21039         (make_close_phi_nodes_unique): New.
21040         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
21041
21042 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21043
21044         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
21045         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
21046         of both data references to be the same.
21047
21048 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21049
21050         * graphite-dependences.c (build_lexicographical_constraint): Remove
21051         the gdim parameter.
21052         (build_lexicographical_constraint): Adjust call to
21053         ppl_powerset_is_empty.
21054         (dependence_polyhedron): Same.
21055         (graphite_legal_transform_dr): Same.
21056         (graphite_carried_dependence_level_k): Same.
21057         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
21058         parameter.
21059         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
21060
21061 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21062
21063         * graphite-sese-to-poly.c
21064         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
21065         (close_phi_written_to_memory): New.
21066         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
21067         and unshare_expr.
21068
21069 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21070
21071         * doc/install.texi: Update the expected version number of PPL to 0.11.
21072         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
21073         #if PPL_VERSION_MINOR < 11.
21074
21075 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21076
21077         * graphite-dependences.c: Include graphite-cloog-util.h.
21078         (new_poly_ddr): Inlined into dependence_polyhedron.
21079         (free_poly_ddr): Moved close by new_poly_ddr.
21080         (dependence_polyhedron_1): Renamed dependence_polyhedron.
21081         Early return NULL when ppl_powerset_is_empty returns true.
21082         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
21083         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
21084         (graphite_legal_transform_dr): Call new_poly_ddr.
21085         (graphite_carried_dependence_level_k): Same.
21086         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
21087         (dot_transformed_deps_stmt_1): Removed.
21088         (dot_deps_stmt_1): Call dot_deps_stmt_2.
21089         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
21090         (dot_deps_1): Call dot_deps_2.
21091         * Makefile.in (graphite-dependences.o): Add missing dependence on
21092         graphite-cloog-util.h.
21093
21094 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21095
21096         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
21097         (build_lexicographical_constraint): Same.
21098         (dependence_polyhedron_1): Same.
21099         (graphite_legal_transform_dr): Same.
21100         (graphite_carried_dependence_level_k): Same.
21101         * graphite-ppl.c (ppl_powerset_is_empty): New.
21102         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
21103         * tree-data-ref.c (dump_data_reference): Print the basic block index.
21104
21105 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21106
21107         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
21108         the "a followed by b" relation and document it.
21109
21110 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21111
21112         * graphite-dependences.c (build_lexicographical_constraint): Stop the
21113         iteration when the bag of constraints is empty.
21114
21115 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21116
21117         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
21118
21119 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21120
21121         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
21122         nest and two loop depths as parameters.
21123         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
21124         lst_perfect_nestify.
21125
21126 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21127
21128         * graphite-dependences.c (print_pddr): Call
21129         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
21130
21131 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21132
21133         * graphite-ppl.c (debug_gmp_value): New.
21134         * graphite-ppl.h (debug_gmp_value): Declared.
21135
21136 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
21137
21138         * doc/install.texi: Document availability of cloog-0.16.
21139
21140 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
21141
21142         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
21143         invalid postdominance info.
21144
21145 2011-01-24  Jan Hubicka  <jh@suse.cz>
21146
21147         PR c/21659
21148         * doc/extend.texi (weak pragma): Drop claim that it must
21149         appear before definition.
21150         * varasm.c (merge_weak, declare_weak): Only sanity check
21151         that DECL is not output at a time it is declared weak.
21152
21153 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
21154
21155         * machmode.def: Fixed comments.
21156
21157 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
21158
21159         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
21160
21161 2011-01-24  Paul Koning  <ni1d@arrl.net>
21162
21163         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
21164         WORDS_BIG_ENDIAN.
21165
21166 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
21167
21168         PR target/46519
21169         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
21170         (block_info): Add scanned and prev.
21171         (move_or_delete_vzeroupper_2): Return if the basic block
21172         has been scanned and the upper 128bit state is unchanged
21173         from the last scan.
21174         (move_or_delete_vzeroupper_1): Return true if the exit
21175         state is changed.
21176         (move_or_delete_vzeroupper): Visit basic blocks using the
21177         work-list based algorithm based on vt_find_locations in
21178         var-tracking.c.
21179
21180         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
21181
21182 2011-01-24  Nick Clifton  <nickc@redhat.com>
21183
21184         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
21185         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
21186         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
21187         then define __v850e1__.
21188         * doc/invoke.texi: Document -mv850es.
21189
21190 2011-01-24  Richard Henderson  <rth@redhat.com>
21191
21192         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
21193         compound unordered comparisons.
21194         * config/rx/rx.c (rx_split_fp_compare): Remove.
21195         * config/rx/rx-protos.h: Update.
21196         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
21197         (cbranchsf4): Don't call rx_split_fp_compare.
21198         (*cbranchsf4): Use rx_split_cbranch.
21199         (*cmpsf): Don't accept "i" constraint.
21200         (*conditional_branch): Only valid after reload.
21201         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
21202
21203 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
21204
21205         PR target/47385
21206         * config/rs6000/altivec.md (vector constant splitters): Add
21207         support for creating vector single precision constants if -mvsx is
21208         used and we would create the constant using Altivec primitives.
21209
21210 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
21211             Richard Sandiford  <rdsandiford@googlemail.com>
21212
21213         PR rtl-optimization/47166
21214         * reload1.c (emit_reload_insns): Disable the spill_reg_store
21215         mechanism for PRE_MODIFY and POST_MODIFY.
21216         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
21217         reloadreg.
21218
21219 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
21220
21221         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
21222
21223 2011-01-22  Jan Hubicka  <jh@suse.cz>
21224
21225         PR lto/47333
21226         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
21227
21228 2011-01-22  Jan Hubicka  <jh@suse.cz>
21229
21230         PR tree-optimization/43884
21231         PR lto/44334
21232         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
21233         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
21234
21235 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
21236
21237         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
21238         * config/s390/s390.c (s390_register_move_cost,
21239         s390_memory_move_cost): New.
21240         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
21241
21242 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21243
21244         PR middle-end/47401
21245         * except.c (sjlj_assign_call_site_values): Move setting the
21246         crtl->uses_eh_lsda flag to ...
21247         (sjlj_mark_call_sites): ... here.
21248         (sjlj_emit_function_enter): Support NULL dispatch label.
21249         (sjlj_build_landing_pads): In a function with no landing pads
21250         that still has must-not-throw regions, generate code to register
21251         a personality function with empty LSDA.
21252
21253 2011-01-21  Richard Henderson  <rth@redhat.com>
21254
21255         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
21256
21257         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
21258
21259         * compare-elim.c: New file.
21260         * Makefile.in (OBJS-common): Add it.
21261         (compare-elim.o): New.
21262         * common.opt (fcompare-elim): New.
21263         * opts.c (default_options_table): Add OPT_fcompare_elim.
21264         * tree-pass.h (pass_compare_elim_after_reload): New.
21265         * passes.c (init_optimization_passes): Add it.
21266         * recog.h: Protect against re-inclusion.
21267         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
21268         * doc/invoke.texi (-fcompare-elim): Document it.
21269         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
21270         * doc/tm.texi: Rebuild.
21271
21272 2011-01-22  Nick Clifton  <nickc@redhat.com>
21273
21274         * config/rx/rx.md (cstoresf4): Pass comparison operator to
21275         rx_split_fp_compare.
21276
21277 2011-01-22  Nick Clifton  <nickc@redhat.com>
21278
21279         * config/rx/rx.md (UNSPEC_CONST): New.
21280         (deallocate_and_return): Wrap the amount popped off the stack in
21281         an UNSPEC_CONST in order to stop it being rejected by
21282         -mmax-constant-size.
21283         (pop_and_return): Add a "(return)" rtx.
21284         (call): Drop the immediate operand.
21285         (call_internal): Likewise.
21286         (call_value): Likewise.
21287         (call_value_internal): Likewise.
21288         (sibcall_internal): Likewise.
21289         (sibcall_value_internal): Likewise.
21290         (sibcall): Likewise.  Generate an explicit call using
21291         sibcall_internal.
21292         (sibcall_value): Likewise.
21293         (mov<>): FAIL if a constant operand is not legitimate.
21294         (addsi3_unpsec): New pattern.
21295
21296         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
21297         (ok_for_max_constant): New function.
21298         (gen_safe_add): New function.
21299         (rx_expand_prologue): Use gen_safe_add.
21300         (rx_expand_epilogue): Likewise.
21301         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
21302         UNSPEC CONSTs.
21303
21304 2011-01-21  Jeff Law  <law@redhat.com>
21305
21306         PR tree-optimization/47053
21307         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
21308         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
21309         statements are deleted.
21310         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
21311         is nonempty, then purge dead edges and cleanup the CFG.
21312
21313 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
21314
21315         PR debug/47402
21316         Temporarily revert:
21317         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
21318         PR debug/47106
21319         * tree-dfa.c (create_var_ann): Mark variable as used.
21320
21321 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
21322
21323         PR middle-end/45566
21324         * except.c (convert_to_eh_region_ranges): Emit queued no-region
21325         notes from other section in hot/cold partitioning even if
21326         last_action is -3.  Increment call_site_base.
21327
21328         PR rtl-optimization/47366
21329         * fwprop.c (forward_propagate_into): Return bool.  If
21330         any changes are made, -fnon-call-exceptions is used and
21331         REG_EH_REGION note is present, call purge_dead_edges
21332         and return true if it purged anything.
21333         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
21334         any EH edges were purged.
21335
21336 2011-01-21  Jeff Law  <law@redhat.com>
21337
21338         PR rtl-optimization/41619
21339         * caller-save.c (setup_save_areas): Break out code to determine
21340         which hard regs are live across calls by examining the reload chains
21341         so that it is always used.
21342         Eliminate code which checked REG_N_CALLS_CROSSED.
21343
21344 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
21345
21346         PR tree-optimization/47355
21347         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
21348         NOP has non-debug uses beyond PHIs in new_bb.
21349
21350 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
21351
21352         PR debug/47106
21353         * cfgexpand.c (account_used_vars_for_block): Only account vars
21354         that are annotated as used.
21355         (estimated_stack_frame_size): Don't set TREE_USED.
21356         * tree-dfa.c (create_var_ann): Mark variable as used.
21357
21358 2011-01-21  Richard Guenther  <rguenther@suse.de>
21359
21360         PR middle-end/47395
21361         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
21362
21363 2011-01-21  Richard Guenther  <rguenther@suse.de>
21364
21365         PR tree-optimization/47365
21366         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
21367         (vn_reference_lookup_pieces): Adjust.
21368         (vn_reference_lookup): Likewise.
21369         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
21370         (vn_reference_lookup_3): Only look through kills if in
21371         VN_WALKREWRITE mode.
21372         (vn_reference_lookup_pieces): Adjust.
21373         (vn_reference_lookup): Likewise.
21374         (visit_reference_op_load): Likewise.
21375         (visit_reference_op_store): Likewise.
21376         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
21377         (compute_avail): Likewise.
21378         (eliminate): Likewise.
21379
21380 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
21381
21382         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
21383         DECL_IGNORED_P non-reg vars if they are used.
21384
21385         PR tree-optimization/47391
21386         * varpool.c (const_value_known_p): Return false if
21387         decl is volatile.
21388
21389 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
21390
21391         PR bootstrap/47215
21392         * config/i386/i386.c (ix86_local_alignment): Handle
21393         case for va_list_type_node is nil.
21394         (ix86_canonical_va_list_type): Likewise.
21395
21396 2011-01-21  Alan Modra  <amodra@gmail.com>
21397
21398         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
21399         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
21400
21401 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21402
21403         * config/arm/arm.md (define_attr type): Rename f_load
21404         and f_store to f_fpa_load and f_fpa_store. Update.
21405         (write_conflict): Deal with rename fallout.
21406         (*push_fp_multi): Likewise.
21407         * config/arm/fpa.md (f_load): Use f_fpa_load.
21408         (f_store): Use f_fpa_store.
21409         (*movsf_fpa): Likewise.
21410         (*movdf_fpa): Likewise.
21411         (*movxf_fpa): Likewise.
21412         (*thumb2_movsf_fpa): Likewise.
21413         (*thumb2_movdf_fpa): Likewise.
21414         (*thumb2_movxf_fpa): Likewise.
21415         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
21416         f_loadd and f_stored.
21417         (*thumb2_movdi_vfp): Likewise.
21418         (*thumb2_movsf_vfp): Fix attribute to f_loads.
21419         (*thumb2_movsi_vfp): Likewise.
21420         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
21421         Use f_loads instead of f_load.
21422         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
21423
21424 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
21425
21426         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21427         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
21428         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21429         (xtensa_mode_dependent_address_p): New function.
21430         (constantpool_address_p): Make static. Change return type to bool.
21431         Change argument type to const_rtx. Use CONST_INT_P predicate.
21432
21433 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
21434
21435         PR debug/46583
21436         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
21437
21438 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
21439
21440         PR debug/47283
21441         * cfgexpand.c (expand_debug_expr): Instead of generating
21442         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
21443         etc. handling.
21444
21445 2011-01-20  Richard Guenther  <rguenther@suse.de>
21446
21447         PR middle-end/47370
21448         * tree-inline.c (remap_gimple_op_r): Recurse manually for
21449         the pointer operand of MEM_REFs.
21450
21451 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
21452
21453         PR tree-optimization/46130
21454         * ipa-split.c (consider_split): If return_bb contains non-virtual
21455         PHIs other than for retval or if split_function would not adjust it,
21456         refuse to split.
21457
21458 2011-01-20  Richard Guenther  <rguenther@suse.de>
21459
21460         PR tree-optimization/47167
21461         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
21462         Revert previous change, only avoid enumeral type changes.
21463
21464 2011-01-19  Mike Stump  <mikestump@comcast.net>
21465
21466         * doc/tm.texi.in (BRANCH_COST): Englishify.
21467         * doc/tm.texi (BRANCH_COST): Likewise.
21468
21469 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
21470
21471         PR c++/47291
21472         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
21473         (gen_scheduled_generic_parms_dies): New functions.
21474         (gen_struct_or_union_type_die): Schedule template parameters DIEs
21475         generation for the end of CU compilation.
21476         (dwarf2out_finish): Generate template parameters DIEs here.
21477
21478 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
21479
21480         PR debug/46240
21481         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
21482         debug bind stmt on merge edges.
21483
21484 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
21485
21486         PR debug/47079
21487         PR debug/46724
21488         * function.c (instantiate_expr): Instantiate incoming rtl of
21489         implicit arguments, and recurse on VALUE_EXPRs.
21490         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
21491         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
21492
21493 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
21494
21495         * c-parser.c (c_parser_for_statement): Initialize
21496         collection_expression.
21497
21498 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
21499
21500         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
21501
21502 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
21503
21504         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
21505         (LINK_SHLIB_SPEC): Don't use %(link_path).
21506         (SUBTARGET_EXTRA_SPECS): Remove link_path.
21507
21508 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
21509
21510         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
21511         (NO_SHARED_LIB_SUPPORT): Remove.
21512         (LINK_SHLIB_SPEC): Remove one conditional definition.
21513
21514 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
21515
21516         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
21517         %{call_shared}.
21518         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
21519         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
21520         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
21521         %{call_shared} and conditionals on these options not being passed.
21522         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
21523         %{call_shared}.
21524
21525 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
21526
21527         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
21528         simplify.
21529
21530         * ipa-split.c: Spelling fixes.
21531
21532 2011-01-19  Richard Henderson  <rth@redhat.com>
21533
21534         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
21535         (*mulsi3): Likewise.
21536
21537         * longlong.h [__mn10300__] (count_leading_zeros): New.
21538         [__mn10300__] (umul_ppmm, smul_ppmm): New.
21539         [__mn10300__] (add_ssaaaa, subddmmss): New.
21540         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
21541         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
21542
21543 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21544
21545         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
21546
21547 2011-01-19  Richard Henderson  <rth@redhat.com>
21548
21549         * config/mn10300/mn10300.md (addsi3_flags): New.
21550         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
21551         (subsi3_flags, subc_internal, subdi3): New.
21552         (subdi3_internal, *subdi3_degenerate): New.
21553         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
21554
21555         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
21556         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
21557         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
21558         * config/mn10300/mn10300-protos.h: Update.
21559         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
21560         (return_ret): Likewise.  Rename from return_internal_regs.
21561         (return_internal): Remove.
21562
21563         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
21564         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
21565         (mn10300_legitimate_constant_p): Likewise.
21566         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
21567         (mn10300_frame_size): New.
21568         (mn10300_expand_prologue): Use it.
21569         (mn10300_expand_epilogue): Likewise.
21570         (mn10300_initial_offset): Likewise.
21571         * config/mn10300/mn10300-protos.h: Update.
21572         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
21573         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
21574         (prologue, epilogue, return_internal): Tidy output code.
21575         (mn10300_store_multiple_operation, return): Likewise.
21576         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
21577         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
21578         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
21579         (load_pic, am33_load_pic): New.
21580         (mn10300_load_pic0, mn10300_load_pic1): New.
21581
21582         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
21583         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
21584         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
21585         (cc_flags_for_mode, cc_flags_for_code): New.
21586         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
21587         overflow flag is not valid.  Validate that the flags we need
21588         for the comparison are valid.
21589         (mn10300_output_cmp): Remove.
21590         (mn10300_output_add): New.
21591         (mn10300_select_cc_mode): Use cc_flags_for_code.
21592         (mn10300_split_cbranch): New.
21593         (mn10300_match_ccmode): New.
21594         (mn10300_split_and_operand_count): New.
21595         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
21596         to the function.
21597         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
21598         (addsi3): ... here.  Use mn10300_output_add.
21599         (*addsi3_flags): New.
21600         (*am33_subsi3, *mn10300_subsi3): Merge...
21601         (subsi3): ... here.  Use attribute isa.
21602         (*subsi3_flags): New.
21603         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
21604         when possible.
21605         (*am33_andsi3, *mn10300_andsi3): Merge...
21606         (andsi3): ... here.
21607         (*andsi3_flags): New.
21608         (andsi3 splitters): New.
21609         (*am33_iorsi3, *mn10300_iorsi3): Merge...
21610         (iorsi3): ... here.
21611         (*iorsi3_flags): New.
21612         (*am33_xorsi3, *mn10300_xorsi3): Merge...
21613         (xorsi3): ... here.
21614         (*xorsi3_flags): New.
21615         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
21616         (one_cmplsi2): ... here.
21617         (*one_cmplsi2_flags): New.
21618         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
21619         instead of "dax" in constraints.  Use mn10300_split_cbranch.
21620         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
21621         use matching constraints to eliminate a self-comparison.
21622         (*integer_conditional_branch): Rename from integer_conditional_branch.
21623         Use int_mode_flags to match CC_REG.
21624         (*cbranchsi4_btst, *btstsi): New.
21625         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
21626         mn10300_split_cbranch.
21627         (*am33_cmpsf): Rename from am33_cmpsf.
21628         (*float_conditional_branch): Rename from float_conditional_branch.
21629         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
21630         (zero_extendqisi2): ... here.
21631         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
21632         (zero_extendhisi2): ... here.
21633         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
21634         (extendqisi2): ... here.
21635         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
21636         (extendhisi2): ... here.
21637         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
21638         (ashlsi3): ... here.
21639         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
21640         (lshrsi3): ... here.
21641         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
21642         (ashrsi3): ... here.
21643         (consecutive add peephole): Remove.
21644         * config/mn10300/predicates.md (label_ref_operand): New.
21645         (int_mode_flags): New.
21646         (CCZN_comparison_operator): New.
21647
21648         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
21649         (throughput_42_latency_43): New reservation.
21650         (mulsidi3, umulsidi3): New expanders.
21651         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
21652         the MDR register to allocation; separately allocate the low and
21653         high parts of the DImode result.
21654         (umulsidi3_internal): Similarly.
21655         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
21656         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
21657         (udivsi3, umodsi3): Remove.
21658         (udivmodsi4, divmodsi4): New expanders.
21659         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
21660         (*divmodsi4): Simiarly.
21661         (ext_internal): New.
21662
21663         * config/mn10300/constraints.md ("z"): New constraint.
21664         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
21665         (FIXED_REGISTERS): Don't fix MDR.
21666         (CALL_USED_REGSITERS): Reformat nicely.
21667         (REG_ALLOC_ORDER): Add MDR.
21668         (enum regclass): Add MDR_REGS.
21669         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
21670         (IRA_COVER_CLASSES): Add MDR_REGS.
21671         (REGNO_REG_CLASS): Handle MDR_REG.
21672         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
21673         (mn10300_register_move_cost): Likewise.
21674         * config/mn10300/mn10300.md (MDR_REG): New.
21675         (*movsi_internal): Handle moves to/from MDR_REGS.
21676
21677         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
21678         POST_MODIFY.
21679         (mn10300_secondary_reload): Tidy combination reload classes.
21680         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
21681         addresses for AM33.  Allow symbolic offsets for reg+imm.
21682         (mn10300_regno_in_class_p): New.
21683         (mn10300_legitimize_reload_address): New.
21684         * config/mn10300/mn10300.h (enum reg_class): Remove
21685         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
21686         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
21687         SP_OR_GENERAL_REGS.
21688         (REG_CLASS_NAMES): Update to match.
21689         (REG_CLASS_CONTENTS): Likewise.
21690         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
21691         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
21692         (REGNO_IN_RANGE_P): Remove.
21693         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
21694         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
21695         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
21696         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
21697         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
21698         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
21699         (REGNO_GENERAL_P): New.
21700         (HAVE_POST_MODIFY_DISP): New.
21701         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
21702         (LEGITIMIZE_RELOAD_ADDRESS): New.
21703         * config/mn10300/mn10300-protos.h: Update.
21704
21705         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
21706         DATA_REGS for AM33 stack-pointer destination.
21707         (mn10300_preferred_output_reload_class): Likewise.
21708         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
21709         into a form appropriate for ...
21710         (TARGET_SECONDARY_RELOAD): New.
21711         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
21712         * config/mn10300/mn10300-protos.h: Update.
21713         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
21714         reload_insi; use the "A" constraint for the scratch; handle AM33
21715         moves of sp to non-address registers.
21716
21717         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
21718         (*movqi_internal): ... here.
21719         (*am33_movhi, *mn10300_movhi): Merge into...
21720         (*movhi_internal): ... here.
21721         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
21722         as the source/destination of moves from/to SP.
21723         (movsf): Only allow for AM33-2.
21724         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
21725         any integer constant constraint.  Only allow for AM33-2.  Tidy
21726         all of the alternative outputs.
21727         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
21728         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
21729         for MN103.
21730         (udivsi3, umodsi3): New patterns for MN103 only.
21731
21732 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
21733
21734         * doc/tm.texi.in: Spell out that a lack of register class unions
21735         can lead to ICEs.
21736         * doc/tm.texi: Regenerate.
21737
21738 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
21739
21740         PR rtl-optimization/47337
21741         * dce.c (check_argument_store): New function.
21742         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
21743
21744         PR tree-optimization/47290
21745         * tree-eh.c (infinite_empty_loop_p): New function.
21746         (cleanup_empty_eh): Use it.
21747
21748 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
21749
21750         PR target/46997
21751         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
21752         (a64_expand_widen_sum): Ditto.
21753         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
21754         (vec_extract_evenodd_help): Ditto.
21755         (vec_extract_evenv4hi): Ditto.
21756         (vec_extract_oddv4hi): Ditto.
21757         (vec_extract_evenv2si): Ditto.
21758         (vec_extract_oddv2si): Ditto.
21759         (vec_extract_evenv2sf): Ditto.
21760         (vec_extract_oddv2sf): Ditto.
21761         (vec_pack_trunc_v4hi: Ditto.
21762         (vec_pack_trunc_v2si): Ditto.
21763         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
21764         (vec_interleave_highv8qi): Ditto.
21765         (mix1_r): Ditto.
21766         (vec_extract_oddv8qi): Ditto.
21767         (vec_interleave_lowv4hi): Ditto.
21768         (vec_interleave_highv4hi): Ditto.
21769         (vec_interleave_lowv2si): Ditto.
21770         (vec_interleave_highv2si): Ditto.
21771
21772 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21773
21774         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
21775         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
21776         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
21777         (pa_c_mode_for_suffix): New.
21778         (TARGET_EXPAND_BUILTIN): Define.
21779         (TARGET_C_MODE_FOR_SUFFIX): Define.
21780         (pa_builtins): Define.
21781         (pa_init_builtins): Register __float128 type and init new support
21782         builtins.
21783         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
21784         * config/pa/quadlib.c (_U_Qfcopysign): New.
21785
21786 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
21787
21788         PR middle-end/46894
21789         * explow.c (allocate_dynamic_stack_space): Do not assume more than
21790         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
21791         are defined.
21792
21793 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21794
21795         PR tree-optimization/47179
21796         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
21797         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
21798
21799 2011-01-18  Richard Guenther  <rguenther@suse.de>
21800
21801         PR rtl-optimization/47216
21802         * emit-rtl.c: Include tree-flow.h.
21803         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
21804         of replicating it with different semantics.
21805         * Makefile.in (emit-rtl.o): Adjust.
21806
21807 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21808
21809         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
21810         (cortex_a9_dp): Handle neon types correctly.
21811
21812 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
21813
21814         PR rtl-optimization/47299
21815         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
21816         subtarget.  Use normal multiplication if both operands are constants.
21817         * expmed.c (expand_widening_mult): Don't try to optimize constant
21818         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
21819         before using it.
21820
21821 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21822
21823         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
21824         spacing after 'e.g.', typos, comma, hyphenation.
21825
21826 2011-01-17  Richard Henderson  <rth@redhat.com>
21827
21828         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
21829         (rx_restricted_mem_operand): New.
21830         (rx_shift_operand): Use register_operand.
21831         (rx_source_operand, rx_compare_operand): Likewise.
21832         * config/rx/rx.md (addsi3_flags): New expander.
21833         (adddi3): Rewrite as expander.
21834         (adc_internal, *adc_flags, adddi3_internal): New patterns.
21835         (subsi3_flags): New expander.
21836         (subdi3): Rewrite as expander.
21837         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
21838
21839         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
21840         (rx_init_builtins): Remove sat builtin.
21841         (rx_expand_builtin): Likewise.
21842         * config/rx/rx.md (ssaddsi3): New.
21843         (*sat): Rename from sat.  Represent the CC_REG input.
21844
21845         * config/rx/predicates.md (rshift_operator): New.
21846         * config/rx/rx.c (rx_expand_insv): Remove.
21847         * config/rx/rx-protos.h: Update.
21848         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
21849         operand to the canonical position.
21850         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
21851         (*bitclr, *bitclr_in_memory): Similarly.
21852         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
21853         (insv): Retain the zero_extract in the expansion.
21854
21855         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
21856         (bswaphi2, bitinvert, revw): Likewise.
21857
21858         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
21859         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
21860         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
21861         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
21862         (bitset, bitset_in_memory): Likewise.
21863         (bitinvert, bitinvert_in_memory): Likewise.
21864         (bitclr, bitclr_in_memory): Likewise.
21865         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
21866         (rx_strend, rx_cmpstrn): Likewise.
21867         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
21868         (bitop peep2 patterns): Remove.
21869
21870         * config/rx/rx.c (rx_match_ccmode): New.
21871         * config/rx/rx-protos.h: Update.
21872         * config/rx/rx.md (abssi2): Clobber, don't set flags.
21873         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
21874         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
21875         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
21876         (fix_truncsfsi2, floatsisf2): Likewise.
21877         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
21878         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
21879         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
21880         (*subsi3_flags, *xorsi3_flags): New.
21881
21882         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
21883
21884         * config/rx/rx.c (rx_print_operand): Remove workaround for
21885         unsplit comparison operations.
21886
21887         * config/rx/rx.md (movsicc): Split after reload.
21888         (*movsicc): Merge *movsieq and *movsine via match_operator.
21889         (*stcc): New pattern.
21890
21891         * config/rx/rx.c (rx_float_compare_mode): Remove.
21892         * config/rx/rx.h (rx_float_compare_mode): Remove.
21893         * config/rx/rx.md (cstoresi4): Split after reload.
21894         (*sccc): New pattern.
21895
21896         * config/rx/predicates.md (label_ref_operand): New.
21897         (rx_z_comparison_operator): New.
21898         (rx_zs_comparison_operator): New.
21899         (rx_fp_comparison_operator): New.
21900         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
21901         Validate that the flags are set properly for the comparison.
21902         (rx_gen_cond_branch_template): Remove.
21903         (rx_cc_modes_compatible): Remove.
21904         (mode_from_flags): New.
21905         (flags_from_code): Rename from flags_needed_for_conditional.
21906         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
21907         (rx_select_cc_mode): Likewise.
21908         (rx_split_fp_compare): New.
21909         (rx_split_cbranch): New.
21910         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
21911         (*cbranchsi4): Use match_operator and rx_split_cbranch.
21912         (*cbranchsf4): Similarly.
21913         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
21914         match_operator and rx_split_cbranch.
21915         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
21916         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
21917         (*cmpsi): Rename from cmpsi.
21918         (*tstsi): Rename from tstsi.
21919         (*cmpsf): Rename from cmpsf; use CC_Fmode.
21920         (*conditional_branch): Rename from conditional_branch.
21921         (*reveresed_conditional_branch): Remove.
21922         (b<code>): Remove expander.
21923         * config/rx/rx-protos.h: Update.
21924
21925         * config/rx/rx.c (rx_compare_redundant): Remove.
21926         * config/rx/rx.md (cmpsi): Don't use it.
21927         * config/rx/rx-protos.h: Update.
21928
21929         * config/rx/rx-modes.def (CC_F): New mode.
21930         * config/rx/rx.c (rx_select_cc_mode): New.
21931         * config/rx/rx.h (SELECT_CC_MODE): Use it.
21932         * config/rx/rx-protos.h: Update.
21933
21934 2011-01-17  Richard Henderson  <rth@redhat.com>
21935
21936         * except.c (dump_eh_tree): Fix stray ; after for statement.
21937
21938 2011-01-17  Richard Guenther  <rguenther@suse.de>
21939
21940         PR tree-optimization/47313
21941         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
21942         handling before copying the body.  Properly deal with
21943         by-reference result in SSA form.
21944
21945 2011-01-17  Ian Lance Taylor  <iant@google.com>
21946
21947         PR target/47219
21948         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
21949         (struct_value_alias_set): Don't define.
21950         (sparc_option_override): Don't set sparc_sr_alias_set and
21951         struct_value_alias_set.
21952         (save_or_restore_regs): Use gen_frame_mem rather than calling
21953         set_mem_alias_set.
21954         (sparc_struct_value_rtx): Likewise.
21955
21956 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
21957
21958         PR target/47318
21959         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
21960         (_mm_maskstore_pd): Likewise.
21961         (_mm_maskload_ps): Likewise.
21962         (_mm_maskstore_ps): Likewise.
21963         (_mm256_maskload_pd): Change mask to __m256i.
21964         (_mm256_maskstore_pd): Likewise.
21965         (_mm256_maskload_ps): Likewise.
21966         (_mm256_maskstore_ps): Likewise.
21967
21968         * config/i386/i386-builtin-types.def: Updated.
21969         (ix86_expand_special_args_builtin): Likewise.
21970
21971         * config/i386/i386.c (bdesc_special_args): Update
21972         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
21973         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
21974         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
21975         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
21976
21977         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
21978         Use <avxpermvecmode> on mask register.
21979         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
21980
21981 2011-01-17  Olivier Hainque  <hainque@adacore.com>
21982             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
21983             Eric Botcazou  <ebotcazou@adacore.com>
21984
21985         PR target/46655
21986         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
21987         if <= USHRT_MAX in 32-bit mode.
21988
21989 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21990
21991         * doc/install.texi (Configuration, Specific): Wrap long
21992         lines in examples.  Allow line wrapping in long options
21993         and URLs where beneficial for PDF output.
21994
21995 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
21996
21997         * config/mips/mips.c (mips_classify_symbol): Don't return
21998         SYMBOL_PC_RELATIVE for nonlocal labels.
21999
22000 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
22001
22002         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
22003
22004 2011-01-15  Jan Hubicka  <jh@suse.cz>
22005
22006         PR tree-optimization/47276
22007         * ipa.c (function_and_variable_visibility): Do not try to mark alias
22008         declarations as needed.
22009
22010 2011-01-15  Martin Jambor  <mjambor@suse.cz>
22011
22012         * common.opt (fdevirtualize): New flag.
22013         * doc/invoke.texi (Option Summary): Document it.
22014         * opts.c (default_options_table): Add devirtualize flag.
22015         * ipa-prop.c (detect_type_change): Return immediately if
22016         devirtualize flag is not set.
22017         (detect_type_change_ssa): Likewise.
22018         (compute_known_type_jump_func): Likewise.
22019         (ipa_analyze_virtual_call_uses): Likewise.
22020
22021 2011-01-14  Martin Jambor  <mjambor@suse.cz>
22022
22023         PR tree-optimization/45934
22024         PR tree-optimization/46302
22025         * ipa-prop.c (type_change_info): New type.
22026         (stmt_may_be_vtbl_ptr_store): New function.
22027         (check_stmt_for_type_change): Likewise.
22028         (detect_type_change): Likewise.
22029         (detect_type_change_ssa): Likewise.
22030         (compute_complex_assign_jump_func): Check for dynamic type change.
22031         (compute_complex_ancestor_jump_func): Likewise.
22032         (compute_known_type_jump_func): Likewise.
22033         (compute_scalar_jump_functions): Likewise.
22034         (ipa_analyze_virtual_call_uses): Likewise.
22035         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
22036
22037 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22038
22039         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
22040         * config/i386/i386.opt (msse5): New Alias.
22041
22042 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22043
22044         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
22045         * config/sparc/linux64.h (CC1_SPEC): Likewise.
22046         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
22047         * config/sparc/sparc.h (CC1_SPEC): Likewise.
22048
22049 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22050
22051         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
22052         -mcpu options.
22053         * config/sparc/linux64.h (CC1_SPEC): Likewise.
22054         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
22055         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
22056         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
22057         Likewise.
22058         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
22059
22060 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22061
22062         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
22063
22064 2011-01-14  Mike Stump  <mikestump@comcast.net>
22065
22066         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
22067         * config/fr30/fr30.md: Likweise
22068         (movsi_push): Likewise.
22069         (movsi_pop): Likewise.
22070         (enter_func): Likewise.
22071         * config/moxie/moxie.md (movsi_push): Likewise.
22072         (movsi_pop): Likewise.
22073
22074 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22075
22076         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
22077         %{no_archive} %{exact_version}.
22078         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
22079         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
22080         %{no_archive} %{exact_version}.
22081         * config/mips/openbsd.h (LINK_SPEC): Likewise.
22082         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
22083         * config/mips/vxworks.h: Likewise.
22084
22085 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22086
22087         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
22088
22089 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22090
22091         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
22092         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
22093
22094 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22095
22096         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
22097         -nodefaultlib.
22098
22099 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22100
22101         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
22102         for mcpu not cpu.
22103         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
22104         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
22105         not cpu.
22106         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
22107         Don't handle -shlib.
22108
22109 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22110
22111         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
22112         (CC1_SPEC): Don't handle -profile.
22113
22114 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22115
22116         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
22117         * config/mips/mips.h (CC1_SPEC): Likewise.
22118
22119 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22120
22121         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
22122         * config/mips/mips.h (CC1_SPEC): Likewise.
22123
22124 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22125
22126         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
22127         * config/m32r/linux.h (LINK_SPEC): Likewise.
22128         * config/mips/linux.h (LINK_SPEC): Likewise.
22129         * config/mips/linux64.h (LINK_SPEC): Likewise.
22130         * config/sparc/linux.h (LINK_SPEC): Likewise.
22131         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
22132         LINK_SPEC): Likewise.
22133         * config/xtensa/linux.h (LINK_SPEC): Likewise.
22134
22135 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22136
22137         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
22138         %{version:-v}.
22139         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
22140
22141 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22142
22143         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
22144         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
22145
22146 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22147
22148         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
22149
22150 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22151
22152         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
22153         supports -Bstatic/-Bdynamic.
22154         * configure: Regenerate.
22155
22156 2011-01-14  Jan Hubicka  <jh@suse.cz>
22157             Jack Howarth  <howarth@bromo.med.uc.edu>
22158
22159         PR target/46037
22160         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
22161         when checking debug_info_level. Test write_symbols instead of
22162         debug_hooks->var_location when setting flag_var_tracking_uninit.
22163
22164 2011-01-14  Richard Guenther  <rguenther@suse.de>
22165
22166         PR tree-optimization/47179
22167         * target.def (ref_may_alias_errno): New target hook.
22168         * targhooks.h (default_ref_may_alias_errno): Declare.
22169         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
22170         (default_ref_may_alias_errno): New function.
22171         * target.h (struct ao_ref_s): Declare.
22172         * tree-ssa-alias.c: Include target.h.
22173         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
22174         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
22175         (targhooks.o): Likewise.
22176         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
22177         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
22178
22179 2011-01-14  Richard Guenther  <rguenther@suse.de>
22180
22181         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
22182
22183 2011-01-14  Richard Guenther  <rguenther@suse.de>
22184
22185         PR tree-optimization/47280
22186         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
22187         return CFG changes.
22188         (tree_ssa_forward_propagate_single_use_vars): Deal with
22189         CFG changes from associate_plusminus.
22190
22191 2011-01-14  Richard Guenther  <rguenther@suse.de>
22192
22193         PR middle-end/47281
22194         Revert
22195         2011-01-11  Richard Guenther  <rguenther@suse.de>
22196
22197         PR tree-optimization/46076
22198         * tree-ssa.c (useless_type_conversion_p): Conversions from
22199         unprototyped to empty argument list function types are useless.
22200
22201 2011-01-14  Richard Guenther  <rguenther@suse.de>
22202
22203         PR tree-optimization/47286
22204         * tree-ssa-structalias.c (new_var_info): Register variables are global.
22205
22206 2011-01-14  Martin Jambor  <mjambor@suse.cz>
22207
22208         PR middle-end/46823
22209         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
22210
22211 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
22212
22213         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
22214         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
22215         * config/xtensa/xtensa.c (xtensa_libcall_value,
22216         xtensa_function_value_regno_p): New functions.
22217         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
22218
22219 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
22220
22221         PR c++/47213
22222         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
22223         PE specific hook.
22224         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
22225         New function prototype.
22226         * config/i386/winnt.c (i386_pe_assemble_visibility):
22227         Warn only if attribute was specified by user.
22228
22229 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
22230
22231         PR target/47251
22232         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
22233         floating point.
22234         (floatunsdidf2_fcfidu): Ditto.
22235
22236 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22237
22238         * config/s390/s390.c (print_operand_address): Replace 'error' with
22239         'output_operand_lossage'.
22240         (print_operand): Likewise.
22241
22242 2011-01-13  Jeff Law  <law@redhat.com>
22243
22244         PR rtl-optimization/39077
22245         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
22246         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
22247         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
22248         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
22249         * gcse.c (prune_insertions_deletions): New function.
22250         (compute_pre_data): Use it.
22251
22252 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
22253
22254         PR debug/PR46973
22255         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
22256         static function.
22257         (prune_unused_types_mark): Use it.
22258
22259 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
22260
22261         PR rtl-optimization/45352
22262         * sel-sched.c: Update copyright years.
22263         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
22264         in the advancing loop when we have issued issue_rate insns.
22265
22266 2011-01-12  Richard Henderson  <rth@redhat.com>
22267
22268         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
22269         (TARGET_MD_ASM_CLOBBERS): New.
22270
22271         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
22272         (TARGET_DELEGITIMIZE_ADDRESS): New.
22273
22274         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
22275         (clzsi2, *bsch): New patterns.
22276
22277         * config/mn10300/mn10300.md (INT): New mode iterator.
22278         (*mov<INT>_clr): New pattern, and peep2 to generate it.
22279
22280         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
22281         flag_split_wide_types.
22282
22283         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
22284         (mn10300_trampoline_init): Rewrite without a template, an immediate
22285         load and a direct branch.
22286         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
22287
22288 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
22289
22290         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
22291         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
22292         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
22293         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
22294
22295 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
22296
22297         PR debug/47209
22298         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
22299         of type.
22300
22301 2011-01-12  Jan Hubicka  <jh@suse.cz>
22302
22303         PR driver/47244
22304         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
22305         (PLUGIN_COND_CLOSE): New macro.
22306         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
22307
22308 2011-01-12  Richard Guenther  <rguenther@suse.de>
22309
22310         PR lto/47259
22311         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
22312         register variables in a MEM_REF.
22313
22314 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
22315
22316         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
22317         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
22318         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
22319         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
22320         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
22321         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
22322         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
22323         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
22324         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
22325         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
22326         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
22327         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
22328         * config/gnu-user.h: New.  Copied from linux.h.
22329         (LINUX_TARGET_STARTFILE_SPEC): Rename to
22330         GNU_USER_TARGET_STARTFILE_SPEC.
22331         (LINUX_TARGET_ENDFILE_SPEC): Rename to
22332         GNU_USER_TARGET_ENDFILE_SPEC.
22333         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
22334         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
22335         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
22336         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
22337         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
22338         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
22339         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
22340         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
22341         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
22342         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
22343         * config/arm/linux-eabi.h (CC1_SPEC): Use
22344         GNU_USER_TARGET_CC1_SPEC.
22345         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
22346         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
22347         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
22348         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
22349         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
22350         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
22351         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
22352         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
22353
22354 2011-01-12  Richard Guenther  <rguenther@suse.de>
22355
22356         PR other/46946
22357         * doc/invoke.texi (ffast-math): Document it is turned on
22358         with -Ofast.
22359
22360 2011-01-12  Jan Hubicka  <jh@suse.cz>
22361
22362         PR tree-optimization/47233
22363         * opts.c (common_handle_option): Disable ipa-reference with profile
22364         feedback.
22365
22366 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
22367
22368         * c-parser.c (c_parser_objc_at_property_declaration): Improved
22369         error message.
22370
22371 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
22372
22373         * c-parser.c (c_lex_one_token): Updated and reindented some
22374         comments.  No changes in code.
22375
22376 2011-01-11  Ian Lance Taylor  <iant@google.com>
22377
22378         * godump.c (go_output_var): Don't output the variable if there is
22379         already a type with the same name.
22380
22381 2011-01-11  Ian Lance Taylor  <iant@google.com>
22382
22383         * godump.c (go_format_type): Don't generate float80.
22384
22385 2011-01-11  Richard Henderson  <rth@redhat.com>
22386
22387         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
22388         declaration.  Rewrite for both speed and size.
22389         (mn10300_address_cost_1): Remove.
22390         (mn10300_register_move_cost): New.
22391         (mn10300_memory_move_cost): New.
22392         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
22393         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
22394         extensions, shifts, BSWAP, CLZ.
22395         (mn10300_wide_const_load_uses_clr): Remove.
22396         (TARGET_REGISTER_MOVE_COST): New.
22397         (TARGET_MEMORY_MOVE_COST): New.
22398         * config/mn10300/mn10300-protos.h: Update.
22399         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
22400
22401         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
22402         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
22403         * config/mn10300/mn10300-protos.h: Update.
22404         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
22405         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
22406         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
22407         (*test_int_bitfield, *test_byte_bitfield): Remove.
22408         (*bit_test, *subreg_bit_test): Remove.
22409         * config/mn10300/predicates.md (const_8bit_operand): Remove.
22410
22411         * config/mn10300/constraints.md ("c"): Rename from "A".
22412         ("A", "D"): New constraint letters.
22413         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
22414         (fmssf4, fnmasf4, fnmssf4): Likewise.
22415
22416         * config/mn10300/mn10300.md (isa): New attribute.
22417         (enabled): New attribute.
22418
22419         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
22420         (abssf2, negsf2): Define only for hardware fp.
22421         (sqrtsf2): Reformat.
22422         (addsf3, subsf3, mulsf3): Merge expander and insn.
22423
22424         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
22425         (DEBUGGER_AUTO_OFFSET): Remove.
22426         (DEBUGGER_ARG_OFFSET): Remove.
22427
22428         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
22429         Emit register stores with the same offsets as the hardware.
22430         (mn10300_store_multiple_operation): Don't check that the register
22431         save offsets are monotonic.
22432         * config/mn10300/mn10300-protos.h: Update.
22433
22434         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
22435
22436         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
22437         in terms of the value on the stack, not the MDR register.
22438
22439 2011-01-11  Jan Hubicka  <jh@suse.cz>
22440
22441         PR lto/45721
22442         PR lto/45375
22443         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
22444         (symbol_alias_set_destroy, symbol_alias_set_contains,
22445         propagate_aliases_backward): Declare.
22446         * lto-streamer-out.c (struct sets): New sturcture.
22447         (trivally_defined_alias): New function.
22448         (output_alias_pair_p): Rewrite.
22449         (output_unreferenced_globals): Fix output of alias pairs.
22450         (produce_symtab): Likewise.
22451         * ipa.c (function_and_variable_visibility): Set weak alias destination
22452         as needed in lto.
22453         * varasm.c (symbol_alias_set_t): Remove.
22454         (symbol_alias_set_destroy): Export.
22455         (propagate_aliases_forward, propagate_aliases_backward): New functions
22456         based on ...
22457         (compute_visible_aliases): ... this one; remove.
22458         (trivially_visible_alias): New
22459         (trivially_defined_alias): New.
22460         (remove_unreachable_alias_pairs): Rewrite.
22461         (finish_aliases_1): Reorganize code checking if alias is defined.
22462         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
22463         in LTO mode.
22464
22465 2011-01-11  Richard Guenther  <rguenther@suse.de>
22466
22467         PR tree-optimization/46076
22468         * tree-ssa.c (useless_type_conversion_p): Conversions from
22469         unprototyped to empty argument list function types are useless.
22470
22471 2011-01-11  Richard Guenther  <rguenther@suse.de>
22472
22473         PR middle-end/45235
22474         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
22475         volatile MEMs as MEM_READONLY_P.
22476
22477 2011-01-11  Richard Guenther  <rguenther@suse.de>
22478
22479         PR tree-optimization/47239
22480         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
22481
22482 2011-01-11  Jeff Law  <law@redhat.com>
22483
22484         PR tree-optimization/47086
22485         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
22486         IVs from statements that might throw.
22487
22488 2011-01-10  Jan Hubicka  <jh@suse.cz>
22489
22490         PR lto/45375
22491         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
22492
22493 2011-01-10  Jan Hubicka  <jh@suse.cz>
22494
22495         PR lto/45375
22496         * profile.c (read_profile_edge_counts): Ignore profile inconistency
22497         when correcting profile.
22498
22499 2011-01-10  Jan Hubicka  <jh@suse.cz>
22500
22501         PR lto/46083
22502         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
22503         DECL_FINI_PRIORITY.
22504         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
22505         Restore DECL_FINI_PRIORITY.
22506
22507 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22508
22509         * doc/gimple.texi: Fix quoting of multi-word return values in
22510         @deftypefn statements.  Ensure presence of return value.  Wrap
22511         overlong @deftypefn lines.
22512         (is_gimple_operand, is_gimple_min_invariant_address): Remove
22513         descriptions of removed functions.
22514         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
22515         of multi-word return value in @deftypefn statement.
22516
22517 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22518
22519         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
22520         (Conditional Expressions, Logical Operators)
22521         (Statement and operand traversals): Do not indent smallexample
22522         code.  Fix duplicate function argument in example.
22523
22524 2011-01-10  Jeff Law  <law@redhat.com>
22525
22526         PR tree-optimization/47141
22527         * ipa-split.c (split_function): Handle case where we are
22528         returning a value and the return block has a virtual operand phi.
22529
22530 2011-01-10  Jan Hubicka  <jh@suse.cz>
22531
22532         PR tree-optimization/47234
22533         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
22534         (pass_feedback_split_functions): Declare.
22535         * passes.c (init_optimization_passes): Add ipa-split as subpass of
22536         tree-profile.
22537         * ipa-split.c (gate_split_functions): Update comments; disable
22538         split-functions for profile_arc_flag and branch_probabilities.
22539         (gate_feedback_split_functions): New function.
22540         (execute_feedback_split_functions): New function.
22541         (pass_feedback_split_functions): New global var.
22542
22543 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
22544
22545         PR lto/46760
22546         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
22547         calling gimple_call_set_cannot_inline.
22548
22549 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
22550
22551         * config/darwin-sections.def: Remove unused section.
22552
22553 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
22554
22555         PR c++/47218
22556         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
22557
22558 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
22559
22560         PR objc/47232
22561         * c-parser.c (c_parser_declaration_or_fndef): Improved
22562         error message.
22563
22564 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
22565
22566         * config/i386/winnt.c (i386_pe_start_function): Make sure
22567         to switch back to function's section.
22568
22569 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
22570
22571         PR gcc/46902
22572         PR testsuite/46912
22573         * plugin.c: Move include of dlfcn.h from here...
22574         * system.h: ... to here.
22575
22576 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22577
22578         * doc/cpp.texi (C++ Named Operators): Fix markup for header
22579         file name.
22580         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
22581         two extra empty pages in PDF output.
22582
22583 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
22584
22585         PR objc/47078
22586         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
22587         for error recovery purposes behave as if it was not specified so
22588         that the default type is usd.
22589
22590 2011-01-07  Jan Hubicka  <jh@suse.cz>
22591
22592         PR tree-optmization/46469
22593         * ipa.c (function_and_variable_visibility): Clear needed flags on
22594         nodes with external decls; handle weakrefs merging correctly.
22595
22596 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
22597
22598         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
22599         not false.
22600
22601 2011-01-07  Jan Hubicka  <jh@suse.cz>
22602
22603         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
22604         and no longer claim that gold is required for linker plugin.
22605         * configure: Regenerate.
22606         * gcc.c (PLUGIN_COND): New macro.
22607         (LINK_COMMAND_SPEC): Use it.
22608         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
22609         * config.in (HAVE_LTO_PLUGIN): New.
22610         * configure.ac (--with-lto-plugin): New parameter; autodetect
22611         HAVE_LTO_PLUGIN.
22612
22613 2011-01-07  Jan Hubicka  <jh@suse.cz>
22614
22615         PR tree-optimization/46367
22616         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
22617         when we can update original.
22618         (cgraph_mark_inline_edge): Sanity check.
22619         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
22620
22621 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22622
22623         * config/spu/spu.h (ASM_COMMENT_START): Define.
22624
22625 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
22626
22627         PR driver/42445
22628         * gcc.c (%>S): New.
22629         (SWITCH_KEEP_FOR_GCC): Likewise.
22630         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
22631         (do_spec_1): Handle "%>".
22632
22633         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
22634
22635 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
22636
22637         PR target/47201
22638         * config/i386/i386.c (ix86_delegitimize_address): If
22639         simplify_gen_subreg fails, return orig_x.
22640
22641         PR bootstrap/47187
22642         * value-prof.c (gimple_stringop_fixed_value): Handle
22643         lhs of the call properly.
22644
22645 2011-01-07  Jan Hubicka  <jh@suse.cz>
22646
22647         PR lto/45375
22648         * lto-opt.c (lto_reissue_options): Set flag_shlib.
22649
22650 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
22651
22652         * target.def (function_switched_text_sections): New hook.
22653         * doc/tm.texi: Regenerated.
22654         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
22655         * final.c (default_function_switched_text_sections): New.
22656         (final_scan_insn): Call function_switched_text_sections when a
22657         mid-function section change occurs.
22658         * output.h (default_function_switched_text_sections): Declare.
22659         * config/darwin-protos.h (darwin_function_switched_text_sections):
22660         Likewise.
22661         * config/darwin.c (darwin_function_switched_text_sections): New.
22662         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
22663
22664 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
22665
22666         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
22667         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
22668         the secondary code fragment when outputting for DWARF == 2.
22669
22670 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
22671
22672         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
22673         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
22674         Remove.
22675         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
22676         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
22677
22678 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
22679
22680         PR debug/46704
22681         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
22682         when it is not empty.
22683
22684 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
22685
22686         Bobcat Enablement
22687         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
22688         (case ${target}): Add btver1.
22689         * config/i386/driver-i386.c (host_detect_local_cpu): Let
22690         -march=native recognize btver1 processors.
22691         * config/i386/i386-c.c (ix86_target_macros_internal): Add
22692         btver1 def_and_undef
22693         * config/i386/i386.c (struct processor_costs btver1_cost): New
22694         btver1 cost table.
22695         (m_BTVER1): New definition.
22696         (m_AMD_MULTIPLE): Includes m_BTVER1.
22697         (initial_ix86_tune_features): Add btver1 tune.
22698         (processor_target_table): Add btver1 entry.
22699         (static const char *const cpu_names): Add btver1 entry.
22700         (software_prefetching_beneficial_p): Add btver1.
22701         (ix86_option_override_internal): Add btver1 instruction sets.
22702         (ix86_issue_rate): Add btver1.
22703         (ix86_adjust_cost): Add btver1.
22704         * config/i386/i386.h (TARGET_BTVER1): New definition.
22705         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
22706         (enum processor_type): Add PROCESSOR_BTVER1.
22707         * config/i386/i386.md (define_attr "cpu"): Add btver1.
22708
22709 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22710
22711         PR target/43309
22712         * config/i386/i386.c (legitimize_tls_address)
22713         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
22714         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
22715         (tls_initial_exec_64_sun): New pattern.
22716
22717 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
22718
22719         * doc/invoke.texi (Overall Options): Improve wording and markup
22720         of the description of -wrapper.
22721
22722 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
22723
22724         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
22725         rdynamic, threads): New Driver options.
22726
22727 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22728
22729         PR target/38118
22730         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
22731         if coming from .tdata.
22732         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
22733
22734 2011-01-06  Jan Hubicka  <jh@suse.cz>
22735
22736         PR lto/47188
22737         * collect2.c (main): Do not enable LTOmode when plugin is active.
22738
22739 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22740
22741         PR other/45915
22742         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
22743         --version output if supported.
22744         * configure: Regenerate.
22745
22746 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
22747
22748         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
22749         Driver options.
22750
22751 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
22752
22753         PR c/47150
22754         * c-convert.c (convert): When converting a complex expression
22755         other than COMPLEX_EXPR to a different complex type, ensure
22756         c_save_expr is called instead of save_expr, unless in_late_binary_op.
22757         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
22758         when converting COMPLEX_TYPE.
22759
22760 2011-01-06  Ira Rosen  <irar@il.ibm.com>
22761
22762         PR tree-optimization/47139
22763         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
22764         only the last reduction value is used outside the loop.  Update
22765         documentation.
22766
22767 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
22768
22769         * config/rtems.opt: New.
22770         * config.gcc (*-*-rtems*): Use rtems.opt.
22771
22772 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
22773
22774         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
22775         processors do not support 3DNow instructions.
22776
22777 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22778
22779         * config/spu/spu.c (spu_option_override): Set parameter
22780         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
22781
22782 2011-01-05  Jan Hubicka  <jh@suse.cz>
22783
22784         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
22785         at the command line.
22786
22787 2011-01-05  Martin Jambor  <mjambor@suse.cz>
22788
22789         PR lto/47162
22790         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
22791         deltas on streamed outgoing edges.
22792         (output_node_opt_summary): Output info for outgoing edges only when
22793         the node is in new parameter set.
22794         (output_cgraph_opt_summary): New parameter set, passed to the two
22795         aforementioned functions.  Update its forward declaration and its
22796         callee too.
22797
22798 2011-01-05  Tom Tromey  <tromey@redhat.com>
22799
22800         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
22801         operator to c_finish_omp_atomic.
22802         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
22803         (build_unary_op): Update.
22804         (build_modify_expr): Update.
22805         (build_asm_expr): Update.
22806
22807 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22808
22809         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
22810         newly inserted insns.
22811         (pad_bb): Likewise.
22812         (spu_emit_branch_hint): Likewise.
22813         (insert_hbrp_for_ilb_runout): Likewise.
22814         (spu_machine_dependent_reorg): Call df_finish_pass after
22815         schedule_insns returns.
22816
22817 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22818
22819         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
22820
22821 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
22822
22823         PR tree-optimization/47005
22824         * tree-sra.c (struct access): Add 'non_addressable' bit.
22825         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
22826         (decide_one_param_reduction): Return 0 if the parameter is passed by
22827         reference and one of the accesses in the group is non_addressable.
22828
22829 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
22830
22831         PR tree-optimization/47056
22832         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
22833         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
22834         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
22835
22836 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
22837
22838         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
22839         initializer.  Skip view conversions from aggregate types.
22840
22841 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
22842
22843         PR bootstrap/47055
22844         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
22845
22846 2011-01-04  Philipp Thomas  <pth@suse.de>
22847
22848         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
22849         obvious typo.
22850
22851 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22852
22853         * function.c (thread_prologue_and_epilogue_insns): Do not crash
22854         on empty epilogue sequences.
22855
22856 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
22857
22858         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
22859         non-static): New Driver options.
22860
22861 2011-01-04  Jie Zhang  <jie@codesourcery.com>
22862
22863         PR driver/47137
22864         * gcc.c (default_compilers[]): Set combinable field to 0
22865         for all assembly languages.
22866
22867 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
22868
22869         * config/mips/loongson3a.md: New file.
22870         * config/mips/mips.md: Include loongson3a.md.
22871         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
22872         TUNE_LOONGSON_3A.
22873
22874 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
22875
22876         PR middle-end/47017
22877         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
22878         instead of convert_memory_address_addr_space on the base expression.
22879
22880 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22881
22882         * config/spu/spu.c (spu_option_override): Update error text
22883         for bad -march= / -mtune= values.
22884
22885 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22886
22887         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
22888         if branch-hint optimization will be performed.
22889
22890 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
22891
22892         PR tree-optimization/47148
22893         * ipa-split.c (split_function): Convert arguments to
22894         DECL_ARG_TYPE if possible.
22895
22896         PR tree-optimization/47155
22897         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
22898         when computing uns.
22899
22900         PR rtl-optimization/47157
22901         * combine.c (try_combine): If undobuf.other_insn becomes
22902         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
22903         and set *new_direct_jump_p too.
22904
22905 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
22906
22907         PR tree-optimization/47021
22908         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
22909
22910 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
22911
22912         * gcc.c (process_command): Update copyright notice dates.
22913         * gcov.c (print_version): Likewise.
22914         * gcov-dump.c (print_version): Likewise.
22915         * mips-tfile.c (main): Likewise.
22916         * mips-tdump.c (main): Likewise.
22917
22918 2011-01-03  Martin Jambor  <mjambor@suse.cz>
22919
22920         PR tree-optimization/46801
22921         * tree-sra.c (type_internals_preclude_sra_p): Check whether
22922         aggregate fields start at byte boundary instead of the bit-field flag.
22923
22924 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
22925
22926         PR driver/47137
22927         * gcc.c (main): Revert revision 168407.
22928
22929 2011-01-03  Martin Jambor  <mjambor@suse.cz>
22930
22931         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
22932
22933 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22934
22935         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
22936         vector optab to expand vector/scalar shift, update gimple to vector.
22937
22938 2011-01-03  Martin Jambor  <mjambor@suse.cz>
22939
22940         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
22941         a thunk.
22942
22943 2011-01-03  Martin Jambor  <mjambor@suse.cz>
22944
22945         PR tree-optimization/46984
22946         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
22947         HOST_WIDE_INT.
22948         (cgraph_create_indirect_edge): Fixed line length.
22949         (cgraph_indirect_call_info): Declare.
22950         (cgraph_make_edge_direct) Update declaration.
22951         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
22952         (cgraph_create_indirect_edge): Use it.
22953         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
22954         callees.
22955         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
22956         the new thunk_delta representation.
22957         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
22958         HOST_WIDE_INT.
22959         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
22960         (ipa_read_indirect_edge_info): Likewise.
22961         * lto-cgraph.c (output_edge_opt_summary): New function.
22962         (output_node_opt_summary): Call it on all outgoing edges.
22963         (input_edge_opt_summary): New function.
22964         (input_node_opt_summary): Call it on all outgoing edges.
22965
22966 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
22967
22968         PR driver/47137
22969         * gcc.c (main): Don't check have_o when settting combine_inputs.
22970
22971 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
22972
22973         * regrename.c: Add general comment describing the pass.
22974         (struct du_head): Remove 'length' field.
22975         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
22976         (regrename_optimize): Do not sort chains.  Rework comments, add others.
22977         Force renaming to the preferred class (if any) in the first pass and do
22978         not consider registers that belong to it in the second pass.
22979         (create_new_chain): Do not set 'length' field.
22980         (scan_rtx_reg): Likewise.
22981
22982 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
22983
22984         PR tree-optimization/47140
22985         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
22986         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
22987         to bit_value_binop.
22988
22989         PR rtl-optimization/47028
22990         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
22991         parm_birth_insn instead of at the beginning of first bb.
22992
22993 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
22994
22995         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
22996         Remove the word "see" before "@pxref".
22997         * doc/rtl.texi: Remove the word "see" before "@pxref".
22998
22999 2011-01-01  Jan Hubicka  <jh@suse.cz>
23000
23001         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
23002         memory.
23003
23004 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
23005
23006         PR target/38662
23007         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
23008
23009 \f
23010 Copyright (C) 2011 Free Software Foundation, Inc.
23011
23012 Copying and distribution of this file, with or without modification,
23013 are permitted in any medium without royalty provided the copyright
23014 notice and this notice are preserved.