OSDN Git Service

PR target/47381
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
2             H.J. Lu  <hongjiu.lu@intel.com>
3
4         PR target/47381
5         PR target/49832
6         PR target/49833
7         * config/i386/i386.md (i): Change SImode attribute to "e".
8         (g): Change SImode attribute to "rme".
9         (di): Change SImode attribute to "nF".
10         (general_operand): Change SImode attribute to x86_64_general_operand.
11         (general_szext_operand): Change SImode attribute to
12         x86_64_szext_general_operand.
13         (immediate_operand): Change SImode attribute to
14         x86_64_immediate_operand.
15         (nonmemory_operand): Change SImode attribute to
16         x86_64_nonmemory_operand.
17         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
18         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
19         (*lea_1): Use SWI48 mode iterator.
20         (*lea_1_zext): New insn pattern.
21         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
22         (*bt<mode>): Ditto.
23         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
24         Update operand constraints.
25         (addsi_1_zext): Ditto.
26         (*add<mode>2): Ditto.
27         (*addsi_3_zext): Ditto.
28         (*subsi_1_zext): Ditto.
29         (*subsi_2_zext): Ditto.
30         (*subsi_3_zext): Ditto.
31         (*addsi3_carry_zext): Ditto.
32         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
33         (*mulsi3_1_zext): Ditto.
34         (*andsi_1): Ditto.
35         (*andsi_1_zext): Ditto.
36         (*andsi_2_zext): Ditto.
37         (*<any_or:code>si_1_zext): Ditto.
38         (*<any_or:code>si_2_zext): Ditto.
39         (*test<mode>_1): Use <general_operand> predicate for operand 1.
40         (*and<mode>_2): Ditto.
41         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
42         (add->lea splitter): Check operand modes in insn constraint.  Extend
43         operands less than SImode wide to SImode.
44         (add->lea zext splitter): Do not extend input operands to DImode.
45         (*lea_general_1): Handle only QImode and HImode operands.
46         (*lea_general_2): Ditto.
47         (*lea_general_3): Ditto.
48         (*lea_general_1_zext): Remove.
49         (*lea_general_2_zext): Ditto.
50         (*lea_general_3_zext): Ditto.
51         (*lea_general_4): Check operand modes in insn constraint.  Extend
52         operands less than SImode wide to SImode.
53         (ashift->lea splitter): Ditto.
54         * config/i386/i386.c (ix86_print_operand_address): Print address
55         registers with 'q' modifier on 64bit targets.
56         * config/i386/predicates.md (pic_32bit_opreand): Define as special
57         predicate.  Reject non-SI and non-DI modes.
58
59 2011-07-25  Andrew Pinski  <apinski@cavium.com>
60
61         PR tree-opt/49671
62         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
63         TREE_THIS_NOTRAP into the inner most MEM_REF.
64         Always copy TREE_THIS_VOLATILE.
65         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
66         arguments are not volatile references.
67
68 2011-07-25  Richard Henderson  <rth@redhat.com>
69
70         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
71         * final.c (final_scan_insn): Don't test for it.
72         (rest_of_clean_state): Likewise.
73
74 2011-07-25  Richard Henderson  <rth@redhat.com>
75
76         PR debug/49841
77         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
78         (emit_frame_save): Likewise.
79         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
80         insn onto a dummy blockage insn after the join label.
81
82 2011-07-25  Richard Henderson  <rth@redhat.com>
83
84         * dwarf2cfi.c (dw_trace_info): Add ID member.
85         (get_trace_index): Remove.  Change users to use ID member.
86         (before_next_cfi_note): New.
87         (connect_traces): Remove unreachable traces before the main loop.
88         Look across one trace and generate remember/restore_state if needed.
89
90 2011-07-25  Richard Henderson  <rth@redhat.com>
91
92         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
93
94 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
95
96         * genattr.c (write_upcase, gen_attr <enum definition writing>):
97         Move to ...
98         * genattr-common.c ... here.
99         (main): Call gen_attr.
100         * optc-gen.awk: Make generated program include insn-attr-common.h .
101         * Makefile.in (oprions.o): Depend on insn-attr-common.h
102
103 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
104
105         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
106         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
107         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
108         m32c_print_operand, m32c_print_operand_address): Remove.
109         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
110         Change return type to bool. Change argument type to bool.
111         (m32c_print_operand, m32c_print_operand_address): Make static.
112         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
113         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
114
115 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
116
117         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
118         attributes): Document mmap.
119
120 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
121
122         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
123         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
124         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
125         mmix_print_operand, mmix_print_operand_address): Remove.
126         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
127         Change return type to bool. Change argument type to bool.
128         (mmix_print_operand, mmix_print_operand_address): Make static.
129         (mmix_intval, mmix_output_condition): Change 'x' argument type
130         to const_rtx.
131         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
132         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
133
134 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
135
136         PR target/39386
137         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
138         shift counter for x << x and x >> x shifts.
139
140 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
141
142         PR target/47124
143         * config.gcc: Reject *-*-solaris2 configuration.
144
145 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
146
147         PR tree-optimization/49809
148         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
149         gimple_get_lhs instead of gimple_assign_lhs.
150
151 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
152
153         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
154
155 2011-07-25  Richard Guenther  <rguenther@suse.de>
156
157         PR tree-optimization/49822
158         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
159         more.  Make sure to preserve stmts with side-effects.  Properly
160         handle virtual defs, follow a longer def chain.
161
162 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
163
164         PR plugins/45348
165         PR plugins/48425
166         PR plugins/46577
167         * Makefile.in: Do not flatten c-family directory when installing
168         plugin headers.
169
170 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
171
172         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
173         original nodes if we are dealing with virtual clones.
174
175 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
176
177         * common/config/c6x/c6x-common.c: New file.
178
179 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
180
181         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
182
183 2011-07-25  Richard Guenther  <rguenther@suse.de>
184
185         PR tree-optimization/49715
186         * tree-vrp.c: Include expr.h and optabs.h.
187         (range_fits_type_): New function.
188         (simplify_float_conversion_using_ranges): Likewise.
189         (simplify_stmt_using_ranges): Call it.
190         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
191         * optabs.c (can_float_p): Export.
192         * optabs.h (can_float_p): Declare.
193
194 2011-07-25  Richard Guenther  <rguenther@suse.de>
195
196         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
197         (get_value_range): For out-of-range SSA names or names created
198         after propagation return a read-only varying range.
199         (dump_all_value_ranges): Adjust.
200         (vrp_initialize): Likewise.
201         (vrp_finalize): Likewise.
202
203 2011-07-24  Richard Henderson  <rth@redhat.com>
204
205         PR debug/49831
206         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
207         them entirely.
208
209 2011-07-24  Richard Henderson  <rth@redhat.com>
210
211         PR debug/49825
212         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
213         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
214
215 2011-07-24  Richard Henderson  <rth@redhat.com>
216
217         PR debug/49827
218         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
219
220 2011-07-24  Richard Henderson  <rth@redhat.com>
221
222         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
223         Zero args_size for abnormal edges.  Adjust all callers.
224
225 2011-07-24  Richard Henderson  <rth@redhat.com>
226
227         PR debug/49825
228         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
229
230 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
231
232         PR bootstrap/49835
233         * collect2.c (demangle_flag): Removed.
234
235 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
236
237         * configure.ac (demangler_in_ld): Default to yes.
238         * configure: Regenerated.
239         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
240         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
241         --no-demangle options straight through to ld.  When
242         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
243         way that has the intended effect on Windows.
244
245 2011-07-23  Richard Henderson  <rth@redhat.com>
246
247         * dwarf2cfi.c: Include basic-block.h.
248         (dw_label_info): Remove.
249         (trace_work_list, trace_index): New.
250         (remember_row, emit_cfa_remember): Remove.
251         (dw_trace_info_hash, dw_trace_info_eq): New.
252         (get_trace_index, get_trace_info): New.
253         (save_point_p): New.
254         (free_cfi_row): Remove.
255         (add_cfi): Do not emit DW_CFA_remember_state.
256         (cfa_row_equal_p): New.
257         (barrier_args_size): Remove.
258         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
259         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
260         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
261         (dwarf2out_cfi_begin_epilogue): Remove.
262         (dwarf2out_frame_debug_restore_state): Remove.
263         (connect_traces, create_pseudo_cfg): New.
264         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
265         * Makefile.in (dwarf2cfi.o): Update.
266
267 2011-07-23  Richard Henderson  <rth@redhat.com>
268
269         * dwarf2cfi.c (dw_trace_info): New.
270         (dw_label_info): New.
271         (cie_return_save): New.
272         (cur_trace): New.
273         (queued_args_size): Rename from args_size.  Update all users.
274         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
275         (def_cfa_1): Use cur_trace instead of cfa_*.
276         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
277         (clobbers_queued_reg_save, reg_saved_in): Likewise.
278         (dwarf2out_frame_debug_expr): Likewise.
279         (create_cie_data): Split out from ...
280         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
281
282 2011-07-23  Richard Henderson  <rth@redhat.com>
283
284         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
285         Update all users to match.
286         (execute_dwarf2_frame): Free reg_saved_in_data.
287
288 2011-07-23  Richard Henderson  <rth@redhat.com>
289
290         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
291         (queued_reg_saves): Don't GTY.  Change to a VEC.
292         (queue_reg_save): Update to match.
293         (dwarf2out_flush_queued_reg_saves): Likewise.
294         (clobbers_queued_reg_save): Likewise.
295         (reg_saved_in): Likewise.
296         (execute_dwarf2_frame): Free queued_reg_saves.
297
298 2011-07-23  Richard Henderson  <rth@redhat.com>
299
300         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
301
302 2011-07-23  Richard Henderson  <rth@redhat.com>
303
304         * dwarf2cfi.c (add_cfi_args_size): Split out from...
305         (dwarf2out_args_size): ... here.
306         (add_cfi_restore): Split out from ...
307         (dwarf2out_frame_debug_cfa_restore): ... here.
308         (def_cfa_0): Split out from ...
309         (def_cfa_1): ... here.
310         (cfi_oprnd_equal_p, cfi_equal_p): New.
311         (change_cfi_row): New.
312         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
313         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
314         (output_cfis): Remove.
315         * dwarf2out.c (output_fde): Simplify output_cfi loop.
316         (dwarf2out_switch_text_section): Don't call output_cfis.
317         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
318         * dwarf2out.h: Update decls.
319         (enum dw_val_class): Add dw_val_class_none.
320
321 2011-07-23  Richard Henderson  <rth@redhat.com>
322
323         * dwarf2cfi.c (update_row_reg_save): New.
324         (dwarf2out_frame_debug_cfa_expression): Use it.
325         (dwarf2out_frame_debug_cfa_restore): Likewise.
326         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
327
328 2011-07-23  Richard Henderson  <rth@redhat.com>
329
330         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
331
332 2011-07-23  Richard Henderson  <rth@redhat.com>
333
334         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
335         (cie_cfi_row): New.
336         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
337         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
338         (cur_row, remember_row): New.
339         (def_cfa_1): Use cur_row instead of the old_* variables.
340         (dwarf2out_frame_debug_restore_state): Similarly.
341         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
342         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
343         (dwarf2out_frame_debug_adjust_cfa): Likewise.
344         (dwarf2out_frame_debug_cfa_offset): Likewise.
345         (dwarf2out_frame_debug_expr): Likewise.
346         (execute_dwarf2_frame): Set up cur_row.
347         * dwarf2out.h (struct cfa_loc): Mark for GTY.
348
349 2011-07-23  Richard Henderson  <rth@redhat.com>
350
351         * basic-block.h (EDGE_PRESERVE): New.
352         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
353         * bb-reorder.c: Include except.h.
354         (fix_up_crossing_landing_pad): New.
355         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
356         landing pads in the right partition.  Duplicate as necessary.
357         (partition_hot_cold_basic_blocks): Fix up DF info after
358         duplicating landing pads.
359         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
360         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
361         is set properly.  Validate that EH edges are not CROSSING.
362         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
363         (dw2_build_landing_pads): ... here.
364         (convert_to_eh_region_ranges): Remove code to fixup crossing
365         landing pads.
366         * except.h (expand_dw2_landing_pad_for_region): Declare.
367         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
368
369 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
370
371         PR target/49816
372         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
373
374 2011-07-22  Jason Merrill  <jason@redhat.com>
375
376         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
377
378 2011-07-22  Richard Henderson  <rth@redhat.com>
379
380         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
381
382 2011-07-22  Richard Henderson  <rth@redhat.com>
383
384         * jump.c (maybe_propagate_label_ref): Split out of...
385         (mark_all_labels): ... here.  Do not attempt label_ref
386         propagation while in cfglayout mode.
387
388 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
389
390         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
391         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
392         (dwarf_attr_name): Handle DW_AT_GNU_macros.
393         (dwarf2out_define): If the vector is empty and
394         lineno is 0, emit a dummy entry first.
395         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
396         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
397         optimize_macinfo_range): New functions.
398         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
399         mergeable, optimize longer strings using
400         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
401         optimize longer sequences of define/undef ops from headers
402         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
403         emit a section headers.
404         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
405         and macinfo_section_label to DEBUG_MACRO_SECTION
406         resp. DEBUG_MACRO_SECTION_LABEL.
407         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
408         instead of DW_AT_macro_info.
409
410         PR other/32998
411         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
412         options.
413         * dwarf2out.c: Include opts.h.
414         (dchar_p): New typedef.  Define heap VEC for it.
415         (producer_string): New variable.
416         (gen_producer_string): New function.
417         (gen_compile_unit_die): Use it.
418         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
419         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
420         * doc/invoke.texi: Document -grecord-gcc-switches and
421         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
422         to -frecord-gcc-switches description.
423
424 2011-07-22  Jason Merrill  <jason@redhat.com>
425
426         PR c++/30112
427         * c-decl.c (c_linkage_bindings): Define.
428
429 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
430
431         PR debug/49815
432         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
433
434 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
435
436         * config/i386/i386.c (ix86_option_override_internal): Disallow
437         MS ABI in x32 mode.
438         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
439         only for TARGET_LP64.
440         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
441
442 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
443
444         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
445         avoid warnings when GCC is built with a C++ compiler.
446
447 2011-07-22  Martin Jambor  <mjambor@suse.cz>
448
449         PR lto/49796
450         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
451         if decl node is in another partition, call cgraph_get_node only once.
452
453 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
454
455         * config.gcc (x86_64-*-linux*): Set
456         default_gnu_indirect_function to yes.
457
458 2011-07-22  Richard Guenther  <rguenther@suse.de>
459
460         PR tree-optimization/45819
461         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
462         preserve volatile and notrap flags.
463
464 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
465             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
466
467         PR bootstrap/49794
468         * configure.ac: Test AM_ICONV with CXX.
469         * configure: Regenerate.
470         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
471
472 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
473
474         PR bootstrap/49797
475         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
476         (set_cloog_options): Use it.
477
478 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
479
480         PR c++/49756
481         * gcc.c (main): Call stack_limit_increase (64MB).
482         * toplev.c (toplev_main): Likewise.
483
484 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
485
486         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
487         instead of force_reg.
488
489 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
490
491         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
492         needed and use force_reg after convert.
493         (ix86_expand_call): Likewise.
494         (ix86_expand_special_args_builtin): Likewise.
495         (ix86_expand_builtin): Likewise.
496
497 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
498
499         PR middle-end/47654
500         PR middle-end/49649
501         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
502         in parameter.  Initialize v1 and v2 based on the values returned
503         by clast_name_to_lb_ub.
504         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
505         values.
506         (type_for_clast_bin): Same.
507         (type_for_clast_expr): Same.
508         (type_for_clast_eq): Update calls to type_for_clast_expr.
509         (type_for_clast_for): Same.
510         (build_iv_mapping): Same.
511         * graphite-ppl.h (value_min): New.
512
513 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
514
515         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
516         types whenever possible.
517
518 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
519
520         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
521         and ub fields.
522         (new_clast_name_index): Add lb and ub parameters.
523         (free_clast_name_index): New.
524         (clast_name_to_lb_ub): New.
525         (save_clast_name_index): Add lb and ub parameters.
526         (compute_bounds_for_param): New.
527         (type_for_level): Removed.
528         (type_for_clast_for): Removed level parameter.  Do not call
529         type_for_level.
530         (graphite_create_new_loop): Store the lb and ub for the clast_name
531         of the iterator of the loop that has been generated.
532         (graphite_create_new_loop_guard): Remove parameter level.
533         (create_params_index): Store the lb and ub of each parameter.
534         (gloog): Use free_clast_name_index.  Pass to create_params_index
535         the current scop.
536
537 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
538
539         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
540         (max_precision_type): Inline max_signed_precision_type.
541         (type_for_clast_red): Use max_precision_type.
542         (type_for_clast_bin): Same.
543         (type_for_clast_for): Same.
544
545 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
546
547         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
548         type_for_interval.
549         (gcc_type_for_value): Renamed type_for_value.
550         (gcc_type_for_clast_term): Renamed type_for_clast_term.
551         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
552         (gcc_type_for_clast_red): Renamed type_for_clast_red.
553         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
554         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
555         (graphite_translate_clast_equation): Update calls.
556         (compute_type_for_level): Renamed type_for_level.
557         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
558         (build_iv_mapping): Update calls.
559         (graphite_create_new_loop_guard): Same.
560
561 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
562
563         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
564         comment.
565
566 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
567
568         * graphite-clast-to-gimple.c (struct ivs_params): New.
569         (clast_name_to_gcc): Use ivs_params to pass around parameters.
570         (clast_to_gcc_expression): Same.
571         (clast_to_gcc_expression_red): Same.
572         (gcc_type_for_clast_term): Same.
573         (gcc_type_for_clast_expr): Same.
574         (gcc_type_for_clast_red): Same.
575         (gcc_type_for_clast_bin): Same.
576         (gcc_type_for_clast_eq): Same.
577         (graphite_translate_clast_equation): Same.
578         (graphite_create_guard_cond_expr): Same.
579         (graphite_create_new_guard): Same.
580         (graphite_create_new_loop): Same.
581         (build_iv_mapping): Same.
582         (translate_clast_user): Same.
583         (graphite_create_new_loop_guard): Same.
584         (translate_clast): Same.
585         (translate_clast_for_loop): Same.
586         (translate_clast_for): Same.
587         (translate_clast_guard): Same.
588         (initialize_cloog_names): Fix typo.
589         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
590
591 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
592
593         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
594         (new_clast_name_index): Add level parameter.
595         (clast_name_to_level): New.
596         (save_clast_name_index): Add level parameter.
597         (newivs_to_depth_to_newiv): Removed.
598         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
599         (graphite_create_new_loop): Add level parameter.  Pass level to
600         save_clast_name_index.
601         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
602         (create_params_index): Pass level to save_clast_name_index.
603
604 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
605
606         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
607         recompute type, lb, and ub.  Get them from...
608         (graphite_create_new_loop_guard): ...here.  Pass in parameter
609         pointers to type, lb, and ub.
610         (translate_clast_for_loop): Update function calls.
611         (translate_clast_for): Same.
612
613 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
614
615         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
616         psct_dynamic_dim.
617         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
618         (gcc_type_for_iv_of_clast_loop): Update use of level.
619         (gloog): Start counting nesting level from 0.
620         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
621         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
622         psct_dynamic_dim on level.
623
624 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
625
626         * config/i386/i386.c (ix86_legitimize_address): Convert to
627         Pmode if needed.
628
629 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
630
631         * config/i386/i386.c (function_value_64): Always return pointers
632         in Pmode.
633         (ix86_promote_function_mode): New.
634         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
635
636 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
637
638         PR tree-optimization/49749
639         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
640         remove no-longer-used maxrank variable.
641
642 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
643
644         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
645
646 2011-07-21  Jason Merrill  <jason@redhat.com>
647
648         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
649         * recog.h (struct insn_data_d): Check it instead of
650         HAVE_DESIGNATED_INITIALIZERS.
651         * genoutput.c (output_insn_data): Likewise.
652
653 2011-07-21  Richard Guenther  <rguenther@suse.de>
654
655         PR tree-optimization/49770
656         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
657         valueized any operand.  Renamed from ...
658         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
659         (valueize_shared_reference_ops_from_ref): Return whether we
660         valueized any operand.
661         (vn_reference_lookup): Only when we valueized any operand
662         use the valueized reference for alias analysis.  Do not preserve
663         the original reference tree in this case.
664
665 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
666
667         * config/i386/i386.c (ix86_decompose_address): Reject all but
668         register operands and subregs of DImode hard registers in index.
669
670 2011-07-21  Kai Tietz  <ktietz@redhat.com>
671
672         * fold-const.c (fold_unary_loc): Preserve indirect
673         comparison cast to none-boolean type.
674         * tree-ssa.c (useless_type_conversion_p): Preserve cast
675         from/to boolean-type.
676         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
677         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
678         * tree-cfg.c (verify_gimple_comparison): Check result
679         type of comparison expression.
680         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
681         of condition result and disallow type-cast sinking into comparison.
682
683 2011-07-21  Richard Guenther  <rguenther@suse.de>
684
685         * tree-ssa-forwprop.c (combine_conversions): Return whether
686         we have to run cfg-cleanup.  Properly remove dead stmts.
687         (ssa_forward_propagate_and_combine): Adjust.
688
689 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
690
691         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
692
693 2011-07-21  Kai Tietz  <ktietz@redhat.com>
694
695         * tree-ssa-propagate.c (substitute_and_fold): Use
696         do_dce flag to deside, if BB's statements are scanned
697         in last to first, or first to last order.
698
699 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
700
701         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
702
703 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
704             Uros Bizjak  <ubizjak@gmail.com>
705             Richard Henderson  <rth@redhat.com>
706
707         * config/i386/constraints.md (w): New.
708
709         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
710         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
711
712         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
713         instead of TARGET_64BIT.
714
715         * config/i386/i386.md (indirect_jump): Replace
716         nonimmediate_operand with indirect_branch_operand.
717         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
718         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
719         Convert operand 0 to Pmode for x32 if not PIC.
720         (*tablejump_1): Replace nonimmediate_operand with
721         indirect_branch_operand.  Replace constraint "m" with "w".
722         (*call_vzeroupper): Replace constraint "m" with "w".
723         (*call): Likewise.
724         (*call_rex64_ms_sysv_vzeroupper): Likewise.
725         (*call_rex64_ms_sysv): Likewise.
726         (*call_value_vzeroupper): Likewise.
727         (*call_value): Likewise.
728         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
729         (*call_value_rex64_ms_sysv): Likewise.
730         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
731
732         * config/i386/predicates.md (indirect_branch_operand): New.
733         (call_insn_operand): Support x32.
734
735 2011-07-20  Michael Eager  <eager@eagercon.com>
736
737         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
738
739 2011-07-20  Richard Henderson  <rth@redhat.com>
740
741         * cfg.c (dump_bb_info): Dump basic_block->flags.
742         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
743
744 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
745
746         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
747         of DImode hard registers in index.
748         (ix86_legitimate_address_p): Allow subregs of base and index to span
749         more than a word.  Assert that subregs of base and index satisfy
750         register_no_elim_operand predicates.  Reject addresses where
751         base and index have different modes.
752
753 2011-07-20  Robert Millan  <rmh@gnu.org>
754
755         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
756
757 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
758
759         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
760         removing now-unnecessary assignment.
761
762 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
763
764         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
765         memory address space to the type's address space.
766
767 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
768
769         PR target/36467
770         PR target/49687
771         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
772         and expand appropriately if there is a CONST_INT in operand2.
773         (usmulqihi3): New insn.
774         (*sumulqihi3): New insn.
775         (*osmulqihi3): New insn.
776         (*oumulqihi3): New insn.
777         (*muluqihi3.uconst): New insn_and_split.
778         (*muluqihi3.sconst): New insn_and_split.
779         (*mulsqihi3.sconst): New insn_and_split.
780         (*mulsqihi3.uconst): New insn_and_split.
781         (*mulsqihi3.oconst): New insn_and_split.
782         (*ashifthi3.signx.const): New insn_and_split.
783         (*ashifthi3.signx.const7): New insn_and_split.
784         (*ashifthi3.zerox.const): New insn_and_split.
785         (mulsqihi3): New insn.
786         (muluqihi3): New insn.
787         (muloqihi3): New insn.
788         * config/avr/predicates.md (const_2_to_7_operand): New.
789         (const_2_to_6_operand): New.
790         (u8_operand): New.
791         (s8_operand): New.
792         (o8_operand): New.
793         (s9_operand): New.
794         (register_or_s9_operand): New.
795
796 2011-07-20  Kai Tietz  <ktietz@redhat.com>
797
798         * builtins.c (fold_builtin_expect): See through the cast
799         from truthvalue_type_node to long.
800
801 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
802
803         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
804         where we can use them from the standard and altivec instruction
805         sets, instead of always using the 3 operand VSX forms that require
806         the destination to overlap one of the inputs.
807         (vsx_fms*): Ditto.
808         (vsx_fnma*): Ditto.
809         (vsx_fnms*): Ditto.
810
811         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
812         for DF types.
813         (fmsdf4_fpr): Ditto.
814         (nfmadf4_fpr): Ditto.
815         (nfmsdf4_fpr): Ditto.
816
817 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
818
819         * genrecog.c (make_insn_sequence): Correct position numbering
820         when filtering out match_scratch and match_dup.
821
822 2011-07-20  Richard Guenther  <rguenther@suse.de>
823
824         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
825         against already removed statements.
826         (forward_propagate_into_comparison): Remove dead defining stmts.
827         (forward_propagate_into_gimple_cond): Likewise.
828         (forward_propagate_into_cond): Simplify.
829         (ssa_forward_propagate_and_combine): Handle changed cfg from
830         forward_propagate_into_comparison.
831         * tree-ssa-phiopt.c (conditional_replacement): Use proper
832         locations for newly built statements.
833
834 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
835
836         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
837
838 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
839
840         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
841         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
842
843 2011-07-20  Richard Guenther  <rguenther@suse.de>
844
845         PR middle-end/18908
846         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
847         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
848         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
849
850 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
851
852         * config/frv/frv.c (frv_register_move_cost): Define explicitly
853         costs for subclasses of GR_REGS.
854
855 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
856
857         PR target/49780
858         * config/i386/predicates.md (no_seg_addres_operand): No more special.
859         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
860         of DImode hard registers in base.
861         (ix86_legitimate_address_p): Allow SImode and DImode base and index
862         registers.
863
864 2011-07-20  Richard Guenther  <rguenther@suse.de>
865
866         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
867         (unify_nodes): Deal with that.
868         (solve_graph): Likewise.
869
870 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
871
872         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
873         canonicalize left operand from ZERO_EXTEND to AND.
874
875 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
876
877         * target.def (class_max_nregs): New hook.
878         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
879         * doc/tm.texi: Regenerate.
880         * targhooks.c (default_class_max_nregs): New function.
881         * targhooks.h (default_class_max_nregs): Declare.
882         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
883         x_ira_reg_class_min_nregs arrays to unsigned char.
884         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
885         hook instead of CLASS_MAX_NREGS macro.
886         * reginfo.c (restore_register_info): Ditto.
887         * ira-conflicts.c (process_regs_for_copy): Use
888         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
889         Change type rclass and aclass vars to reg_class_t.
890         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
891         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
892         reg_class_t.
893         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
894         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
895
896         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
897         * config/i386/i386.c (ix86_class_max_nregs): New function.
898         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
899         instead of CLASS_MAX_NREGS macro.
900         (TARGET_CLASS_MAX_NREGS): Define.
901         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
902         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
903         * config/avr/avr.c (class_max_nregs): Remove function.
904         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
905         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
906         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
907         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
908         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
909         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
910         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
911         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
912         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
913         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
914         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
915         * config/score/score.h (CLASS_MAX_NREGS): Remove.
916         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
917         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
918         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
919
920 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
921
922         * cif-code.def (OVERWRITABLE): Fix typo and move around.
923         (TARGET_OPTIMIZATION_MISMATCH): Delete.
924         (EH_PERSONALITY): Fix typo.
925         (NON_CALL_EXCEPTIONS): Fix message.
926         (OPTIMIZATION_MISMATCH): Adjust message.
927         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
928
929 2011-07-19  Ian Lance Taylor  <iant@google.com>
930
931         * doc/install.texi (Configuration): Document
932         --enable-build-poststage1-with-cxx.
933
934 2011-07-19  Robert Millan  <rmh@gnu.org>
935
936         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
937         (GLIBC_DYNAMIC_LINKER): Remove.
938
939         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
940         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
941         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
942         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
943         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
944         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
945
946         * config/mips/linux.h: Remove everything except for ...
947         (GLIBC_DYNAMIC_LINKER): ... this macro.
948
949         * config/mips/linux64.h: Remove everything except for ...
950         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
951         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
952         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
953         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
954         (GNU_USER_LINK_EMULATIONN32): New macros.
955
956         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
957         Use the new headers.
958
959 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
960
961         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
962         Add offset_known_p and size_known_p fields.
963         (MEM_OFFSET_KNOWN_P): Update accordingly.
964         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
965         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
966         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
967         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
968         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
969         (init_emit_regs): Likewise.
970
971 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
972
973         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
974         (MEM_OFFSET): Change from returning an rtx to returning a
975         HOST_WIDE_INT.
976         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
977         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
978         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
979         (clear_mem_offset): Declare.
980         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
981         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
982         MEM_OFFSET to get a HOST_WIDE_INT offset.
983         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
984         (adjust_offset_for_component_ref): Take a bool "known_p"
985         parameter and a HOST_WIDE_INT "offset" parameter.
986         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
987         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
988         than an rtx.  Use clear_mem_offset to clear the offset.
989         * cfgcleanup.c (merge_memattrs): Likewise.
990         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
991         * function.c (assign_parm_find_stack_rtl): Likewise.
992         (assign_parm_setup_stack): Likewise.
993         * print-rtl.c (print_rtx): Likewise.
994         * reload.c (find_reloads_subreg_address): Likewise.
995         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
996         * var-tracking.c (INT_MEM_OFFSET): Likewise.
997         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
998         (get_mem_align_offset): Likewise.
999         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
1000         (clear_mem_offset): New function.
1001         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
1002         offset rather than an rtx.  Assume both the expressio and offset
1003         are available.
1004         (r10k_needs_protection_p_1): Update accordingly, checking the
1005         expression and offset availability here instead.
1006
1007 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
1008
1009         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
1010         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
1011         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
1012         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
1013         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
1014         (clear_mem_size): Declare.
1015         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
1016         (clear_mem_size): New function.
1017         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
1018         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
1019         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
1020         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
1021         to clear the size.
1022         (nonoverlapping_memrefs_p): Likewise.
1023         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
1024         (expand_builtin_init_trampoline): Likewise.
1025         * calls.c (compute_argument_addresses): Likewise.
1026         * cfgcleanup.c (merge_memattrs): Likewise.
1027         * dce.c (find_call_stack_args): Likewise.
1028         * dse.c (record_store, scan_insn): Likewise.
1029         * dwarf2out.c (dw_sra_loc_expr): Likewise.
1030         * expr.c (emit_block_move_hints): Likewise.
1031         * function.c (assign_parm_find_stack_rtl): Likewise.
1032         * print-rtl.c (print_rtx): Likewise.
1033         * reload.c (find_reloads_subreg_address): Likewise.
1034         * rtlanal.c (may_trap_p_1): Likewise.
1035         * var-tracking.c (track_expr_p): Likewise.
1036         * varasm.c (assemble_trampoline_template): Likewise.
1037         * config/arm/arm.c (arm_print_operand): Likewise.
1038         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
1039         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
1040         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
1041         (expand_constant_setmem_prologue): Likewise.
1042         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
1043         * config/rs6000/rs6000.c (expand_block_move): Likewise.
1044         (adjacent_mem_locations): Likewise.
1045         * config/s390/s390.c (s390_expand_setmem): Likewise.
1046         (s390_expand_insv): Likewise.
1047         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
1048         (*extendqi<mode>2_short_displ): Likewise.
1049         * config/sh/sh.c (expand_block_move): Likewise.
1050         * config/sh/sh.md (extv, extzv): Likewise.
1051
1052 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
1053
1054         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
1055         (mem_attrs_htab_eq): ...here.
1056         (find_mem_attrs): Replace with...
1057         (set_mem_attrs): ...this function.  Take a mem_attrs structure
1058         rather than individual fields.
1059         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
1060         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
1061         (set_mem_size, change_address, adjust_address_1, offset_address)
1062         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
1063         Update accordingly.
1064
1065 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
1066
1067         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
1068         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
1069         Provide a dummy definition of MEM_ADDR_SPACE for generators.
1070         (target_rtl): Add x_mode_mem_attrs.
1071         (mode_mem_attrs): New macro.
1072         (get_mem_attrs): New function.
1073         * emit-rtl.c (get_mem_attrs): Rename to...
1074         (find_mem_attrs): ...this.
1075         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
1076         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
1077         (set_mem_size, change_address, adjust_address_1, offset_address)
1078         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
1079         Update accordingly.
1080         (init_emit_regs): Initialize mode_mem_attrs.
1081
1082 2011-07-19  Richard Guenther  <rguenther@suse.de>
1083
1084         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
1085         TRUTH_*_EXPR handling.
1086         * tree-ssa-operands.c (get_expr_operands): Likewise.
1087         * tree-ssa-pre.c (fully_constant_expression): Likewise.
1088         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
1089         Likewise.
1090         (is_and_or_or): Likewise.
1091         (is_norm_cond_subset_of): Likewise.
1092
1093 2011-07-19  Richard Guenther  <rguenther@suse.de>
1094
1095         * tree.h (fold_build_pointer_plus_loc): New helper function.
1096         (fold_build_pointer_plus_hwi_loc): Likewise.
1097         (fold_build_pointer_plus): Define.
1098         (fold_build_pointer_plus_hwi): Likewise.
1099         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
1100         (fold_builtin_memory_op): Likewise.
1101         (fold_builtin_stpcpy): Likewise.
1102         (fold_builtin_memchr): Likewise.
1103         (fold_builtin_strstr): Likewise.
1104         (fold_builtin_strchr): Likewise.
1105         (fold_builtin_strrchr): Likewise.
1106         (fold_builtin_strpbrk): Likewise.
1107         (fold_builtin_strcat): Likewise.
1108         (expand_builtin_memory_chk): Likewise.
1109         (fold_builtin_memory_chk): Likewise.
1110         * c-typeck.c (build_unary_op): Likewise.
1111         * cgraphunit.c (thunk_adjust): Likewise.
1112         * fold-const.c (build_range_check): Likewise.
1113         (fold_binary_loc): Likewise.
1114         * omp-low.c (extract_omp_for_data): Likewise.
1115         (expand_omp_for_generic): Likewise.
1116         (expand_omp_for_static_nochunk): Likewise.
1117         (expand_omp_for_static_chunk): Likewise.
1118         * tree-affine.c (add_elt_to_tree): Likewise.
1119         * tree-data-ref.c (split_constant_offset_1): Likewise.
1120         * tree-loop-distribution.c (generate_memset_zero): Likewise.
1121         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
1122         * tree-predcom.c (ref_at_iteration): Likewise.
1123         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
1124         (add_to_parts): Likewise.
1125         (create_mem_ref): Likewise.
1126         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
1127         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
1128         (number_of_iterations_le): Likewise.
1129         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
1130         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
1131         (vect_create_addr_base_for_vector_ref): Likewise.
1132         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
1133         (vect_create_cond_for_alias_checks): Likewise.
1134         * tree-vrp.c (extract_range_from_assert): Likewise.
1135         * config/alpha/alpha.c (alpha_va_start): Likewise.
1136         (alpha_gimplify_va_arg_1): Likewise.
1137         * config/i386/i386.c (ix86_va_start): Likewise.
1138         (ix86_gimplify_va_arg): Likewise.
1139         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1140         * config/mep/mep.c (mep_expand_va_start): Likewise.
1141         (mep_gimplify_va_arg_expr): Likewise.
1142         * config/mips/mips.c (mips_va_start): Likewise.
1143         (mips_gimplify_va_arg_expr): Likewise.
1144         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1145         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
1146         (rs6000_gimplify_va_arg): Likewise.
1147         * config/s390/s390.c (s390_va_start): Likewise.
1148         (s390_gimplify_va_arg): Likewise.
1149         * config/sh/sh.c (sh_va_start): Likewise.
1150         (sh_gimplify_va_arg_expr): Likewise.
1151         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
1152         * config/spu/spu.c (spu_va_start): Likewise.
1153         (spu_gimplify_va_arg_expr): Likewise.
1154         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1155         Likewise.
1156         (xstormy16_gimplify_va_arg_expr): Likewise.
1157         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
1158         (xtensa_gimplify_va_arg_expr): Likewise.
1159
1160 2011-07-19  Richard Guenther  <rguenther@suse.de>
1161
1162         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
1163         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
1164         handling.
1165
1166         PR middle-end/18908
1167         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
1168         result of BIT_*_EXPR to bitfield precision.
1169
1170 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
1171
1172         PR tree-optimization/49742
1173         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
1174         as a potential write.
1175
1176 2011-07-19  Richard Guenther  <rguenther@suse.de>
1177
1178         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
1179         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
1180         (forward_propagate_comparison): Simplify, remove obsolete code.
1181
1182 2011-07-19  Richard Guenther  <rguenther@suse.de>
1183
1184         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
1185         BIT_XOR_EXPR, same as the RTL expander does.
1186         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
1187         (verify_gimple_assign_unary): Likewise.
1188         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
1189         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
1190         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
1191
1192 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
1193
1194         PR tree-optimization/49768
1195         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
1196         if offset is smaller than bitoffset, but offset+size is bigger
1197         than bitoffset.
1198
1199 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
1200
1201         PR tree-optimization/49771
1202         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
1203         zero step, set segment length to the size of the data-ref's type.
1204
1205 2011-07-18  Martin Jambor  <mjambor@suse.cz>
1206
1207         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
1208         comments.
1209         (ipcp_values_pool): Declare.
1210         (ipcp_sources_pool): Likewise.
1211         (ipcp_lattice): Changed to forward declaration.
1212         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
1213         cannot_devirtualize.
1214         (ipa_node_params): New fields descriptors, lattices, known_vals,
1215         clone_for_all_contexts and node dead, removed fields params and
1216         count_scale.
1217         (ipa_set_param_count): Removed.
1218         (ipa_get_param_count): Made to work with descriptors vector.
1219         (ipa_get_param): Updated.
1220         (ipa_param_cannot_devirtualize_p): Removed.
1221         (ipa_param_types_vec_empty): Likewise.
1222         (ipa_set_param_used): New function.
1223         (ipa_get_param_used): Updated to use descriptors vector.
1224         (ipa_func_list): Removed.
1225         (ipa_init_func_list): Removed declaration.
1226         (ipa_push_func_to_list_1): Likewise.
1227         (ipa_pop_func_from_list): Likewise.
1228         (ipa_push_func_to_list): Removed.
1229         (ipa_lattice_from_jfunc): Remove declaration.
1230         (ipa_get_jf_pass_through_result): Declare.
1231         (ipa_get_jf_ancestor_result): Likewise.
1232         (ipa_value_from_jfunc): Likewise.
1233         (ipa_get_lattice): Update.
1234         (ipa_lat_is_single_const): New function.
1235         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
1236         (ipa_init_func_list): Likewise.
1237         (ipa_pop_func_from_list): Likewise.
1238         (ipa_get_param_decl_index): Fix coding style.
1239         (count_formal_params): Removed.
1240         (count_formal_params_1): Renamed to count_formal_params.
1241         (ipa_populate_param_decls): Update to use descriptors vector.
1242         (ipa_initialize_node_params): Likewise.
1243         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
1244         (ipa_analyze_params_uses): Likewise.
1245         (ipa_free_node_params_substructures): Likewise and free also lattices
1246         and known values.
1247         (duplicate_array): Removed.
1248         (ipa_edge_duplication_hook): Add the new edge to the list of edge
1249         clones.
1250         (ipa_node_duplication_hook): Update to use new lattices.
1251         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
1252         (ipa_free_all_structures_after_iinln): Likewise.
1253         (ipa_write_node_info): Update to use new lattices.
1254         (ipa_read_node_info): Likewise.
1255         (ipa_get_jf_pass_through_result): New function.
1256         (ipa_get_jf_ancestor_result): Likewise.
1257         (ipa_value_from_jfunc): Likewise.
1258         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
1259         * ipa-cp.c: Reimplemented.
1260         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
1261         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
1262         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
1263         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
1264         * doc/invoke.texi (devirt-type-list-size): Removed description.
1265         (ipa-cp-value-list-size): Added description.
1266
1267 2011-07-18  Richard Henderson  <rth@redhat.com>
1268
1269         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
1270         before calling create_basic_block.
1271
1272 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
1273
1274         PR middle-end/49675
1275         * tree.c (build_common_builtin_nodes): Register
1276         __builtin_return_address, __cyg_profile_func_enter
1277         and __cyg_profile_func_exit.
1278
1279 2011-07-18  Richard Henderson  <rth@redhat.com>
1280
1281         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
1282         (add_labels_and_missing_jumps): ... here.
1283         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
1284
1285 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
1286
1287         PR target/47744
1288         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1289         of DImode hard registers in PLUS address chains.
1290
1291 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1292
1293         PR bootstrap/49769
1294         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
1295         (alpha*-*-freebsd*): Likewise.
1296         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
1297         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
1298         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
1299         crtprec80.o, crtfastmath.o to extra_parts for all targets.
1300         (ia64*-*-elf*): Remove extra_parts.
1301         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
1302         (sparc64-*-linux*): Likewise.
1303         (sparc64-*-freebsd*): Likewise.
1304
1305         Revert:
1306         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
1307         (ia64*-*-linux*): Likewise.
1308         (mips64*-*-linux*): Likewise.
1309         (mips*-*-linux*): Likewise.
1310
1311 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
1312
1313         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
1314
1315 2011-07-18  Richard Guenther  <rguenther@suse.de>
1316
1317         * gimplify.c (gimplify_expr): Use input_location, not saved_location
1318         when building new trees.
1319
1320 2011-07-18  Richard Guenther  <rguenther@suse.de>
1321
1322         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
1323         expansion result to bitfield precision if required.
1324
1325 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1326
1327         * config.gcc (i[3456x]86-*-netware*): Remove.
1328
1329         * gthr-nks.h: Remove.
1330         * configure.ac (enable_threads): Remove nks.
1331         * configure: Regenerate.
1332
1333         * config/i386/i386.c (ix86_encode_section_info): Remove netware
1334         reference.
1335         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
1336         <netware.h> reference.
1337
1338         * config/i386/netware-libgcc.c,
1339         gcc/config/i386/netware-libgcc.def,
1340         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
1341         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
1342         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
1343         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
1344
1345         * doc/extend.texi (Function Attributes,
1346         callee_pop_aggregate_return): Remove i?86-netware reference.
1347         * doc/install.texi (Configuration, --enable-threads): Remove nks.
1348
1349 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1350
1351         PR target/49746
1352         Revert:
1353         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1354
1355         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
1356         patterns.
1357
1358 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
1359
1360         PR middle-end/49732
1361         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
1362
1363 2011-07-16  Matthias Klose  <doko@ubuntu.com>
1364
1365         * doc/install.texi: Document --enable-static-libjava.
1366
1367 2011-07-15  Richard Henderson  <rth@redhat.com>
1368
1369         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
1370         Replace all three arguments by returning a VEC of edges.
1371         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
1372         pointers and counts.
1373         (fix_edges_for_rarely_executed_code): Merge ...
1374         (rest_of_handle_partition_blocks): ... into...
1375         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
1376         any work was performed.
1377         (pass_partition_blocks): Clear todo_flags_finish.
1378
1379 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
1380             Jakub Jelinek  <jakub@redhat.com>
1381             Jonathan Wakely  <jwakely.gcc@gmail.com>
1382
1383         PR libstdc++/49745
1384         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
1385         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
1386
1387 2011-07-15  Jason Merrill  <jason@redhat.com>
1388
1389         PR testsuite/49741
1390         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
1391         rather than --tool_opts.
1392
1393 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
1394
1395         * doc/plugins.texi (Building GCC plugins): gengtype needs its
1396         corresponding gtype.state.
1397
1398 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1399
1400         PR target/49723
1401         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
1402
1403 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
1404
1405         PR target/48220
1406         * doc/md.texi (Standard Names): Document window_save.
1407         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
1408         expand_debug_expr and expand_debug_source_expr.  If the target has
1409         a window_save instruction, adjust the ENTRY_VALUE_EXP.
1410         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
1411         SSA_NAME_VAR is a parameter.
1412         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
1413         * var-tracking.c (parm_reg_t): New type and associated vector type.
1414         (windowed_parm_regs): New variable.
1415         (adjust_insn): If the target has a window_save instruction and this
1416         is the instruction, make its effect on parameter registers explicit.
1417         (next_non_note_insn_var_location): New function.
1418         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
1419         (vt_add_function_parameter): If the target has a window_save insn,
1420         adjust the incoming RTL and record that in windowed_parm_regs.
1421         (vt_finalize): Free windowed_parm_regs.
1422
1423 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
1424
1425         * doc/invoke.texi (C6X Options): New section.
1426         * doc/md.texi (TI C6X family): New section.
1427         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
1428         tic6x-*-uclinux.
1429         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
1430         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
1431         Provide C6X definitions.
1432         * config/c6x/c6x.md: New file.
1433         * config/c6x/constraints.md: New file.
1434         * config/c6x/predicates.md: New file.
1435         * config/c6x/c6x-sched.md.in: New file.
1436         * config/c6x/c6x-sched.md: New file.
1437         * config/c6x/gensched.sh: New file.
1438         * config/c6x/c6x-mult.md.in: New file.
1439         * config/c6x/genmult.sh: New file.
1440         * config/c6x/c6x-mult.md: New file.
1441         * config/c6x/sync.md: New file.
1442         * config/c6x/c6x-protos.h: New file.
1443         * config/c6x/sfp-machine.h: New file.
1444         * config/c6x/c6x.c: New file.
1445         * config/c6x/c6x.h: New file.
1446         * config/c6x/crti.s: New file.
1447         * config/c6x/crtn.s: New file.
1448         * config/c6x/lib1funcs.asm: New file.
1449         * config/c6x/c6x-modes.def: New file.
1450         * config/c6x/genopt.sh: New file.
1451         * config/c6x/c6x.opt: New file.
1452         * config/c6x/c6x-tables.opt: New file.
1453         * config/c6x/c6x-opts.h: New file.
1454         * config/c6x/c6x-isas.def: New file.
1455         * config/c6x/elf.h: New file.
1456         * config/c6x/elf-common.h: New file.
1457         * config/c6x/uclinux-elf.h: New file.
1458         * config/c6x/t-c6x: New file.
1459         * config/c6x/t-c6x-elf: New file.
1460         * config/c6x/t-c6x-uclinux: New file.
1461         * config/c6x/t-c6x-softfp: New file.
1462         * config/c6x/gtd.c: New file.
1463         * config/c6x/gtf.c: New file.
1464         * config/c6x/ltd.c: New file.
1465         * config/c6x/ltf.c: New file.
1466         * config/c6x/ged.c: New file.
1467         * config/c6x/gef.c: New file.
1468         * config/c6x/led.c: New file.
1469         * config/c6x/lef.c: New file.
1470         * config/c6x/eqd.c: New file.
1471         * config/c6x/eqf.c: New file.
1472         * config/c6x/libgcc-c6xeabi.ver: New file.
1473
1474         Revert
1475         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1476         PR rtl-optimization/11320
1477         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
1478         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
1479         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
1480         current_sched_info->compute_jump_reg_dependencies. Record which
1481         registers are used and which registers are set by the jump.
1482         Clear deps->reg_conditional_sets after a barrier.
1483         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
1484         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
1485         (init_deps): Initialize reg_conditional_sets.
1486         (free_deps): Clear reg_conditional_sets.
1487         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
1488         Mark registers live on entry of the fallthrough block and conditionally
1489         set as set by the jump. Mark registers live on entry of non-fallthrough
1490         blocks as used by the jump.
1491         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
1492         Mark new parameters as unused.
1493
1494 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
1495
1496         PR tree-opt/49309
1497         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
1498         Use fold_build2_loc instead of build2.
1499         Use the correct type for the new tree.
1500
1501 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
1502
1503         PR rtl-optimization/11320
1504         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
1505         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
1506
1507 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
1508
1509         PR target/49487
1510         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
1511         of REG.
1512         (*rotw<mode>): Use const_int_operand for operand2.
1513         Use match_scatch for operand3.
1514         (*rotb<mode>): Ditto
1515         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
1516
1517 2011-07-14  Richard Guenther  <rguenther@suse.de>
1518
1519         PR tree-optimization/49651
1520         * tree-ssa-structalias.c (get_constraint_for_1): Properly
1521         handle dereferences with subvariables.
1522
1523 2011-07-14  Richard Guenther  <rguenther@suse.de>
1524
1525         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
1526         (fold_stmt_1): Do it here directly on gimple and as a first thing.
1527
1528 2011-07-14  Richard Guenther  <rguenther@suse.de>
1529
1530         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
1531         not bool_var when folding bool_var != 1 or bool_var == 0.
1532
1533 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
1534
1535         * haifa-sched.c (schedule_insns): Remove outdated comment.
1536         (schedule_block): When computing a known value for TODO_SPEC,
1537         just set it rather than using logical operations.
1538         (try_ready): Likewise.  Use a local variable rather than a
1539         pointer to TODO_SPEC.  Reorder an if statement to move the
1540         easy case to the then block.
1541         * sched-deps.c (dep_spec_p): New static function.
1542         (update_dep): Use it to decide whether to call
1543         change_spec_dep_to_hard.
1544         (get_back_and_forw_lists): Use it.
1545         (sd_resolve_dep): Likewise.
1546         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
1547         (haifa_note_mem_dep): Likewise.
1548         (check_dep): Likewise.
1549         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
1550         (sched_free_deps): Free in two passes.
1551
1552 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
1553
1554         PR middle-end/49736
1555         * expr.c (all_zeros_p): Undo bogus part of last change.
1556
1557 2011-07-14  Matthias Klose <doko@ubuntu.com>
1558
1559         * doc/extend.texi (optimize attribute): Fix typo.
1560
1561 2011-07-14  Richard Guenther  <rguenther@suse.de>
1562
1563         * gimplify.c (gimplify_expr): Only do required conversions.
1564
1565 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
1566
1567         PR target/43746
1568         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
1569         i.e. use default_elf_select_section.
1570         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
1571         (READONLY_DATA_SECTION_ASM_OP): Remove.
1572         (TARGET_ASM_NAMED_SECTION): Move from here...
1573         * config/avr/avr.c: ...to here.
1574         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
1575         (avr_asm_named_section): Make static.
1576
1577 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1578
1579         PR bootstrap/49739
1580         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
1581         and crtfastmath.o for Linux/x86.
1582
1583 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
1584
1585         * haifa-sched.c: Include "hashtab.h"
1586         (sched_no_dce): New global variable.
1587         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
1588         SHADOW_P): New macros.
1589         (last_clock_var, cycle_issued_insns): Move declarations.
1590         (must_backtrack): New static variable.
1591         (struct delay_pair): New structure.
1592         (delay_htab, delay_htab_i2): New static variables.
1593         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
1594         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
1595         functions.
1596         (dep_cost_1): If delay pairs exist, try to look up the insns and
1597         use the correct pair delay if we find them.
1598         (rank-for_schedule): Tweak priority for insns that must be scheduled
1599         soon to avoid backtracking.
1600         (queue_insn): Detect conditions which force backtracking.
1601         (ready_add): Likewise.
1602         (struct sched_block_state): Add member shadows_only_p.
1603         (struct haifa_save_data): New structure.
1604         (backtrack_queue): New static variable.
1605         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
1606         unschedule_insns_until, restore_last_backtrack_point,
1607         free_topmost_backtrack_point, free_backtrack_queue,
1608         estimate_insn_tick, estimate_shadow_tick): New functions.
1609         (prune_ready_list): New arg shadows_only_p.  All callers changed.
1610         If true, remove everything that isn't SHADOW_P.  Look up delay
1611         pairs and estimate ticks to avoid scheduling the first insn too early.
1612         (verify_shadows): New function.
1613         (schedule_block): Add machinery to enable backtracking.
1614         (sched_init): Take sched_no_dce into account when setting
1615         DF_LR_RUN_DCE.
1616         (free_delay_pairs): New function.
1617         (init_h_i_d): Initialize INSN_EXACT_TICK.
1618         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
1619         * sched-deps.c (sd_unresolve_dep): New function.
1620         * sched-int. (struct haifa_sched_info): New fields save_state
1621         and restore_state.
1622         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
1623         feeds_backtrack_insn and shadow_p.
1624         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
1625         (sched_no_dce): Declare variable.
1626         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
1627         sd_unresolve_dep): Declare functions.
1628         * modulo-sched.c (sms_sched_info): Clear the two new fields.
1629         * sched-rgn.c (rgn_const_sched_info): Likewise.
1630         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
1631         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
1632         (ebb_sched_info): Add them for the two new fields.
1633         (add_deps_for_risky_insns): Call add_delay_dependencies.
1634
1635 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
1636
1637         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
1638         Rename -mr11.
1639         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
1640         (rs6000_call_indirect_aix): Ditto.
1641         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
1642         (call_indirect_aix<ptrsize>_internal): Ditto.
1643         (call_indirect_aix<ptrsize>_nor11): Ditto.
1644         (call_indirect_aix<ptrsize>_internal2): Ditto.
1645         (call_value_indirect_aix<ptrsize>): Ditto.
1646         (call_value_indirect_aix<ptrsize>_internal): Ditto.
1647         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
1648         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
1649         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
1650
1651 2011-07-13  Jason Merrill  <jason@redhat.com>
1652
1653         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
1654
1655 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1656
1657         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
1658         * config/spu/spu.md ("clrsb<mode>2"): New expander.
1659
1660 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
1661
1662         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
1663         * configure: Regenerate.
1664
1665 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1666
1667         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
1668         (asm_file_start): Remove.
1669         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
1670         free_bb_for_insn around code that modifies insns before
1671         restarting df analysis.
1672
1673 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1674
1675         PR target/49541
1676         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
1677         (LINK_SPEC): ... here.
1678
1679 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
1680
1681         * haifa-sched.c (struct sched_block_state): New.
1682         (schedule_block): Move some local variables into such a structure.
1683
1684 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1685
1686         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
1687         * config/i386/t-crtpc: Remove.
1688         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
1689         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
1690         tmake_file.
1691         (x86_64-*-darwin*): Likewise.
1692         (i[34567]86-*-linux*): Likewise.
1693         (x86_64-*-linux*): Likewise.
1694
1695         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
1696         Handle -mpc32, -mpc64, -mpc80.
1697
1698 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1699
1700         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
1701         * config/alpha/t-crtfm: Remove.
1702         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
1703         * config/i386/t-crtfm: Remove.
1704         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
1705         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
1706         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
1707         * config/sparc/t-crtfm: Remove.
1708
1709         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
1710         (alpha*-*-freebsd*): Likewise.
1711         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
1712         (x86_64-*-darwin*): Likewise.
1713         (i[34567]86-*-linux*): Likewise.
1714         (x86_64-*-linux*): Likewise.
1715         (x86_64-*-mingw*): Likewise.
1716         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
1717         (ia64*-*-freebsd*): Likewise.
1718         (ia64*-*-linux*): Likewise.
1719         (mips64*-*-linux*): Likewise.
1720         (mips*-*-linux*): Likewise.
1721         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
1722         (sparc64-*-linux*): Likewise.
1723         (sparc64-*-freebsd*): Likewise.
1724
1725 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1726
1727         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
1728         * config/darwin-crt3.c: Move to ../libgcc/config.
1729         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
1730         ($(T)crt3$(objext)): Remove.
1731         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
1732         ($(T)crt2$(objext)): Remove.
1733         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
1734         (powerpc64-*-darwin*): Likewise.
1735
1736 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
1737
1738         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
1739
1740         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
1741         (addsi_1_zext): This.
1742
1743 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
1744
1745         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
1746         * doc/tm.texi: Regenerate.
1747         * target.def (mergeable_rodata_prefix): New defhookpod.
1748         * varasm.c (mergeable_string_section, mergeable_constant_section):
1749         Use it. Allocate name with alloca.
1750
1751 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
1752
1753         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
1754
1755 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
1756
1757         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
1758         overlap check.
1759
1760 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
1761
1762         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
1763         (count_type_elements): Delete.
1764         (complete_ctor_at_level_p): Declare.
1765         * expr.c (flexible_array_member_p): New function, split out from...
1766         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
1767         parameter with for_ctor_p.  When for_ctor_p is true, return the
1768         number of elements that should appear in the top-level constructor,
1769         otherwise return an estimate of the number of scalars.
1770         (categorize_ctor_elements): Replace p_must_clear with p_complete.
1771         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
1772         (complete_ctor_at_level_p): New function, borrowing union logic
1773         from old categorize_ctor_elements_1.
1774         (mostly_zeros_p): Return true if the constructor is not complete.
1775         (all_zeros_p): Update call to categorize_ctor_elements.
1776         * gimplify.c (gimplify_init_constructor): Update call to
1777         categorize_ctor_elements.  Don't call count_type_elements.
1778         Unconditionally prevent clearing for variable-sized types,
1779         otherwise rely on categorize_ctor_elements to detect
1780         incomplete initializers.
1781
1782 2011-07-13  Richard Guenther  <rguenther@suse.de>
1783
1784         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
1785         the final type is integral.
1786
1787 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
1788
1789         * sched-int.h (struct _dep): Add member cost.
1790         (DEP_COST, UNKNOWN_DEP_COST): New macros.
1791         * sched-deps.c (init_dep_1): Initialize DEP_COST.
1792         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
1793         (sched_change_pattern): Reset it for dependent insns.
1794
1795 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1796
1797         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
1798         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
1799         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
1800         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
1801         (CRT0_S, MCRT0_S): Remove.
1802         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
1803         Remove.
1804         (s-crt0): Remove.
1805         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
1806
1807 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
1808
1809         * cse.c (insert_with_costs): Put semi-colon after empty loop body
1810         on the next line.
1811         * emit-rtl.c (push_to_sequence): Likewise.
1812         * haifa-sched.c (max_issue): Likewise.
1813         * matrix-reorg.c (add_allocation_site): Likewise.
1814         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
1815         * reload.c (alternative_allows_const_pool_ref): Likewise.
1816         * sched-rgn.c (rgn_add_block): Likewise.
1817         (rgn_fix_recovery_cfg): Likewise.
1818         * tree.c (attribute_list_contained): Likewise.
1819
1820 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
1821
1822         * config/i386/i386.c: Tidy processor feature bitmasks.
1823         (m_P4_NOCONA): New.
1824
1825 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
1826
1827         PR rtl-opt/49474
1828         * cprop.c (find_implicit_sets): Correct the condition.
1829
1830 2011-07-12  Richard Henderson  <rth@redhat.com>
1831
1832         PR target/49713
1833         * dwarf2out.h (dwarf_frame_regnum): Remove.
1834         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
1835         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
1836         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
1837         (execute_dwarf2_frame): Initialize them.
1838         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
1839         users of the macros with the variables.
1840         (expand_builtin_dwarf_sp_column): Revert last change.
1841         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
1842         result of DWARF_FRAME_REGNUM into a local variable.
1843
1844 2011-07-12  Richard Henderson  <rth@redhat.com>
1845
1846         PR target/49714
1847         * config/i386/i386.c (x86_output_mi_thunk): Use
1848         machopic_indirect_call_target instead of machopic_indirection_name
1849         directly.
1850
1851 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
1852             Eric Botcazou  <ebotcazou@adacore.com>
1853
1854         * prefix.h: Wrap up in extern "C" block.
1855
1856 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
1857
1858         AMD bdver2 Enablement
1859         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
1860         (case ${target}): Add bdver2.
1861         * config/i386/driver-i386.c (host_detect_local_cpu): Let
1862         -march=native recognize bdver2 processors.
1863         * config/i386/i386-c.c (ix86_target_macros_internal): Add
1864         bdver2 def_and_undef
1865         * config/i386/i386.c (struct processor_costs bdver2_cost): New
1866         bdver2 cost table.
1867         (m_BDVER2): New definition.
1868         (m_AMD_MULTIPLE): Includes m_BDVER2.
1869         (initial_ix86_tune_features): Add bdver2 tuning.
1870         (processor_target_table): Add bdver2 entry.
1871         (static const char *const cpu_names): Add bdver2 entry.
1872         (ix86_option_override_internal): Add bdver2 instruction sets.
1873         (ix86_issue_rate): Add bdver2.
1874         (ix86_adjust_cost): Add bdver2.
1875         (has_dispatch): Add bdver2.
1876         * config/i386/i386.h (TARGET_BDVER2): New definition.
1877         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
1878         (enum processor_type): Add PROCESSOR_BDVER2.
1879         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
1880         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
1881         description.
1882
1883 2011-07-12  Richard Henderson  <rth@redhat.com>
1884
1885         PR target/49714
1886         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
1887         destination address in memory on some paths.
1888
1889 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
1890
1891         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
1892         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
1893         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
1894         * function.c (locate_and_pad_parm): Take it into account.
1895         * target.def (function_arg_round_boundary): New hook.
1896         * targhooks.c (default_function_arg_round_boundary): New function.
1897         * targhooks.h (default_function_arg_round_boundary): Declare.
1898         * doc/tm.texi: Regenerate.
1899
1900 2011-07-12  Richard Guenther  <rguenther@suse.de>
1901
1902         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
1903         Do not perform no-op changes.
1904
1905 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
1906
1907         * config/arm/predicates.md (neon_struct_operand): Make a normal
1908         predicate.
1909         (neon_struct_or_register_operand): New predicate.
1910         * config/arm/neon.md (movmisalign<mode>): Replace predicates
1911         with neon_struct_or_register_operand.
1912         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
1913         neon_struct_operand instead of memory_operand.
1914
1915 2011-07-12  Martin Jambor  <mjambor@suse.cz>
1916
1917         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
1918         * cgraph.c (cgraph_get_node_or_alias): Removed.
1919         (change_decl_assembler_name): Changed all calls to
1920         cgraph_get_node_or_alias to a call to cgraph_get_node.
1921         (cgraph_make_decl_local): Likewise.
1922         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
1923         * varasm.c (default_binds_local_p_1): Likewise.
1924         (decl_binds_to_current_def_p): Likewise.
1925
1926 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
1927
1928         PR tree-optimization/49712
1929         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
1930
1931 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
1932
1933         * genautomata.c (add_arc): Return void.  All callers changed.
1934         (make_automaton): Remove dead code.
1935
1936 2011-07-11  Richard Henderson  <rth@redhat.com>
1937
1938         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
1939         (DW_FRAME_POINTER_REGNUM): New.
1940         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
1941         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
1942         (dwf_regno): New.
1943         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
1944         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
1945         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
1946         Use it.
1947         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
1948         * dwarf2out.h (dwarf_frame_regnum): New.
1949         (struct cfa_loc): Document the domain of the reg member.
1950
1951 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
1952
1953         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
1954         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
1955
1956 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
1957
1958         PR debug/49676
1959         * dwarf2out.c (int_shift_loc_descriptor): New function.
1960         (int_loc_descriptor): If shorter, emit i as
1961         (i >> shift), shift, DW_OP_shl for suitable shift value.
1962         Similarly, try to optimize large negative values using
1963         DW_OP_neg of a positive value if shorter.
1964         (size_of_int_shift_loc_descriptor): New function.
1965         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
1966         changes.
1967         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
1968         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
1969         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
1970         is shorter.
1971         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
1972         addend as added DW_OP_plus if it is shorter.
1973
1974 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1975
1976         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
1977         (DTORS_SECTION_ASM_OP): Define.
1978
1979 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1980
1981         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
1982         * config/t-dfprules: Move to ../libgcc/config.
1983         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
1984         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
1985         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
1986         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
1987         Likewise.
1988         (i[34567]86-*-cygwin*): Likewise.
1989         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
1990         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
1991         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
1992         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
1993         D64PBIT_FUNCS, D128PBIT_FUNCS.
1994
1995 2011-07-11  Richard Guenther  <rguenther@suse.de>
1996
1997         * tree-vrp.c (simplify_conversion_using_ranges): Manually
1998         translate the source value-range through the conversion chain.
1999
2000 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
2001
2002         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
2003
2004 2011-07-11  Arthur Loiret  <aloiret@debian.org>
2005
2006         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
2007         a bi-arch compiler defaulting to 31-bit. In this case:
2008         (tmake_file): Add s390/t-linux64.
2009         * doc/install.texi: Add s390-linux to the list of targets supporting
2010         --enable-targets=all.
2011
2012 2011-07-11  Arthur Loiret  <aloiret@debian.org>
2013             Matthias Klose <doko@debian.org>
2014
2015         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
2016         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
2017         (tm_file): Add mips/linux64.h.
2018         (tmake_file): Add mips/t-linux64.
2019         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
2020         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
2021         instead of hardcoded mabi=n32.
2022         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
2023         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
2024         convention.
2025
2026 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2027
2028         * passes.c (init_optimization_passes): Add invariant motion pass
2029         after induction variable optimization.
2030
2031 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
2032
2033         PR target/39633
2034         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
2035         offsets 1..5 set cc0 in a usable way.
2036
2037 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
2038
2039         * tree.h (call_expr_arg): Remove.
2040         (call_expr_argp): Likewise.
2041
2042 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
2043
2044         * config/sparc/sparc.md (save_register_window_1): Rename to...
2045         (window_save): ...this.
2046         * config/sparc/sparc.c (emit_save_register_window): Rename to...
2047         (emit_window_save): ...this.
2048         (sparc_expand_prologue): Adjust to above renaming.
2049
2050 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
2051
2052         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
2053         of movabs for x32.
2054
2055 2011-07-10  Richard Henderson  <rth@redhat.com>
2056
2057         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
2058         run final, instead of emitting text directly.
2059
2060 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
2061
2062         * config/i386/i386.c (ix86_option_override_internal): Turn on
2063         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
2064         small PIC models for TARGET_X32.
2065
2066 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
2067
2068         PR target/49684
2069         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
2070         $(LIBGCC2_CFLAGS).
2071
2072         PR bootstrap/49680
2073         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
2074         stray notes and debug insns by using prev_nonnote_nondebug_insn
2075         instead of PREV_INSN.
2076
2077 2011-07-09  Richard Henderson  <rth@redhat.com>
2078
2079         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
2080         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
2081         * dwarf2out.c: ... here.
2082         (output_all_cfis): Remove.
2083         (dwarf2out_switch_text_section): Use output_cfis directly.
2084         (size_of_locs): Export.
2085         (output_loc_sequence, output_loc_sequence_raw): Export.
2086         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
2087         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
2088         output_cfa_loc_raw): Move to ...
2089         * dwarfcfi.c: ... here.
2090         * dwarf2out.h: Update decls.
2091
2092 2011-07-09  Richard Henderson  <rth@redhat.com>
2093
2094         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
2095         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
2096         * dwarf2cfi.c: ... here.
2097         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
2098         (DWARF_ROUND, DWARF_CIE_ID): Remove.
2099         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
2100         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
2101         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
2102
2103 2011-07-09  Richard Henderson  <rth@redhat.com>
2104
2105         * dwarf2cfi.c (cie_return_save): New.
2106         (queue_reg_save): Use compare_reg_or_pc.
2107         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
2108         (dwarf2out_frame_debug_expr): Likewise.
2109         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
2110         (initial_return_save): Likewise.
2111         (execute_dwarf2_frame): Save and restore initial return save from
2112         the cie to the fde.
2113         * config/mips/mips.c (mips_frame_set): Remove special case for
2114         DWARF_FRAME_RETURN_COLUMN.
2115
2116 2011-07-09  Richard Henderson  <rth@redhat.com>
2117
2118         * dwarf2cfi.c (lookup_cfa): Remove.
2119         (execute_dwarf2_frame): Assert queues are empty on entry.
2120         Setup initial cfa directly, not via lookup_cfa.
2121         Don't clear args_size state here.
2122
2123 2011-07-09  Richard Henderson  <rth@redhat.com>
2124
2125         * dwarf2cfi.c (add_cfi_vec): New.
2126         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
2127         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
2128         (execute_dwarf2_frame): Set add_cfi_vec.
2129
2130 2011-07-09  Richard Henderson  <rth@redhat.com>
2131
2132         * defaults.h (ASM_COMMENT_START): Move here...
2133         * dwarf2asm.c: ... from here.
2134         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
2135         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
2136         * varasm.c: Likewise.
2137
2138 2011-07-09  Richard Henderson  <rth@redhat.com>
2139
2140         PR debug/49686
2141         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
2142         (create_cfi_notes): ... do it here instead.
2143
2144 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
2145
2146         PR debug/49676
2147         * dwarf2out.c (size_of_int_loc_descriptor): New function.
2148         (address_of_int_loc_descriptor): Use it.
2149         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
2150
2151 2011-07-09  Richard Henderson  <rth@redhat.com>
2152
2153         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
2154         (prologue, epilogue): New.
2155         (return, *rts): New.
2156         (blockage, setd, seti): New.
2157         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
2158         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
2159         (pdp11_saved_regno): New.
2160         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
2161         generate rtl instead of text.
2162         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
2163         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
2164         * config/pdp11/pdp11-protos.h: Update.
2165
2166 2011-07-09  Richard Henderson  <rth@redhat.com>
2167
2168         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
2169         try to insert an rtl prologue here.
2170         (rs6000_output_function_epilogue): Similarly.
2171         * config/rs6000/rs6000.md (prologue): Emit a barrier to
2172         satisfy !TARGET_SCHED_PROLOG.
2173         (epilogue, sibcall_epilogue): Likewise.
2174
2175 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
2176
2177         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
2178         (FP_REG_P): Delete.
2179         (IN_OR_GLOBAL_P): Likewise.
2180
2181 2011-07-08  Jason Merrill  <jason@redhat.com>
2182
2183         PR c++/45437
2184         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
2185         compound assignment.
2186
2187         * cgraph.c (cgraph_add_to_same_comdat_group): New.
2188         * cgraph.h: Declare it.
2189         * ipa.c (function_and_variable_visibility): Make sure thunks
2190         have the right visibility.
2191
2192 2011-07-08  Richard Henderson  <rth@redhat.com>
2193
2194         PR bootstrap/49680
2195         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
2196         any tablejump vector.
2197
2198         PR bootstrap/49680
2199         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
2200         end of the prologue.
2201
2202 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
2203
2204         PR target/49621
2205         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
2206         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
2207         * config/rs6000/vector.md (vector_select_<mode>,
2208         vector_select_<mode>_uns): Change second operand of NE to
2209         CONST0_RTX (<MODE>mode) instead of const0_rtx.
2210         * config/rs6000/altivec.md (*altivec_vsel<mode>,
2211         *altivec_vsel<mode>_uns): Expect second operand of NE to be
2212         zero_constant of the corresponding vector mode.
2213         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
2214         Likewise.
2215
2216 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
2217
2218         * graphite-dependences.c (build_alias_set_powerset): Remove
2219         continue from loop, add one more assert.
2220
2221 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
2222
2223         PR target/46779
2224         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
2225         In particular, allow 8-bit values in r28 and r29.
2226         (avr_hard_regno_scratch_ok): Disallow any register that might be
2227         part of the frame pointer.
2228         (avr_hard_regno_rename_ok): Same.
2229         (avr_legitimate_address_p): Don't allow SUBREGs.
2230
2231 2011-07-08  Julian Brown  <julian@codesourcery.com>
2232
2233         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
2234         big-endian mode.
2235         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
2236         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
2237         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
2238         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
2239         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
2240         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
2241         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
2242         registers in big-endian mode.
2243
2244 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
2245
2246         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
2247         in terms of another.
2248         (write_attr_value): Write a cast if necessary.
2249
2250         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
2251         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
2252         (REG_WORDS_BIG_ENDIAN): Document.
2253         * doc/tm.texi: Regenerate.
2254         * reload.c (operands_match_p): Take it into account.
2255         (reload_adjust_reg_for_mode): Likewise.
2256         * rtlanal.c (subreg_get_info): Likewise.
2257
2258 2011-07-08  Richard Guenther  <rguenther@suse.de>
2259
2260         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
2261         folding.
2262
2263 2011-07-08  Kai Tietz  <ktietz@redhat.com>
2264
2265         * fold-const.c (fold_truth_andor): Factored out truth_andor
2266         label from fold_binary as function.
2267         (fold_binary_loc): Replace truth_andor lable
2268         by function fold_truth_andor.
2269
2270 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
2271
2272         PR middle-end/49519
2273         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
2274         check if address is stored in register. If so - give up.
2275         (check_sibcall_argument_overlap_1): Do not perform check of
2276         overlapping when it is call to address.
2277
2278 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
2279
2280         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
2281         of magic '31'.
2282
2283 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
2284
2285         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
2286         GET_MODE_BITSIZE where appropriate.
2287         (widen_leading, expand_parity, expand_ctz, expand_ffs,
2288         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
2289         expand_float, expand_fix): Likewise.
2290         * expr.c (convert_move, convert_modes, expand_expr_real_2,
2291         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
2292         * stor-layout.c (get_mode_bounds): Likewise.
2293         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
2294         Likewise.
2295         * convert.c (convert_to_integer): Likewise.
2296         * expmed.c (expand_shift_1): Likewise.
2297
2298         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
2299         a bitsize.
2300
2301         * optabs.c (expand_binop): Tighten conditions for doubleword
2302         expansions.
2303         (widen_bswap): Assert that mode bitsize and precision are the same.
2304         * stor-layout.c (get_best_mode): Skip modes that have lower
2305         precision than bitsize.
2306         * recog.c (simplify_while_replacing): Assert that bitsize and
2307         precision are the same.
2308
2309 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2310
2311         * Makefile.in (LIBGCOV): Remove.
2312         (libgcc.mvars): Remove LIBGCOV.
2313         * libgov.c: Move to ../libgcc.
2314
2315 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2316
2317         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
2318
2319 2011-07-08  Martin Jambor  <mjambor@suse.cz>
2320
2321         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
2322         is too big for total scalarization.
2323
2324 2011-07-07  Richard Henderson  <rth@redhat.com>
2325
2326         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
2327         (DBX_DEBUGGING_INFO): Undef.
2328
2329 2011-07-07  Richard Henderson  <rth@redhat.com>
2330
2331         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
2332         Handle some opcodes specially for debugging.
2333         * print-rtl.c: Include dwarf2out.h
2334         (print_rtx): Handle NOTE_INSN_CFI.
2335         * Makefile.in (print-rtl.o): Update.
2336
2337 2011-07-07  Richard Henderson  <rth@redhat.com>
2338
2339         * tree-pass.h (pass_dwarf2_frame): Declare.
2340         * passes.c (init_optimization_passes): Add it.
2341         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
2342         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
2343         make static, do not call add_cfis_to_fde.
2344         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
2345         dwarf2out_frame_init): Merge into...
2346         (execute_dwarf2_frame): ... here.  New function.
2347         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
2348         saved_do_cfi_asm to a tri-state variable.
2349         (gate_dwarf2_frame, pass_dwarf2_frame): New.
2350         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
2351         if it has yet to be done.  Don't call dwarf2cfi_function_init.
2352         * dwarf2out.h, debug.h: Update decls.
2353         * final.c (final_start_function): Don't call
2354         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
2355         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
2356         * toplev.c (lang_dependent_init): Likewise.
2357
2358 2011-07-07  Richard Henderson  <rth@redhat.com>
2359
2360         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
2361         FDE_TABLE_INCREMENT): Replace with...
2362         (fde_vec): ... this, a new vector.
2363         (current_fde): Remove.  Replace all users with cfun->fde.
2364         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
2365         (size_of_aranges, dwarf2out_finish): Likewise.
2366         (dwarf2out_alloc_current_fde): Break out from ...
2367         (dwarf2out_begin_prologue): ... here.
2368         (dwarf2out_frame_init): Remove.
2369         * dwarf2cfi.c: Update all users of current_fde.
2370         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
2371         * dwarf2out.h: Update decls.
2372         (dw_fde_node): Add fde_index member.
2373         * function.h (struct function): Add fde member.
2374
2375 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
2376             Richard Henderson  <rth@redhat.com>
2377
2378         * dwarf2cfi.c (add_cfi): Remove.
2379         (dwarf2out_cfi_label): Remove force argument.  Only generate the
2380         label name.
2381         (add_fde_cfi): Simplify the different code paths.
2382         (add_cie_cfi): New.
2383         (old_cfa, old_cfa_remember): New.
2384         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
2385         (last_reg_save_label): Remove.
2386         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
2387         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
2388         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
2389         dwarf2out_frame_debug_cfa_expression,
2390         dwarf2out_frame_debug_cfa_restore,
2391         dwarf2out_frame_debug_cfa_window_save,
2392         dwarf2out_frame_debug_expr): Remove label parameter.
2393         (cfi_label_required_p, add_cfis_to_fde): New.
2394         (dwarf2out_frame_debug_after_prologue): New.
2395         (dwarf2cfi_frame_init): Initialize old_cfa.
2396         (dwarf2out_frame_debug_restore_state): Likewise.
2397         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
2398         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
2399         * final.c (final_start_function): Call
2400         dwarf2out_frame_debug_after_prologue.
2401
2402 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
2403             Richard Henderson  <rth@redhat.com>
2404
2405         * dwarf2cfi.c (cfi_insn): New.
2406         (dwarf2out_cfi_label): Don't emit cfi label here.
2407         (add_fde_cfi): Create a NOTE_INSN_CFI.
2408         (dwarf2out_frame_debug): Setup cfi_insn.
2409         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
2410         (dwarf2out_cfi_begin_epilogue): Make static.
2411         (dwarf2out_frame_debug_restore_state): Make static.
2412         * dwarf2out.c (output_cfi_directive): Make static.
2413         (dwarf2out_emit_cfi): New.
2414         * dwarf2out.h: Update.
2415         * final.c (final): Remove CFI notes.
2416         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
2417         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
2418         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
2419         * insn-notes.def (NOTE_INSN_CFI): New.
2420         (NOTE_INSN_CFI_LABEL): New.
2421         * rtl.h (union rtunion_def): Add rt_cfi member.
2422         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
2423
2424 2011-07-07  Richard Henderson  <rth@redhat.com>
2425
2426         * dwarf2cfi.c: New file.
2427         * Makefile.in (OBJS): Add it.
2428         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
2429         * gengtype.c (open_base_files): Include dwarf2out.h.
2430         * coretypes.h (enum var_init_status): Move from ...
2431         * rtl.h: ... here.
2432         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
2433         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
2434         expand_builtin_dwarf_sp_column, init_return_column_size,
2435         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
2436         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
2437         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
2438         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
2439         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
2440         compute_barrier_args_size, dwarf2out_args_size,
2441         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
2442         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
2443         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
2444         queue_reg_save, dwarf2out_flush_queued_reg_saves,
2445         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
2446         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
2447         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
2448         dwarf2out_frame_debug_cfa_expression,
2449         dwarf2out_frame_debug_cfa_restore,
2450         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
2451         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
2452         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
2453         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
2454         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
2455         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
2456         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
2457         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
2458         dw_loc_descr_node): Move to dwarf2out.h.
2459         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
2460         mem_loc_descriptor): Export.
2461         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
2462         (dwarf2out_frame_init): Extract CIE generation code to
2463         dwarf2cfi_frame_init.
2464
2465 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
2466
2467         PR target/49660
2468         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
2469         MASK_V8PLUS, remove commented out flag and reorder.
2470
2471 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
2472
2473         PR c/49644
2474         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
2475         one non-complex and one complex argument, call c_save_expr on both
2476         operands.
2477
2478 2011-07-07  Martin Jambor  <mjambor@suse.cz>
2479
2480         PR middle-end/49495
2481         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
2482         (verify_cgraph_node): Some functinality moved to
2483         verify_edge_corresponds_to_fndecl, call it.
2484
2485 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
2486
2487         * config.gcc (*local*): Remove.
2488         * doc/install-old.texi: Don't mention local configurations.
2489
2490 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
2491
2492         PR debug/49522
2493         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
2494         referencing debug insns that have been reset.
2495         (dead_debug_insert_before): Don't assert reg is non-NULL,
2496         instead return immediately if it is NULL.
2497
2498 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
2499
2500         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
2501
2502 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
2503
2504         * hw-doloop.c: New file.
2505         * hw-doloop.h: New file.
2506         * Makefile.in (OBJS): Add hw-doloop.o.
2507         (hw-doloop.o): New rule.
2508         ($(obj_out_file)): Add hw-doloop.h dependency.
2509         * config/bfin/bfin.c: Include "hw-doloop.h".
2510         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
2511         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
2512         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
2513         type changed to hwloop_info.  Return bool, true if the loop was
2514         successfully optimized.  Remove code that was moved to
2515         hw-doloop.c, and adjust other parts.
2516         (hwloop_fail): New static function, containing parts that used
2517         to be in bfin_optimize_loop.
2518         (bfin_discover_loop, bfin_discover_loops, free_loops,
2519         bfin_reorder_loops): Remove.
2520         (hwloop_pattern_reg): New static function.
2521         (bfin_doloop_hooks): New variable.
2522         (bfin_reorg_loops): Remove most code, call reorg_loops.
2523         * config/bfin/bfin.md (doloop_end splitter): Also enable if
2524         loop counter is a memory_operand.
2525
2526 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
2527
2528         * config.gcc: Support --with-multilib-list for x86 Linux targets.
2529
2530         * configure.ac: Mention x86-64 for --with-multilib-list.
2531         * configure: Regenerated.
2532
2533         * config/i386/gnu-user64.h (SPEC_64): Support x32.
2534         (SPEC_32): Likewise.
2535         (ASM_SPEC): Likewise.
2536         (LINK_SPEC): Likewise.
2537         (TARGET_THREAD_SSP_OFFSET): Likewise.
2538         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
2539         (SPEC_X32): New.
2540
2541         * config/i386/i386.h (TARGET_X32): New.
2542         (TARGET_LP64): New.
2543         (LONG_TYPE_SIZE): Likewise.
2544         (POINTER_SIZE): Likewise.
2545         (POINTERS_EXTEND_UNSIGNED): Likewise.
2546         (OPT_ARCH64): Support x32.
2547         (OPT_ARCH32): Likewise.
2548
2549         * config/i386/i386.opt (mx32): New.
2550
2551         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
2552         (GLIBC_DYNAMIC_LINKERX32): Likewise.
2553         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
2554         (GLIBC_DYNAMIC_LINKERX32): Likewise.
2555
2556         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
2557         (BIONIC_DYNAMIC_LINKERX32): Likewise.
2558         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
2559
2560         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
2561
2562         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
2563
2564         * doc/invoke.texi: Document -mx32.
2565
2566 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
2567
2568         * doc/invoke.texi (mwords-little-endian): Deprecate.
2569         * config/arm/arm.opt (mwords-little-endian): Likewise.
2570         * config/arm/arm.c (arm_option_override): Warn about the deprecation
2571         of -mwords-little-endian.
2572
2573 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
2574
2575         * reload1.c (choose_reload_regs): Use mode sizes to check whether
2576         an old reload register completely defines the required value.
2577
2578 2011-07-07  Richard Guenther  <rguenther@suse.de>
2579
2580         * fold-const.c (fold_unary_loc): Do not strip sign-changes
2581         for NEGATE_EXPR.
2582
2583 2011-07-07  Richard Guenther  <rguenther@suse.de>
2584
2585         * tree-vrp.c (simplify_conversion_using_ranges): New function.
2586         (simplify_stmt_using_ranges): Call it.
2587
2588 2011-07-07  Kai Tietz  <ktietz@redhat.com>
2589
2590         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
2591         (lookup_logical_inverted_value): Likewise.
2592         (simplify_bitwise_binary_1): Likewise.
2593         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
2594
2595 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
2596
2597         * gcc.c (%[Spec]): Don't document.
2598         (struct spec_list): Update comment.
2599         (do_spec_1): Don't handle %[Spec].
2600         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
2601
2602 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
2603
2604         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
2605         default based on TARGET_ASM_NAMED_SECTION.
2606         * common/common-target.def (have_named_sections): Default to true.
2607         * common/config/default-common.c: Don't include tm.h.
2608         * common/config/picochip/picochip-common.c
2609         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
2610         * common/config/m32c/m32c-common.c: Remove.
2611         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
2612         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2613         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2614         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2615         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2616         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2617         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2618
2619 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
2620
2621         PR middle-end/49640
2622         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
2623         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
2624
2625 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2626
2627         PR libmudflap/49550
2628         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
2629
2630 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2631
2632         PR target/39150
2633         * configure.ac (gcc_cv_as_hidden): Also accept
2634         x86_64-*-solaris2.1[0-9]*.
2635         (gcc_cv_as_cfi_directive): Likewise.
2636         (gcc_cv_as_comdat_group_group): Likewise.
2637         (set_have_as_tls): Likewise.
2638         * configure: Regenerate.
2639         * config.gcc (i[34567]86-*-solaris2*): Also handle
2640         x86_64-*-solaris2.1[0-9]*.
2641         * config.host (i[34567]86-*-solaris2*): Likewise.
2642         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
2643         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
2644         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
2645         (TARGET_LD_EMULATION): Use it.
2646         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
2647         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
2648         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
2649         (ASM_CPU64_DEFAULT_SPEC): Define.
2650         (ASM_CPU_SPEC): Use %(asm_cpu_default).
2651         (ASM_SPEC): Redefine.
2652         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
2653         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
2654         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
2655         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
2656         configuration.
2657         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
2658
2659 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2660
2661         * config/sol2.h (ASM_SPEC): Split into ...
2662         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
2663         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
2664         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
2665         (ASM_SPEC): Use ASM_SPEC_BASE.
2666         * config/sparc/sol2.h (ASM_SPEC): Redefine.
2667
2668 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
2669
2670         * config/avr/avr.md (*reload_insi): Change predicate #1 to
2671         const_int_operand.  Ditto for peep2 producing this insn.
2672         Add argument to output_reload_insisf call.
2673         (*movsi,*movsf): Add argument to output_movsisf call.
2674         (*reload_insf): New insn and new peep2 to produce it.
2675         * config/avr/avr-protos.h (output_movsisf): Change prototype.
2676         (output_reload_insisf): Change prototype.
2677         * config/avr/avr.c (avr_asm_len): New function.
2678         (output_reload_insisf): Rewrite.
2679         (output_movsisf): Change prototype.  output_reload_insisf for
2680         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
2681         (adjust_insn_length): Add argument to output_movsisf and
2682         output_reload_insisf call.
2683
2684 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
2685
2686         * emit-rtl.c (paradoxical_subreg_p): New function.
2687         * rtl.h (paradoxical_subreg_p): Declare.
2688         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
2689         apply_distributive_law, simplify_comparison, simplify_set): Use it.
2690         * cse.c (record_jump_cond, cse_insn): Likewise.
2691         * expr.c (force_operand): Likewise.
2692         * rtlanal.c (num_sign_bit_copies1): Likewise.
2693         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
2694         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
2695         (push_reload): Use precision to check for paradoxical subregs.
2696         * expmed.c (extract_bit_field_1): Likewise.
2697
2698         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
2699         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
2700         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
2701         simplify_set, simplify_logical, expand_compound_operation,
2702         make_extraction, force_to_mode, if_then_else_cond, extended_count,
2703         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
2704         record_value_for_reg): Likewise.
2705         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
2706         * simplify-rtx. c (simplify_unary_operation_1,
2707         simplify_binary_operation_1, simplify_const_relational_operation):
2708         Likewise.
2709
2710         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
2711         instead of GET_MODE_BITSIZE where appropriate.
2712         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
2713         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
2714         init_num_sign_bit_copies_in_rep): Likewise.
2715         * cse.c (fold_rtx, cse_insn): Likewise.
2716         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
2717         * simplify-rtx.c (simplify_unary_operation_1,
2718         simplify_const_unary_operation, simplify_binary_operation_1,
2719         simplify_const_binary_operation, simplify_ternary_operation,
2720         simplify_const_relational_operation, simplify_subreg): Likewise.
2721         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
2722         simplify_if_then_else, simplify_set, expand_compound_operation,
2723         expand_field_assignment, make_extraction, if_then_else_cond,
2724         make_compound_operation, force_to_mode, make_field_assignment,
2725         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
2726         extended_count, try_widen_shift_mode, simplify_shift_const_1,
2727         simplify_comparison, record_promoted_value, simplify_compare_const,
2728         record_dead_and_set_regs_1): Likewise.
2729
2730         Revert:
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  Michael Meissner  <meissner@linux.vnet.ibm.com>
2738
2739         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
2740         declaration.
2741         (rs6000_save_toc_in_prologue_p): Ditto.
2742
2743         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
2744         up the static chain (r11) during indirect function calls.
2745         (-msave-toc-indirect): New undocumented debug switch.
2746
2747         * config/rs6000/rs6000.c (struct machine_function): Add
2748         save_toc_in_prologue field to note whether the prologue needs to
2749         save the TOC value in the reserved stack location.
2750         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
2751         to save the TOC in the prologue, do so.
2752         (rs6000_trampoline_init): Don't allow creating AIX style
2753         trampolines if -mno-r11 is in effect.
2754         (rs6000_call_indirect_aix): New function to create AIX style
2755         indirect calls, adding support for -mno-r11 to suppress loading
2756         the static chain, and saving the TOC in the prologue instead of
2757         the call body.
2758         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
2759         TOC in the prologue.
2760
2761         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
2762         register numbers.
2763         (TOC_REGNUM): Ditto.
2764         (STATIC_CHAIN_REGNUM): Ditto.
2765         (ARG_POINTER_REGNUM): Ditto.
2766         (SFP_REGNO): Delete, unused.
2767         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
2768         function descriptor offsets.
2769         (TOC_SAVE_OFFSET_64BIT): Ditto.
2770         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
2771         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
2772         (AIX_FUNC_DESC_SC_32BIT): Ditto.
2773         (AIX_FUNC_DESC_SC_64BIT): Ditto.
2774         (ptrload): New mode attribute for the appropriate load of a pointer.
2775         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
2776         (call_indirect_aix64): Ditto.
2777         (call_value_indirect_aix32): Ditto.
2778         (call_value_indirect_aix64): Ditto.
2779         (call_indirect_nonlocal_aix32_internal): Ditto.
2780         (call_indirect_nonlocal_aix32): Ditto.
2781         (call_indirect_nonlocal_aix64_internal): Ditto.
2782         (call_indirect_nonlocal_aix64): Ditto.
2783         (call): Rewrite AIX indirect function calls.  Add support for
2784         eliminating the static chain, and for moving the save of the TOC
2785         to the function prologue.
2786         (call_value): Ditto.
2787         (call_indirect_aix<ptrsize>): Ditto.
2788         (call_indirect_aix<ptrsize>_internal): Ditto.
2789         (call_indirect_aix<ptrsize>_internal2): Ditto.
2790         (call_indirect_aix<ptrsize>_nor11): Ditto.
2791         (call_value_indirect_aix<ptrsize>): Ditto.
2792         (call_value_indirect_aix<ptrsize>_internal): Ditto.
2793         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
2794         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
2795         (call_nonlocal_aix32): Relocate in the rs6000.md file.
2796         (call_nonlocal_aix64): Ditto.
2797
2798         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
2799         -mno-r11 documentation.
2800
2801 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
2802
2803         PR other/49658
2804         * doc/extend.texi (Compound Literals): Fix typo.
2805
2806 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
2807
2808         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
2809
2810 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
2811
2812         * configure.ac (plugin-version.h): Generate
2813         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
2814         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
2815         macros.
2816
2817         * configure: Regenerate.
2818
2819         * doc/plugins.texi (Building GCC plugins): Mention
2820         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
2821
2822 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
2823
2824         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
2825         * combine.c (make_extraction, gen_lowpart_or_truncate,
2826         apply_distributive_law, simplify_comparison,
2827         reg_truncated_to_mode, record_truncated_value): Use it.
2828         * cse.c (notreg_cost): Likewise.
2829         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
2830         * expr.c (convert_move, convert_modes): Likewise.
2831         * optabs.c (expand_binop, expand_unop): Likewise.
2832         * postreload.c (move2add_last_label): Likewise.
2833         * regmove.c (optimize_reg_copy_3): Likewise.
2834         * rtlhooks.c (gen_lowpart_general): Likewise.
2835         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
2836
2837 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
2838
2839         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
2840
2841 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
2842
2843         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
2844         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
2845         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
2846         (simplify_const_unary_operation, simplify_binary_operation_1,
2847         simplify_const_binary_operation, simplify_const_relational_operation):
2848         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
2849         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
2850         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
2851         simplify_shift_const_1, simplify_comparison): Likewise.
2852         * expr.c (convert_modes): Likewise.
2853         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
2854         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
2855         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
2856
2857         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
2858
2859 2011-07-06  Richard Guenther  <rguenther@suse.de>
2860
2861         PR tree-optimization/49645
2862         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
2863         register variables.
2864         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
2865         in type qualification here ...
2866         (copy_reference_ops_from_ref): ... not here.
2867         (vn_reference_lookup_3): ... or here.
2868         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
2869         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
2870
2871 2011-07-06  Ian Lance Taylor  <iant@google.com>
2872
2873         * doc/install.texi (Configuration): It's
2874         --enable-gnu-indirect-function, not --enable-indirect-function.
2875
2876 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
2877
2878         * simplify-rtx.c (simplify_const_binary_operation): Use the
2879         shift_truncation_mask hook instead of performing modulo by width.
2880         Compare against mode precision, not bitsize.
2881         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
2882         Use shift_truncation_mask instead of constructing the value manually.
2883
2884 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
2885
2886         PR middle-end/47383
2887         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
2888         address computation and convert to address_mode if needed.
2889
2890 2011-07-06  Richard Guenther  <rguenther@suse.de>
2891
2892         * tree.c (build_common_tree_nodes_2): Merge with
2893         build_common_tree_nodes.
2894         * tree.h (build_common_tree_nodes): Adjust prototype.
2895         (build_common_tree_nodes_2): Remove.
2896         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
2897         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
2898
2899 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
2900
2901         PR tree-optimization/49618
2902         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
2903         t recurse on the decl.
2904         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
2905         return true if expr isn't known to be defined in current
2906         TU or some other LTO partition.
2907
2908 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
2909
2910         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
2911         override CASE_VALUES_THRESHOLD.
2912
2913         * stmt.c (toplevel): Include params.h.
2914         (case_values_threshold): Use the --param case-values-threshold
2915         value if non-zero, otherwise use machine dependent value.
2916         (expand_case): Use case_values_threshold.
2917
2918         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
2919
2920         * doc/invoke.texi (--param case-values-threshold): Document.
2921
2922 2011-07-05  Richard Henderson  <rth@redhat.com>
2923
2924         * dwarf2out.c (dwarf2out_cfi_label): Make static.
2925         (dwarf2out_flush_queued_reg_saves): Make static.
2926         (dwarf2out_reg_save): Remove.
2927         (dwarf2out_return_save): Remove.
2928         (dwarf2out_return_reg): Remove.
2929         (dwarf2out_reg_save_reg): Remove.
2930         (dwarf2out_def_cfa): Merge into ...
2931         (dwarf2out_frame_init): ... here.
2932         * dwarf2out.h, tree.h: Remove declarations as necessary.
2933
2934 2011-07-05  Richard Henderson  <rth@redhat.com>
2935
2936         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
2937         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
2938         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
2939         the alloc insn.
2940
2941         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
2942         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
2943         (process_epilogue): Don't call dwarf2out_def_cfa.
2944
2945         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
2946         indicate the return address save.
2947         (process_cfa_register): Likewise.
2948
2949         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
2950         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
2951
2952         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
2953         for ar.pfs save at alloc insn.
2954
2955 2011-07-05  Richard Henderson  <rth@redhat.com>
2956
2957         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
2958         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
2959         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
2960         stack pointer save.
2961         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
2962         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
2963         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
2964         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
2965
2966 2011-07-05  Richard Henderson  <rth@redhat.com>
2967
2968         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
2969         VUNSPEC_* constants here instead of via define_constants.
2970         (VUNSPEC_PEM): New constant.
2971         (procedure_entry_mask): New insn.
2972         (prologue): New expander.
2973         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
2974         (vax_expand_prologue): Rename from vax_output_function_prologue;
2975         emit rtl instead of text.
2976         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
2977         (print_operand): Add 'x' prefix.
2978
2979 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
2980
2981         PR middle-end/47715
2982         * calls.c (precompute_register_parameters): Promote the function
2983         argument before checking non-legitimate constant.
2984
2985 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
2986
2987         PR tree-optimization/47654
2988         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
2989         (lst_do_strip_mine_loop): Return an int.
2990         (lst_do_strip_mine): Same.
2991         (scop_do_strip_mine): Same.
2992         (scop_do_block): Loop blocking should strip-mine at least two loops.
2993         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
2994         (scop_do_interchange): Same.
2995         * graphite-poly.h (scop_do_interchange): Update declaration.
2996         (scop_do_strip_mine): Same.
2997
2998 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
2999
3000         * graphite-clast-to-gimple.c (precision_for_value): Removed.
3001         (precision_for_interval): Removed.
3002         (gcc_type_for_interval): Use mpz_sizeinbase.
3003
3004 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
3005
3006         * graphite-ppl.h (value_max): Correct computation of max.
3007
3008 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
3009
3010         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
3011
3012 2011-07-05  Richard Guenther  <rguenther@suse.de>
3013
3014         * c-decl.c (c_init_decl_processing): Defer building common
3015         tree nodes to c_common_nodes_and_builtins.
3016
3017 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
3018
3019         PR tree-optimization/49580
3020         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
3021         the loop's number of iterations.
3022         * tree-parloops.c (transform_to_exit_first_loop): Add the
3023         handling of the loop's number of iterations before the call
3024         to gimple_duplicate_sese_tail.
3025         Insert the stmt caclculating the new rhs of the loop's
3026         condition stmt to the preheader instead of iters_bb.
3027
3028 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
3029
3030         PR rtl-optimization/47449
3031         * fwprop.c (forward_propagate_subreg): Don't propagate hard
3032         register nor zero/sign extended hard register.
3033
3034 2011-07-05  Richard Guenther  <rguenther@suse.de>
3035
3036         PR tree-optimization/49518
3037         PR tree-optimization/49628
3038         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
3039         irrelevant and invariant data-references.
3040         (vect_analyze_data_ref_access): For invariant loads clear the
3041         group association.
3042
3043 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
3044
3045         PR rtl-optimization/49619
3046         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
3047         pass VOIDmode as op0_mode to recursive call, and return temp even
3048         when different from tor, just if it is not IOR of the original
3049         PLUS arguments.
3050
3051         PR rtl-optimization/49472
3052         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
3053         negating MULT, negate the second operand instead of first.
3054         (simplify_binary_operation_1) <case MULT>: If one operand is
3055         a NEG and the other is MULT, don't attempt to optimize by negation
3056         of the MULT operand if it only moves the NEG operation around.
3057
3058         PR debug/49602
3059         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
3060         get_current_def return value if it can't be trusted to be
3061         the current value of the variable in the current bb.
3062
3063 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
3064
3065         PR target/49600
3066         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
3067         general register to memory for !TARGET_INTER_UNIT_MOVES.
3068
3069 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
3070
3071         PR target/44643
3072         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
3073         instead of TREE_READONLY.
3074
3075 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
3076
3077         * doc/extend.texi (AVR Built-in Functions): Update documentation
3078         of __builtin_avr_fmul*.
3079         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
3080         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
3081         * config/avr/avr.md (fmul): Rename to fmul_insn.
3082         (fmuls): Rename to fmuls_insn.
3083         (fmulsu): Rename to fmulsu_insn.
3084         (fmul,fmuls,fmulsu): New expander.
3085         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
3086         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
3087         * config/avr/libgcc.S (__fmul): New function.
3088         (__fmuls): New function.
3089         (__fmulsu,__fmulsu_exit): New function.
3090
3091 2011-07-04  Richard Guenther  <rguenther@suse.de>
3092
3093         PR tree-optimization/49615
3094         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
3095         basic-block index check.
3096
3097 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
3098
3099         * longlong.h (count_leading_zeros, count_trailing_zeros,
3100         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
3101         resp. 64.
3102
3103 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
3104
3105         PR tree-optimization/49610
3106         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
3107         a basic block.
3108
3109 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
3110             Olivier Hainque  <hainque@adacore.com>
3111             Nicolas Setton  <setton@adacore.com>
3112
3113         * tree.h (TYPE_ARTIFICIAL): New flag.
3114         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
3115         the DIE of the type if it is artificial.
3116         (gen_array_type_die): Likewise.
3117         (gen_enumeration_type_die): Likewise.
3118         (gen_struct_or_union_type_die): Likewise.
3119         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
3120         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
3121
3122 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
3123
3124         * tree-object-size.c (pass_through_call): Handle
3125         BUILT_IN_ASSUME_ALIGNED.
3126
3127 2011-07-01  Martin Jambor  <mjambor@suse.cz>
3128
3129         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
3130
3131 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
3132
3133         PR middle-end/48016
3134         * explow.c (update_nonlocal_goto_save_area): Use proper mode
3135         for stack save area.
3136         * function.c (expand_function_start): Likewise.
3137
3138 2011-07-01  Richard Guenther  <rguenther@suse.de>
3139
3140         PR middle-end/49596
3141         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
3142         may have unknown refs.
3143
3144 2011-07-01  Kai Tietz  <ktietz@redhat.com>
3145
3146         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
3147
3148 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3149
3150         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
3151         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
3152         (Specific, mips-sgi-irix6): Likewise.
3153
3154 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3155
3156         PR libmudflap/49549
3157         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
3158
3159 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
3160
3161         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
3162         [idx]= and [idx1 ... idx2]= before initializers if needed for
3163         array initializers.
3164
3165 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
3166
3167         * config.gcc (score-*-elf): Remove score7.o.
3168         * config/score/t-score-elf: Likewise.
3169         * config/score/score.c: Merge score7 to score.c and
3170         remove forwarding functions.
3171         * config/score/score7.c: Deleted.
3172         * config/score/score7.h: Deleted.
3173
3174 2011-07-01  Richard Guenther  <rguenther@suse.de>
3175
3176         PR tree-optimization/49603
3177         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
3178
3179 2011-06-30  Martin Jambor  <mjambor@suse.cz>
3180
3181         * tree-sra.c (struct access): Rename total_scalarization to
3182         grp_total_scalarization
3183         (completely_scalarize_var): New function.
3184         (sort_and_splice_var_accesses): Set total_scalarization in the
3185         representative access.
3186         (analyze_access_subtree): Propagate total scalarization accross the
3187         tree, no holes in totally scalarized trees, simplify coverage
3188         computation.
3189         (analyze_all_variable_accesses): Call completely_scalarize_var instead
3190         of completely_scalarize_record.
3191
3192 2011-06-30  Richard Henderson  <rth@redhat.com>
3193
3194         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
3195         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
3196         * config/i386/i386.c: Don't include dwarf2out.h.
3197         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
3198         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
3199         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
3200         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
3201         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
3202
3203 2011-06-30  Richard Henderson  <rth@redhat.com>
3204
3205         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
3206         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
3207         * final.c (final_scan_insn): Look for it, and invoke
3208         dwarf2out_frame_debug before the insn if found.
3209
3210 2011-06-30  Richard Henderson  <rth@redhat.com>
3211
3212         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
3213         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
3214
3215 2011-06-30  Richard Henderson  <rth@redhat.com>
3216
3217         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
3218         Define a vector of this type.
3219         (regs_saved_in_regs): Use a VEC.
3220         (num_regs_saved_in_regs): Remove.
3221         (compare_reg_or_pc): New.
3222         (record_reg_saved_in_reg): Split out from...
3223         (dwarf2out_flush_queued_reg_saves): ... here.
3224         (clobbers_queued_reg_save): Update for VEC.
3225         (reg_saved_in): Likewise.
3226         (dwarf2out_frame_debug_init): Likewise.
3227         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
3228         (dwarf2out_frame_debug_cfa_register): Likewise.
3229
3230 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3231
3232         PR tree-optimization/49572
3233         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
3234         type of the RHS instead of that of the LHS for the expression type.
3235
3236 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3237
3238         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
3239         unconditionally.
3240
3241 2011-06-30  Richard Guenther  <rguenther@suse.de>
3242
3243         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
3244         * tree-ssa-structalias.c (create_variable_info_for): Do not
3245         add initial constraints for non-var-decls.  Properly handle
3246         globals in other ltrans partitions.
3247         (intra_create_variable_infos): Manually create constraints for
3248         the fake no-alias parameter.
3249         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
3250         and assert there are no clones.
3251
3252 2011-06-30  Richard Guenther  <rguenther@suse.de>
3253
3254         PR tree-optimization/46787
3255         * tree-data-ref.c (dr_address_invariant_p): Remove.
3256         (find_data_references_in_stmt): Invariant accesses are ok now.
3257         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
3258         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
3259         invariant loads.
3260
3261 2011-06-30  Martin Jambor  <mjambor@suse.cz>
3262
3263         PR tree-optimization/49094
3264         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
3265         (build_accesses_from_assign): Use it.
3266
3267 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
3268
3269         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
3270         handling of BUILT_IN_ASSUME_ALIGNED.
3271
3272         PR debug/49364
3273         * dwarf2out.c (output_abbrev_section): Don't return early
3274         if abbrev_die_table_in_use is 1.
3275         (dwarf2out_finish): Instead don't call output_abbrev_section
3276         nor emit abbrev_section_label in that case.
3277
3278 2011-06-30  Nick Clifton  <nickc@redhat.com>
3279
3280         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
3281         for the V850E.
3282
3283 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
3284
3285         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
3286         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
3287
3288 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
3289
3290         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
3291         both pattern and original statements if necessary.
3292         (vect_transform_loop): Likewise.
3293         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
3294         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
3295         Mark the pattern statement only if the original statement doesn't
3296         have its own uses.
3297         (process_use): Call vect_mark_relevant with additional parameter.
3298         (vect_mark_stmts_to_be_vectorized): Likewise.
3299         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
3300         (vect_analyze_stmt): Handle both pattern and original statements
3301         if necessary.
3302         (vect_transform_stmt): Don't store vectorized pattern statement
3303         in the original statement.
3304         (vect_is_simple_use_1): Use related pattern statement only if the
3305         original statement is irrelevant.
3306         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
3307
3308 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
3309
3310         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
3311         option.
3312         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
3313         entry.
3314         (TARGET_AVX128_OPTIMAL): New definition.
3315         * config/i386/i386.c (initial_ix86_tune_features): Initialize
3316         X86_TUNE_AVX128_OPTIMAL entry.
3317         (ix86_option_override_internal): Enable the generation
3318         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
3319         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
3320         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
3321
3322 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
3323
3324         PR tree-optimization/49539
3325         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
3326         names by means of stmt_references_abnormal_ssa_name.
3327         (associate_plusminus): Call can_propagate_from before propagating
3328         from definition statements.
3329         (ssa_forward_propagate_and_combine): Remove superfluous newline.
3330
3331 2011-06-29  Richard Guenther  <rguenther@suse.de>
3332
3333         * doc/invoke.texi: Document -scev dump modifier.
3334         * tree-pass.h (TDF_SCEV): New dump flag.
3335         * tree-dump.c (dump_option_value_in): Add scev.
3336         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
3337         * tree-scalar-evolution.c: Likewise.
3338
3339 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
3340
3341         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
3342         (cxa_type_match): Correct declaration.
3343         (__gnu_unwind_pr_common): Reconstruct additional indirection
3344         when __cxa_type_match returns succeeded_with_ptr_to_base.
3345
3346 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3347
3348         PR rtl-optimization/49114
3349         * reload.c (struct replacement): Remove SUBREG_LOC member.
3350         (push_reload): Do not set it.
3351         (push_replacement): Likewise.
3352         (subst_reload): Remove dead code.
3353         (copy_replacements): Remove assertion.
3354         (copy_replacements_1): Do not handle SUBREG_LOC.
3355         (move_replacements): Likewise.
3356         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
3357         Detect subregs via recursive descent instead of via SUBREG_LOC.
3358
3359 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
3360
3361         * config/avr/avr.c (avr_encode_section_info): Dispatch to
3362         default_encode_section_info.
3363
3364 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
3365
3366         PR tree-optimization/49545
3367         * builtins.c (get_object_alignment_1): Update function comment.
3368         Do not use DECL_ALIGN for functions, but test
3369         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
3370         * fold-const.c (get_pointer_modulus_and_residue): Don't check
3371         for functions here.
3372         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
3373
3374 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
3375
3376         PR debug/49567
3377         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
3378         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
3379
3380 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
3381
3382         PR target/34734
3383         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
3384         about uninitialized data attributed 'progmem' from here...
3385         (avr_encode_section_info): ...to this new function.
3386         (TARGET_ENCODE_SECTION_INFO): New define.
3387         (avr_section_type_flags): For data in ".progmem.data", remove
3388         section flag SECTION_WRITE.
3389
3390 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
3391
3392         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
3393         _xmulhisi3_exit.
3394         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
3395         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
3396         (__umulhisi3): Ditto.
3397         * config/avr/avr.md (mulhisi3): New insn expender.
3398         (umulhisi3): New insn expender.
3399         (*mulhisi3_call): New insn.
3400         (*umulhisi3_call): New insn.
3401
3402 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
3403
3404         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
3405
3406 2011-06-28  Richard Henderson  <rth@redhat.com>
3407
3408         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
3409         all code and arguments that handled pushes.  Update all callers.
3410
3411 2011-06-28  Richard Henderson  <rth@redhat.com>
3412
3413         * config/arm/arm.c (arm_output_function_prologue): Don't call
3414         thumb1_output_function_prologue.
3415         (arm_expand_prologue): Avoid dead store.
3416         (number_of_first_bit_set): Use ctz_hwi.
3417         (thumb1_emit_multi_reg_push): New.
3418         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
3419         to emit the entire prologue as rtl.
3420         (thumb1_output_interwork): Split out from
3421         thumb1_output_function_prologue.
3422         (thumb1_output_function_prologue): Remove.
3423         (arm_attr_length_push_multi): Handle thumb1.
3424         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
3425         (prologue_thumb1_interwork): New.
3426         (*push_multi): Allow thumb1; use push_mult_memory_operand.
3427         * config/arm/predicates.md (push_mult_memory_operand): New.
3428
3429 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
3430
3431         * config/sparc/sync.md (*stbar): Delete.
3432         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
3433
3434 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
3435
3436         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
3437
3438 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3439
3440         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
3441         (TARGET_64BIT_DEFAULT): Define.
3442         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
3443         of tm_file.
3444         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
3445
3446 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
3447
3448         * common.opt (in_lto_p): New Variable entry.
3449         * flags.h (in_lto_p): Move to common.opt.
3450         * gcc.c: Include params.h.
3451         (set_option_handlers): Also use common_handle_option and
3452         target_handle_option.
3453         (main): Call global_init_params, finish_params and init_options_struct.
3454         * opts.c (debug_type_names): Move from toplev.c.
3455         (print_filtered_help): Access quiet_flag through opts pointer.
3456         (common_handle_option): Return early in the driver for some options.
3457         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
3458         opts pointer.
3459         * toplev.c (in_lto_p): Move to common.opt.
3460         (debug_type_names): Move to opts.c.
3461         * Makefile.in (OBJS): Remove opts.o.
3462         (OBJS-libcommon-target): Add opts.o.
3463         (gcc.o): Update dependencies.
3464
3465 2011-06-28  Kai Tietz  <ktietz@redhat.com>
3466
3467         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
3468
3469 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3470
3471         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
3472         with '=' constraint modifier.
3473         (*divdf3_vfp): Likewise.
3474         ("*mulsf3_vfp"): Likewise.
3475         ("*muldf3_vfp"): Likewise.
3476         ("*mulsf3negsf_vfp"): Likewise.
3477         ("*muldf3negdf_vfp"): Likewise.
3478
3479 2011-06-28  Nick Clifton  <nickc@redhat.com>
3480
3481         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
3482         relaxation when performing an incremental link.
3483
3484 2011-06-28  Kai Tietz  <ktietz@redhat.com>
3485
3486         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
3487         within BB from last to first.
3488
3489 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
3490
3491         * genattr-common.c: New.  Based on genattr.c.
3492         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
3493         (MOSTLYCLEANFILES): Add insn-attr-common.h.
3494         (opts.o): Update dependencies.
3495         (.PRECIOUS): Add insn-attr-common.h.
3496         (simple_rtl_generated_h): Add insn-attr-common.h.
3497         (build/genattr-common.o): New.
3498         (genprogrtl): Add attr-common.
3499         * genattr.c (main): Include insn-attr-common.h.  Don't generate
3500         definitions of DELAY_SLOTS or INSN_SCHEDULING.
3501         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
3502
3503 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
3504
3505         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
3506         avr-*-* and avr-*-rtems* targets.
3507
3508         * config/avr/elf.h: New file.
3509         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
3510         (TARGET_ASM_SELECT_SECTION): Define.
3511         (INIT_SECTION_ASM_OP): Undefine.
3512         (FINI_SECTION_ASM_OP): Undefine.
3513         (READONLY_DATA_SECTION_ASM_OP): Undefine.
3514         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
3515         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
3516         * config/avr/avr.h:
3517         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
3518         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
3519         (MAX_OFILE_ALIGNMENT): Move to elf.h.
3520         (STRING_LIMIT): Move to elf.h.
3521         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
3522         (ASM_DECLARE_OBJECT_NAME): Remove.
3523         (ESCAPES): Remove.
3524         (ASM_OUTPUT_SKIP): Remove.
3525         (DWARF2_DEBUGGING_INFO): Remove.
3526         (OBJECT_FORMAT_ELF): Remove.
3527         (USER_LABEL_PREFIX): Remove.
3528         (ASM_OUTPUT_EXTERNAL): Remove.
3529         (ASM_OUTPUT_ASCII): Remove.
3530         (TYPE_ASM_OP): Remove.
3531         (SIZE_ASM_OP): Remove.
3532         (WEAK_ASM_OP): Remove.
3533         (STRING_ASM_OP): Remove.
3534         (SET_ASM_OP): Remove.
3535         (ASM_WEAKEN_LABEL): Remove.
3536         (TYPE_OPERAND_FMT): Remove.
3537         (ASM_DECLARE_FUNCTION_SIZE): Remove.
3538         (ASM_FINISH_DECLARE_OBJECT): Remove.
3539         (NO_DOLLAR_IN_LABEL): Remove.
3540         (ASM_GENERATE_INTERNAL_LABEL): Remove.
3541         (ASM_OUTPUT_CASE_LABEL): Remove.
3542         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
3543         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
3544         (gas_output_ascii): Remove.
3545         (gas_output_limited_string): Remove.
3546         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
3547         * config/avr/avr-protos.h
3548         (gas_output_ascii): Remove prototye.
3549         (gas_output_limited_string): Remove prototype.
3550
3551 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
3552
3553         PR target/48637
3554         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
3555         asm operands.
3556
3557 2011-06-27  Jan Hubicka  <jh@suse.cz>
3558
3559         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
3560         node instead of references in node.
3561
3562 2011-06-27  Richard Henderson  <rth@redhat.com>
3563
3564         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
3565         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
3566         inside ifdef.
3567
3568 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
3569
3570         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
3571
3572         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
3573         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
3574         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
3575         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
3576         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
3577         (evaluate_stmt, execute_fold_all_builtins): Handle
3578         BUILT_IN_ASSUME_ALIGNED.
3579         * tree-ssa-dce.c (propagate_necessity): Likewise.
3580         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
3581         call_may_clobber_ref_p_1): Likewise.
3582         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
3583         (expand_builtin_assume_aligned): New function.
3584         * doc/extend.texi (__builtin_assume_aligned): Document.
3585
3586         PR debug/49544
3587         * cselib.c (promote_debug_loc): If cselib_preserve_constants
3588         and l has two DEBUG_INSN owned locs instead of just one, adjust
3589         the second location's setting_insn too.
3590
3591 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3592
3593         PR libmudflap/38738
3594         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
3595
3596 2011-06-27  Nick Clifton  <nickc@redhat.com>
3597
3598         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
3599         bit position of highest bit set into a count of the high zero bits.
3600
3601 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
3602
3603         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
3604
3605 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
3606
3607         PR lto/48492
3608         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
3609         to a NULL parent.
3610
3611 2011-06-27  Richard Guenther  <rguenther@suse.de>
3612
3613         PR tree-optimization/49394
3614         * passes.c (execute_one_pass): Restore current_pass after
3615         applying IPA transforms.
3616
3617 2011-06-27  Kai Tietz  <ktietz@redhat.com>
3618
3619         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
3620         out of type precision after operation.
3621         (find_bswap): Take for limit value the integer auto-promotion
3622         into account.
3623
3624 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
3625
3626         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
3627         forward scan as well.
3628
3629 2011-06-27  Tristan Gingold  <gingold@adacore.com>
3630
3631         PR target/44241
3632         * config/vms/vms-protos.h: New file.
3633         * config/vms/vms-crtlmap.map: New file.
3634         * config/vms/vms.c: New file.
3635         * config/vms/make-crtlmap.awk: New file.
3636         * config/vms/vms-crtl.h: File removed.
3637         * config/vms/vms-crtl-64.h: File removed.
3638         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
3639         * config/alpha/vms64.h: Do not include vms-crtl-64.h
3640         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
3641         clear some builtins on VMS.  Calls vms_patch_builtins.
3642         (avms_asm_output_external): Remove.
3643         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
3644         (struct crtl_name_spec): Remove
3645         (DO_CTRL_NAMES): Remove.
3646         * config/ia64/vms.h (struct crtl_name_spec): Remove
3647         (DO_CTRL_NAMES): Remove.
3648         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
3649         clear some builtins on VMS.  Calls vms_patch_builtins.
3650         (ia64_asm_output_external): Remove DO_CRTL_NAME.
3651         * config/ia64/vms64.h: Do not include vms-crtl-64.h
3652         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
3653
3654 2011-06-27  Tristan Gingold  <gingold@adacore.com>
3655
3656         * config/alpha/alpha.c (alpha_end_function): Always generate .end
3657         directive on VMS.
3658
3659 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
3660
3661         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
3662         the function receives nonlocal gotos.
3663
3664 2011-06-27  Richard Guenther  <rguenther@suse.de>
3665
3666         PR tree-optimization/49536
3667         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
3668         For non-scalar inner types use a scalar type according to
3669         the scalar inner mode.
3670
3671 2011-06-27  Richard Guenther  <rguenther@suse.de>
3672
3673         PR tree-optimization/49365
3674         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
3675
3676 2011-06-27  Richard Guenther  <rguenther@suse.de>
3677
3678         PR tree-optimization/49169
3679         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
3680         the alignment of function decls.
3681
3682 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
3683
3684         PR target/47997
3685         * config/darwin.c (darwin_mergeable_string_section): Place string
3686         constants in '.cstring' rather than '.const' when CF/NSStrings are
3687         active.
3688
3689 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
3690
3691         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
3692         (emit_save_register_window): Likewise.
3693         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
3694         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
3695         Swap back %o7/%i7 in register naming.
3696
3697 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
3698
3699         PR driver/49371
3700         * config/darwin.c (darwin_override_options): Improve warning when
3701         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
3702         is given with fpie/fPIE.
3703         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
3704         * config/darwin9.h (PIE_SPEC): New.
3705
3706 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
3707
3708         * timevar.c (timevar_print): Increase width for display of timevar
3709         name.
3710
3711 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
3712
3713         PR c++/46400
3714         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
3715         instead of TYPE_CHAIN for chain_next for types.
3716
3717 2011-06-24  Richard Henderson  <rth@redhat.com>
3718
3719         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
3720         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
3721         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
3722         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
3723         (sparc_flat_expand_prologue): Emit individual instructions
3724         instead of one of the above.
3725
3726 2011-06-24  Easwaran Raman  <eraman@google.com>
3727
3728         PR rtl-optimization/49429
3729         PR target/49454
3730         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
3731         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
3732         used to copy y into x.
3733         * calls.c (initialize_argument_information): Mark
3734         an argument addressable if it is passed by invisible reference.
3735         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
3736         if it is passed by reference.
3737
3738 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
3739
3740         PR rtl-optimization/49504
3741         * rtlanal.c (nonzero_bits1): Properly handle addition or
3742         subtraction of a pointer in Pmode if pointers extend unsigned.
3743         (num_sign_bit_copies1): Likewise.
3744
3745 2011-06-24  Martin Jambor  <mjambor@suse.cz>
3746
3747         PR tree-optimizations/49516
3748         * tree-sra.c (sra_modify_assign): Choose the safe path for
3749         aggregate copies if we also did scalar replacements.
3750
3751 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3752
3753         PR target/49335
3754         * config/arm/predicates.md (add_operator): New.
3755         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
3756
3757 2011-06-24  Andi Kleen  <ak@linux.intel.com>
3758
3759         * tree-sra.c (type_internals_preclude_sra_p): Add msg
3760         parameter. Split up ifs and report reason in *msg.
3761         (reject): Add.
3762         (find_var_candiate): Add msg variable.
3763         Split up ifs and report reason to reject.
3764         (find_param_candidates): Add msg variable.
3765         Pass msg to type_internals_preclude_sra_p.
3766
3767 2011-06-23  Jeff Law  <law@redhat.com>
3768
3769         PR middle-end/48770
3770         * reload.h (reload): Change to return a bool.
3771         * ira.c (ira): If requested by reload, run a fast DCE pass after
3772         reload has completed.  Fix comment typo.
3773         * reload1.c (need_dce): New file scoped static.
3774         (reload): Set reload_completed here.  Return whether or not a DCE
3775         pass after reload is needed.
3776         (delete_dead_insn): Set need_dce as needed.
3777
3778         PR middle-end/49465
3779         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
3780         to detect threading through joiner block.  If there was already
3781         an edge to the new target, then do not change the PHI nodes.
3782
3783 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
3784
3785         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
3786         get_pointer_alignment to see if base isn't sufficiently aligned.
3787
3788 2011-06-23  Jan Hubicka  <jh@suse.cz>
3789
3790         PR tree-optimize/49373
3791         * tree-pass.h (all_late_ipa_passes): Declare.
3792         * cgraphunit.c (init_lowered_empty_function): Fix properties.
3793         (cgraph_optimize): Execute late passes; remove unreachable funcions
3794         after materialization.
3795         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
3796         LTOing.
3797         * passes.c (all_late_ipa_passes): Declare.
3798         (dump_passes, register_pass): Handle late ipa passes.
3799         (init_optimization_passes): Move ipa_pta to late passes; schedule
3800         fixup_cfg at beggining of all_passes.
3801         (apply_ipa_transforms): New function.
3802         (execute_one_pass): When doing simple ipa pass, apply all transforms.
3803
3804 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
3805
3806         * params.c: Include common/common-target.h.  Don't include tm.h.
3807         (lang_independent_params): Move from toplev.c.
3808         (global_init_params): New.
3809         * params.h (global_init_params): Declare.
3810         * target.def (default_params): Move to common-target.def.
3811         * toplev.c (lang_independent_options): Remove.
3812         (lang_independent_params): Move to params.c.
3813         (general_init): Use global_init_params.
3814         * common/common-target.def (option_default_params): Move from
3815         target.def.
3816         * common/config/ia64/ia64-common.c: Include params.h.
3817         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
3818         from ia64.c.
3819         * common/config/rs6000/rs6000-common.c: Include params.h.
3820         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
3821         from rs6000.c.
3822         * common/config/sh/sh-common.c: Include params.h.
3823         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
3824         from sh.c.
3825         * common/config/spu/spu-common.c: Include params.h.
3826         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
3827         from spu.c.
3828         * config/ia64/ia64.c (ia64_option_default_params,
3829         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
3830         * config/rs6000/rs6000.c (rs6000_option_default_params,
3831         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
3832         * config/sh/sh.c (sh_option_default_params,
3833         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
3834         * config/spu/spu.c (spu_option_default_params,
3835         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
3836         * Makefile.in (OBJS): Remove params.o.
3837         (OBJS-libcommon-target): Add params.o.
3838         (params.o, $(common_out_object_file)): Update dependencies.
3839         * doc/tm.texi: Regenerate.
3840
3841 2011-06-23  Alan Modra  <amodra@gmail.com>
3842
3843         PR bootstrap/49383
3844         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
3845         invocation for 2011-06-09 changes.
3846
3847 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
3848
3849         PR libgomp/49490
3850         * omp-low.c (expand_omp_for_static_nochunk): Only
3851         use n ceil/ nthreads size for the first n % nthreads threads in the
3852         team instead of all threads except for the last few ones which
3853         get less work or none at all.
3854
3855         PR debug/49496
3856         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
3857         uses.
3858
3859 2011-06-22  Richard Guenther  <rguenther@suse.de>
3860
3861         PR tree-optimization/49493
3862         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
3863         Refer to the alias target of variables.
3864         (associate_varinfo_to_alias_1): Remove.
3865         (ipa_pta_execute): Do not associate aliases with anything.
3866         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
3867         (cgraph_function_node): Likewise.
3868         (cgraph_function_or_thunk_node): Likewise.
3869         (varpool_variable_node): Likewise.
3870
3871 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
3872
3873         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
3874         * config.gcc (arm*-*-linux*): Default to gnu tls.
3875         (arm*-*-*): Add --with-tls option.
3876         (all_defaults): Add 'tls'.
3877
3878 2011-06-22  Richard Henderson  <rth@redhat.com>
3879
3880         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
3881         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
3882         (dwarf2out_frame_debug_cfa_window_save): Rename from
3883         dwarf2out_window_save; make static.
3884         * tree.h (dwarf2out_window_save): Don't declare.
3885
3886         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
3887         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
3888         (emit_save_register_window): Rename from gen_save_register_window;
3889         emit the insn and add REG_CFA_* notes.
3890         (sparc_expand_prologue): Update to match.
3891         * config/sparc/sparc.md (save_register_window_1): Simplify from
3892         save_register_window<P:mode>.
3893
3894 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
3895
3896         PR target/49497
3897         * config/i386/i386.md (*lea_general_2): Always allow SImode.
3898         (*lea_general_2_zext): Likewise.
3899         (imul to lea peepholes): Use const359_operand and check
3900         TARGET_PARTIAL_REG_STALL.
3901
3902         * config/i386/predicates.md (const359_operand): New.
3903
3904 2011-06-22  Michael Matz  <matz@suse.de>
3905
3906         * cgraphunit.c (assemble_thunk): Use correct return type.
3907
3908 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
3909             Dmitry Melnik  <dm@ispras.ru>
3910
3911         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
3912         (neon_output_shift_immediate): Ditto.
3913         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
3914         prototype.
3915         (neon_output_shift_immediate): Ditto.
3916         * config/arm/neon.md (vashl<mode>3): Modified constraint.
3917         (vashr<mode>3_imm): New insn pattern.
3918         (vlshr<mode>3_imm): Ditto.
3919         (vashr<mode>3): Modified constraint.
3920         (vlshr<mode>3): Ditto.
3921         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
3922         predicate.
3923         (imm_for_neon_rshift_operand): Ditto.
3924         (imm_lshift_or_reg_neon): Ditto.
3925         (imm_rshift_or_reg_neon): Ditto.
3926
3927         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
3928
3929 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
3930
3931         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
3932         builtin calls even if likelyvalue is not CONSTANT.
3933         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
3934         Return get_value_for_expr of first operand
3935         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
3936         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
3937         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
3938         their non-checking counterparts.
3939         (call_may_clobber_ref_p_1): Likewise.
3940         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
3941         like their non-checking counterparts.
3942         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3943         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
3944         like their non-checking counterparts.
3945         (find_func_clobbers): Likewise.
3946         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
3947         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
3948
3949         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
3950         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
3951         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
3952         of base type reference as argument.
3953         (resolve_addr_in_expr): Likewise.  Fix keep computation.
3954         (convert_descriptor_to_signed): Renamed to...
3955         (convert_descriptor_to_mode): ... this.  For wider types convert to
3956         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
3957         (typed_binop): New function.
3958         (scompare_loc_descriptor, ucompare_loc_descriptor,
3959         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
3960         default to unsigned type instead of signed.
3961
3962         PR debug/47858
3963         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
3964         (gimple_build_debug_source_bind_stat): New prototype.
3965         (gimple_build_debug_source_bind): Define.
3966         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
3967         gimple_debug_source_bind_get_value,
3968         gimple_debug_source_bind_get_value_ptr,
3969         gimple_debug_source_bind_set_var,
3970         gimple_debug_source_bind_set_value): New inlines.
3971         * gimple.c (gimple_build_debug_source_bind_stat): New function.
3972         * gimple-pretty-print.c (dump_gimple_debug): Handle
3973         GIMPLE_DEBUG_SOURCE_BIND.
3974         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
3975         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3976         * tree-parloops.c (eliminate_local_variables,
3977         separate_decls_in_region): Likewise.
3978         (separate_decls_in_region_debug): Renamed from
3979         separate_decls_in_region_debug_bind.  Handle
3980         gimple_debug_source_bind_p.
3981         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
3982         prototypes.
3983         (DECL_HAS_DEBUG_ARGS_P): Define.
3984         (struct tree_function_decl): Add has_debug_args_flag field.
3985         * tree.c (debug_args_for_decl): New variable.
3986         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
3987         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
3988         (rewrite_debug_stmt_uses): New function.
3989         (rewrite_stmt): Use it to rewrite debug stmt uses.
3990         * rtl.def (DEBUG_PARAMETER_REF): New.
3991         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
3992         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
3993         DEBUG_PARAMETER_REF.
3994         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
3995         * print-rtl.c (print_rtx): Likewise.
3996         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
3997         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
3998         debug stmts in the first bb.
3999         * tree-inline.c (remap_ssa_name): If remapping default def
4000         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
4001         a source bind debug stmt.
4002         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
4003         (maybe_move_debug_stmts_to_successors): Likewise.
4004         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
4005         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
4006         debug args vector from old_decl to new_decl.
4007         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
4008         or modified parameters, add debug bind stmts before call
4009         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
4010         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
4011         on DECL_DEBUG_EXPRs from debug args vector.
4012         (expand_debug_source_expr): New function.
4013         (expand_debug_locations): Use it for source bind insns.
4014         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
4015         * var-tracking.c (prepare_call_arguments): Add debug args
4016         to call_arguments if any.
4017         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
4018         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
4019         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
4020         (get_ref_die_offset, parameter_ref_descriptor): New functions.
4021         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
4022         (gen_subprogram_die): Handle parameters identified by
4023         DEBUG_PARAMETER_REF.
4024
4025 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
4026
4027         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
4028         * doc/install.texi (Configuration): Document --with-tls.
4029         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
4030         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
4031         (arm_tls_descseq_addr): New.
4032         (legitimize_tls_address): Add tlsdesc support.
4033         (arm_cannot_copy_insn_p): Check for tlscall.
4034         (arm_emit_tls_decoration): Likewise.
4035         * config/arm/arm.h (TARGET_GNU2_TLS): New.
4036         (OPTION_DEFAULT_SPECS): Add with-tls support.
4037         * config/arm/arm.md (R1_REGNUM): Define.
4038         (tlscall): New.
4039         * config/arm/arm.opt (tls_type): New enumeration type and values.
4040         (mtls-dialect): New switch.
4041         * config/arm/arm-opts.h (enum tls_type): New.
4042
4043 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
4044
4045         * attribs.c (register_attribute): Added assert to check that all
4046         attribute specs are registered with a name that is not empty and
4047         does not start with '_'.
4048         (decl_attributes): Avoid the lookup of the "naked" attribute spec
4049         if the function has no attributes.
4050         * tree.c (is_attribute_with_length_p): Removed.
4051         (is_attribute_p): Removed.
4052         (private_is_attribute_p): New.
4053         (private_lookup_attribute): New.
4054         (lookup_attribute): Removed.
4055         (lookup_ident_attribute): New.
4056         (remove_attribute): Require the first argument to be in the form
4057         'text', not '__text__'.  Updated asserts.
4058         (merge_attributes): Use lookup_ident_attributes instead of
4059         lookup_attribute.
4060         (merge_dllimport_decl_attributes): Use remove_attribute.
4061         (attribute_list_contained): Likewise.
4062         (attribute_list_equal): Immediately return 1 if the arguments are
4063         identical pointers.
4064         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
4065         'int'.  Require the first argument to be in the form 'text', not
4066         '__text__'.  Require the second argument to be an identifier.
4067         (lookup_attribute): Made inline.  Require the first argument to be
4068         in the form 'text', not '__text__'.
4069         (private_is_attribute_p, private_lookup_attribute): New.
4070         Updated comments.
4071
4072 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
4073
4074         * builtins.c: Add sync_ or SYNC__ to builtin names.
4075         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
4076         * omp-low.c: Add sync_ or SYNC__ to builtin names.
4077
4078 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
4079
4080         PR target/33049
4081         * config/avr/avr.md (extzv): New expander.
4082         (*extzv): New insn.
4083         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
4084         * config/avr/constraints.md (C04): New constraint.
4085         * doc/md.texi (Machine Constraints): Document it.
4086
4087 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
4088
4089         PR middle-end/49489
4090         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
4091         unsignedp argument instead of 1 for clrsb_optab.
4092         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
4093         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
4094         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
4095         * optabs.c (widen_leading): Call widen_operand and expand_unop
4096         with 0 as unsignedp argument instead of 1 for clrsb_optab.
4097         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
4098
4099 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
4100
4101         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
4102
4103 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
4104
4105         * gensupport.c (add_define_attr): New static function.
4106         (is_predicable): Allow multi-alternative lists for the "predicable"
4107         attribute.
4108         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
4109         (process_one_cond_exec): Call alter_attrs_for_insn.
4110         * doc/md.texi (Defining Attributes): Mention some standard names.
4111         (Conditional Execution): Update documentation for "predicable".
4112
4113         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
4114         __builtin_clrsbll): Document.
4115         * doc/rtl.texi (clrsb): New entry.
4116         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
4117         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
4118         (expand_unop): Handle clrsb_optab.
4119         (init_optabs): Initialize it.
4120         * optabs.h (enum optab_index): New entry OTI_clrsb.
4121         (clrsb_optab): Define.
4122         * genopinit.c (optabs): Add an entry for it.
4123         * builtins.c (expand_builtin): Handle clrsb builtin functions.
4124         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
4125         BUILT_IN_CLRSBLL): New.
4126         * rtl.def (CLRSB): New code.
4127         * dwarf2out.c (mem_loc_descriptor): Handle it.
4128         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
4129         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
4130         and popcount.
4131         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
4132         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
4133         (__ctzDI2): Move declaration.
4134         * config/bfin/bfin.md (clrsbsi2): New expander.
4135         (signbitssi2): Use the CLRSB rtx.
4136         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
4137         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
4138
4139 2011-06-21  Richard Guenther  <rguenther@suse.de>
4140
4141         * ipa-inline-transform.c (inline_transform): Fix previous change.
4142
4143 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
4144
4145         PR tree-optimization/49478
4146         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
4147         with constant operand.
4148
4149 2011-06-21  Richard Guenther  <rguenther@suse.de>
4150
4151         * ipa-inline-transform.c (inline_transform): Fix typo.
4152
4153 2011-06-21  Richard Guenther  <rguenther@suse.de>
4154
4155         PR tree-optimization/49483
4156         * tree-vect-stmts.c (vectorizable_assignment): Also handle
4157         VIEW_CONVERT_EXPR conversions.
4158
4159 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
4160
4161         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
4162         * config/avr/avr-tables.opt: New file (generated).
4163         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
4164         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
4165         avr-mcus.def.
4166         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
4167         (avr_option_override): Don't process -mmcu= argument here.  Set
4168         avr_current_device using avr_mcu_index.
4169         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
4170         * config/avr/avr.opt (mmcu=): Use Enum.
4171         * config/avr/t-avr (avr-devices.o): Update dependencies.
4172         ($(srcdir)/config/avr/avr-tables.opt): New.
4173         * target.def (help): Remove.
4174         * doc/tm.texi.in (TARGET_HELP): Remove.
4175         * doc/tm.texi: Regenerate.
4176         * opts.c: Don't include target.h.
4177         (common_handle_option): Don't call targetm.help.
4178         * system.h (TARGET_HELP): Poison.
4179         * Makefile.in (opts.o): Update dependencies.
4180
4181 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4182
4183         * config/usegld.h: New file.
4184         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
4185         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
4186         (LIB_SPEC): Likewise.  Search /lib.
4187         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
4188         (RDYNAMIC_SPEC): Handle GNU ld.
4189         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
4190         Define.
4191         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
4192         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
4193         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
4194         (STACK_CHECK_STATIC_BUILTIN): Define.
4195         * config/sol2.opt (compat-bsd): Remove.
4196         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
4197         * config/sol2-bi.h: New file.
4198         * config/sol2-gld.h: Remove.
4199         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
4200         (NO_DBX_BNSYM_ENSYM): Remove.
4201         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
4202         (STACK_CHECK_STATIC_BUILTIN): Remove.
4203         Test USE_GLD instead of TARGET_GNU_LD.
4204         * config/i386/sol2-10.h: Rename to ...
4205         * config/i386/sol2-bi.h .. this.
4206         (SUBTARGET_EXTRA_SPECS): Redefine.
4207         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
4208         (MULTILIB_DEFAULTS): Remove.
4209         (DEFAULT_ARCH32_P): Define.
4210         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
4211         (ARCH64_SUBDIR): Define.
4212         Test USE_GLD instead of TARGET_GNU_LD.
4213         (I386_EMULATION): Rename to ...
4214         (ARCH32_EMULATION): ... this.
4215         (X86_64_EMULATION): Rename to ...
4216         (ARCH64_EMULATION): ... this.
4217         (TARGET_LD_EMULATION): Remove.
4218         (LINK_ARCH_SPEC): Remove.
4219         * config/i386/sol2-gas.h: Remove.
4220         * config/i386/t-sol2-10: Rename to ...
4221         * config/i386/t-sol2-64: ... this.
4222         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
4223         (AS_SPARC64_FLAG): Define.
4224         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
4225         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
4226         depending on TARGET_CPU_DEFAULT.
4227         (CPP_CPU_SPEC): Redefine.
4228         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
4229         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
4230         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
4231         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
4232         ASM_ARCH_DEFAULT_SPEC): Redefine.
4233         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
4234         LINK_ARCH_DEFAULT_SPEC.
4235         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
4236         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
4237         (ARCH64_SUBDIR): Define.
4238         (LINK_ARCH64_SPEC): Redefine.
4239         (CC1_SPEC): Redefine.
4240         (OPTION_DEFAULT_SPECS): Redefine.
4241         (MULTILIB_DEFAULTS): Define.
4242         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
4243         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
4244         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
4245         (NO_DBX_BNSYM_ENSYM): Remove.
4246         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
4247         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
4248         (TARGET_ASM_NAMED_SECTION): Likewise.
4249         (STACK_CHECK_STATIC_BUILTIN): Remove.
4250         * config/sparc/sol2-bi.h: Remove.
4251         * config/sparc/sol2-gas-bi.h: Remove.
4252         * config/sparc/sol2-gas.h: Remove.
4253         * config/sparc/sol2-gld-bi.h: Remove.
4254         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
4255         common parts ...
4256         (*-*-solaris2*): ... here.
4257
4258 2011-06-21  Christian Bruel  <christian.bruel@st.com>
4259
4260         PR other/43564
4261         * ipa-inline.c (can_inline_edge_p): Check
4262         !DECL_DISREGARD_INLINE_LIMITS.
4263
4264 2011-06-21  Christian Bruel  <christian.bruel@st.com>
4265
4266         PR middle-end/49139
4267         * cgraphunit.c (process_function_and_variable_attributes): warn when
4268         always_inline functions that are not inline.
4269         * ipa-inline-transform.c (inline_transform): Always call
4270         optimize_inline.
4271         * tree-inline.c (tree_inlinable_function_p): Use error instead
4272         of sorry.
4273         (expand_call_inline): Likewise.
4274
4275 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
4276
4277         * Makefile.in (dg_target_exps): Set.
4278         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
4279         instead of 7, try to divide it more evenly.
4280
4281 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
4282
4283         PR target/49089
4284         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
4285         (avx256_split_unaligned_store): New definition.
4286         (ix86_option_override_internal): Enable avx256 unaligned load/store
4287         splitting only when avx256_split_unaligned_load/store is set.
4288
4289 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
4290
4291         * regrename.c (scan_rtx_reg): Handle the case where we write to an
4292         open chain in a smaller mode without failing the entire block.
4293
4294 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
4295
4296         PR middle-end/47725
4297         * combine.c (cant_combine_insn_p): Don't check zero/sign
4298         extended hard registers.
4299
4300 2011-06-21  Alan Modra  <amodra@gmail.com>
4301
4302         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
4303         CONST high part large-toc address.
4304         (rs6000_tls_referenced_p): Make static.
4305         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
4306
4307 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
4308
4309         PR middle-end/47725
4310         * combine.c (cant_combine_insn_p): Check zero/sign extended
4311         hard registers.
4312
4313 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4314
4315         PR target/49385
4316         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
4317         one of the operands is a register.
4318
4319 2011-06-20  Kai Tietz  <ktietz@redhat.com>
4320
4321         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
4322         operations in combination with binary and.
4323
4324 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
4325
4326         * regrename.c (do_replace): Don't update notes.
4327
4328 2011-06-20  Alan Modra  <amodra@gmail.com>
4329
4330         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
4331         of toc-relative address in CONST.
4332         (rs6000_delegitimize_address): Recognize changed address.
4333         (rs6000_legitimize_reload_address): Likewise.
4334         (rs6000_emit_move): Don't force these constants to memory.
4335         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
4336         toc-relative address in CONST.
4337         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
4338         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
4339
4340 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
4341
4342         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
4343         (count_trailing_zeros): Likewise.
4344
4345 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
4346
4347         PR other/49325
4348         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
4349         .init_array can be used with .ctors on targets.
4350         * configure: Regenerated.
4351
4352 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
4353
4354         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
4355         if the element type is volatile.
4356
4357 2011-06-18  Jan Hubicka  <jh@suse.cz>
4358
4359         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
4360         extra name aliases.
4361         (lto_symtab_resolve_can_prevail_p): Likewise.
4362         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
4363         * cgraphbuild.c (record_reference): Remove extra body alias code.
4364         (mark_load): Likewise.
4365         (mark_store): Likewise.
4366         * cgraph.h (varpool_node): Remove extra_name filed;
4367         add alias_of and extraname_alias.
4368         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
4369         (varpool_alias_aliased_node): New inline function.
4370         (varpool_variable_node): New function.
4371         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
4372         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
4373         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
4374         (input_varpool_node): Likewise.
4375         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
4376         (varpool_externally_visible_p): Remove extra body alias code.
4377         (function_and_variable_visibility): Likewise.
4378         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
4379         (ipa_pta_execute): Use it.
4380         * varpool.c (varpool_remove_node): Remove extra name alias code.
4381         (varpool_mark_needed_node): Likewise.
4382         (varpool_analyze_pending_decls): Analyze aliases.
4383         (assemble_aliases): New functoin.
4384         (varpool_assemble_decl): Use it.
4385         (varpool_create_variable_alias): New function.
4386         (varpool_extra_name_alias): Rewrite.
4387         (varpool_for_node_and_aliases): New function.
4388
4389 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
4390
4391         PR target/49411
4392         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
4393         last_arg_constant and last argument doesn't match its predicate,
4394         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
4395         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
4396         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
4397         spelling of error message.
4398         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
4399         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
4400         const_0_to_255_operand instead of const_int_operand.
4401
4402         Revert:
4403         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
4404
4405         * config/i386/sse.md (blendbits): Remove mode attribute.
4406         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
4407         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
4408         Check integer value of operand 3 in insn constraint.
4409
4410 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
4411
4412         PR rtl-optimization/48542
4413         * reload.c (find_equiv_reg): Stop looking when finding a
4414         setjmp-type call.
4415         * reload1.c (reload_as_needed): Invalidate all reload
4416         registers when crossing a setjmp-type call.
4417
4418 2011-06-16  Jeff Law  <law@redhat.com>
4419
4420         * tree-ssa-threadupdate.c (struct redirection_data): New field
4421         intermediate_edge.
4422         (THREAD_TARGET2): Define.
4423         (redirection_data_eq): Also check that the intermediate edge is equal.
4424         (lookup_redirection_data): Drop useless argument.  Extract the
4425         outgoing_edge and intermediate edge from E.  Callers updated.
4426         (copy_phi_args, update_destination_phis): New functions.
4427         (fix_duplicate_block_edges): Likewise.
4428         (create_edge_and_update_destination_phis): Duplicate all the edges
4429         hung off e->aux.  Use copy_phi_args.
4430         (create_duplicates): Use fix_duplicate_block_edges.
4431         (fixup_template_block): Likewise.
4432         (redirect_edges): If necessary, redirect the joiner block's incoming
4433         edge to the duplicate of the joiner block.
4434         (thread_block): Don't muck up loops when threading through a joiner
4435         block.
4436         (thread_through_loop_header): Handle threading through a joiner block.
4437         (mark_threaded_blocks, register_jump_thread): Likewise.
4438         * tree-flow.h (register_jump_thread): Add new argument.  Callers
4439         updated.
4440         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
4441         (thread_across_edge): Handle threading through a joiner block.
4442
4443 2011-06-16  Martin Jambor  <mjambor@suse.cz>
4444
4445         PR tree-optimization/49343
4446         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
4447         calculate offset, provide 2nd operand for the new COMPONENT_REF.
4448
4449 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
4450
4451         * config/darwin-protos.h (machopic_select_rtx_section): Move to
4452         inside RTX_CODE ifdef.
4453
4454 2011-06-16  Tom de Vries  <tom@codesourcery.com>
4455
4456         PR target/45098
4457         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
4458         Disallow NULL pointer for pointer arithmetic.
4459
4460 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4461
4462         PR target/49398
4463         Revert.
4464         2011-06-10  Wei Guozhi  <carrot@google.com>
4465
4466         PR target/45335
4467         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
4468         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
4469         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
4470         related peephole2.
4471         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
4472         related peephole2.
4473         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
4474         (arm_legitimate_ldrd_p): New prototype.
4475         (arm_output_ldrd): New prototype.
4476         * config/arm/arm.c (arm_check_ldrd_operands): New function.
4477         (arm_legitimate_ldrd_p): New function.
4478         (arm_output_ldrd): New function.
4479
4480 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
4481
4482         PR middle-end/46500
4483         * doc/tm.texi.in: Update Copyright date.
4484         * doc/tm.texi: Regenerate.
4485         * targhooks.c (default_setup_incoming_varargs): Replace
4486         CUMULATIVE_ARGS* argument type with cumulative_args_t.
4487         (default_pretend_outgoing_varargs_named): Likewise.
4488         (hook_pass_by_reference_must_pass_in_stack): Likewise.
4489         (hook_callee_copies_named): Likewise.
4490         (default_function_arg_advance): Likewise.
4491         (default_function_arg): Likewise.
4492         (default_function_incoming_arg): Likewise.
4493         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
4494         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
4495         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
4496         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
4497         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
4498         * targhooks.h (default_setup_incoming_varargs): Likewise.
4499         (default_pretend_outgoing_varargs_named): Likewise.
4500         (hook_pass_by_reference_must_pass_in_stack): Likewise.
4501         (hook_callee_copies_named): Likewise.
4502         (default_function_arg_advance): Likewise.
4503         (default_function_arg): Likewise.
4504         (default_function_incoming_arg): Likewise.
4505         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
4506         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
4507         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
4508         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
4509         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
4510         * target.def (pass_by_reference): Likewise.
4511         (setup_incoming_varargs, strict_argument_naming): Likewise.
4512         (pretend_outgoing_varargs_named, callee_copies): Likewise.
4513         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
4514         (function_incoming_arg): Likewise.
4515         * target.h: Don't include "tm.h" .
4516         (cumulative_args_t): New typedef.
4517         [GCC_TM_H] (get_cumulative_args): New static inline function.
4518         [GCC_TM_H] (pack_cumulative_args): Likewise.
4519         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
4520         argument type with cumulative_args_t.
4521         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
4522         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
4523         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
4524         (frv_arg_partial_bytes, frv_function_arg): Likewise.
4525         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
4526         (frv_function_arg_1): Likewise.
4527         * config/s390/s390.c (s390_pass_by_reference): Likewise.
4528         (s390_function_arg_advance, s390_function_arg): Likewise.
4529         * config/m32c/m32c.c (m32c_function_arg): Likewise.
4530         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
4531         (m32c_strict_argument_naming): Likewise.
4532         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
4533         (spu_function_arg_advance): Likewise.
4534         (spu_setup_incoming_varargs): Likewise.  Make static.
4535         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
4536         Remove prototype.
4537         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
4538         CUMULATIVE_ARGS* argument type with cumulative_args_t.
4539         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
4540         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
4541         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
4542         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
4543         (mep_pass_by_reference, mep_function_arg): Likewise.
4544         (mep_function_arg_advance): Likewise.
4545         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
4546         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
4547         (m32r_function_arg, m32r_function_arg_advance): Likewise.
4548         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
4549         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
4550         (ix86_function_arg, ix86_pass_by_reference): Likewise.
4551         (ix86_setup_incoming_varargs): Likewise.
4552         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
4553         (sh_strict_argument_naming): Likewise.
4554         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
4555         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
4556         (sh_function_arg_advance, sh_function_arg): Likewise.
4557         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
4558         (pdp11_function_arg_advance): Likewise.
4559         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
4560         Likewise.
4561         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
4562         * config/avr/avr.c (avr_function_arg): Likewise.
4563         (avr_function_arg_advance): Likewise.
4564         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
4565         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
4566         (xtensa_function_arg_1): Likewise.
4567         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
4568         Likewise.
4569         (xstormy16_function_arg): Likewise.
4570         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
4571         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
4572         (fr30_function_arg_advance): Likewise.
4573         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
4574         (lm32_function_arg, lm32_function_arg_advance): Likewise.
4575         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
4576         (moxie_function_arg, moxie_function_arg_advance): Likewise.
4577         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
4578         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
4579         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
4580         (cris_function_arg, cris_function_incoming_arg): Likewise.
4581         (cris_function_arg_advance, cris_function_arg_1): Likewise.
4582         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
4583         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
4584         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
4585         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
4586         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
4587         (mn10300_arg_partial_bytes): Likewise.
4588         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
4589         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
4590         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
4591         (ia64_function_arg_1): Likewise.
4592         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
4593         (m68k_function_arg): Likewise.
4594         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
4595         (rs6000_function_arg, setup_incoming_varargs): Likewise.
4596         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
4597         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
4598         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
4599         (picochip_arg_advance): Likewise.
4600         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
4601         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
4602         (mcore_function_arg_advance): Likewise.
4603         * config/score/score.c (score_pass_by_reference): Likewise.
4604         (score_function_arg_advance): Likewise.
4605         (score_arg_partial_bytes): Likewise.  Make static.
4606         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
4607         * config/arm/arm.c (arm_arg_partial_bytes): Replace
4608         CUMULATIVE_ARGS* argument type with cumulative_args_t.
4609         (arm_function_arg, arm_function_arg_advance): Likewise.
4610         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
4611         * config/pa/pa.c (pa_pass_by_reference): Likewise.
4612         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
4613         (pa_function_arg): Likewise.
4614         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
4615         (mips_function_arg, mips_function_arg_advance): Likewise.
4616         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
4617         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
4618         * config/vax/vax.c (vax_function_arg): Likewise.
4619         (vax_function_arg_advance): Likewise.
4620         * config/h8300/h8300.c (h8300_function_arg): Likewise.
4621         (h8300_function_arg_advance): Likewise.
4622         * config/v850/v850.c (v850_pass_by_reference): Likewise.
4623         (v850_strict_argument_naming, v850_function_arg): Likewise.
4624         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
4625         (v850_setup_incoming_varargs): Likewise.
4626         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
4627         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
4628         (mmix_function_arg, mmix_pass_by_reference): Likewise.
4629         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
4630         with const void *.
4631         * config/bfin/bfin.c (setup_incoming_varargs): Replace
4632         CUMULATIVE_ARGS* argument type with cumulative_args_t.
4633         (bfin_function_arg_advance, bfin_function_arg): Likewise.
4634         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
4635         * calls.c (emit_call_1): Change type of args_so_far to
4636         cumulative_args_t.  Changed all callers.
4637         (initialize_argument_information): Likewise.
4638         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
4639         * dse.c (get_call_args): Likewise.
4640         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
4641         * function.c (pass_by_reference, reference_callee_copied): Likewise.
4642         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
4643         New member args_so_far_v.  Changed all users.
4644         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
4645         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
4646         * config/mips/mips.c (mips_output_args_xfer): Likewise.
4647         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
4648         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4649         * config/microblaze/microblaze.c (microblaze_expand_prologue):
4650         Likewise.
4651         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
4652         m32r_pass_by_reference.
4653
4654 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
4655
4656         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
4657         argument to be a VEC of statements.
4658         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
4659         assert that pattern statements have to have their vector type set.
4660         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
4661         Change the first argument to be a VEC of statements.  Update
4662         documentation.
4663         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
4664         (vect_handle_widen_mult_by_const): New function.
4665         (vect_recog_widen_mult_pattern):  Change the first argument to be a
4666         VEC of statements.  Update documentation.  Check that the constant is
4667         INTEGER_CST.  Support multiplication by a constant that fits an
4668         intermediate type - call vect_handle_widen_mult_by_const.
4669         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
4670         call.  Handle additional pattern statements if necessary.
4671
4672 2011-06-16  Nick Clifton  <nickc@redhat.com>
4673
4674         PR target/49427
4675         * config.gcc: Set cpu_type to v850 for any V850 architecture.
4676         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
4677         md_file, extra_modes, out_file and extra_options are these are all
4678         deduced from cpu_type.
4679
4680 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
4681
4682         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
4683         truncation mask to 63.
4684
4685 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
4686
4687         PR target/49313
4688         PR target/29524
4689         * longlong.h: Add AVR support:
4690         (count_leading_zeros): New macro.
4691         (count_trailing_zeros): New macro.
4692         (COUNT_LEADING_ZEROS_0): New macro.
4693         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
4694         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
4695         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
4696         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
4697         (LIB2FUNCS_EXCLUDE): Add _clz.
4698         * config/avr/libgcc.S (XCALL): Move up in file.
4699         (XJMP): New C Macro.
4700         (DEFUN): New asm macro.
4701         (ENDF): New asm macro.
4702         (__ffssi2): New function.
4703         (__ffshi2): New function.
4704         (__loop_ffsqi2): New function.
4705         (__ctzsi2): New function.
4706         (__ctzhi2): New function.
4707         (__clzdi2): New function.
4708         (__clzsi2): New function.
4709         (__clzhi2): New function.
4710         (__paritydi2): New function.
4711         (__paritysi2): New function.
4712         (__parityhi2): New function.
4713         (__parityqi2): New function.
4714         (__popcounthi2): New function.
4715         (__popcountsi2): New function.
4716         (__popcountdi2): New function.
4717         (__popcountqi2): New function.
4718         (__bswapsi2): New function.
4719         (__bswapdi2): New function.
4720         (__ashldi3): New function.
4721         (__ashrdi3): New function.
4722         (__lshrdi3): New function.
4723         Fix suspicous lines.
4724
4725 2011-06-16  Richard Guenther  <rguenther@suse.de>
4726
4727         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
4728         the same as x != 0.
4729         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
4730         to (bool) X & 1.
4731         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
4732         equality compares against zero for the lower bit.
4733
4734 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
4735
4736         PR tree-optimization/49419
4737         * tree-vrp.c (execute_vrp): Call init_range_assertions
4738         before estimate_numbers_of_iterations, call
4739         free_number_of_iterations_estimates before calling
4740         remove_range_assertions.
4741
4742 2011-06-16  Revital Eres  <revital.eres@linaro.org>
4743
4744         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
4745         (struct partial_schedule): Add rows_length field.
4746         (verify_partial_schedule): Check rows_length.
4747         (ps_insert_empty_row): Handle rows_length.
4748         (create_partial_schedule): Likewise.
4749         (free_partial_schedule): Likewise.
4750         (reset_partial_schedule): Likewise.
4751         (create_ps_insn): Remove rest_count argument.
4752         (remove_node_from_ps): Update rows_length.
4753         (add_node_to_ps): Update rows_length and call create_ps_insn
4754         without passing row_rest_count.
4755         (rotate_partial_schedule): Update rows_length.
4756
4757 2011-06-16  Revital Eres  <revital.eres@linaro.org>
4758
4759         * ddg.c (add_intra_loop_mem_dep): New function.
4760         (build_intra_loop_deps): Call it.
4761
4762 2011-06-13  Jeff Law  <law@redhat.com>
4763
4764         * df-problems.c (df_lr_local_compute): Manually CSE
4765         PIC_OFFSET_TABLE_REGNUM.
4766         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
4767         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
4768
4769 2011-06-13  Jan Hubicka  <jh@suse.cz>
4770
4771         * cgraphunit.c (handle_alias_pairs): New function.
4772         (cgraph_finalize_compilation_unit): Use it.
4773         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
4774         as externally visible.
4775
4776 2011-06-15  Richard Guenther  <rguenther@suse.de>
4777
4778         * expr.c (expand_expr_real_2): Reduce all integral types to
4779         bitfield precision.
4780         (expand_expr_real_1): Likewise.
4781
4782 2011-06-15  Martin Jambor  <mjambor@suse.cz>
4783
4784         PR tree-optimization/48613
4785         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
4786         ipa_node_params_vector is NULL.
4787
4788 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
4789
4790         PR debug/49382
4791         * dwarf2out.c (dw_loc_list_node): Add force field.
4792         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
4793         location in the list, even if it is modified before first real insn.
4794         (output_loc_list): Emit empty ranges with force flag set.
4795         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
4796
4797 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
4798
4799         PR target/49349
4800         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
4801         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
4802         above a fence.  Update comments.
4803         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
4804         placed just above it.  Do not allow NULL place_to_insert.
4805
4806 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
4807
4808         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
4809         (slpeel_tree_peel_loop_to_edge): Don't call
4810         remove_dead_stmts_from_loop.
4811         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
4812         remove irrelevant pattern statements.  For irrelevant statements
4813         check if it is the last statement of a detected pattern, use
4814         corresponding pattern statement instead.
4815         (destroy_loop_vec_info): No need to remove pattern statements,
4816         only free stmt_vec_info.
4817         (vect_transform_loop): For irrelevant statements check if it is
4818         the last statement of a detected pattern, use corresponding
4819         pattern statement instead.
4820         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
4821         pattern statements.  Set basic block for the new statement.
4822         (vect_pattern_recog): Update documentation.
4823         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
4824         operands of pattern statements.
4825         (vectorizable_call): Fix printing.  In case of a pattern statement
4826         use the lhs of the original statement when creating a dummy
4827         statement to replace the original call.
4828         (vect_analyze_stmt): For irrelevant statements check if it is
4829         the last statement of a detected pattern, use corresponding
4830         pattern statement instead.
4831         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
4832         statements use gsi of the original statement.
4833
4834 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
4835
4836         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
4837         common/common-target-def.h.
4838         * target.def (default_target_flags, handle_option,
4839         supports_split_stack, optimization_table, init_struct,
4840         except_unwind_info, unwind_tables_default, have_named_sections):
4841         Move to common/common-target.def.
4842         * target.h (enum opt_levels, struct default_options): Move to
4843         common/common-target.h.
4844         * targhooks.c (default_except_unwind_info,
4845         dwarf2_except_unwind_info, sjlj_except_unwind_info,
4846         default_target_handle_option, empty_optimization_table): Move to
4847         common/common-targhooks.c.
4848         * targhooks.h (default_except_unwind_info,
4849         dwarf2_except_unwind_info, sjlj_except_unwind_info,
4850         default_target_handle_option, empty_optimization_table): Move to
4851         common/common-targhooks.h.
4852         * common/common-target-def.h: Include common/common-targhooks.h.
4853         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
4854         defined.
4855         * common/common-target.def (handle_option, option_init_struct,
4856         option_optimization_table, default_target_flags,
4857         except_unwind_info, supports_split_stack, unwind_tables_default,
4858         have_named_sections): Move from target.def.
4859         (HOOK_PREFIX): Undefine at end of file.
4860         * common/common-target.h: Include input.h.
4861         (enum opt_levels, struct default_options): Move from target.h.
4862         * common/common-targhooks.c, common/common-targhooks.h: New.
4863         * config.gcc (target_has_targetm_common): Default to yes.
4864         (moxie*): Set target_has_targetm_common=no.
4865         (hppa*-*-*): Don't set target_has_targetm_common=yes.
4866         * doc/tm.texi: Regenerate.
4867         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
4868         (C_TARGET_DEF_H): Add common/common-targhooks.h.
4869         (GCC_OBJS): Remove vec.o.
4870         (OBJS): Remove hooks.o and vec.o.
4871         (OBJS-libcommon-target): Add vec.o, hooks.o and
4872         common/common-targhooks.o.
4873         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
4874         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
4875         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
4876         cfglayout.o, $(out_object_file), $(common_out_object_file)):
4877         Update dependencies.
4878         (common/common-targhooks.o): New.
4879         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
4880         * common/config/pa/pa-common.c: Include more headers.  Take
4881         copyright dates from pa.c.
4882         (pa_option_optimization_table, pa_handle_option,
4883         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
4884         TARGET_HANDLE_OPTION): Move from pa.c.
4885         * common/config/alpha/alpha-common.c,
4886         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
4887         common/config/bfin/bfin-common.c,
4888         common/config/cris/cris-common.c,
4889         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
4890         common/config/h8300/h8300-common.c,
4891         common/config/i386/i386-common.c,
4892         common/config/ia64/ia64-common.c,
4893         common/config/iq2000/iq2000-common.c,
4894         common/config/lm32/lm32-common.c,
4895         common/config/m32c/m32c-common.c,
4896         common/config/m32r/m32r-common.c,
4897         common/config/m68k/m68k-common.c,
4898         common/config/mcore/mcore-common.c,
4899         common/config/mep/mep-common.c,
4900         common/config/microblaze/microblaze-common.c,
4901         common/config/mips/mips-common.c,
4902         common/config/mmix/mmix-common.c,
4903         common/config/mn10300/mn10300-common.c,
4904         common/config/pdp11/pdp11-common.c,
4905         common/config/picochip/picochip-common.c,
4906         common/config/rs6000/rs6000-common.c,
4907         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
4908         common/config/score/score-common.c, common/config/sh/sh-common.c,
4909         common/config/sparc/sparc-common.c,
4910         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
4911         common/config/vax/vax-common.c,
4912         common/config/xstormy16/xstormy16-common.c,
4913         common/config/xtensa/xtensa-common.c: New.
4914         * config/alpha/alpha.c: Include common/common-target.h.
4915         (alpha_option_optimization_table, alpha_handle_option,
4916         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4917         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
4918         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
4919         * config/arm/arm.c (arm_option_optimization_table,
4920         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
4921         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
4922         arm-common.c.
4923         * config/avr/avr.c (avr_option_optimization_table,
4924         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
4925         to avr-common.c.
4926         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
4927         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
4928         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
4929         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
4930         * config/cris/cris.c (cris_option_optimization_table,
4931         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4932         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
4933         cris-common.c.
4934         * config/fr30/fr30.c (fr30_option_optimization_table,
4935         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
4936         to fr30-common.c.
4937         * config/frv/frv.c (frv_option_optimization_table,
4938         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
4939         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
4940         * config/h8300/h8300.c (h8300_option_optimization_table,
4941         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
4942         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
4943         * config/i386/i386-protos.h (ix86_handle_option): Declare.
4944         * config/i386/i386.c: Include common/common-target.h.
4945         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
4946         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
4947         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
4948         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
4949         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
4950         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
4951         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
4952         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
4953         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
4954         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
4955         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
4956         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
4957         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
4958         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
4959         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
4960         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
4961         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
4962         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
4963         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
4964         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
4965         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
4966         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
4967         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
4968         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
4969         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
4970         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
4971         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
4972         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
4973         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
4974         ix86_option_optimization_table, ix86_option_init_struct,
4975         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
4976         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
4977         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
4978         i386-common.c.
4979         * config/i386/t-i386 (i386.o): Update dependencies.
4980         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
4981         * config/ia64/ia64.c (ia64_option_optimization_table,
4982         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
4983         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4984         ia64_handle_option): Move to ia64-common.c.
4985         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
4986         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
4987         * config/lm32/lm32.c (lm32_option_optimization_table,
4988         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
4989         to lm32-common.c.
4990         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
4991         m32c-common.c.
4992         * config/m32r/m32r.c (m32r_option_optimization_table,
4993         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4994         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
4995         m32r_handle_option): Move to m32r-common.c.
4996         (m32r_memory_move_cost): Remove comment referring to
4997         TARGET_HANDLE_OPTION.
4998         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
4999         Move to m68k-common.c.
5000         * config/mcore/mcore.c (mcore_option_optimization_table,
5001         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5002         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
5003         * config/mep/mep.c (mep_option_optimization_table,
5004         mep_handle_option, TARGET_HANDLE_OPTION,
5005         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
5006         Move to mep-common.c.
5007         * config/microblaze/microblaze.c
5008         (microblaze_option_optimization_table,
5009         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5010         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
5011         * config/mips/mips.c (mips_handle_option,
5012         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
5013         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
5014         mips-common.c.
5015         * config/mmix/mmix.c (mmix_option_optimization_table,
5016         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
5017         Move to mmix-common.c.
5018         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
5019         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
5020         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5021         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
5022         * config/pa/pa.c: Include common/common-target.h.
5023         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
5024         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5025         pa_handle_option): Move to pa-common.c.
5026         (pa_option_override): Use targetm_common.except_unwind_info.
5027         (pa_asm_output_mi_thunk, pa_function_section): Use
5028         targetm_common.have_named_sections.
5029         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
5030         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5031         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
5032         pdp11_handle_option, pdp11_option_init_struct): Move to
5033         pdp11-common.c.
5034         * config/picochip/picochip.c (picochip_option_optimization_table,
5035         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
5036         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
5037         * config/rs6000/rs6000.c: Include common/common-target.h.
5038         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
5039         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
5040         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
5041         rs6000_handle_option): Move to rs6000-common.c.
5042         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
5043         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
5044         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5045         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
5046         * config/s390/s390.c (processor_flags_table,
5047         s390_option_optimization_table, s390_option_init_struct,
5048         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
5049         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5050         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
5051         * config/s390/s390.h (processor_flags_table): Declare.
5052         * config/score/score.c (score_option_optimization_table,
5053         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5054         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
5055         score_handle_option): Move to score-common.c.
5056         * config/sh/sh.c (sh_option_optimization_table,
5057         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
5058         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5059         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
5060         * config/sparc/sparc.c: Include common/common-target.h.
5061         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
5062         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
5063         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
5064         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
5065         spu_option_init_struct): Move to spu-common.c.
5066         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
5067         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
5068         * config/v850/v850.c (small_memory_physical_max,
5069         v850_handle_memory_optionn v850_handle_option,
5070         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
5071         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
5072         v850-common.c.
5073         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
5074         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
5075         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
5076         Move to xtensa-common.c.
5077         * cfglayout.c: Include common/common-target.h.
5078         (fixup_reorder_chain): Use targetm_common.have_named_sections.
5079         * cfgrtl.c: Include common/common-target.h.
5080         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
5081         targetm_common.have_named_sections.
5082         * dbxout.c: Include common/common-target.h.
5083         (dbxout_function_end): Use targetm_common.have_named_sections.
5084         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
5085         targetm_common.except_unwind_info.
5086         * dwarf2out.c: Include common/common-target.h.
5087         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
5088         dwarf2out_begin_prologue, dwarf2out_frame_init,
5089         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
5090         targetm_common.except_unwind_info.
5091         * except.c: Include common/common-target.h.
5092         (init_eh, finish_eh_generation,
5093         output_one_function_exception_table): Use
5094         targetm_common.except_unwind_info.
5095         (switch_to_exception_section): Use targetm_common.have_named_sections.
5096         * explow.c: Include common/common-target.h.
5097         * expr.c: Include common/common-target.h.
5098         (build_personality_function): Use targetm_common.except_unwind_info.
5099         * function.c: Include common/common-target.h.
5100         (expand_function_end): Use targetm_common.except_unwind_info.
5101         * haifa-sched.c: Include common/common-target.h.
5102         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
5103         * lto-opts.c: Include common/common-target.h instead of target.h.
5104         (lto_reissue_options): Use targetm_common.handle_option.
5105         * opts.c: Include common/common-target.h.
5106         (target_handle_option): Use targetm_common.handle_option.
5107         (init_options_struct): Update comment referring to
5108         targetm.target_option.optimization.  Use
5109         targetm_common.default_target_flags,
5110         targetm_common.unwind_tables_default and
5111         targetm_common.option_init_struct.
5112         (default_options_optimization): Use
5113         targetm_common.option_optimization_table.
5114         (finish_options): Use targetm_common.except_unwind_info,
5115         targetm_common.unwind_tables_default,
5116         targetm_common.have_named_sections and
5117         targetm_common.supports_split_stack.
5118         * toplev.c: Include common/common-target.h.
5119         (process_options): Use targetm_common.have_named_sections.
5120         * tree-tailcall.c: Include common/common-target.h.
5121         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
5122         * tree.c: Include common/common-target.h.
5123         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
5124         * varasm.c: Include common/common-target.h.
5125         (resolve_unique_section, hot_function_section,
5126         default_function_section): Use targetm_common.have_named_sections.
5127
5128 2011-06-14  Easwaran Raman  <eraman@google.com>
5129
5130         PR rtl-optimization/44194
5131         * dse.c: Include tree-flow.h
5132         (insn_info): Add new field non_frame_wild_read.
5133         (group_info): Add new fields escaped_n and escaped_p.
5134         (kill_on_calls): New variable.
5135         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
5136         (dse_step0): Initialize kill_on_calls.
5137         (can_escape): New function.
5138         (set_usage_bits): Add additional parameter; record information
5139         about escaped locations.
5140         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
5141         (dse_step2_nospill): Set kill_on_calls based on
5142         group->escaped_n and group->escaped_n.
5143         (add_wild_read): Refactor into...
5144         (reset_active_stores): ... New function, and
5145         (free_read_records): ... New function.
5146         (add_non_frame_wild_read): New function.
5147         (scan_insn): Call add_non_frame_wild_read on non-const calls.
5148         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
5149         (dse_step5_nospill): Call scan_reads_nospill for instructions
5150         marked as non_frame_wild_read.
5151         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
5152
5153 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
5154
5155         * common/common-target-def.h, common/common-target.def,
5156         common/common-target.h, common/config/default-common.c,
5157         common/config/pa/pa-common.c: New files.
5158         * Makefile.in (common_out_file, common_out_object_file,
5159         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
5160         (OBJS-libcommon-target): Include $(common_out_object_file).
5161         (prefix.o): Update dependencies.
5162         ($(common_out_object_file), common/common-target-hooks-def.h,
5163         s-common-target-hooks-def-h): New.
5164         (s-tm-texi): Also check timestamp on common-target.def.
5165         (build/genhooks.o): Update dependencies.
5166         * config.gcc (common_out_file, target_has_targetm_common): Define.
5167         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
5168         TARGET_ALWAYS_STRIP_DOTDOT.
5169         * configure.ac (common_out_object_file): Define.
5170         (common_out_file, common_out_object_file): Substitute.
5171         (common): Create directory.
5172         * configure: Regenerate.
5173         * doc/tm.texi.in (targetm_common): Document.
5174         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
5175         * doc/tm.texi: Regenerate.
5176         * genhooks.c (hook_array): Also include common/common-target.def.
5177         * prefix.c (tm.h): Don't include.
5178         (common/common-target.h): Include.
5179         (ALWAYS_STRIP_DOTDOT): Don't define.
5180         (update_path): Use targetm_common.always_strip_dotdot instead of
5181         ALWAYS_STRIP_DOTDOT.
5182         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
5183
5184 2011-06-14  David Li  <davidxl@google.com>
5185
5186         * passes.c (execute_function_todo): Remove TODO_dump_func.
5187         (execute_one_pass): Remove TODO_dump_func.
5188         (execute_function_dump): New function.
5189         * tree-vrp.c: Remove TODO_dump_func.
5190         * regrename.c: Remove TODO_dump_func.
5191         * fwprop.c: Remove TODO_dump_func.
5192         * tree-into-ssa.c: Remove TODO_dump_func.
5193         * tree-complex.c: Remove TODO_dump_func.
5194         * tracer.c: Remove TODO_dump_func.
5195         * tree-loop-distribution.c: Remove TODO_dump_func.
5196         * postreload-gcse.c: Remove TODO_dump_func.
5197         * postreload.c: Remove TODO_dump_func.
5198         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
5199         * tree-tailcall.c: Remove TODO_dump_func.
5200         * ipa-cp.c: Remove TODO_dump_func.
5201         * final.c: Remove TODO_dump_func.
5202         * tree-emutls.c: Remove TODO_dump_func.
5203         * omp-low.c: Remove TODO_dump_func.
5204         * tree-ssa-dse.c: Remove TODO_dump_func.
5205         * tree-ssa-uncprop.c: Remove TODO_dump_func.
5206         * auto-inc-dec.c: Remove TODO_dump_func.
5207         * reorg.c: Remove TODO_dump_func.
5208         * tree-ssa-copyrename.c: Remove TODO_dump_func.
5209         * tree-ssa-ccp.c: Remove TODO_dump_func.
5210         * compare-elim.c: Remove TODO_dump_func.
5211         * mode-switching.c: Remove TODO_dump_func.
5212         * modulo-sched.c: Remove TODO_dump_func.
5213         * tree-call-cdce.c: Remove TODO_dump_func.
5214         * cse.c: Remove TODO_dump_func.
5215         * web.c: Remove TODO_dump_func.
5216         * tree-stdarg.c: Remove TODO_dump_func.
5217         * lto-streamer-out.c: Remove TODO_dump_func.
5218         * tree-ssa-math-opts.c: Remove TODO_dump_func.
5219         * tree-ssa-dom.c: Remove TODO_dump_func.
5220         * tree-nrv.c: Remove TODO_dump_func.
5221         * loop-init.c: Remove TODO_dump_func.
5222         * gimple-low.c: Remove TODO_dump_func.
5223         * ipa-inline.c: Remove TODO_dump_func.
5224         * tree-ssa-sink.c: Remove TODO_dump_func.
5225         * jump.c: Remove TODO_dump_func.
5226         * ifcvt.c: Remove TODO_dump_func.
5227         * tree-ssa-loop.c: Remove TODO_dump_func.
5228         * recog.c: Remove TODO_dump_func.
5229         * dse.c: Remove TODO_dump_func.
5230         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
5231         * matrix-reorg.c: Remove TODO_dump_func.
5232         * tree-eh.c: Remove TODO_dump_func.
5233         * regmove.c: Remove TODO_dump_func.
5234         * function.c: Remove TODO_dump_func.
5235         * tree-vectorizer.c: Remove TODO_dump_func.
5236         * ipa-split.c: Remove TODO_dump_func.
5237         * gcse.c: Remove TODO_dump_func.
5238         * tree-if-conv.c: Remove TODO_dump_func.
5239         * init-regs.c: Remove TODO_dump_func.
5240         * tree-ssa-phiopt.c: Remove TODO_dump_func.
5241         * implicit-zee.c: Remove TODO_dump_func.
5242         * lower-subreg.c: Remove TODO_dump_func.
5243         * bt-load.c: Remove TODO_dump_func.
5244         * tree-dfa.c: Remove TODO_dump_func.
5245         * except.c: Remove TODO_dump_func.
5246         * emit-rtl.c: Remove TODO_dump_func.
5247         * store-motion.c: Remove TODO_dump_func.
5248         * cfgexpand.c: Remove TODO_dump_func.
5249         * tree-cfgcleanup.c: Remove TODO_dump_func.
5250         * cfgcleanup.c: Remove TODO_dump_func.
5251         * tree-ssa-pre.c: Remove TODO_dump_func.
5252         * tree-sra.c: Remove TODO_dump_func.
5253         * tree-mudflap.c: Remove TODO_dump_func.
5254         * tree-ssa-copy.c: Remove TODO_dump_func.
5255         * cfglayout.c: Remove TODO_dump_func.
5256         * tree-ssa-forwprop.c: Remove TODO_dump_func.
5257         * tree-ssa-dce.c: Remove TODO_dump_func.
5258         * ira.c: Remove TODO_dump_func.
5259         * tree-ssa.c: Remove TODO_dump_func.
5260         * integrate.c: Remove TODO_dump_func.
5261         * tree-optimize.c: Remove TODO_dump_func.
5262         * tree-ssa-phiprop.c: Remove TODO_dump_func.
5263         * tree-object-size.c: Remove TODO_dump_func.
5264         * combine.c: Remove TODO_dump_func.
5265         * bb-reorder.c: Remove TODO_dump_func.
5266         * cprop.c: Remove TODO_dump_func.
5267         * var-tracking.c: Remove TODO_dump_func.
5268         * tree-profile.c: Remove TODO_dump_func.
5269         * tree-vect-generic.c: Remove TODO_dump_func.
5270         * reg-stack.c: Remove TODO_dump_func.
5271         * sched-rgn.c: Remove TODO_dump_func.
5272         * tree-ssa-structalias.c: Remove TODO_dump_func.
5273         * tree-switch-conversion.c: Remove TODO_dump_func.
5274         * tree-cfg.c: Remove TODO_dump_func.
5275         * tree-ssa-reassoc.c: Remove TODO_dump_func.
5276         * combine-stack-adj.c: Remove TODO_dump_func.
5277         * dce.c: Remove TODO_dump_func.
5278         * tree-ssanames.c: Remove TODO_dump_func.
5279         * regcprop.c: Remove TODO_dump_func.
5280
5281 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
5282
5283         PR middle-end/47364
5284         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
5285         and properly handle result not in Pmode.
5286
5287 2011-06-14  Robert Millan  <rmh@gnu.org>
5288
5289         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
5290         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
5291         `config/linux.h'.
5292
5293         * config/i386/kfreebsd-gnu64.h: New file.
5294         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
5295         with `i386/kfreebsd-gnu64.h'.
5296
5297         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
5298         (GNU_USER_LINK_EMULATION64): New macros.
5299         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
5300         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
5301         of hardcoding `elf_i386' and `elf_x86_64'.
5302
5303 2011-06-14  Nick Clifton  <nickc@redhat.com>
5304
5305         PR target/49403
5306         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
5307
5308         PR target/49402
5309         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
5310
5311 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
5312
5313         PR fortran/49103
5314         * tree.h (DECL_NONSHAREABLE): Define.
5315         (struct tree_decl_common): Change decl_common_unused to
5316         decl_nonshareable_flag.
5317         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
5318         Ignore vars with DECL_NONSHAREABLE bit set.
5319         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
5320         on stores to automatic aggregate vars.
5321
5322         PR rtl-optimization/49390
5323         Revert:
5324         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
5325
5326         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
5327         MEM_ALIAS_SET.
5328
5329 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
5330             Tom de Vries  <tom@codesourcery.com>
5331
5332         PR target/45098
5333         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
5334         Document changed semantics.
5335         (max_stmt_executions, max_stmt_executions_int): Declare.
5336         * tree-data-ref.c (estimated_loop_iterations)
5337         (estimated_loop_iterations_int): Move functions...
5338         * tree-ssa-loop-niter.c (estimated_loop_iterations)
5339         (estimated_loop_iterations_int): here.
5340         (record_estimate): Change nb_iterations_upper_bound and
5341         nb_iterations_estimate semantics.
5342         (max_stmt_executions, max_stmt_executions_int): New function.
5343         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
5344         (max_stmt_executions_tree): this.
5345         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
5346         estimated_loop_iterations_tree.
5347         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
5348         max_stmt_executions_int instead of estimated_loop_iterations_int.
5349         * predict.c (predict_loops): Idem.
5350         * tree-parloops.c (parallelize_loops): Idem.
5351         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
5352         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
5353         (init_omega_for_ddr_1): Idem.
5354         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
5355         (loop_prefetch_arrays): Idem
5356         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
5357         max_stmt_executions instead of estimated_loop_iterations.
5358         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
5359         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
5360         instead of nb_iterations_upper_bound.
5361
5362 2011-06-13  Jan Hubicka  <jh@suse.cz>
5363
5364         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
5365
5366 2011-06-14  Richard Henderson  <rth@redhat.com>
5367
5368         PR debug/48459
5369         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
5370         (based_loc_descr): Assert it's true.
5371         (compute_frame_pointer_to_fb_displacement): Set it, rather than
5372         aborting immediately.
5373
5374 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
5375             Mingfeng Wu  <mingfeng@faraday-tech.com>
5376
5377         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
5378
5379 2011-06-13  Jan Hubicka  <jh@suse.cz>
5380
5381         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
5382
5383 2011-06-13  Jan Hubicka  <jh@suse.cz>
5384
5385         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
5386         similarly to DECL_COMDAT.
5387         * cgraphunit.c (cgraph_analyze_function): Likewise.
5388         * ipa.c (function_and_variable_visibility): Likewise.
5389
5390 2011-06-13  Jan Hubicka  <jh@suse.cz>
5391
5392         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
5393         BINFO_VIRTUALS when streaming for ltrans unit.
5394
5395 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
5396
5397         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
5398         (movdi_internal64): Same.
5399
5400 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
5401
5402         PR target/44618
5403         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
5404         a set of similar patterns, where the MATCH_OPERAND for the function
5405         argument is replaced with individual references to hardware registers.
5406         (save_fpregs_<mode>): Ditto
5407         (restore_gpregs_<mode>): Ditto
5408         (return_and_restore_gpregs_<mode>): Ditto
5409         (return_and_restore_fpregs_<mode>): Ditto
5410         (return_and_restore_fpregs_aix_<mode>): Ditto
5411
5412 2011-06-13  Jan Hubicka  <jh@suse.cz>
5413
5414         * ipa-utils.c (postorder_stack): New structure.
5415         (ipa_reverse_postorder): Handle aliases.
5416
5417 2011-06-13  Jan Hubicka  <jh@suse.cz>
5418
5419         * ipa-inline.c (reset_edge_caches): Walk aliases.
5420         (update_caller_keys): Do not test inlinability of aliases.
5421         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
5422         (do_estimate_growth): Fix typo.
5423
5424 2011-06-13  Jan Hubicka  <jh@suse.cz>
5425
5426         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
5427         (can_remove_node_now_p): ... here; handle same comdat groups.
5428         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
5429         (inline_call): Update use of can_remove_node_now_p.
5430
5431 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5432
5433         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
5434         condition to disallow non-identical memory locations.
5435         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
5436         preference to bit manipulation instructions.
5437
5438 2011-06-13  Jan Hubicka  <jh@suse.cz>
5439
5440         * cgraph.c (cgraph_for_node_thunks_and_aliases,
5441         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
5442         (nonremovable_p): New function.
5443         (cgraph_can_remove_if_no_direct_calls_p): New function.
5444         (used_from_object_file_p): New functoin.
5445         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
5446         references from aliases.
5447         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
5448         * ipa-inline.c (check_caller_edge): New function.
5449         (want_inline_function_called_once_p): Use it; accept aliases called
5450         once, too.
5451         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
5452
5453 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5454
5455         PR target/48454
5456         * config/arm/neon.md (vec_pack_trunc): Set the lengths
5457         correctly for the case with Quad vectors.
5458
5459 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
5460            Ira Rosen  <ira.rosen@linaro.org>
5461
5462         PR tree-optimization/49352
5463         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
5464         all, make sure loop_use_stmt after the loop is a def stmt of a used
5465         SSA_NAME that is the only one defined inside of the loop.  Don't
5466         check for COND_EXPR and GIMPLE_BINARY_RHS.
5467         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
5468         check_reduction is true.
5469
5470 2011-06-11  Jan Hubicka  <jh@suse.cz>
5471
5472         PR middle-end/49373
5473         * ipa.c (cgraph_externally_visible_p): Check resolution info.
5474
5475 2011-06-11  Jan Hubicka  <jh@suse.cz>
5476
5477         PR middle-end/48836
5478         * ipa-inline-transform.c: Include tree-pass.h
5479         (inline_transform): Set TODO_update_ssa_only_virtuals.
5480         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
5481
5482 2011-06-11  Jan Hubicka  <jh@suse.cz>
5483
5484         PR middle-end/49378
5485         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
5486         aliases and thunks.
5487
5488 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
5489
5490         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
5491         Take number of iterations to peel into account for equally frequent
5492         misalignment values.
5493
5494 2011-06-11  Jan Hubicka  <jh@suse.cz>
5495
5496         * lto-streamer-out.c (produce_symtab): Stream out the newly
5497         represented aliases.
5498
5499 2011-06-11  Jan Hubicka  <jh@suse.cz>
5500
5501         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
5502         varying args.
5503         (ipa_update_after_lto_read): Likewise.
5504         (ipa_write_node_info): Do not sream call_with_var_arguments.
5505         (ipa_read_node_info): Likewise.
5506
5507 2011-06-11  Jan Hubicka  <jh@suse.cz>
5508
5509         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
5510
5511 2011-06-11  Jan Hubicka  <jh@suse.cz>
5512
5513         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
5514         (lto_symtab_resolve_can_prevail_p): Likewise.
5515         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
5516         * cgraph.c (same_body_aliases_done): New global var.
5517         (cgraph_same_body_alias_1): Rename to ...
5518         (cgraph_create_function_alias): ... this one; reorg to new
5519         representation.
5520         (cgraph_same_body_alias): Use cgraph_create_function_alias;
5521         record references when asked to.
5522         (cgraph_add_thunk): Fix formating.
5523         (cgraph_get_node): Kill same body alias code.
5524         (cgraph_node_for_asm): Likewise.
5525         (cgraph_remove_same_body_alias): Remove.
5526         (cgraph_remove_node): Kill same body alias code.
5527         (cgraph_mark_address_taken_node): Mark also the aliased function
5528         as having address taken.
5529         (dump_cgraph_node): Dump same body aliases.
5530         (cgraph_for_node_thunks_and_aliases): Update for new alias
5531         representation.
5532         (cgraph_for_node_and_aliases): Likewise.
5533         * cgraph.h (same_body): Kll pointer.
5534         (same_body_alias): Update comment.
5535         (same_body_aliases_done): Declare.
5536         (cgraph_remove_same_body_alias): Remove declaration.
5537         (cgraph_create_function_alias): Declare.
5538         (cgraph_process_same_body_aliases): Declare.
5539         (cgraph_function_with_gimple_body_p): Check for alias.
5540         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
5541         (cgraph_alias_aliased_node): New function.
5542         (cgraph_function_node): Update for new aliases.
5543         (cgraph_function_or_thunk_node): Likewise.
5544         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
5545         (inline_call): Remove dead aliases.
5546         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
5547         name hack for same body aliases.
5548         (clone_of_p): Look through aliases.
5549         (verify_cgraph_node): Verify aliases.
5550         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
5551         (cgraph_process_same_body_aliases): New function.
5552         (process_function_and_variable_attributes): Disable weakref warning on
5553         alias.
5554         (cgraph_analyze_functions): Handle aliases.
5555         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
5556         (assemble_thunks): Rename to ...
5557         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
5558         (cgraph_expand_function): Remove alias output code.
5559         (cgraph_output_in_order): Skip aliases.
5560         (cgraph_preserve_function_body_p): Aliases don't need preserving.
5561         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
5562         (ipa_record_reference): Do not assert on alias references.
5563         (ipa_ref_has_aliases_p): New function.
5564         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
5565         (ipa_ref_has_aliases_p): Declare.
5566         * lto-cgraph.c (lto_output_node): Handle aliases.
5567         (input_node): Likewise.
5568         * lto-streamer-out.c (lto_output): Skip aliases.
5569         (produce_symtab): Kill same_body_alias code.
5570         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
5571         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
5572         * ipa-inline.c (update_caller_keys): Walk aliases.
5573         (inline_small_functions): Fix thinko in previous patch.
5574         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
5575         (function_and_variable_visibility): Do not walk same body aliases.
5576         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
5577         (ipa_pta_execute): Use it.
5578
5579 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
5580
5581         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
5582         (*vec_dupv2df): Rename from vec_dupv2df.
5583         (vec_dupv2df): New expander.
5584
5585 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
5586
5587         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
5588
5589 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
5590
5591         * config/i386/i386.md: Use default value in "isa" attribute.
5592         * config/i386/sse.md: Ditto.
5593         * config/i386/mmx.md: Ditto.
5594
5595 2011-06-10  Wei Guozhi  <carrot@google.com>
5596
5597         PR target/45335
5598         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
5599         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
5600         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
5601         related peephole2.
5602         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
5603         related peephole2.
5604         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
5605         (arm_legitimate_ldrd_p): New prototype.
5606         (arm_output_ldrd): New prototype.
5607         * config/arm/arm.c (arm_check_ldrd_operands): New function.
5608         (arm_legitimate_ldrd_p): New function.
5609         (arm_output_ldrd): New function.
5610
5611 2011-06-10  David Li  <davidxl@google.com>
5612
5613         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
5614         * passes.c (passr_eq): New function.
5615         (create_pass_tab): New function.
5616         (pass_traverse): New function.
5617         (dump_one_pass): New function.
5618         (dump_pass_list): New function.
5619         (dump_passes): New function.
5620
5621 2011-06-10  Jan Hubicka  <jh@suse.cz>
5622
5623         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
5624         setting the nothrow flag.
5625         * ipa-reference.c (propagate): Skip aliases.
5626         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
5627         (propagate_nothrow): Skip aliases; do not update cgraph.
5628         (local_pure_const): Do not update cgraph.
5629         * tree-profile.c (tree_profiling): Do fixup_cfg.
5630
5631 2011-06-10  Jan Hubicka  <jh@suse.cz>
5632
5633         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
5634         (cgraph_local_node_p): ... here; handle aliases.
5635         (has_addr_references_p): Break out from ...;
5636         (cgraph_remove_unreachable_nodes) ... here.
5637
5638 2011-06-10  Jan Hubicka  <jh@suse.cz>
5639
5640         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
5641         * common.opt (flag_inline_functions_called_once): Do not
5642         initialize to 1.
5643
5644 2011-06-10  Jan Hubicka  <jh@suse.cz>
5645
5646         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
5647         (ipcp_initialize_node_lattices): Do not deal with aliases;
5648         Do not try to propagate through thunks.
5649         (ipcp_change_tops_to_bottom): Do not deal with aliases.
5650
5651 2011-06-10  Jan Hubicka  <jh@suse.cz>
5652
5653         * ipa-prop.c (ipa_write_node_info): Stream jump functions
5654         for indirect calls.
5655         (ipa_read_node_info): Likewise.
5656
5657 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5658
5659         PR lto/49302
5660         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
5661         (build_and_insert_call): Likewise.
5662         (build_and_insert_ref): New.
5663         (gimple_expand_builtin_pow): Minor cleanup.
5664         (gimple_expand_builtin_cabs): New.
5665         (execute_cse_sincos): Add case for BUILT_IN_CABS.
5666
5667 2011-06-10  Jan Hubicka  <jh@suse.cz>
5668
5669         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
5670         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
5671         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
5672         (ipcp_propagate_stage): Skip aliases when propagating.
5673         (ipcp_need_redirect_p): Skip aliases.
5674         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
5675         collect_callers_of_node.
5676         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
5677         for aliases.
5678         (ipa_compute_jump_functions): Look through aliases.
5679
5680 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5681
5682         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
5683
5684 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
5685
5686         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
5687         Adjust comments.
5688         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
5689
5690 2011-06-10  Jan Hubicka  <jh@suse.cz>
5691
5692         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
5693         Update call of gimple_get_virt_method_for_binfo.
5694         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
5695         refuse_thunks parameter.
5696         (gimple_fold_call): Update.
5697         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
5698
5699 2011-06-10  Jan Hubicka  <jh@suse.cz>
5700
5701         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
5702         (not_all_callers_have_enough_arguments_p): ... this one; turn into
5703         worker for cgraph_for_node_and_aliases.
5704         (convert_callers_for_node): Break out from ...
5705         (convert_callers): ... here.
5706         (modify_function): Use collect_callers_of_node.
5707         (ipa_early_sra): Use cgraph_for_node_and_aliases.
5708
5709 2011-06-10  Richard Guenther  <rguenther@suse.de>
5710
5711         PR tree-optimization/49361
5712         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
5713         when not already in gimple form.
5714
5715 2011-06-10  Richard Guenther  <rguenther@suse.de>
5716
5717         PR bootstrap/49344
5718         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
5719         FOR_EACH_PHI_OR_STMT_USE.
5720
5721 2011-06-10  Jan Hubicka  <jh@suse.cz>
5722
5723         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
5724         (clone_inlined_nodes): ... here.
5725         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
5726         to real destination prior inlining.
5727         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
5728         can_early_inline_edge_p, want_early_inline_function_p,
5729         want_early_inline_function_p, want_inline_small_function_p,
5730         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
5731         edge_badness, update_all_callee_keys, lookup_recursive_calls,
5732         add_new_edges_to_heap, inline_small_functions, flatten_function,
5733         inline_always_inline_functions, early_inline_small_functions): Use
5734         cgraph_function_or_thunk_node.
5735         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
5736         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
5737         (do_estimate_edge_growth_1): Break out from ...
5738         (do_estimate_growth) ... here; walk aliases.
5739         (inline_generate_summary): Skip aliases.
5740
5741 2011-06-10  Richard Guenther  <rguenther@suse.de>
5742
5743         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
5744         forward when combining, visit inserted stmts when a stmt was changed.
5745
5746 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
5747
5748         * tree.h (error_operand_p): Add.
5749         * dbxout.c (dbxout_type_fields): Use the latter.
5750         * c-decl.c (add_stmt): Likewise.
5751         * gimplify.c (omp_add_variable, omp_notice_variable,
5752         gimplify_scan_omp_clauses): Likewise.
5753
5754 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
5755
5756         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
5757         when a value is actually passed in regs.
5758
5759 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
5760             Laurent Rougé  <laurent.rouge@menta.fr>
5761
5762         * doc/invoke.texi (SPARC options): Add -mflat.
5763         * config/sparc/sparc.opt: Likewise.
5764         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
5765         (sparc_flat_expand_prologue): Declare.
5766         (sparc_flat_expand_epilogue): Likewise.
5767         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
5768         (CPP_ENDIAN_SPEC): Replace with...
5769         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
5770         (CPP_SPEC): Adjust to above change.
5771         (EXTRA_SPECS): Likewise.
5772         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
5773         (INCOMING_REGNO): Likewise.
5774         (OUTGOING_REGNO): Likewise.
5775         (LOCAL_REGNO): Likewise.
5776         (SETUP_FRAME_ADDRESSES): Likewise.
5777         (FIXED_REGISTERS): Set 0 for %fp.
5778         (CALL_USED_REGISTERS): Likewise.
5779         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
5780         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
5781         (RETURN_ADDR_REGNUM): Define.
5782         (RETURN_ADDR_RTX): Use it.
5783         (INCOMING_RETURN_ADDR_REGNUM): Define.
5784         (INCOMING_RETURN_ADDR_RTX): Use it.
5785         (DWARF_FRAME_RETURN_COLUMN): Likewise.
5786         (EH_RETURN_REGNUM): Define.
5787         (EH_RETURN_STACKADJ_RTX): Use it.
5788         (EH_RETURN_HANDLER_RTX): Delete.
5789         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
5790         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
5791         Delete.
5792         (struct machine_function): Add frame_size, apparent_frame_size,
5793         frame_base_reg, frame_base_offset, n_global_fp_regs and
5794         save_local_in_regs_p fields.
5795         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
5796         sparc_frame_base_offset, sparc_n_global_fp_regs,
5797         sparc_save_local_in_regs_p): New macros.
5798         (sparc_option_override): Error out if -fcall-saved-REG is specified
5799         for Out registers.
5800         (eligible_for_restore_insn): Fix formatting.
5801         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
5802         (eligible_for_sibcall_delay): Likewise.
5803         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
5804         (sparc_legitimate_address_p): Adjust to above change.
5805         (save_global_or_fp_reg_p): New predicate.
5806         (return_addr_reg_needed_p): Likewise.
5807         (save_local_or_in_reg_p): Likewise.
5808         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
5809         (SORR_SAVE, SORR_RESTORE): Delete.
5810         (sorr_pred_t): New typedef.
5811         (sorr_act_t): New enum.
5812         (save_or_restore_regs): Rename to...
5813         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
5814         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
5815         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
5816         mechanism.  Add CFI information for double-word saves in 32-bit mode.
5817         (emit_adjust_base_to_offset): New function extracted from...
5818         (emit_save_or_restore_regs): ...this.  Rename the rest to...
5819         (emit_save_or_restore_regs_global_fp_regs): ...this.
5820         (emit_save_or_restore_regs_local_in_regs): New function.
5821         (gen_create_flat_frame_[123]): New functions.
5822         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
5823         (sparc_flat_expand_prologue): New function.
5824         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
5825         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
5826         (sparc_flat_expand_epilogue): New function.
5827         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
5828         (output_return): Likewise.
5829         (output_sibcall): Likewise.
5830         (sparc_output_mi_thunk): Likewise.
5831         (sparc_frame_pointer_required): Likewise.
5832         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
5833         function optimization.
5834         * config/sparc/sparc.md (flat): New attribute.
5835         (prologue): Add TARGET_FLAT handling.
5836         (save_register_window): Disable if TARGET_FLAT.
5837         (create_flat_frame_[123]): New patterns.
5838         (epilogue): Add TARGET_FLAT handling.
5839         (sibcall_epilogue): Likewise.
5840         (eh_return): New expander.
5841         (eh_return_internal): New insn and splitter.
5842         (return_internal): Add TARGET_FLAT handling.
5843         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
5844         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
5845         (nonlocal_goto): Add TARGET_FLAT handling.
5846         * config/sparc/t-elf: Add -mflat multilib.
5847         * config/sparc/t-leon: Likewise.
5848
5849 2011-06-10  Jan Hubicka  <jh@suse.cz>
5850
5851         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
5852         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
5853         (self_recursive_p): Use cgraph_function_node.
5854         (propagate_pure_const): Likewise.
5855         (propagate_nothrow): Likewise.
5856         * ipa-reference.c (ipa_reference_get_not_read_global): Use
5857         cgraph_function_node.
5858         (propagate_bits): Likewise.
5859         (propagate): Likewise.
5860
5861 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5862             Richard Earnshaw  <rearnsha@arm.com>
5863
5864         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
5865         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
5866         (*thumb2_movdi_vfp): Delete.
5867         (*arm_movdi_vfp_cortexa8): Delete.
5868         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
5869         (*movdi_vfp_cortexa8): Likewise.
5870
5871 2011-06-10  Richard Guenther  <rguenther@suse.de>
5872
5873         * stor-layout.c (initialize_sizetypes): Give names to all
5874         sizetype kinds.
5875
5876 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
5877
5878         PR tree-optimization/49318
5879         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
5880         irrelevant pattern statements.
5881
5882 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
5883
5884         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
5885
5886         PR bootstrap/49354
5887         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
5888         to last assignment.
5889
5890 2011-06-09  Jan Hubicka  <jh@suse.cz>
5891
5892         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
5893         do not recompute reachable flag.
5894         (cgraph_finalize_function, cgraph_analyze_functions): Set
5895         redefined_extern_inline here.
5896
5897 2011-06-09  Jan Hubicka  <jh@suse.cz>
5898
5899         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
5900         (cgraph_only_called_directly_p): ... this one; bring offline.
5901         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
5902         varpool_used_from_object_file_p): Drop names from the declaratoin.
5903         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
5904         collect_callers_of_node): New.
5905         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
5906         (cgraph_edge_recursive_p): Use cgraph_function_node.
5907         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
5908         (cgraph_node_cannot_be_local_p_1): Break out from ...
5909         (cgraph_node_can_be_local_p): ... here; walk aliases.
5910         (cgraph_for_node_thunks_and_aliases): New function.
5911         (cgraph_for_node_and_aliases): New function.
5912         (cgraph_make_node_local_1): Break out from ...
5913         (cgraph_make_node_local) ... here; use
5914         cgraph_for_node_thunks_and_aliases.
5915         (cgraph_set_nothrow_flag_1): Break out from ...
5916         (cgraph_set_nothrow_flag) ... here;
5917         use cgraph_for_node_thunks_and_aliases.
5918         (cgraph_set_const_flag_1): Break out from ...
5919         (cgraph_set_const_flag) ... here;
5920         use cgraph_for_node_thunks_and_aliases.
5921         (cgraph_set_pure_flag_1): Break out from ...
5922         (cgraph_set_pure_flag) ... here;
5923         use cgraph_for_node_thunks_and_aliases.
5924         (cgraph_propagate_frequency_1): Break out from ...
5925         (cgraph_propagate_frequency) ... here; use
5926         cgraph_for_node_thunks_and_aliases.
5927         (cgraph_used_from_object_file_p): Do not care about aliases.
5928         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
5929         New functions.
5930         (collect_callers_of_node_1, collect_callers_of_node): New functions.
5931
5932 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
5933
5934         PR rtl-optimization/49154
5935         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
5936         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
5937         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
5938         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
5939         * config/cris/cris.h (cris_register_move_cost): Remove
5940         !TARGET_V32 code.  Tweak comments.
5941
5942 2011-06-09  Jan Hubicka  <jh@suse.cz>
5943
5944         * cgraphbuild.c (record_eh_tables): Mark personality function as having
5945         address taken.
5946
5947 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
5948
5949         PR rtl-optimization/49154
5950         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
5951         is a matching slot in the hashtable, assign it to classes_ptr.
5952
5953         PR rtl-optimization/49154
5954         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
5955         register classes.
5956         * doc/tm.texi: Regenerate.
5957
5958 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
5959
5960         PR target/49307
5961         * config/sh/sh.md (UNSPEC_CHKADD): New.
5962         (chk_guard_add): New define_insn_and_split.
5963         (symGOT_load): Use chk_guard_add instead of blockage.
5964
5965 2011-06-09  Kai Tietz  <ktietz@redhat.com>
5966
5967         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
5968
5969 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
5970
5971         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
5972
5973 2011-06-09  Wei Guozhi  <carrot@google.com>
5974
5975         PR target/46975
5976         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
5977         (peephole2 for conditional move): Generate 16 bit instructions.
5978
5979 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
5980
5981         * config/i386/i386.md (*movdi_internal_rex64): Merge
5982         alternatives 6 and 8.
5983
5984 2011-06-09  David Li  <davidxl@google.com>
5985
5986         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
5987         * passes.c (passr_eq): New function.
5988         (create_pass_tab): New function.
5989         (pass_traverse): New function.
5990         (dump_one_pass): New function.
5991         (dump_pass_list): New function.
5992         (dump_passes): New function.
5993
5994 2011-06-09  David Li  <davidxl@google.com>
5995
5996         * tree-complex.c (tree_lower_complex): Gate cleanup.
5997         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
5998         (execute_optimize_stdarg): Ditto.
5999         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
6000         (execute_cleanup_eh_1): Ditto.
6001         (execute_cleanup_eh): Ditto.
6002         * gcse.c (gate_rtl_pre): Ditto.
6003         (execute_rtl_pre): Ditto.
6004         * except.c (finish_eh_generation): Ditto.
6005         (convert_to_eh_region_ranges): Ditto.
6006         * cprop.c (one_cprop_pass): Ditto.
6007
6008 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
6009
6010         PR target/48673
6011         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
6012         in all basic blocks.
6013
6014 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6015
6016         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
6017         (HAVE_ENABLE_EXECUTE_STACK): Define.
6018         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
6019         (HAVE_ENABLE_EXECUTE_STACK): Define.
6020         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
6021         (HAVE_ENABLE_EXECUTE_STACK): Define.
6022         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
6023         (ENABLE_EXECUTE_STACK): Remove.
6024         (HAVE_ENABLE_EXECUTE_STACK): Define.
6025         [IN_LIBGCC2]: Don't include <windows.h>.
6026         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
6027         (HAVE_ENABLE_EXECUTE_STACK): Define.
6028         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
6029         (HAVE_ENABLE_EXECUTE_STACK): Define.
6030         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
6031         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
6032         (HAVE_ENABLE_EXECUTE_STACK): Define.
6033         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
6034         (HAVE_ENABLE_EXECUTE_STACK): Define.
6035         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
6036         (HAVE_ENABLE_EXECUTE_STACK): Define.
6037         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
6038         (HAVE_ENABLE_EXECUTE_STACK): Define.
6039         * config/alpha/alpha.c (alpha_trampoline_init): Test
6040         HAVE_ENABLE_EXECUTE_STACK.
6041         * config/i386/i386.c (ix86_trampoline_init): Likewise.
6042         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
6043         (sparc64_initialize_trampoline): Likewise.
6044         * libgcc2.c [L_enable_execute_stack]: Remove.
6045         * system.h (ENABLE_EXECUTE_STACK): Poison.
6046         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
6047         * doc/tm.texi: Regenerate.
6048         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
6049
6050 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
6051
6052         PR middle-end/49308
6053         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
6054         variable.  After resetting and rescanning insn continue with previous
6055         statement.
6056
6057 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6058
6059         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
6060         (gcc_cv_ld_hidden): Likewise.
6061         * configure: Regenerate.
6062         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
6063         (ix86_stack_protect_fail): Mark unused.
6064         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
6065         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
6066         [TARGET_MACHO]: Don't define.
6067         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
6068         (TARGET_STACK_PROTECT_FAIL): Likewise.
6069         (rs6000_stack_protect_fail): Mark unused.
6070         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
6071         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
6072
6073 2011-06-08  Andi Kleen  <ak@linux.intel.com>
6074
6075         * varasm.c (get_section): Print location of other conflict
6076         for section conflicts.
6077
6078 2011-06-08  Andi Kleen  <ak@linux.intel.com>
6079
6080         * config/i386/driver-i386.c (host_detect_local_cpu):
6081         Add model 0x2d Intel CPU.
6082
6083 2011-06-08  Andi Kleen  <ak@linux.intel.com>
6084
6085         * reginfo.c (global_regs_decl): Add.
6086         (globalize_reg): Add decl parameter. Compute location.  Pass location
6087         to warnings and add inform. Store decl in global_regs_decl.
6088         * rtl.h (globalize_reg): Update prototype.
6089         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
6090
6091 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
6092
6093         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
6094
6095 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
6096
6097         PR target/49305
6098         * config/sh/predicates.md (general_movsrc_operand): Check
6099         mode for memory with indexed address for QI and HImode.
6100         (general_movdst_operand): Likewise.
6101
6102 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
6103
6104         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
6105
6106 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
6107
6108         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
6109         (num_ssa_operands): Likewise.
6110         (op_iter_init_phiuse): Forward-declare.
6111         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
6112
6113 2011-06-08  Nick Clifton  <nickc@redhat.com>
6114
6115         * doc/invoke.texi (ARM Options): Update description of
6116         -mthumb-interwork.
6117
6118 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
6119
6120         * config/i386/driver-i386.c (host_detect_local_cpu): Support
6121         unknown Intel family 0x6 CPUs.
6122
6123 2011-06-08  Martin Jambor  <mjambor@suse.cz>
6124
6125         * tree-sra.c (mark_rw_status): Removed.
6126         (analyze_access_subtree): New parameter parent instead of
6127         mark_read and mark_write, propagate from that.
6128
6129 2011-06-08  Julian Brown  <julian@codesourcery.com>
6130
6131         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
6132         for double-precision helper functions in hard-float mode if only
6133         single-precision arithmetic is supported in hardware.
6134
6135 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
6136
6137         PR rtl-optimization/49303
6138         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
6139         code_motion_path_driver returned 0 or 1.
6140         (sel_region_finish): Clear h_d_i_d.
6141
6142 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
6143
6144         * config/sh/sh.c (prepare_move_operands): Set pic register
6145         appropriately for global and local dynamic tls models even
6146         if flag_pic is unset.
6147
6148 2011-06-07  Jason Merrill  <jason@redhat.com>
6149
6150         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
6151
6152 2011-06-07  Xinliang David Li  <davidxl@google.com>
6153         * passes.c (enable_disable_pass): Handle assembler name.
6154         (is_pass_explicitly_enabled_or_disabled): Ditto.
6155
6156 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6157
6158         PR tree-optimization/48497
6159         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
6160
6161 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6162
6163         PR tree-optimization/46728
6164         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
6165         to use gimple_val_nonnegative_real_p.
6166         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
6167         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
6168
6169 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
6170
6171         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
6172
6173 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
6174
6175         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
6176         constant vectors.
6177
6178 2011-06-07  Richard Guenther  <rguenther@suse.de>
6179
6180         * stor-layout.c (initialize_sizetypes): Initialize all
6181         sizetypes based on target definitions.
6182         (set_sizetype): Remove.
6183         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
6184         * tree.h (set_sizetype): Remove.
6185
6186 2011-06-07  Nick Clifton  <nickc@redhat.com>
6187
6188         * config.gcc: Unify V850 architecture options and add support for
6189         newer V850 architectures.
6190         * config/v850/t-v850e: Delete.
6191
6192 2011-06-07  Richard Guenther  <rguenther@suse.de>
6193
6194         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
6195         Call set_sizetype from here.
6196
6197 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
6198
6199         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
6200         (*maddhisi4tb, *maddhisi4tt): New define_insns.
6201
6202 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
6203             Andrew Stubbs  <ams@codesourcery.com>
6204
6205         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
6206         multiplies.
6207         * doc/md.texi (Canonicalization of Instructions): Document widening
6208         multiply canonicalization.
6209
6210 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
6211
6212         PR gcov-profile/49299
6213         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
6214
6215 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
6216
6217         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
6218         a pointer.
6219         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
6220         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
6221         vect_recog_pow_pattern): Likewise.
6222         (vect_pattern_recog_1): Remove declaration.
6223         (widened_name_p): Remove declaration.  Add new argument to specify
6224         whether to check that both types are either signed or unsigned.
6225         (vect_recog_widen_mult_pattern): Update documentation.  Handle
6226         unsigned patterns and multiplication by constants.
6227         (vect_pattern_recog_1): Update vect_recog_func references.  Use
6228         statement information from the statement returned from pattern
6229         detection functions.
6230         (vect_pattern_recog): Update vect_recog_func reference.
6231         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
6232         multiplication by a constant use the type of the other operand.
6233
6234 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
6235
6236         PR rtl-optimization/49145
6237         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
6238
6239 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
6240
6241         PR debug/49262
6242         * dwarf2out.c (native_encode_initializer): Decrement count in each
6243         iteration.
6244
6245         PR debug/49294
6246         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
6247         non-MODE_INT modes.
6248
6249         PR c++/49264
6250         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
6251         if stmt folded into nothing.
6252         * tree-inline.c (fold_marked_statements): If a builtin at the end of
6253         a bb folded into nothing, just update cgraph edges and move to next bb.
6254         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
6255         to be NULL.  Don't compute count and frequency if new_call is NULL.
6256
6257 2011-06-04  Diego Novillo  <dnovillo@google.com>
6258
6259         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
6260         (cgraph.o): Likewise.
6261         (cgraphunit.o): Likewise.
6262         * cgraphunit.c: Include lto-streamer.h
6263         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
6264         if LTO is enabled.
6265         * lto-streamer-in.c (unpack_value_fields): Call
6266         streamer_hooks.unpack_value_fields if set.
6267         (lto_materialize_tree): For unhandled nodes, first try to
6268         call lto_streamer_hooks.alloc_tree, if it exists.
6269         (lto_input_ts_decl_common_tree_pointers): Move reading of
6270         DECL_INITIAL to lto_streamer_read_tree.
6271         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
6272         (lto_streamer_read_tree): New.
6273         (lto_reader_init): Rename from lto_init_reader.
6274         Move initialization code to lto/lto.c.
6275         * lto-streamer-out.c (pack_value_fields): Call
6276         streamer_hooks.pack_value_fields if set.
6277         (lto_output_tree_ref): For tree nodes that are not normally indexable,
6278         call streamer_hooks.indexable_with_decls_p before giving up.
6279         (lto_output_ts_decl_common_tree_pointers): Move handling
6280         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
6281         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
6282         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
6283         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
6284         (lto_streamer_write_tree): New.
6285         (lto_output): Call lto_streamer_init directly.
6286         (lto_writer_init): Remove.
6287         * lto-streamer.c (streamer_hooks): New.
6288         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
6289         instead of lto_preload_common_nodes.
6290         (lto_is_streamable): Move from lto-streamer.h
6291         (lto_streamer_hooks_init): New.
6292         (streamer_hooks): New.
6293         (streamer_hooks_init): New.
6294         * lto-streamer.h (struct output_block): Forward declare.
6295         (struct lto_input_block): Likewise.
6296         (struct data_in): Likewise.
6297         (struct bitpack_d): Likewise.
6298         (struct streamer_hooks): Declare.
6299         (streamer_hooks): Declare.
6300         (lto_streamer_hooks_init): Declare.
6301         (lto_streamer_write_tree): Declare.
6302         (lto_streamer_read_tree): Declare.
6303         (streamer_hooks_init): Declare.
6304         (lto_is_streamable): Move to lto-streamer.c
6305
6306 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6307
6308         * longlong.h (smul_ppmm): The resulting register pair contains the
6309         higher order word first.
6310
6311 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6312
6313         PR tree-optimization/46728
6314         * builtins.c (powi_table): Remove.
6315         (powi_lookup_cost): Remove.
6316         (powi_cost): Remove.
6317         (expand_powi_1): Remove.
6318         (expand_powi): Remove.
6319         (expand_builtin_pow_root): Remove.
6320         (expand_builtin_pow): Remove.
6321         (expand_builtin_powi): Eliminate handling of constant exponent.
6322         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
6323
6324 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
6325
6326         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
6327
6328 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
6329
6330         * dce.c (reset_unmarked_insns_debug_uses): New.
6331         (delete_unmarked_insns): Skip debug insns.
6332         (prescan_insns_for_dce): Likewise.
6333         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
6334         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
6335         active reg can be found.
6336         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
6337         (convert_regs_1): Use it.
6338
6339 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
6340
6341         * tree-pretty-print.c (dump_function_header): Add flags.
6342         Don't dump decl_uid with nouid.
6343         * tree-pretty-print.h (dump_function_header): Adjust.
6344         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
6345         * passes.c (pass_init_dump_file): Pass dump_flags on.
6346         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
6347
6348 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
6349
6350         PR bootstrap/49270
6351         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
6352
6353 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
6354
6355         PR tree-optimization/49243
6356         * calls.c (setjmp_call_p): Also check if fndecl has the
6357         returns_twice attribute.
6358
6359 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6360
6361         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
6362         -ffast-math etc.
6363
6364 2011-06-06  Richard Henderson  <rth@redhat.com>
6365             Georg-Johann Lay  <avr@gjlay.de>
6366
6367         PR target/42210
6368         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
6369         New predicates.
6370         * config/avr/avr.md ("insv"): New insn expander.
6371         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
6372         "*insv.not.io", "*insv.reg"): New insns.
6373
6374 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
6375
6376         PR target/49285
6377         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
6378         to nonimmediate_operand from memory_operand for the operand that is to
6379         be forced to memory by the expander.  Lose the constraints.
6380
6381 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
6382
6383         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
6384         EH return when delayed branches are disabled.
6385
6386 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
6387
6388         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
6389         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
6390         calculation.
6391         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
6392         Simplify MODE_V1DF and MODE_V2SF handling.
6393         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
6394         Simplify MODE_SF handling.
6395
6396 2011-06-04  Jan Hubicka  <jh@suse.cz>
6397
6398         PR tree-optimization/48893
6399         PR tree-optimization/49091
6400         PR tree-optimization/49179
6401         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
6402         Bounds check.
6403
6404 2011-06-04  Jan Hubicka  <jh@suse.cz>
6405
6406         PR lto/48954
6407         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
6408         bitmaps.
6409
6410 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
6411
6412         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
6413
6414 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
6415
6416         PR target/49281
6417         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
6418         to be strictly smaller than 1 << shiftcount.
6419
6420 2011-06-04  Jan Hubicka  <jh@suse.cz>
6421
6422         PR tree-optimize/48929
6423         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
6424         of empty predicate.
6425
6426 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
6427
6428         PR debug/48333
6429         * calls.c (emit_call_1): Prefer the __builtin declaration of
6430         builtin functions.
6431
6432 2011-06-03   Diego Novillo  <dnovillo@google.com>
6433
6434         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
6435         (lto_input_tree_pointers): Likewise.
6436         * lto-streamer-out.c (pack_value_fields): Likewise.
6437         (lto_output_tree_pointers): Likewise.
6438         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
6439         and OPTIMIZATION_NODE.
6440
6441 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6442
6443         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
6444         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
6445         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
6446         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
6447         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
6448         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
6449         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
6450         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
6451         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
6452         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
6453         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
6454         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
6455         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
6456         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
6457         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
6458         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
6459         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
6460         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
6461         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
6462         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
6463         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
6464         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
6465         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
6466         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
6467         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
6468         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
6469         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
6470         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
6471         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
6472         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
6473         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
6474         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
6475         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
6476         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
6477         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
6478         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
6479         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
6480         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
6481         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
6482         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
6483         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
6484         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
6485         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
6486         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
6487         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
6488         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
6489         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
6490         * system.h (MD_UNWIND_SUPPORT): Poison.
6491         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
6492         * doc/tm.texi: Regenerate.
6493         * unwind-dw2.c: Include md-unwind-support.h instead of
6494         MD_UNWIND_SUPPORT.
6495         * config/ia64/unwind-ia64.c: Likewise.
6496         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
6497
6498 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
6499
6500         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
6501
6502 2011-06-03  Richard Henderson  <rth@redhat.com>
6503             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6504
6505         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
6506         (sigill_hdlr): Correct insn, insn size.
6507         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
6508
6509 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6510
6511         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
6512         t-slibgcc-dummy.
6513         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
6514         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
6515         * config/mips/t-iris: Remove.
6516         * config/mips/t-irix6: New file.
6517         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
6518
6519 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6520
6521         * Makefile.in (LIB2ADDEHDEP): Remove.
6522         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
6523         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
6524         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
6525         * config/t-darwin (LIB2ADDEHDEP): Remove.
6526         * config/t-freebsd (LIB2ADDEHDEP): Remove.
6527         * config/t-linux (LIB2ADDEHDEP): Remove.
6528
6529 2011-06-03  Diego Novillo  <dnovillo@google.com>
6530
6531         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
6532         (lto_register_var_decl_in_symtab): Likewise.
6533         (lto_register_function_decl_in_symtab): Likewise.
6534         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
6535         logic to uniquify_nodes.
6536
6537 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6538
6539         * config/alpha/t-osf5: Remove.
6540         * config/alpha/t-osf-pthread: Remove.
6541         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
6542         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
6543
6544 2011-06-03  Julian Brown  <julian@codesourcery.com>
6545
6546         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
6547         (strongarm1110): Use strongarm tuning.
6548         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
6549         * config/arm/arm.c (arm_strongarm_tune): New.
6550         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
6551         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
6552         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
6553         setting, using previous defaults or 1 for Cortex-A5.
6554         (arm_option_override): Set max_insns_skipped from current tuning.
6555
6556 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
6557
6558         * doc/install.texi (Options specification): Document --with-specs.
6559
6560 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6561
6562         * config/arm/neon.md (orndi3_neon): Actually split it.
6563
6564 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
6565
6566         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
6567         * var-tracking.c (reverse_op): Limite recurse depth to 5.
6568
6569 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
6570
6571         PR debug/47590
6572         * target.def (delay_sched2, delay_vartrack): New.
6573         * doc/tm.texi.in: Update.
6574         * doc/tm.texi: Rebuild.
6575         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
6576         * var-tracking.c (gate_handle_var_tracking): Likewise.
6577         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
6578         (bfin_flag_var_tracking): Drop.
6579         (output_file_start): Don't save and override flag_var_tracking.
6580         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
6581         (bfin_reorg): Test original variables.
6582         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
6583         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
6584         (ia64_flag_var_tracking): Drop.
6585         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
6586         (ia64_file_start): Don't save and override flag_var_tracking.
6587         (ia64_override_options_after_change): Ditto
6588         flag_schedule_insns_after_reload.
6589         (ia64_reorg): Test original variables.
6590         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
6591         (picochip_flag_var_tracking): Drop.
6592         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
6593         (picochip_option_override): Don't save and override
6594         flag_schedule_insns_after_reload.
6595         (picochip_asm_file_start): Ditto flag_var_tracking.
6596         (picochip_reorg): Test original variables.
6597         * config/spu/spu.c (spu_flag_var_tracking): Drop.
6598         (TARGET_DELAY_VARTRACK): Define.
6599         (spu_var_tracking): New.
6600         (spu_machine_dependent_reorg): Call it.
6601         (asm_file_start): Don't save and override flag_var_tracking.
6602
6603 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
6604
6605         PR target/49163
6606         * config/sh/predicates.md (general_movsrc_operand): Return 0
6607         for memory and memory subreg of which address is an invalid
6608         indexed address for QI and HImode.
6609         (general_movdst_operand): Likewise.
6610
6611 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
6612
6613         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
6614         edges only, when there is a non-local label in the function.
6615         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
6616
6617 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
6618
6619         * config/i386/constraints.md (Y3): New register constraint.
6620         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
6621         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
6622         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
6623         *sse2_interleave_lowv2df.
6624
6625 2011-06-02  Julian Brown  <julian@codesourcery.com>
6626
6627         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
6628         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
6629         (arm_cortex_a5_tune): New.
6630
6631 2011-06-02  Julian Brown  <julian@codesourcery.com>
6632
6633         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
6634         * config/arm/arm.c (arm_default_branch_cost): New.
6635         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
6636         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
6637         (arm_fa726_tune): Set branch_cost field using
6638         arm_default_branch_cost.
6639         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
6640         current_tune structure.
6641         * dojump.c (tm_p.h): Include file.
6642
6643 2011-06-02  Julian Brown  <julian@codesourcery.com>
6644
6645         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
6646         tuning.
6647         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
6648         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
6649         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
6650         field.
6651         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
6652         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
6653         (arm_fa726te_tune): Add prefer_constant_pool setting.
6654         (arm_v6t2_tune, arm_cortex_tune): New.
6655         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
6656         prefer_constant_pool setting.
6657
6658 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
6659
6660         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
6661         switch statement.
6662         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
6663         (*movdf_internal) <case 6,7,8>: Ditto.
6664
6665         * config/i386/constraints.md (Y4): New register constraint.
6666         * config/i386/sse.md (vec_set<mode>_0): Merge with
6667         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
6668         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
6669         *vec_extractv2di_1_sse.
6670         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
6671         and *vec_concatv2di_rex64_sse.
6672
6673 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
6674
6675         PR target/48807
6676         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
6677         of cgraph_local_info for null before attempting to use it.
6678
6679 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
6680
6681         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
6682         (current_function_dynamic_alloc_count): Delete.
6683         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
6684         (expand_builtin_nonlocal_goto): Remove obsolete comment.
6685         (expand_builtin_update_setjmp_buf): Remove dead code.
6686         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
6687         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
6688         support.
6689         * function.c (instantiate_virtual_regs): Likewise.
6690         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
6691         for a block with a single abnormal incoming edge.
6692         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
6693         (SETJMP_VIA_SAVE_AREA): Delete.
6694         * config/sparc/sparc-protos.h (load_got_register): Declare.
6695         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
6696         (load_got_register): Make global.
6697         (sparc_frame_pointer_required): Add 'static'.
6698         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
6699         (sparc_builtin_setjmp_frame_value): New function.
6700         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
6701         (save_stack_nonlocal): New expander.
6702         (restore_stack_nonlocal): Likewise.
6703         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
6704         (nonlocal_goto_internal): New insn.
6705         (goto_handler_and_restore): Delete.
6706         (builtin_setjmp_setup): Likewise.
6707         (do_builtin_setjmp_setup): Likewise.
6708         (setjmp): Likewise.
6709         (builtin_setjmp_receiver): New expander.
6710
6711 2011-06-01  David Li  <davidxl@google.com>
6712
6713         PR middle-end/49261
6714         * tree-pretty-print.c (dump_function_header): Format cleanup.
6715
6716 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
6717
6718         PR target/49238
6719         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
6720         needed when original operands are used for msw_skip comparison.
6721
6722 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
6723
6724         PR debug/49250
6725         * var-tracking.c (add_uses, add_stores): Don't call
6726         cselib_subst_to_values on ENTRY_VALUE.
6727
6728 2011-06-01  Diego Novillo  <dnovillo@google.com>
6729
6730         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
6731         output_record_start with LTO_null instead of output_zero.
6732         (lto_output_ts_binfo_tree_pointers): Likewise.
6733         (lto_output_tree): Likewise.
6734         (output_eh_try_list): Likewise.
6735         (output_eh_region): Likewise.
6736         (output_eh_lp): Likewise.
6737         (output_eh_regions): Likewise.
6738         (output_bb): Likewise.
6739         (output_function): Likewise.
6740         (output_unreferenced_globals): Likewise.
6741         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
6742         instead of NUM_TREE_CODES.
6743         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
6744         (lto_output_int_in_range): Change << to >> when shifting VAL.
6745
6746 2011-06-01  Diego Novillo  <dnovillo@google.com>
6747
6748         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
6749         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
6750
6751 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
6752
6753         PR target/45074
6754         * optabs.h (valid_multiword_target_p): Declare.
6755         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
6756         doing multi-word operations.
6757         * optabs.c (expand_binop): Likewise.
6758         (expand_doubleword_bswap): Likewise.
6759         (expand_absneg_bit): Likewise.
6760         (expand_unop): Likewise.
6761         (expand_copysign_bit): Likewise.
6762         (multiword_target_p): New function.
6763
6764 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
6765
6766         PR rtl-optimization/48830
6767         PR rtl-optimization/48808
6768         PR rtl-optimization/48792
6769         * reload.c (push_reload): Check contains_reg_of_mode.
6770         * reload1.c (strip_paradoxical_subreg): New function.
6771         (gen_reload_chain_without_interm_reg_p): Use it to handle
6772         paradoxical subregs.
6773         (emit_output_reload_insns, gen_reload): Likewise.
6774
6775 2011-06-01  David Li  <davidxl@google.com>
6776
6777         * predict.c : Change pass name
6778         * ipa.c: Ditto.
6779         * dce.c: Ditto.
6780         * tree-profile.c: Ditto.
6781         * except.c: Ditto.
6782
6783 2011-06-01  David Li  <davidxl@google.com>
6784
6785         * tree-pretty-print.c (dump_function_header): New function.
6786         * final.c (rest_of_clean_state): Use header dumper.
6787         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
6788         * passes.c (pass_init_dump_file): Use header dumper.
6789
6790 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
6791
6792         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
6793         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
6794         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
6795         New functions.
6796         (mem_loc_descriptor): Use them.
6797
6798         * var-tracking.c (create_entry_value): New function.
6799         (vt_add_function_parameter): Use it.
6800
6801 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6802
6803         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
6804         Include <signal.h>, <ucontext.h>.
6805         (sigill_caught): Define.
6806         (sigill_hdlr): New function.
6807         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
6808         insns can be executed.
6809         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
6810         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
6811
6812 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6813
6814         * config/t-slibgcc-darwin: Move to ...
6815         * config/t-slibgcc-dummy: ... this.  Clarify comments.
6816         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
6817         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
6818         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
6819         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
6820         Remove i386/t-crtstuff from tmake_file.
6821         (i[34567]86-*-solaris2*): Remove t-svr4,
6822         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
6823         t-slibgcc-dummy.
6824         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
6825         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
6826         sparc/t-crtfm from tmake_file.
6827         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
6828         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
6829         Remove extra_parts.
6830         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
6831         * config/i386/t-nwld (SHLIB_LINK): Remove.
6832         * config/i386/t-rtems-i386: Rename to ...
6833         * config/i386/t-rtems: ... this.
6834         ($(T)crti.o, $(T)crtn.o): Remove.
6835         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
6836         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
6837         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
6838         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
6839         EXTRA_MULTILIB_PARTS): Remove.
6840         * config/sparc/t-sol2-64: Likewise.
6841         * config/sparc/t-sol2: Remove.
6842         * config/sparc/t-crtin: Remove.
6843         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
6844         * config/i386/gmon-sol2.c: Remove.
6845         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
6846         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
6847         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
6848         * config/i386/sol2-gc1.asm: Remove.
6849         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
6850         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
6851         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
6852         * config/t-slibgcc-sld: Remove.
6853
6854 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
6855
6856         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
6857         base_type_for_mode with op_mode instead of mode.
6858
6859 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
6860
6861         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
6862         Cortex-A15.
6863         * config/arm/arm-tune.md: Regenerate.
6864         * config/arm/arm-tables.opt: Regenerate.
6865         * config/arm/arm.c (FL_DIV): Rename...
6866         (FL_THUMB_DIV): ... to this.
6867         (FL_ARM_DIV): Define.
6868         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
6869         (arm_arch_hwdiv): Remove.
6870         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
6871         (arm_issue_rate): Add cortexr5.
6872         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
6873         __ARM_ARCH_EXT_IDIV__.
6874         (TARGET_IDIV): Define.
6875         (arm_arch_hwdiv): Remove.
6876         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
6877         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
6878         (divsi3, udivsi3): New patterns.
6879         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
6880         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
6881
6882 2011-06-01  Martin Jambor  <mjambor@suse.cz>
6883
6884         * ipa-utils.c (ipa_dfs_info): New field scc_no.
6885         * ipa-utils.c (searchc): Set scc_no.
6886
6887 2011-06-01  Martin Jambor  <mjambor@suse.cz>
6888
6889         * ipa-utils.c (searchc_env): New field allow_overwritable.
6890         (searchc): do not ignore edges to overwritable nodes if indicated
6891         by env->allow_overwritable.
6892         (ipa_reduced_postorder): Set env.allow_overwritable.
6893
6894 2011-06-01  Richard Guenther  <rguenther@suse.de>
6895
6896         * tree.c (free_lang_data): Do not reset boolean_type_node nor
6897         char_type_node.
6898         * lto-streamer.c (lto_record_common_node): Take node pointer,
6899         do not register types.
6900         (lto_preload_common_nodes): Explicitly skip preloading nodes
6901         that differ between frontends.
6902
6903 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
6904
6905         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
6906         NON_FLOAT_REGS.
6907
6908 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
6909
6910         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
6911         parameter value for dump. Dump cost on outermost call only.
6912         (rs6000_memory_move_cost): Dump cost on outermost call only.
6913
6914 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
6915
6916         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
6917         DW_OP_GNU_convert ops.
6918
6919         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
6920         cselib_preserve_constants.
6921         (cselib_lookup_1): If cselib_preserve_constants,
6922         a new VALUE is being created for REG and there is a VALUE for the
6923         same register in wider mode, add another loc with lowpart SUBREG of
6924         the wider VALUE.
6925         (cselib_subst_to_values): Handle ENTRY_VALUE.
6926         * var-tracking.c  (replace_expr_with_values): Return NULL for
6927         ENTRY_VALUE too.
6928         * dwarf2out.c (convert_descriptor_to_signed): New function.
6929         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
6930         instead of two shifts.
6931         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
6932         the right mode if needed.
6933         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
6934         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
6935         convert_descriptor_to_signed.
6936         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
6937         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
6938
6939         PR target/48688
6940         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
6941
6942 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
6943
6944         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
6945         of X87MODEI12 and SWI48x instead of SSEMODEI24.
6946         (SWI248x): New mode iterator, rename from X87MODEI.
6947         (X87MODEI): Remove mode iterator.
6948         (X87MODEI12): Ditto.
6949         (SSEMODEI24): Ditto.
6950
6951 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
6952
6953         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
6954         * doc/invoke.texi: Document max-vartrack-expr-depth.
6955         * var-tracking.c (EXPR_DEPTH): New.
6956         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
6957
6958 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
6959
6960         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
6961         * config/i386/sse.md: Add n to negated FMA pattern names.
6962
6963 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
6964
6965         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
6966
6967 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
6968
6969         * gengtype-state.c (read_state_params_structs): Initialize previous.
6970
6971 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
6972
6973         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
6974         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
6975
6976 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
6977
6978         * config/i386/i386.md (*movtf_internal): Avoid allocating general
6979         registers.  Penalize F*r->o alternative to prevent partial memory
6980         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
6981         CONST_DOUBLE immediates when optimizing function for size.  Do not move
6982         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6983         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
6984         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
6985         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
6986         alternatives.
6987         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
6988
6989         (fp_register_operand splitters): Use fp_register_operand
6990         constraint.  Do not use FP_REG_P in insn condition.
6991         (any_fp_register_operand splitters): Use any_fp_register_operand
6992         constraint.  Do not use ANY_FP_REG_P in insn condition.
6993
6994 2011-05-31  Jan Hubicka  <jh@suse.cz>
6995
6996         * cgraph.h (cgraph_inline_failed_t): Give enum a name
6997         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
6998         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
6999         (lto_output_edge): Use output_enum and var_len_unsigned.
7000         (lto_output_varpool_node): Likewise.
7001         (input_overwrite_node): Do not take resolution parameter;
7002         extract it from a bitpack.
7003         (input_node): Do not read resolution; use input_enum and
7004         var_len_unsigned.
7005         (input_varpool_node): Likewise.
7006         (input_edge): Likewise.
7007         (input_cgraph_1): Likewise.
7008
7009 2011-05-31  Richard Guenther  <rguenther@suse.de>
7010
7011         * gimple.c (gimple_register_canonical_type): Do not register
7012         any types via gimple_register_type.
7013
7014 2011-05-31  Jan Hubicka  <jh@suse.cz>
7015
7016         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
7017         of thunks.
7018
7019 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
7020
7021         PR rtl-optimization/49235
7022         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
7023         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
7024
7025 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
7026
7027         PR tree-optimization/49093
7028         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
7029         data references.
7030
7031 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
7032
7033         PR debug/49047
7034         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
7035         for concrete functions containing the code of cloned functions.
7036
7037 2011-05-31  Richard Guenther  <rguenther@suse.de>
7038
7039         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
7040         to ...
7041         (forward_propagate_into_comparison_1): ... this.
7042         (forward_propagate_comparison): Rename to ...
7043         (forward_propagate_into_comparison): ... this.  Split out
7044         real forward propagation code to ...
7045         (forward_propagate_comparison): ... this.
7046         (forward_propagate_into_gimple_cond): Remove looping.
7047         (forward_propagate_into_cond): Likewise.
7048         (simplify_not_neg_expr): Return whether we have done something.
7049         (simplify_gimple_switch): Likewise.
7050         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
7051         (ssa_forward_propagate_and_combine): ... this.  Re-structure
7052         to do a forward forward-propagation walk on BBs and a backward
7053         stmt combining walk on BBs.  Consistently re-scan changed statements.
7054         (pass_forwprop): Adjust.
7055
7056 2011-05-30  Ian Lance Taylor  <iant@google.com>
7057
7058         * godump.c (go_format_type): Correct length of name added to
7059         obstack for anonymous field.
7060
7061 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
7062
7063         PR target/49186
7064         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
7065         part of the second operand is 0.
7066
7067 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
7068
7069         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
7070         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
7071         to memory for !TARGET_MEMORY_MISMATCH_STALL.
7072         (*movdf_internal_rex64): Do not penalize F->r alternative.
7073         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
7074         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
7075         when optimizing function for size.  Do not move CONST_DOUBLEs
7076         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
7077         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
7078         SUBREGs.  Do not check for MEM_P operands in the insn condition,
7079         check for ANY_FP_REGNO_P instead.
7080         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
7081         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
7082         function for speed.
7083         * config/i386/i386.c (ix86_option_override_internal): Do not
7084         set TARGET_INTEGER_DFMODE_MOVES here.
7085
7086 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
7087
7088         PR target/49168
7089         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
7090
7091 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
7092
7093         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
7094         DW_TAG_rvalue_reference_type even for
7095         -gdwarf-4 -fno-debug-types-section.
7096
7097 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7098
7099         PR tree-optimization/46728
7100         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
7101         (build_and_insert_binop): New.
7102         (gimple_expand_builtin_pow): Reorder args for
7103         build_and_insert_call; use build_and_insert_binop; add more
7104         optimizations for fractional exponents.
7105
7106 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
7107
7108         PR bootstrap/49190
7109
7110         Revert:
7111         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
7112
7113         * tree.h (struct tree_identifier): Inherit from tree_typed, not
7114         tree_common.
7115         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
7116         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
7117         TS_BASE instead of TS_COMMON.
7118         * varasm.c (assemble_name): Remove assert.
7119
7120 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
7121
7122         * config.gcc: Keep obselete list sorted.
7123
7124 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
7125             Eric Botcazou  <ebotcazou@adacore.com>
7126
7127         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
7128         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
7129         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
7130         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
7131         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
7132
7133 2011-05-30  Richard Guenther  <rguenther@suse.de>
7134
7135         * gimple.c (gimple_types_compatible_p_1): Compare record
7136         and union type members properly.
7137
7138 2011-05-30  Richard Guenther  <rguenther@suse.de>
7139
7140         PR tree-optimization/49210
7141         * ipa-split.c (split_function): Care for the case where the call
7142         result is not trivially convertible to the result holding variable.
7143
7144 2011-05-30  Richard Guenther  <rguenther@suse.de>
7145
7146         PR tree-optimization/49218
7147         * tree-vrp.c (adjust_range_with_scev): Properly check whether
7148         overflow occured.
7149
7150 2011-05-30  Richard Guenther  <rguenther@suse.de>
7151
7152         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
7153         New function split out from ...
7154         (forward_propagate_into_gimple_cond): ... here.  Adjust.
7155         (forward_propagate_into_cond): Likewise.
7156         (forward_propagate_comparison): Also propagate into
7157         comparisons on assignment RHS.  Change return value to
7158         behave similar to forward_propagate_into_cond.
7159         (tree_ssa_forward_propagate_single_use_vars): Handle
7160         strict-overflow warnings properly for forward_propagate_comparison.
7161
7162 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7163
7164         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
7165         from plugin linker.
7166         * configure: Regenerate.
7167
7168 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
7169
7170         PR tree-optimization/49199
7171         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
7172         non-reduction operands are either defined in the loop or by induction.
7173
7174 2011-05-29  Xinliang David Li  <davidxl@google.com>
7175
7176         * opts-global.c (handle_common_deferred_options): Handle new options.
7177         * passes.c (register_one_dump_file): Call register_pass_name.
7178         (execute_one_pass): Check explicit enable/disable flag.
7179         (passr_hash): New function.
7180         (passr_eq): Ditto.
7181         (register_pass_name): Ditto.
7182         (get_pass_by_name): Ditto.
7183         (pass_hash): Ditto.
7184         (pass_eq): Ditto.
7185         (enable_pass): Ditto.
7186         (disable_pass): Ditto.
7187         (is_pass_explicitly_enabled_or_disabled): Ditto.
7188
7189 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
7190
7191         * config/i386/i386.md (*movoi_internal_avx): Use
7192         standard_sse_constant_opcode for alternative 0.
7193         (*movti_internal_sse): Ditto.
7194         (*movti_internal_rex64): Use standard_sse_constant_opcode for
7195         alternative 2.
7196         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
7197         sselog1 type moves.
7198         (*movsi_internal): Ditto.
7199         (*movdi_internal): Ditto.  Add ssecvt type moves.
7200
7201 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
7202
7203         PR target/48830
7204         * rtlanal.c (simplify_subreg_regno): Adjust comment.
7205
7206 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
7207
7208         PR rtl-optimization/49095
7209         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
7210         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
7211
7212 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
7213
7214         PR target/43995
7215         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
7216         recurse_p argument.  Only follow register copies if it is set,
7217         and prevent mips_find_pic_call_symbol from recursing.
7218         (mips_find_pic_call_symbol): Add a recurse_p argument.
7219         Pass it to mips_pic_call_symbol_from_set.
7220         (mips_annotate_pic_calls): Update accordingly.
7221
7222 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
7223
7224         * emit-rtl.c (try_split): Use a loop to search for
7225         NOTE_INSN_CALL_ARG_LOCATIONs.
7226
7227 2011-05-29  Richard Guenther  <rguenther@suse.de>
7228
7229         PR tree-optimization/49217
7230         * ipa-pure-const.c (propagate_pure_const): Fix typos.
7231
7232 2011-05-28  Jan Hubicka  <jh@suse.cz>
7233
7234         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
7235         length.
7236         (string_slot_free): Remove
7237         (create_output_block): Initialize obstack.
7238         (destroy_output_block): Free obstack.
7239         (lto_string_index): Add PERSISTENT parameter; do not duplicate
7240         the string unless it needs to be added into the hash.
7241         (lto_output_string_with_length): Add persistent attribute;
7242         handle NULL strings.
7243         (lto_output_string): Add PERSISTENT parameter.
7244         (output_string_cst, output_identifier): Simplify.
7245         (lto_output_location_bitpack): Update.
7246         (lto_output_builtin_tree): Update.
7247         * lto-streamer.h (struct output_block): Add obstack.
7248         (lto_output_string, lto_output_string_with_length): Remove
7249         declarations; functions are static now.
7250
7251 2011-05-28  Jan Hubicka  <jh@suse.cz>
7252
7253         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
7254         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
7255         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
7256         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
7257         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
7258         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
7259         unpack_ts_decl_with_vis_value_fields,
7260         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
7261         lto_get_builtin_tree): Use enum and variable length i/o.
7262         * basic-block.h (profile_status_d): Add PROFILE_LAST.
7263         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
7264         New functions.
7265         (bp_pack_enum, bp_unpack_enum): New macros.
7266
7267 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
7268
7269         * genrecog.c: Remove redundant forward declarations.
7270
7271 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
7272
7273         * config.gcc: Deprecate mips*-*-openbsd*.
7274
7275 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
7276
7277         PR bootstrap/49195
7278         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
7279         for match_op_dup.
7280
7281 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
7282
7283         PR middle-end/48981
7284         * gengtype.c (vec_prefix_type): New function.
7285         (note_def_vec): Use vec_prefix_type and change the length
7286         attribute to be based on the prefix.
7287         * vec.c: Include coretypes.h before vec.h.
7288         (struct vec_prefix): Remove.
7289         (vec_gc_p_reserve): Change the offsetof to sizeof.
7290         (vec_gc_p_reserve_exact): Likewise.
7291         (vec_heap_p_reserve): Likewise.
7292         (vec_heap_p_reserve_exact): Likewise.
7293         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
7294         (vec_stack_p_reserve): Change the offsetof to sizeof.
7295         (vec_stack_p_reserve_exact): Likewise.
7296         * vec.h (struct vec_prefix): New struct definition.
7297         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
7298         (VEC_T_GTY(T,B)): Likewise.
7299         (DEF_VEC_FUNC_P(T)): Use prefix field.
7300         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
7301         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
7302
7303 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7304
7305         PR tree-optimization/46728
7306         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
7307         (powi_as_mults): Add gimple_set_location.
7308         (build_and_insert_call): New.
7309         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
7310         0.5, 0.25, 0.75, 1./3., or 1./6.
7311
7312 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
7313
7314         * doc/contrib.texi: Update copyright years.
7315         (Contributors): Add Zdenek Sojka.
7316
7317 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
7318
7319         * c-decl.c (c_push_function_context): Copy the current statement
7320         list stack.
7321         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
7322         (finish_struct): Call building_stmt_list_p instead of checking
7323         cur_stmt_list.
7324         * c-parser.c (c_parser_postfix_expression): Likewise.
7325         * c-typeck.c (c_end_compound_stmt): Likewise.
7326         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
7327         * tree-iterator.c (stmt_list_cache): Change to a VEC.
7328         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
7329         (free_stmt_list): Likewise.
7330         * tree.h (struct tree_statement_list): Include typed_tree instead
7331         of tree_common.
7332         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
7333         as TS_TYPED instead of TS_COMMON.
7334
7335 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7336             Uros Bizjak  <ubizjak@gmail.com>
7337
7338         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
7339         (HAVE_AS_IX86_TLSGDPTL): Define.
7340         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
7341         (HAVE_AS_IX86_TLSLDMPLT): Define.
7342         * configure: Regenerate.
7343         * config.in: Regenerate.
7344         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
7345         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
7346         TARGET_SUN_TLS, use @tlsgdplt or @plt.
7347         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
7348         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
7349         @tlsldmplt or @plt.
7350         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
7351
7352 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
7353
7354         * sched-int.h (struct _haifa_deps_insn_data): New members cond
7355         and reverse_cond.
7356         (INSN_COND, INSN_REVERSE_COND): New macros.
7357         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
7358         once.
7359         (sched_get_condition_with_rev): Cache the results, and look them up
7360         if possible.
7361         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
7362         are clobbered by the current insn.
7363         * target.def (exposed_pipline): New sched data hook.
7364         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
7365         * doc/tm.texi: Regenerate.
7366
7367 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7368
7369         PR tree-optimization/49170
7370         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
7371         sincos or cexp.
7372
7373 2011-05-27  Richard Guenther  <rguenther@suse.de>
7374
7375         PR middle-end/49189
7376         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
7377         of comparisons.
7378
7379 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
7380
7381         * haifa-sched.c (sched_scan_info): Remove.
7382         (schedule_block): Call sched_extend_luids rather than sched_init_luids
7383         with NULL args.
7384         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
7385         Remove functions.
7386         (sched_scan): Remove.
7387         (sched_extend_luids): Renamed from luids_extend_insn and no longer
7388         static.  All callers changed.
7389         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
7390         static.  All callers changed.
7391         (sched_init_luids): Remove all arguments except the first.  All
7392         callers changed.  Don't use sched_scan.
7393         (haifa_init_h_i_d): Likewise.
7394         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
7395         manually rather than using sched_init_luids.  Likewise with
7396         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
7397         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
7398         rather than sched_init_luids with NULL args.
7399         * sel-sched-ir.c (new_insns): Remove variable.
7400         (sched_scan): New static function, previously in haifa-sched.c.  Remove
7401         all arguments but the first two; all callers changed.
7402         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
7403         rather than sched_init_luids.
7404         (sel_init_bbs): Remove second argument.  All callers changed.
7405         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
7406         with NULL arguments.
7407         (create_insn_rtx_from_pattern): Likewise.
7408         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
7409         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
7410         (sched_init_insn_luid, sched_extend_luids): Declare.
7411         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
7412         declarations.
7413
7414 2011-05-27  Richard Guenther  <rguenther@suse.de>
7415
7416         PR middle-end/49177
7417         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
7418         A CMP B ? (T) true : (T) false for non-integral types T again.
7419
7420 2011-05-27  Jan Hubicka  <jh@suse.cz>
7421
7422         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
7423         so 0 means NULL string.
7424         (lto_output_string_with_length): ... here.
7425         (lto_output_string, output_string_cst, output_identifier): Update
7426         handling of NULL strings.
7427         (lto_output_location_bitpack): New function.
7428         (lto_output_location): Use it.
7429         (lto_output_tree_ref): Use output_record_start.
7430         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
7431         len values.
7432         * lto-streamer-in.c (string_for_index): Break out from ...; offset
7433         values by 1.
7434         (input_string_internal): ... here;
7435         (input_string_cst, input_identifier, lto_input_string): Update handling
7436         of NULL strings.
7437         (lto_input_location_bitpack): New function
7438         (lto_input_location): Use it.
7439         (unpack_ts_type_common_value_fields): Pack align & alias in var len
7440         values.
7441         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
7442         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
7443         (bp_pack_value): Sanity check the value range.
7444         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
7445         New functions.
7446         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
7447         New functions.
7448
7449 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
7450
7451         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
7452         call_arg_location instructions down the floor.
7453
7454 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
7455
7456         PR rtl-optimization/49154
7457         * ira.c (setup_pressure_classes): Process class without sublcasses
7458         as a candidate for pressure classes.
7459
7460 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
7461
7462         PR rtl-optimization/48575
7463         * genrecog.c (position_type): New enum.
7464         (position): New structure.
7465         (decision): Use position structure instead of a string.
7466         (root_pos, peep2_insn_pos_list): New variables.
7467         (next_position, compare_positions): New functions.
7468         (new_decision): Use position structures instead of strings.
7469         (maybe_both_true): Likewise.
7470         (change_state): Likewise.
7471         (write_tree): Likewise.
7472         (make_insn_sequence): Likewise.
7473
7474 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
7475
7476         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
7477         TS_BASE instead of TS_COMMON.
7478         (find_decls_types_r): Check for TS_TYPED structure before looking at
7479         TREE_TYPE.
7480         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
7481         Add chain field.
7482         (BLOCK_CHAIN): Use new chain field.
7483
7484 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
7485
7486         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
7487         moves expensive on Power7 also.
7488
7489 2011-05-26  Richard Guenther  <rguenther@suse.de>
7490
7491         * fold-const.c (fold_unary_loc): Remove bogus code.
7492
7493 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
7494
7495         * tree.h (struct tree_identifier): Inherit from tree_typed, not
7496         tree_common.
7497         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
7498         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
7499         TS_BASE instead of TS_COMMON.
7500         * varasm.c (assemble_name): Remove assert.
7501
7502 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
7503
7504         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
7505         substituted first.
7506         * libgcc-std.ver: Delete file.
7507
7508 2011-05-26  Richard Guenther  <rguenther@suse.de>
7509
7510         PR tree-optimization/48702
7511         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
7512         only when we know the base address is within bounds.
7513         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
7514         assume the base address of TARGET_MEM_REFs is in bounds.
7515
7516 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7517
7518         PR target/49099
7519         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
7520         declaration in TARGET_SOLARIS.
7521
7522 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
7523
7524         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
7525         The instruction is then expanded explicitly.
7526         (supported_compare): Callable instruction.
7527         (compare): Likewise.
7528
7529 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
7530
7531         PR c++/49165
7532         * gimplify.c (shortcut_cond_r): Don't special case
7533         COND_EXPRs if they have void type on one of their arms.
7534
7535 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
7536
7537         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
7538         to reduce duplication, and to achieve a slightly more logical order
7539         of operations.
7540
7541 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
7542
7543         PR tree-optimization/49161
7544         * tree-vrp.c (struct case_info): New type.
7545         (compare_case_labels): Sort case_info structs instead of
7546         trees, and not primarily by CASE_LABEL uids but by
7547         label_for_block indexes.
7548         (find_switch_asserts): Put case labels into struct case_info
7549         array instead of TREE_VEC, adjust sorting, compare label_for_block
7550         values instead of CASE_LABELs.
7551
7552 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7553
7554         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
7555         ("orndi3_neon"): Likewise.
7556         ("bic<mode>3_neon"): Likewise.
7557
7558 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
7559
7560         PR tree-optimization/49038
7561         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
7562         Ensure at least one epilogue iteration if required by data
7563         accesses with gaps.
7564         * tree-vectorizer.h (struct _loop_vec_info): Add new field
7565         to mark loops that require peeling for gaps.
7566         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
7567         (vect_get_known_peeling_cost): Take peeling for gaps into
7568         account.
7569         (vect_transform_loop): Generate epilogue if required by data
7570         access with gaps.
7571         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
7572         loop as requiring an epilogue if there are gaps in the end of
7573         the strided group.
7574
7575 2011-05-25  Ian Lance Taylor  <iant@google.com>
7576
7577         * godump.c (go_format_type): Output the first field with a usable
7578         Go type, if any.
7579
7580 2011-05-25  Ian Lance Taylor  <iant@google.com>
7581
7582         * godump.c (go_format_type): Check for invalid type names, pointer
7583         target types, and struct field types.
7584
7585 2011-05-25  Jason Merrill  <jason@redhat.com>
7586
7587         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
7588
7589 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
7590
7591         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
7592
7593 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
7594
7595         * config/i386/i386.md (*movqi_extv_1)): Put back
7596         "register_operand" check in "type" calculation.
7597         (*movqi_extzv_2): Likewise.
7598
7599 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
7600
7601         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
7602
7603 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
7604
7605         PR bootstrap/49160
7606         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
7607         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
7608         __divxc3, __divtc3): Wrap definitions in #ifndef.
7609
7610 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
7611
7612         PR target/49142
7613         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
7614         "register_operand" check and replace q_regs_operand with
7615         QIreg_operand in "type" calculation.
7616         (*movqi_extv_1): Likewise.
7617         (*movqi_extzv_2_rex64): Likewise.
7618         (*movqi_extzv_2): Likewise.
7619
7620         * config/i386/predicates.md (QIreg_operand): New.
7621
7622 2011-05-25  Richard Guenther  <rguenther@suse.de>
7623
7624         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
7625         type-based offset disambiguation, streamline MEM_REF and
7626         TARGET_MEM_REF handling.
7627
7628 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
7629
7630         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
7631         (bdesc_special_args): Add pause intrinsic.
7632
7633         * config/i386/i386.md (UNSPEC_PAUSE): New.
7634         (pause): Likewise.
7635         (*pause): Likewise.
7636         * config/i386/ia32intrin.h (__pause): Likewise.
7637
7638         * doc/extend.texi (X86 Built-in Functions): Add documentation for
7639         pause intrinsic.
7640
7641 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7642
7643         PR tree-optimization/46728
7644         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
7645         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
7646
7647 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
7648
7649         * tree.h (struct tree_exp): Inherit from struct tree_typed.
7650         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
7651         instead of TS_COMMON.
7652
7653 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
7654
7655         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
7656         LIBGCC2_GNU_PREFIX is defined.
7657         (__N): New macro.
7658         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
7659         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
7660         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
7661         __clz_tab): Define using __N.
7662         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
7663         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
7664         * target.def (libfunc_gnu_prefix): New hook.
7665         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
7666         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
7667         * doc/tm.texi: Regenerate.
7668         * system.h (LIBGCC2_GNU_PREFIX): Poison.
7669         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
7670         account.
7671         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
7672         (init_optabs): Likewise for the bswap libfuncs.
7673         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
7674         and divide.
7675         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
7676         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
7677         * libgcc-std.ver: Remove.
7678         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
7679         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
7680         libgcc-std.ver.
7681         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
7682         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
7683         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
7684         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
7685         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
7686         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
7687         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
7688         * config/fixed-bit.h (FIXED_OP): Define differently depending on
7689         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
7690         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
7691
7692 2011-05-25  Jan Hubicka  <jh@suse.cz>
7693
7694         * lto-streamer-out.c (output_record_start): Use lto_output_enum
7695         (lto_output_tree): Use output_record_start.
7696         * lto-streamer-in.c (input_record_start): Use lto_input_enum
7697         (lto_get_pickled_tree): Use input_record_start.
7698         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
7699         (lto_value_range_error): New function.
7700         * lto-streamer.h (lto_value_range_error): Declare.
7701         (lto_output_int_in_range, lto_input_int_in_range): New functions.
7702         (lto_output_enum, lto_input_enum): New macros.
7703
7704 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
7705
7706         * common.opt (flag_stack_usage_info): New variable.
7707         (-Wstack-usage): New option.
7708         * doc/invoke.texi (Warning options): Document -Wstack-usage.
7709         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
7710         <OPT_fstack_usage>: Likewise.
7711         * toplev.c (output_stack_usage): Handle -Wstack-usage.
7712         * calls.c (expand_call): Test flag_stack_usage_info variable instead
7713         of flag_stack_usage.
7714         (emit_library_call_value_1): Likewise.
7715         * explow.c (allocate_dynamic_stack_space): Likewise.
7716         * function.c (instantiate_virtual_regs ): Likewise.
7717         (prepare_function_start): Likewise.
7718         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
7719         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
7720         * config/arm/arm.c (arm_expand_prologue): Likewise.
7721         (thumb1_expand_prologue): Likewise.
7722         * config/avr/avr.c (expand_prologue): Likewise.
7723         * config/i386/i386.c (ix86_expand_prologue): Likewise.
7724         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
7725         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
7726         * config/mips/mips.c (mips_expand_prologue): Likewise.
7727         * config/pa/pa.c (hppa_expand_prologue): Likewise.
7728         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
7729         * config/s390/s390.c (s390_emit_prologue): Likewise.
7730         * config/sh/sh.c (sh_expand_prologue): Likewise.
7731         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
7732         * config/spu/spu.c (spu_expand_prologue): Likewise.
7733
7734 2011-05-25  Richard Guenther  <rguenther@suse.de>
7735
7736         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
7737         (gimple_canonical_types_compatible_p): Likewise.
7738
7739 2011-05-25  Jan Hubicka  <jh@suse.cz>
7740
7741         PR middle-end/49062
7742         * ipa.c (function_and_variable_visibility): Only add to same
7743         comdat group list if DECL_ONE_ONLY.
7744
7745 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
7746
7747         PR rtl-optimization/49014
7748         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
7749
7750 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
7751
7752         PR target/49128
7753         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
7754
7755 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
7756
7757         PR rtl-optimization/48757
7758         * ira-build.c (loop_with_eh_edge_p): Rename to
7759         loop_with_complex_edge_p, check edges on complexity, make function
7760         conditional.
7761         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
7762         conditional.
7763
7764 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
7765
7766         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
7767         force flag_ira_share_save_slots to 0.
7768
7769 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
7770
7771         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
7772         (vt_initialize): Set PROLOGUE_BB unconditionally.
7773         Add block comment about CFA_BASE_RTX machinery.
7774         Reset FP_CFA_OFFSET to -1 on all invalid paths.
7775         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
7776
7777 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
7778
7779         PR objc/48187
7780         * c-parser.c (c_parser_objc_class_instance_variables): More robust
7781         parsing of syntax error in ObjC instance variable lists.  In
7782         particular, avoid an infinite loop if there is a stray ']'.
7783         Updated error message.
7784
7785 2011-05-24  Ian Lance Taylor  <iant@google.com>
7786
7787         * godump.c (go_define): Don't accept a string immediately after
7788         another operand.
7789
7790 2011-05-24  Ian Lance Taylor  <iant@google.com>
7791
7792         * godump.c (struct godump_container): Add invalid_hash field.
7793         (go_format_type): Return false if type is found in invalid_hash.
7794         (go_output_typedef): Add invalid type to invalid_hash.
7795         (go_finish): Create and delete invalid_hash.
7796
7797 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7798
7799         PR tree-optimization/46728
7800         * tree-ssa-math-opts.c (powi_table): New.
7801         (powi_lookup_cost): New.
7802         (powi_cost): New.
7803         (powi_as_mults_1): New.
7804         (powi_as_mults): New.
7805         (gimple_expand_builtin_powi): New.
7806         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
7807         (gate_cse_sincos): Remove sincos/cexp restriction.
7808
7809 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7810
7811         PR target/3746
7812         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
7813         mips-tdump native.
7814         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
7815         * mips-tdump.c: Likewise.
7816
7817 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
7818
7819         PR target/49128
7820         * config/i386/driver-i386.c (host_detect_local_cpu): Always
7821         add -mno-XXX.  Handle FMA.
7822
7823 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
7824
7825         PR rtl-optimization/48633
7826         * ira-build.c (loop_with_eh_edge_p): New function.
7827         (mark_loops_for_removal): Use it.
7828
7829 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
7830
7831         PR rtl-optimization/48971
7832         * ira.c (setup_pressure_classes): Don't check register move cost
7833         for classes with one registers.  Don't add pressure class if there
7834         is a pressure class with the same available hard registers.
7835         Check contains_reg_of_mode.  Fix a typo in collecting
7836         temp_hard_regset.  Ignore hard registers not belonging to a class.
7837
7838 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
7839
7840         PR target/49133
7841         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
7842
7843 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
7844             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7845
7846         PR gcov-profile/48845
7847         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
7848
7849 2011-05-24  Richard Guenther  <rguenther@suse.de>
7850
7851         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
7852         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
7853         (gimple_types_compatible_p_1): Adjust.
7854         (iterative_hash_canonical_type): Do not bother about complete vs.
7855         incomplete types.
7856         (gimple_canonical_types_compatible_p): Likewise.
7857
7858 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7859
7860         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
7861
7862 2011-05-24  Richard Guenther  <rguenther@suse.de>
7863
7864         PR bootstrap/49078
7865         * gimple.c (gimple_register_canonical_type): Revert
7866         previous change.
7867         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
7868         does not for a tree for the case where it matters.  Cache
7869         pointer-type alias-sets.
7870
7871 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
7872
7873         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
7874         (OBJS): Remove options.o, opts-common.o and prefix.o.
7875         (OBJS-libcommon-target): New.
7876         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
7877         (BACKEND): Include libcommon-target.a.
7878         (MOSTLYCLEANFILES): Include libcommon-target.a.
7879         (libcommon-target.a): New.
7880         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
7881         prefix.o.
7882
7883 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
7884
7885         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
7886         parts of output shared with the driver.
7887         * optc-gen.awk: Don't generate parts of output not shared with the
7888         driver.
7889         * opth-gen.awk: Remove GCC_DRIVER conditionals.
7890         * doc/options.texi (SourcerInclude): Mention options-save.c.
7891         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
7892         (OBJS): Add options-save.o.
7893         (options-save.c, options-save.o): New.
7894         (options.o): Update dependencies.
7895         (gcc-options.o): Remove.
7896         (mostlyclean): Remove options-save.c.
7897
7898 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
7899
7900         PR debug/49032
7901         * dbxout.c: Include cgraph.h.
7902         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
7903         and without value expr, return NULL if no varpool node exists for
7904         it or if it is not needed.
7905         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
7906
7907         PR c/49120
7908         * c-decl.c (start_decl): Convert expr to void_type_node.
7909
7910 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
7911
7912         PR rtl-optimization/48826
7913         * emit-rtl.c (try_split): When splitting a call that is followed
7914         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
7915
7916 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
7917
7918         * cfgexpand.c (expand_debug_expr): For unused non-addressable
7919         parameters passed in memory prefer using DECL_INCOMING_RTL over
7920         the pseudos it will be copied into.
7921
7922 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
7923
7924         PR target/47315
7925         * config/i386/i386.c (ix86_option_override_internal): Save the
7926         initial options after checking vzeroupper.
7927
7928 2011-05-23  David Li  <davidxl@google.com>
7929
7930         PR tree-optimization/48988
7931         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
7932         Initialize has_valid_pred for each pred chain.
7933
7934 2011-05-23  Richard Guenther  <rguenther@suse.de>
7935
7936         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
7937         (iterative_hash_gimple_type): Always hash type names.
7938
7939 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
7940
7941         * c-typeck.c (build_function_call_vec): Tweak call to
7942         check_function_arguments.
7943
7944 2011-05-23  Richard Guenther  <rguenther@suse.de>
7945
7946         PR tree-optimization/49115
7947         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
7948         is not necessarily carried out, do not claim it kills the ref.
7949         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
7950
7951 2011-05-23  Richard Guenther  <rguenther@suse.de>
7952
7953         PR middle-end/15419
7954         * builtins.c (fold_builtin_memory_op): Be less restrictive about
7955         what pointer types we accept for folding.
7956
7957 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7958
7959         * gthr-gnat.c: Remove.
7960         * gthr-gnat.h: Remove.
7961         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
7962         * config/t-freebsd (LIB2ADDEH): Likewise.
7963         * config/t-linux (LIB2ADDEH): Likewise.
7964         * config/t-sol2 (LIB2ADDEH): Likewise.
7965         * config/ia64/t-vms (LIB2ADDEH): Likewise.
7966         * configure.ac (target_thread_file): Remove gnat handling.
7967         * configure: Regenerate.
7968         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
7969
7970 2011-05-23  Tristan Gingold  <gingold@adacore.com>
7971             Eric Botcazou  <ebotcazou@adacore.com>
7972
7973         * gcov.c (create_file_names): If no object directory is specified,
7974         keep the directory of the file.
7975
7976 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7977
7978         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
7979         * configure: Regenerate.
7980
7981 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
7982
7983         PR middle-end/48973
7984         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
7985         failed and the comparison has a single bit signed type, use
7986         constm1_rtx instead of const1_rtx for true value.
7987         (do_store_flag): If ops->type is single bit signed type, disable
7988         signel bit test optimization and pass -1 instead of 1 as last
7989         parameter to emit_store_flag_force.
7990
7991 2011-05-23  Tom de Vries  <tom@codesourcery.com>
7992
7993         PR target/45098
7994         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
7995         function.
7996         (infer_loop_bounds_from_undefined): Use new function.
7997
7998 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
7999
8000         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
8001         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
8002         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
8003         and -O0 otherwise.
8004         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
8005
8006 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
8007
8008         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
8009         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
8010         returns true.
8011
8012 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
8013
8014         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
8015
8016 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
8017
8018         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
8019         UNSPEC_MOVE_PIC pattern.
8020
8021 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
8022
8023         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
8024         (sparc-*-rtems*): Likewise.
8025         (sparc64-*-elf*): Likewise.
8026         (sparc64-*-rtems*): Likewise.
8027         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
8028         * config/sparc/t-crtin: New file.
8029         * config/sparc/t-sol2 (crti.o): Delete rule.
8030         (crtn.o): Likewise.
8031         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
8032         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
8033         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
8034         (ENDFILE_SPEC): Add crtn.o.
8035
8036 2011-05-22  Tom de Vries  <tom@codesourcery.com>
8037
8038         PR middle-end/48689
8039         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
8040         CODE_CONTAINS_STRUCT (TS_COMMON).
8041
8042 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
8043
8044         PR middle-end/49029
8045         * expmed.c (extract_fixed_bit_field): Test whether target can be used
8046         only after deciding which mode to use.
8047
8048 2011-05-22  Tom de Vries  <tom@codesourcery.com>
8049
8050         PR target/45098
8051         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
8052         for call to get_shiftadd_cost.
8053
8054 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
8055
8056         PR target/49104
8057         * config/i386/cpuid.h (bit_MMXEXT): New define.
8058
8059 2011-05-22  Nick Clifton  <nickc@redhat.com>
8060
8061         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
8062         initialisation of non-existant args[2] element.  Use args[] array
8063         not arg[] array to pass arguments to build_function_type_list.
8064
8065 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
8066
8067         PR tree-optimization/49087
8068         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
8069
8070 2011-05-21  Jason Merrill  <jason@redhat.com>
8071
8072         PR c++/49092
8073         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
8074         static storage duration.
8075
8076 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
8077
8078         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
8079         frame pointer.
8080
8081 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
8082
8083         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
8084         false if there are call-saved registers here...
8085         (sparc_can_use_return_insn_p): ...but here instead.
8086         (save_or_restore_regs): Fix thinko.
8087         (sparc_expand_prologue): Use current_function_is_leaf.
8088         (sparc_frame_pointer_required): Likewise.
8089
8090 2011-05-21  Nick Clifton  <nickc@redhat.com>
8091
8092         PR target/49098
8093         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
8094
8095 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
8096
8097         * gengtype.c (walk_type): Implemented "atomic" GTY option.
8098         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
8099
8100 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
8101
8102         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
8103         * optc-gen.awk: Move common code to opt-read.awk.
8104         * opth-gen.awk: Likewise.
8105         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
8106
8107 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
8108
8109         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
8110
8111 2011-05-20  Tom de Vries  <tom@codesourcery.com>
8112
8113         PR target/45098
8114         * tree-ssa-loop-ivopts.c: Include expmed.h.
8115         (get_shiftadd_cost): New function.
8116         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
8117
8118 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
8119
8120         PR bootstrap/49086
8121         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
8122         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
8123
8124 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
8125
8126         * Makefile.in: Update comment referring to $(OBJS-common).
8127
8128 2011-05-20  Ian Lance Taylor  <iant@google.com>
8129
8130         * godump.c (go_output_typedef): Put enum constants in the macro
8131         hash table to avoid duplicate Go const definitions.
8132
8133 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
8134
8135         * Makefile.in (LIBDEPS): Add libcommon.a.
8136         (LIBS): Likewise.
8137         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
8138         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
8139         pretty-print.o and version.o.
8140         (OBJS-libcommon): New.
8141         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
8142         (BACKEND): Add libcommon.a.
8143         (MOSTLYCLEANFILES): Likewise.
8144         (libcommon.a): New.
8145         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
8146         (cpp$(exeext)): Likewise.
8147         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
8148         pretty-print.o and input.o.
8149         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
8150         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
8151         (errors.o): Remove.
8152         (mips-tfile): Don't explicitly use version.o.
8153         (mips-tdump): Likewise.
8154         (gcov.o): Depend on $(DIAGNOSTIC_H).
8155         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
8156         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
8157         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
8158         * gcov-dump.c: Include intl.h and diagnostic.h.
8159         (main): Initialize diagnostics.
8160         * gcov.c: Include diagnostic.h.
8161         (fnotice): Remove.
8162         (main): Initialize diagnostics.
8163         * lto-wrapper.c: Include diagnostic.h.
8164         (main): Initialize diagnostics.
8165
8166 2011-05-20  Michael Matz  <matz@suse.de>
8167
8168         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
8169
8170 2011-05-20  Michael Matz  <matz@suse.de>
8171             Richard Guenther  <rguenther@suse.de>
8172
8173         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
8174         use lto_streamer_cache_append directly instead of returning a VEC.
8175         (preload_common_node): Remove.
8176         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
8177         track seen nodes.
8178         (lto_streamer_cache_create): Call lto_preload_common_nodes.
8179
8180 2011-05-20  Richard Guenther  <rguenther@suse.de>
8181
8182         PR tree-optimization/49079
8183         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
8184         MEM_REFs correctly for the trailing array access detection.
8185         Special case constants the same way as decls for overall size
8186         constraining.
8187
8188 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
8189
8190         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
8191         argument expansion.
8192
8193 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
8194
8195         PR tree-optimization/49073
8196         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
8197         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
8198         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
8199
8200 2011-05-20  Richard Guenther  <rguenther@suse.de>
8201
8202         PR middle-end/48849
8203         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
8204         of pointer types the same way the middle-end does.
8205
8206 2011-05-20  Richard Guenther  <rguenther@suse.de>
8207
8208         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
8209         or pointer-to chains.  Delay all fixup to uniquify_nodes.
8210
8211 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
8212
8213         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
8214         (fma4_fmaddsub): Likewise
8215
8216 2011-05-19  Jan Hubicka  <jh@suse.cz>
8217
8218         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
8219         (GIMPLE_TYPE_PAIR_SIZE): New macro.
8220         (type_pair_cache): New static var.
8221         (lookup_type_pair): Use fixed sized custom hash; make inline.
8222         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
8223         calls of lookup_type_pair.
8224         (print_gimple_types_stats): Remove cache stats.
8225         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
8226         and gtc_ob.
8227
8228 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
8229
8230         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
8231         when TARGET_RDRND is active.
8232         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
8233         Generate dummy SImode target register when target is NULL.
8234
8235 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
8236
8237         * config/arm/arm-fpus.def: New.
8238         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
8239         arm-fpus.def.
8240         * config/arm/arm-tables.opt: Regenerate.
8241         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
8242         (arm_option_override): Don't decode FPU name to string here.
8243         * config/arm/arm.opt (mfpu=): Use Enum.
8244         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
8245         Update dependencies.
8246
8247 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
8248
8249         * collect2.c: Include diagnostic.h.
8250         (fatal_perror, fatal, error, fancy_abort): Remove.
8251         (main): Set progname.  Call xmalloc_set_program_name and
8252         diagnostic_initialize.
8253         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
8254         scan_libraries, resolve_lib_name): Call fatal_error instead of
8255         fatal and fatal_perror.
8256         * collect2.h (error, fatal, fatal_perror): Don't declare.
8257         * tlink.c: Include diagnostic-core.h.
8258         (recompile_files): Call fatal_error instead of fatal_perror.
8259         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
8260         pretty-print.o and input.o.
8261         (collect2.o, tlink.o): Update dependencies.
8262
8263 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8264
8265         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
8266
8267 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8268
8269         PR target/40483
8270         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
8271         COMDAT group syntax, both SPARC and x86 variants.
8272         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
8273         * configure: Regenerate.
8274         * config/sol2.h (TARGET_SOLARIS): Define.
8275         (PUSHSECTION_FORMAT): Remove.
8276         (SECTION_NAME_FORMAT): Define.
8277         * config/sol2.c: Include hashtab.h.
8278         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
8279         expansion, using SECTION_NAME_FORMAT.
8280         (solaris_comdat_htab): New variable.
8281         (struct comdat_entry): Define.
8282         (comdat_hash): New function.
8283         (comdat_eq): New function.
8284         (solaris_elf_asm_comdat_section): New function.
8285         (solaris_define_comdat_signature): New function.
8286         (solaris_code_end): New function.
8287         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
8288         (solaris_code_end): Declare.
8289         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
8290         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
8291         solaris_code_end.
8292         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
8293         Remove ATTRIBUTE_UNUSED.
8294         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
8295         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
8296         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
8297         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
8298         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
8299         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
8300         (PUSHSECTION_FORMAT): Remove.
8301         (SECTION_NAME_FORMAT): Redefine.
8302
8303 2011-05-19  Kai Tietz  <ktietz@redhat.com>
8304
8305         * tree-cfg.c (verify_gimple_assign_binary): Barf on
8306         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
8307         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
8308
8309 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
8310             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8311
8312         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
8313
8314 2011-05-19  Richard Guenther  <rguenther@suse.de>
8315
8316         PR middle-end/48985
8317         * tree-object-size.c (addr_object_size): If the pointed-to
8318         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
8319
8320 2011-05-19  Richard Guenther  <rguenther@suse.de>
8321
8322         * gimple.c (gimple_types_compatible_p_1): Compare names of
8323         the types themselves.
8324         (iterative_hash_gimple_type): And hash them that way.
8325         (gimple_register_type_1): If we register a main variant properly
8326         initialize the leader to ourselves.
8327
8328 2011-05-19  Tom de Vries  <tom@codesourcery.com>
8329
8330         PR target/45098
8331         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
8332         get_loop_invariant_expr_id.
8333         (get_loop_invariant_expr_id): Use get_expr_id.
8334         (parm_decl_cost): New function.
8335         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
8336         Improve bound cost estimation.  Use different inv_expr_id for elim and
8337         express cases.
8338
8339 2011-05-19  Tom de Vries  <tom@codesourcery.com>
8340
8341         PR target/45098
8342         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
8343         cost_base.cost == 0.
8344
8345 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
8346
8347         PR target/49002
8348         * config/i386/sse.md
8349         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
8350         load cast.
8351
8352 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
8353
8354         PR tree-optimization/49039
8355         * tree-vrp.c (extract_range_from_binary_expr): For
8356         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
8357         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
8358
8359 2011-05-18  Tom de Vries  <tom@codesourcery.com>
8360
8361         PR target/45098
8362         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
8363
8364 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
8365
8366         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
8367         (*tls_global_dynamic_64): Ditto.
8368         (*tls_local_dynamic_base_32_gnu): Ditto.
8369         (*tls_local_dynamic_base_64): Ditto.
8370         (tls_initial_exec_64_sun): Ditto.
8371
8372 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
8373
8374         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
8375         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
8376         bf592-none.
8377         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
8378         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
8379         * config/bfin/bfin.c (bfin_cpus): Add bf592.
8380         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
8381         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
8382         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
8383         * config/bfin/elf.h (LIB_SPEC): Add bf592.
8384
8385 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
8386
8387         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
8388         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
8389         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
8390         target_thread_pointer, arm_structure_size_boundary, struct
8391         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
8392         struct abi_name, arm_all_abis): Remove.
8393         (arm_option_override) Don't process most enumerated option values here.
8394         Don't process target_fpe_name here.  Work with integer not string for
8395         structure size boundary; use separate diagnostics for each case.
8396         * config/arm/arm.h (enum float_abi_type, enum
8397         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
8398         to arm-opts.h.
8399         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
8400         arm_structure_size_boundary): Remove.
8401         * config/arm/arm.opt (mabi=): Use Enum and Init.
8402         (arm_abi_type): New Enum and EnumValue entries.
8403         (mfloat-abi=): Use Enum and Init.
8404         (float_abi_type): New Enum and EnumValue entries.
8405         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
8406         (mfp16-format=): Use Enum and Init.
8407         (arm_fp16_format_type): New Enum and EnumValue entries.
8408         (mstructure-size-boundary=): Use UInteger and Init.
8409         (mtp=): Use Enum and Init.
8410         (arm_tp_type): New Enum and EnumValue entries.
8411
8412 2011-05-18  Richard Guenther  <rguenther@suse.de>
8413
8414         PR tree-optimization/49018
8415         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
8416         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
8417         gimple_has_side_effects.
8418
8419 2011-05-18  Richard Guenther  <rguenther@suse.de>
8420
8421         * gimple.c (gimple_register_type_1): New function, split out from ...
8422         (gimple_register_type): ... here.  Avoid infinite recursion.
8423
8424 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
8425
8426         PR tree-optimization/41881
8427         * tree-vectorizer.h (struct _loop_vec_info): Add new field
8428         reduction_chains along with a macro for its access.
8429         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
8430         (destroy_loop_vec_info): Free reduction chains.
8431         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
8432         (vect_is_slp_reduction): New function.
8433         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
8434         (vect_create_epilog_for_reduction): Support SLP reduction chains.
8435         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
8436         definition types for reduction chains.
8437         (vect_supported_load_permutation_p): Don't allow permutations for
8438         reduction chains.
8439         (vect_analyze_slp_instance): Support reduction chains.
8440         (vect_analyze_slp): Try to build SLP instance from reduction chains.
8441         (vect_get_constant_vectors):  Handle reduction chains.
8442         (vect_schedule_slp_instance): Mark the first statement of the
8443         reduction chain as reduction.
8444
8445 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
8446
8447         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
8448         names for group elements access.
8449         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
8450         reduction chains as well.  Remove data reference and interleaving
8451         related words from the fields names.
8452         * tree-vect-loop.c (vect_transform_loop): Use new names for group
8453         elements access.
8454         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
8455         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
8456         vect_update_interleaving_chain, vect_same_range_drs,
8457         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
8458         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
8459         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
8460         vect_analyze_group_access, vect_analyze_data_ref_access,
8461         vect_create_data_ref_ptr, vect_transform_strided_load,
8462         vect_record_strided_load_vectors): Likewise.
8463         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
8464         vect_model_load_cost, vectorizable_store, vectorizable_load,
8465         vect_remove_stores, new_stmt_vec_info): Likewise.
8466         * tree-vect-slp.c (vect_build_slp_tree,
8467         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
8468
8469 2011-05-18  Richard Guenther  <rguenther@suse.de>
8470
8471         PR middle-end/48989
8472         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
8473         operand verification.
8474         (verify_gimple_assign_binary): Likewise.
8475         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
8476         to non-1-precision BOOLEAN_TYPEs.
8477
8478 2011-05-18  Tom de Vries  <tom@codesourcery.com>
8479
8480         PR target/45098
8481         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
8482
8483 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
8484
8485         PR tree-optimization/49000
8486         * tree-ssa.c (execute_update_addresses_taken): Call
8487         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
8488         be rewritten and decl has been marked for renaming, reset
8489         the debug stmt.
8490
8491 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
8492
8493         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
8494         enum_opts_set when testing if attributes have set -mfpmath=.
8495
8496 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
8497
8498         * config/mips/mips.c (mips_handle_option): Remove unused variable.
8499
8500 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
8501
8502         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
8503         info->entry with 0
8504         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
8505         id.transform_lang_insert_block with NULL.
8506
8507 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
8508
8509         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
8510         (output_fp_compare): Change args 3 and 4 to bool.
8511         (ix86_expand_call): Change arg 6 to bool.
8512         (ix86_attr_length_immediate_default): Change arg 2 to bool.
8513         (ix86_attr_length_vex_default): Change arg 3 to bool.
8514         * config/i386/i386.md: Update all uses.
8515         * config/i386/i386.c: Ditto.
8516         (ix86_flags_dependent): Change return type to bool.
8517
8518 2011-05-17  Richard Guenther  <rguenther@suse.de>
8519
8520         * gimple.c (type_hash_pair_compare): Fix comparison.
8521
8522 2011-05-17  Richard Guenther  <rguenther@suse.de>
8523
8524         * gimple.c (iterative_hash_gimple_type): Simplify singleton
8525         case some more, fix final hash value of the non-singleton case.
8526
8527 2011-05-17  Richard Guenther  <rguenther@suse.de>
8528
8529         PR bootstrap/49013
8530         Revert
8531         2011-05-16  Richard Guenther  <rguenther@suse.de>
8532
8533         * gimple.c (gimple_types_compatible_p_1): Use names of the
8534         type itself, not its main variant.
8535         (iterative_hash_gimple_type): Likewise.
8536
8537 2011-05-17  Richard Guenther  <rguenther@suse.de>
8538
8539         * gimple.c (gimple_register_canonical_type): Use the main-variant
8540         leader for computing the canonical type.
8541
8542 2011-05-17  Nick Clifton  <nickc@redhat.com>
8543
8544         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
8545         moves.
8546
8547         * config/rx/rx.md: Add peephole to remove redundant extensions
8548         after loads.
8549         (bitset_in_memory): Use rx_restricted_mem_operand.
8550         (bitinvert_in_memory): Likewise.
8551         (bitclr_in_memory): Likewise.
8552
8553 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
8554             Nick Clifton  <nickc@redhat.com>
8555
8556         * config/rx/rx.md: Add peepholes to match a register move followed
8557         by a comparison of the moved register.  Replace these with an
8558         addition of zero that does both actions in one instruction.
8559
8560 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
8561
8562         PR target/48986
8563         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
8564         predicate to allow CONST_INT.
8565         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
8566
8567 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
8568
8569         * opts-common.c (opt_enum_arg_to_value): New.
8570         * opts.h (opt_enum_arg_to_value): Declare.
8571         * config/i386/i386.opt (fpmath): Remove.
8572         (mfpmath=): Use Enum, Init and Save.
8573         (fpmath_unit): New Enum and EnumValue entries.
8574         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
8575         name for function fpmath state.
8576         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
8577         * config/i386/i386.c: Include diagnostic.h.
8578         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
8579         (ix86_target_string): Take enum fpmath_unit value instead of string.
8580         (ix86_debug_options): Update call to ix86_target_string.
8581         (ix86_option_override_internal): Don't process fpmath strings here.
8582         (x86_function_specific_save, ix86_function_specific_restore):
8583         Don't handle fpmath state specially.
8584         (ix86_function_specific_print): Pass fpmath state to
8585         ix86_target_string instead of printing in this function.
8586         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
8587         Handle enum attributes.
8588         (IX86_ATTR_ENUM, ix86_opt_enum): New.
8589         (ix86_valid_target_attribute_tree): Update option_strings
8590         handling.  Handle fpmath as enum option.
8591         (ix86_can_inline_p): Update field names for function fpmath state.
8592         (ix86_expand_builtin): Update call to ix86_target_string.
8593         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
8594         (ix86_fpmath): Remove.
8595         * config/i386/t-i386 (i386.o): Update dependencies.
8596
8597 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
8598
8599         PR preprocessor/48677
8600         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
8601         from decoded_options[0], not from itself.
8602
8603 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
8604
8605         * config/i386/constraints.md (z): New constraint.
8606         * config/i386/i386.c (c): New mode attribute.
8607         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
8608         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
8609         constraint for operand 0.
8610         (*call_vzeroupper): Ditto.
8611         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
8612         (*call_rex64_ms_sysv_vzeroupper): Ditto.
8613         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
8614         Use "lzm" constraint for operand 0.
8615         (*call_pop_vzeroupper): Ditto.
8616         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
8617         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
8618         constraint for operand 0.
8619         (*sibcall_vzeroupper): Ditto.
8620         (*sibcall_rex64_ms_sysv): Ditto.
8621         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
8622         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
8623         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
8624         (*sibcall_pop_vzeroupper): Ditto.
8625         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
8626         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
8627         mode iterator.  Use "<c>zm" constraint for operand 1.
8628         (*call_value_vzeroupper): Ditto.
8629         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
8630         for operand 1.
8631         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
8632         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
8633         *call_value_pop_1.  Use "lzm" constraint for operand 1.
8634         (*call_value_pop_vzeroupper): Ditto.
8635         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
8636         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
8637         mode iterator.  Use "Uz" constraint for operand 1.
8638         (*sibcall_value_vzeroupper): Ditto.
8639         (*sibcall_value_rex64_ms_sysv): Ditto.
8640         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
8641         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
8642         constraint for operand 1.
8643         (*sibcall_value_pop_vzeroupper): Ditto.
8644         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
8645         and "z" constraint for operand 2.
8646         (*tls_global_dynamic_32_gnu): Ditto.
8647         (*tls_local_dynamic_base_32_gnu): Ditto.
8648         (*tls_local_dynamic_base_64): Ditto.
8649         (*tls_local_dynamic_32_once): Ditto.
8650         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
8651         Update all callers.
8652         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
8653
8654 2011-05-16  Richard Guenther  <rguenther@suse.de>
8655
8656         * gimple.c (gimple_types_compatible_p_1): Use names of the
8657         type itself, not its main variant.
8658         (iterative_hash_gimple_type): Likewise.
8659
8660 2011-05-16  Richard Guenther  <rguenther@suse.de>
8661
8662         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
8663         always visit pointer target and function result and argument types.
8664
8665 2011-05-16  Jason Merrill  <jason@redhat.com>
8666
8667         PR c++/48999
8668         * tree-inline.c (copy_statement_list): Put back recursion.
8669
8670 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
8671
8672         PR target/27663
8673         PR target/41076
8674         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
8675         * config/avr/avr.md ("*ior<mode>qi.byte0",
8676         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
8677
8678 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
8679
8680         PR target/45099
8681         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
8682         register is needed for a function argument.
8683
8684 2011-05-16  Richard Guenther  <rguenther@suse.de>
8685
8686         * gimple.c (struct type_hash_pair): New type.
8687         (type_hash_pair_compare): New function.
8688         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
8689
8690 2011-05-16  Revital Eres  <revital.eres@linaro.org>
8691
8692         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
8693
8694 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
8695
8696         * config/i386/i386.md (floating point move splitters): Fix
8697         usage of standard_80387_constant_p.
8698         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
8699
8700 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
8701
8702         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
8703
8704 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
8705
8706         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
8707         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
8708         (tree_ssa_lim_finalize): Likewise.
8709
8710 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
8711
8712         * config/i386/constraint.md (Yd, Yx): New register constraints.
8713         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
8714         Yd conditional register constraint.
8715         (*movtf_internal): Use standard_sse_constant_opcode.
8716         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
8717         Yx conditional register constraint.
8718         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
8719         Yd conditional register constraint.  Use standard_sse_constant_p to
8720         check for valid SSE constants and call standard_sse_constant_opcode to
8721         output SSE insn.
8722         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
8723         constants and call standard_sse_constant_opcode to output SSE insn.
8724         * config/i386/i386.c (ix86_option_ovverride_internal): Set
8725         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
8726         optimize_size is set.
8727         (standard_sse_constant_opcode): Output conditional AVX insn templates.
8728
8729 2011-05-14  Tobias Burnus  <burnus@net-b.de>
8730
8731         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
8732
8733 2011-05-13  Martin Jambor  <mjambor@suse.cz>
8734
8735         * ipa-prop.c (ipa_cst_from_jfunc): New function.
8736         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
8737         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
8738         (evaluate_conditions_for_ipcp_clone): Removed.
8739         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
8740         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
8741         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
8742
8743 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
8744
8745         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
8746         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
8747         lieu of MAY_HAVE_DEBUG_STMTS.
8748         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
8749         debug statements if !MAY_HAVE_DEBUG_STMTS.
8750
8751 2011-05-13  Martin Thuresson  <martint@google.com>
8752
8753         PR gcov-profile/47793
8754         * libgcov.c (gcov_exit): Support relative profile paths.
8755         * doc/invoke.texi (-fprofile-dir): Update for above change.
8756
8757 2011-05-13  Richard Guenther  <rguenther@suse.de>
8758
8759         * gimple.c (gimple_canonical_types_compatible_p): Do not use
8760         type-pair caching, do not compare hashes.
8761
8762 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
8763
8764         PR middle-end/48965
8765         * tree-cfg.c (edge_to_cases_cleanup): Return true.
8766         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
8767
8768 2011-05-13  Kai Tietz  <ktietz@redhat.com>
8769
8770         * gimplify.c (gimplify_expr): Make sure operand is boolified.
8771         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
8772         compatible type for TRUTH_NOT_EXPR.
8773
8774 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
8775
8776         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
8777         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
8778         can_create_pseudo_p ().
8779
8780 2011-05-13  Richard Guenther  <rguenther@suse.de>
8781
8782         PR lto/48978
8783         * gimple.c (iterative_hash_gimple_type): Revert change in
8784         pointer target and function result and argument hashing.
8785
8786 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
8787
8788         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
8789         (*movxf_internal_nointeger): Ditto.
8790         (*movdf_internal_rex64): Ditto.
8791         (*movdf_internal): Ditto.
8792         (*movdf_internal_nointeger): Ditto.
8793         (*movsf_internal): Ditto.
8794         (sincos splitters): Use can_create_pseudo ().
8795
8796 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
8797
8798         * config/i386/i386-opts.h: New.
8799         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
8800         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
8801         ix86_section_threshold): Remove.
8802         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
8803         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
8804         OPT_mbranch_cost_.
8805         (ix86_option_override_internal): Don't decode strings for options
8806         other than -march=, -mtune= and -mfpmath=.  Don't allow for
8807         __attribute__ uses in remaining diagnostics for options with
8808         string arguments.  Don't check for integer arguments being negative.
8809         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
8810         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
8811         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
8812         ix86_branch_cost, ix86_section_threshold): Remove.
8813         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
8814         HeaderInclude.
8815         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
8816         but not Var.
8817         (masm=): Use Enum and Init.
8818         (asm_dialect): New Enum and EnumValue entries.
8819         (mbranch-cost=): Use UInteger.
8820         (mlarge-data-threshold=): Use UInteger and Init.
8821         (mcmodel=): Use Enum and Init.
8822         (cmodel): New Enum and EnumValue entries.
8823         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
8824         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
8825         mregparm=): Use UInteger.
8826         (mstringop-strategy=): Use Enum and Init.
8827         (stringop_alg): New Enum and EnumValue entries.
8828         (mtls-dialect=): Use Enum and Init.
8829         (tls_dialect): New Enum and EnumValue entries.
8830         (mabi=): Use Enum and Init.
8831         (calling_abi): New Enum and EnumValue entries.
8832         (mveclibabi=): Use Enum and Init.
8833         (ix86_veclibabi): New Enum and EnumValue entries.
8834
8835 2011-05-13  Nick Clifton  <nickc@redhat.com>
8836
8837         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
8838         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
8839
8840 2011-05-13  Kai Tietz  <ktietz@redhat.com>
8841
8842         PR middle-end/48984
8843         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
8844         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
8845         (gimple_boolify): Check for cast for boolean_type_node instead for
8846         BOOLEAN_TYPE.
8847
8848 2011-05-13  Richard Guenther  <rguenther@suse.de>
8849
8850         PR tree-optimization/48172
8851         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
8852         multiplying by number of iterations for equal step.
8853         (vect_create_cond_for_alias_checks): Likewise.
8854
8855 2011-05-13  Andreas Schwab  <schwab@redhat.com>
8856
8857         * configure.ac: Use AS_HELP_STRING throughout.
8858         * configure: Regenerate.
8859
8860 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
8861
8862         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
8863         (ix86_emit_restore_regs_using_mov): Likewise.
8864         (ix86_emit_restore_sse_regs_using_mov): Likewise.
8865
8866 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
8867
8868         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
8869         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
8870         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
8871         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
8872         RTX_OK_FOR_OLO10_P): ...here.
8873         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
8874         SYMBOLIC_CONST.
8875
8876 2011-05-12  Kai Tietz  <ktietz@redhat.com>
8877
8878         * gimplify.c (gimple_boolify): Re-boolify expression
8879         arguments even if expression type is of kind BOOLEAN_TYPE.
8880         (gimplify_boolean_expr): Removed.
8881         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
8882         and XOR. Additional take care that we keep expression's type.
8883         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
8884         of TRUTH_AND|OR|XOR_EXPR.
8885
8886 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
8887
8888         PR tree-optimization/48975
8889         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
8890         on all bbs here and free and clear ifc_bbs at the end.
8891
8892 2011-05-12  Richard Guenther  <rguenther@suse.de>
8893
8894         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
8895         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
8896         until after simple checks.
8897         (gimple_types_compatible_p): Likewise.
8898         (iterative_hash_gimple_type): Always hash pointer targets
8899         and function return and argument types.
8900         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
8901         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
8902         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
8903         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
8904         completely in the simple compare section.
8905         (gimple_register_canonical_type): Query the cache again after
8906         registering.
8907
8908 2011-05-12  Richard Guenther  <rguenther@suse.de>
8909
8910         PR tree-optimization/48172
8911         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
8912         the number of iterations from the segment size calculation.
8913         (vect_create_cond_for_alias_checks): Adjust.
8914
8915 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
8916
8917         PR debug/48967
8918         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
8919         if validate_subreg fails.
8920
8921 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
8922
8923         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
8924         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
8925         early.
8926
8927 2011-05-12  DJ Delorie  <dj@redhat.com>
8928
8929         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
8930         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
8931         created builtin into rx_builtins array.
8932         (rx_builtin_decl): New function.
8933         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
8934
8935 2011-05-12  DJ Delorie  <dj@redhat.com>
8936             Nick Clifton  <nickc@redhat.com>
8937
8938         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
8939         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
8940         (rx_is_legitimate_address): Add pre-decrement and post-increment
8941         addressing in HImode and QImode.  Fix test for out of range
8942         REG+INT addressing.
8943         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
8944         (rx_align_for_label): Test label before extracting its usage count.
8945         (rx_adjust_insn_lengths): Fix selection of insn codes.
8946         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
8947
8948 2011-05-11  Jason Merrill  <jason@redhat.com>
8949
8950         * tree.c (type_hash_canon): Use struct tree_type_non_common.
8951
8952 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
8953
8954         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
8955         reindent the subsequent block.
8956
8957 2011-05-11  Satoru Takabayashi  <satorux@google.com>
8958             Paul Pluzhnikov  <ppluzhnikov@google.com>
8959
8960         * doc/install.texi (Configuration): Document --with-linker-hash-style.
8961         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
8962         * config.in: Add LINKER_HASH_STYLE.
8963         * configure.ac: Add --with-linker-hash-style.
8964         * configure: Regenerate.
8965
8966 2011-05-11  Richard Guenther  <rguenther@suse.de>
8967
8968         PR middle-end/48964
8969         * gimple.c (iterative_hash_canonical_type): Fix typo.
8970
8971 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
8972
8973         * config/i386/i386.c (legitimize_tls_address)
8974         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
8975         expanders directly for TARGET_GNU2_TLS.  Determine pic and
8976         __tls_get_addr symbol reference here.  Update call to
8977         gen_tls_global_dynamic_{32,64} for added arguments.
8978         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
8979         expanders directly for TARGET_GNU2_TLS.  Determine
8980         __tls_get_addr symbol reference here.  Update call to
8981         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
8982         unique UNSPEC REG_EQUIV to libcall block.
8983         (ix86_tls_get_addr): Declare static.
8984         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
8985         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
8986         Do not determine pic and __tls_get_addr symbol reference here. Do not
8987         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
8988         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
8989         (tls_global_dynamic_64): Add operand 2.  Do not determine
8990         __tls_get_addr symbol reference here.  Do not call
8991         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
8992         (tls_local_dynamic_base64): Ditto for operand 1.
8993
8994 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
8995
8996         * function.c (expand_function_start): Initialize stack_check_probe_note
8997         only if the generic stack checking mechanism is used.
8998
8999 2011-05-11  Richard Guenther  <rguenther@suse.de>
9000
9001         PR tree-optimization/15256
9002         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
9003         (A & B) | C, combine (A op CST1) op CST2.
9004         (tree_ssa_forward_propagate_single_use_vars): Only bother to
9005         visit assigns that have uses.
9006
9007 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
9008
9009         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
9010         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
9011         (unpack_ts_type_common_value_fields): ...this.  Update comment.
9012         (unpack_value_fields): Adjust for renaming.
9013         (lto_input_ts_type_tree_pointers): Split into...
9014         (lto_input_ts_type_common_tree_pointer): ...this and...
9015         (lto_input_ts_type_non_common_tree_pointers): ...this.
9016         (lto_input_tree_pointers): Adjust for above split.
9017         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
9018         (pack_ts_type_common_value_fields): ...this.  Update comment.
9019         (lto_output_ts_type_tree_pointers): Split into...
9020         (lto_output_ts_type_common_tree_pointers): ...this and...
9021         (lto_output_ts_type_non_common_tree_pointers): ...this.
9022         (lto_output_tree_pointers): Adjust for above split.
9023         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
9024         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
9025         * stor-layout.c (vector_type_mode): Adjust location of mode field.
9026         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
9027         Define.
9028         (struct tree_type): Split into...
9029         (struct tree_type_common: ...this and...
9030         (struct tree_type_with_lang_specific): ...this and...
9031         (struct tree_type_non_common): ...this.  Adjust accessor macros
9032         accordingly.
9033         (TYPE_VALUES_RAW): Define.
9034         (union tree_node): Update for above changes.
9035         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
9036         TS_TYPE_NON_COMMON.
9037         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
9038         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
9039         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
9040         * treestructu.def (TS_TYPE): Remove.
9041         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
9042         Define.
9043
9044 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
9045
9046         PR debug/48159
9047         * tree-ssa.c (reset_debug_uses): New function.
9048         * tree-flow.h (reset_debug_uses): New prototype.
9049         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
9050         * tree-loop-distribution.c (generate_loops_for_partition): Call
9051         reset_debug_uses on the stmts that will be removed.  Keep around
9052         all debug stmts, don't count them as bits in partition bitmap.
9053         (generate_builtin): Don't count debug stmts or labels as bits in
9054         partition bitmap.
9055
9056 2011-05-11  Richard Guenther  <rguenther@suse.de>
9057
9058         * gimple.c (gimple_type_hash_1): Merge with ...
9059         (gimple_type_hash): ... this.
9060         (gtc_visit): Remove mode parameter and simplify accordingly.
9061         (gimple_types_compatible_p_1): Likewise.
9062         (gimple_types_compatible_p): Likewise.
9063         (iterative_hash_gimple_type): Likewise.
9064         (visit): Likewise.
9065         (gimple_type_eq): Adjust.
9066
9067 2011-05-11  Revital Eres  <revital.eres@linaro.org>
9068
9069         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
9070         enters the branch create an anti edge in the opposite direction
9071         to prevent the creation of reg-moves.
9072         * modulo-sched.c: Adjust comment to reflect the fact we are
9073         scheduling closing branch.
9074         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
9075         (stage_count): New field in struct partial_schedule.
9076         (calculate_stage_count): New function.
9077         (normalize_sched_times): Rename to reset_sched_times and handle
9078         incrementing the sched time of the nodes by a constant value
9079         passed as parameter.
9080         (duplicate_insns_of_cycles): Skip closing branch.
9081         (sms_schedule_by_order): Schedule closing branch.
9082         (ps_insn_find_column): Handle closing branch.
9083         (sms_schedule): Call reset_sched_times and adjust the code to
9084         support scheduling of the closing branch.
9085         (ps_insert_empty_row): Update calls to normalize_sched_times
9086         and rotate_partial_schedule functions.
9087
9088 2011-05-11  Richard Guenther  <rguenther@suse.de>
9089
9090         PR middle-end/48953
9091         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
9092
9093 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
9094
9095         * opts.c (finish_options): Move warning settings from process_options.
9096         * toplev.c (process_options): Move warning settings to finish_options.
9097
9098 2011-05-11  Richard Guenther  <rguenther@suse.de>
9099
9100         PR tree-optimization/18041
9101         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
9102         (simplify_bitwise_binary): ... this.  Handle operand conversions
9103         by applying them to the result instead.
9104         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
9105
9106 2011-05-11  Richard Guenther  <rguenther@suse.de>
9107
9108         * gimple.c (gimple_canonical_types_compatible_p): Split out
9109         from gimple_types_compatible_p and friends.  Do not recurse
9110         to pointed-to types.
9111         (gimple_canonical_type_eq): Use it.
9112         (iterative_hash_canonical_type): Split out from
9113         iterative_hash_gimple_type and friends.  Do not recurse
9114         to pointed-to types.
9115         (gimple_canonical_type_hash): Use it, allocate the hash here.
9116
9117 2011-05-11  Revital Eres  <revital.eres@linaro.org>
9118
9119         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
9120         recognizing doloop.
9121
9122 2011-05-11  Revital Eres  <revital.eres@linaro.org>
9123
9124         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
9125         instead of PREV_INSN.
9126
9127 2011-05-11  Revital Eres  <revital.eres@linaro.org>
9128
9129         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
9130         * loop-doloop.c (doloop_condition_get): Likewise.
9131         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
9132         (doloop_end): New.
9133         * config/arm/arm.md (*addsi3_compare0): Remove "*".
9134
9135 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
9136
9137         * tree.def (CASE_LABEL_EXPR): Add an operand.
9138         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
9139
9140 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
9141
9142         * c-decl.c (c_override_global_bindings_to_false): Remove.
9143         (global_bindings_p): Don't check
9144         c_override_global_bindings_to_false.
9145         * c-tree.h (c_override_global_bindings_to_false): Remove.
9146         * c-typeck.c (composite_type): Don't set
9147         c_override_global_bindings_to_false.
9148
9149 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
9150
9151         PR target/48857, 48495
9152         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
9153         (VSX_MODE): Ditto.
9154         (VSX_MOVE_MODE): Ditto.
9155         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
9156         VSX vector types.  Add V2DImode.
9157         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
9158         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
9159         (MODES_TIEABLE_P): Ditto.
9160
9161         * config/rs6000/rs6000.c (rs6000_emit_move): Use
9162         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
9163         VSX_VECTOR_MODE.
9164         (init_cumulative_args): Ditto.
9165         (rs6000_function_arg_boundary): Ditto.
9166         (rs6000_function_arg_advance_1): Ditto.
9167         (rs6000_function_arg): Ditto.
9168         (rs6000_function_ok_for_sibcall): Ditto.
9169         (emit_frame_save): Ditto.
9170         (rs6000_function_value): Ditto.
9171         (rs6000_libcall_value): Ditto.
9172
9173 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
9174
9175         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
9176         i386/darwin-lib.h to $libgcc_tm_file.
9177         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
9178
9179 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
9180
9181         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
9182
9183 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
9184
9185         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
9186         * config/rs6000/rs6000-tables.opt: New file (generated).
9187         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
9188         rs6000/rs6000-tables.opt to extra_options.
9189         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
9190         * config/rs6000/rs6000.c (rs6000_select): Remove.
9191         (processor_target_table): Move contents to rs6000-cpus.def.
9192         (darwin_rs6000_override_options): Check
9193         global_options_set.x_rs6000_cpu_index instead of
9194         rs6000_select[1].string.
9195         (rs6000_option_override_internal): Likewise.
9196         (rs6000_handle_option): Don't assert that global structures are in
9197         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
9198         (rs6000_default_cpu): New variable.
9199         (rs6000_file_start): Set it instead of local default_cpu.  Check
9200         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
9201         global_options_set.x_rs6000_tune_index instead of rs6000_select.
9202         (rs6000_darwin_file_start): Check rs6000_default_cpu and
9203         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
9204         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
9205         rs6000_select): Remove.
9206         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
9207         Remove.
9208         (mcpu=, mtune=): Use Var, Init, Enum and Save.
9209         * config/rs6000/t-rs6000
9210         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
9211         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9212         global_options_set.x_rs6000_cpu_index instead of
9213         rs6000_select[1].string.
9214         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9215         global_options_set.x_rs6000_cpu_index instead of
9216         rs6000_select[1].string.
9217
9218 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
9219
9220         * config.gcc (libgcc_tm_file): Define instead of including files
9221         from ../../libgcc/config/ in tm_file.
9222         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
9223         * configure: Regenerate.
9224         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
9225         libgcc_tm.h, cs-libgcc_tm.h): New.
9226         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
9227         (clean): Remove libgcc_tm.h.
9228         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
9229         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
9230         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
9231
9232 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
9233
9234         PR target/48896
9235         * config/avr/avr.c (avr_ret_register): Return unsigned int
9236         instead of int.
9237         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
9238         it to avr_libcall_value.
9239         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
9240         expand_expr.
9241         (avr_expand_binop_builtin): Ditto.
9242         (avr_expand_unop_builtin): Ditto.
9243
9244 2011-05-10  DJ Delorie  <dj@redhat.com>
9245
9246         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
9247         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
9248         * config/rx/rx.c (rx_align_for_label): Add label and
9249         uses_threshold parameters.  Do not align when the label is not
9250         used enough.
9251         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
9252
9253 2011-05-10  Richard Guenther  <rguenther@suse.de>
9254
9255         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
9256         a series of conversions and apply foldings similar to what
9257         fold-const does.
9258         (tree_ssa_forward_propagate_single_use_vars): Call it.
9259
9260 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
9261
9262         PR tree-optimization/48611
9263         PR tree-optimization/48794
9264         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
9265         referenced from RESX or EH_DISPATCH arguments.
9266
9267         PR debug/48928
9268         * dfp.c (decimal_to_decnumber): Handle conversion from
9269         dconst{1,2,m1,half}.
9270
9271 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9272
9273         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
9274         for !flag_prefer_avx128.
9275         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
9276
9277 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
9278
9279         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
9280         (fold_ternary_loc): Use expr_location_or.
9281
9282 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
9283
9284         PR debug/48853
9285         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
9286         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
9287         Pmode and mem_mode is not VOIDmode.
9288
9289 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
9290
9291         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
9292         TYPE_QUAL_RESTRICT): Convert to enum.
9293
9294 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9295
9296         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
9297         (const_pow2_1_to_8_operand): Ditto.
9298         (const_pow2_1_to_128_operand): Ditto.
9299         (const_pow2_1_to_32768_operand): Ditto.
9300         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
9301         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
9302         in insn constraint to check integer value of operand 3.
9303         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
9304
9305         (PINSR_MODE): New mode iterator.
9306         (sse2p4_1): New mode attribute.
9307         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
9308         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
9309         iterator.  Use const_int_operand instead of
9310         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
9311         exact_log2 in insn constraint to check integer value of operand 3.
9312
9313 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9314
9315         * config/i386/sse.md (blendbits): Remove mode attribute.
9316         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
9317         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
9318         Check integer value of operand 3 in insn constraint.
9319
9320 2011-05-09  Richard Guenther  <rguenther@suse.de>
9321
9322         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
9323         for diagnostics.
9324         (lto_symtab_merge): Likewise.  Do not register types here.
9325         (lto_symtab_merge_decls_2): Likewise.
9326         (lto_symtab_merge_decls_1): Likewise.
9327         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
9328         * gimple.c (enum gtc_mode): Declare.
9329         (gimple_types_compatible_p): Make static.
9330
9331 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9332
9333         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
9334         temporary register to match Pmode.
9335
9336 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9337
9338         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
9339         and *vec_concatv4si_1_avx.
9340
9341 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9342
9343         PR rtl-optimization/48927
9344         * ira-conflicts.c (commutative_constraint_p): Use
9345         recog_data.alternative_enabled_p to disable alternatives where
9346         "enabled" attribute is false.
9347         (get_dup_num): Ditto.
9348         * ira-lives.c (single_reg_class): Ditto.
9349         (ira_implicitly_set_insn_hard_regs): Ditto.
9350
9351 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
9352
9353         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
9354         (dataflow_set_preserve_mem_locs): Likewise.
9355
9356 2011-05-09  Philipp Thomas  <pth@suse.de>
9357
9358         * config/mep/mep.c (mep_validate_vliw): Syntax description
9359         should not be translated.
9360
9361 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
9362
9363         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
9364         * config/mips/mips-tables.opt: New file (generated).
9365         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
9366         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
9367         MIPS_ARCH_OPTION_NATIVE): Define.
9368         * config/mips/mips.c (mips_cpu_info_table): Move contents to
9369         mips-cpus.def.
9370         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
9371         mips_parse_cpu): Remove.
9372         (mips_cpu_info_from_opt, mips_default_arch): New.
9373         (mips_handle_option): Don't assert that global structures are in
9374         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
9375         (mips_option_override): Use new variables and functions to set
9376         state of these options.  Use strcmp to check for individual CPU names.
9377         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
9378         definition.
9379         * config/mips/mips.opt (march=): Use ToLower and Enum.
9380         (mips): Use ToLower, Enum and Var.
9381         (mtune=): Use ToLower and Enum.
9382         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
9383
9384 2011-05-08  Jan Hubicka  <jh@suse.cz>
9385
9386         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
9387         Arrange type pairs to be UID ordered.
9388         (gimple_lookup_type_leader): Make inline.
9389
9390 2011-05-09  Nick Clifton  <nickc@redhat.com>
9391
9392         PR target/48899
9393         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
9394         PROCESSOR_DEFAULT.
9395
9396         PR target/48897
9397         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
9398         variable 's'.
9399
9400 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
9401
9402         * combine.c (simplify_comparison): Abstract out parts into...
9403         (simplify_compare_const): ... new function.
9404         (try_combine): Generalize parallel arithmetic/compare combining
9405         to call simplify_compare_const() and CANONICALIZE_COMPARE().
9406
9407 2011-05-08  Jan Hubicka  <jh@suse.cz>
9408
9409         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
9410         (cgraph_create_virtual_clone): Call hooks once virtual clone
9411         is finished.
9412         * cgraph.h (cgraph_clone_node): Update prototype.
9413         * ipa-cp.c (ipcp_estimate_growth): Use
9414         estimate_ipcp_clone_size_and_time.
9415         * ipa-inline-transform.c (clone_inlined_nodes): Update.
9416         * lto-cgraph.c (input_node): Update.
9417         * ipa-inline.c (recursive_inlining): Update.
9418         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
9419         (evaluate_conditions_for_known_args): Break out from ...
9420         (evaluate_conditions_for_edge): ... here.
9421         (evaluate_conditions_for_ipcp_clone): New function.
9422         (inline_node_duplication_hook): Update clone summary based
9423         on parameter map.
9424         (estimate_callee_size_and_time): Rename to ...
9425         (estimate_node_size_and_time): take NODE instead of EDGE;
9426         take POSSIBLE_TRUTHS as argument.
9427         (estimate_callee_size_and_time): Update.
9428         (estimate_ipcp_clone_size_and_time): New function.
9429         (do_estimate_edge_time): Update.
9430
9431 2011-05-08  Richard Guenther  <rguenther@suse.de>
9432
9433         PR middle-end/48908
9434         PR middle-end/48905
9435         * expmed.c (expand_shift_1): Compute adjusted constant shift
9436         amount manually.
9437
9438 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
9439
9440         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
9441
9442 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
9443
9444         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
9445
9446 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
9447
9448         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
9449
9450 2011-05-07  Jan Hubicka  <jh@suse.cz>
9451
9452         * ipa-inline-transform.c (inline_call): Account when program size
9453         decreases.
9454         * ipa-inline.c (relative_time_benefit): New function.
9455         (edge_badness): Reorganize to be power 2 based; fix thinko when
9456         computing badness for negative growth; update comments to match
9457         reality; better dumps.
9458
9459 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
9460
9461         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
9462         type to bool and adjust comment.
9463         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
9464         (fold_mathfn_compare): Remove calls to global_bindings_p.
9465         (fold_inf_compare): Likewise.
9466         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
9467         * c-tree.h (global_bindings_p): Adjust prototype.
9468         * c-decl.c (global_bindings_p): Return bool and simplify.
9469
9470 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
9471
9472         PR tree-optimization/48837
9473         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
9474         when accumulator transformation is performed.
9475
9476 2011-05-06  Jan Hubicka  <jh@suse.cz>
9477
9478         * i386.h (ix86_tune_indices): Add
9479         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
9480         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
9481         * i386.c (initial_ix86_tune_features): Add
9482         X86_SOFTARE_PREFETCHING_BENEFICIAL.
9483         (software_prefetching_beneficial_p): Remove predicate.
9484         (ix86_option_override_internal): Use new macro.
9485
9486 2011-05-06  Jan Hubicka  <jh@suse.cz>
9487
9488         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
9489
9490 2011-05-06  Jan Hubicka  <jh@suse.cz>
9491
9492         * cgraph.c (cgraph_add_thunk): Create real function node instead
9493         of alias node; finalize it and mark needed/reachale; arrange visibility
9494         to be right and add it into the corresponding same comdat group list.
9495         (dump_cgraph_node): Dump thunks.
9496         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
9497         cgraph_function_with_gimple_body_p,
9498         cgraph_first_function_with_gimple_body,
9499         cgraph_next_function_with_gimple_body): New functions.
9500         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
9501         New macros.
9502         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
9503         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
9504         * cgraphunit.c (cgraph_finalize_function): Only look into possible
9505         devirtualization when optimizing.
9506         (verify_cgraph_node): Verify thunks.
9507         (cgraph_analyze_function): Analyze thunks.
9508         (cgraph_mark_functions_to_output): Output thunks only in combination
9509         with function they are assigned to.
9510         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
9511         alias into normal node.
9512         (assemble_thunks): New functoin.
9513         (cgraph_expand_function): Use it.
9514         * lto-cgraph.c (lto_output_node): Stream thunks.
9515         (input_overwrite_node): Stream in thunks.
9516         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
9517         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
9518         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
9519         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
9520         (inline_analyze_function): Do not care about thunk jump functions.
9521         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
9522         * ipa-prop.c (ipa_prop_write_jump_functions): Use
9523         cgraph_function_with_gimple_body_p.
9524         * passes.c (do_per_function_toporder): Use
9525         cgraph_function_with_gimple_body_p.
9526         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
9527         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
9528         (function_called_by_processed_nodes_p): Likewise.
9529
9530 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
9531
9532         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
9533         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
9534         entries.
9535         (mabi=): Replace with separate entries for mabi=altivec,
9536         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
9537         mabi=ieeelongdouble and mabi=ibmlongdouble.
9538         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
9539         check for -mabi=spe without SPE ABI support here.
9540         (rs6000_handle_option): Replace OPT_mabi_ handling with
9541         OPT_mabi_altivec and OPT_mabi_spe handling.
9542
9543 2011-05-06  Cary Coutant  <ccoutant@google.com>
9544
9545         * dwarf2out.c (contains_subprogram_definition): New function.
9546         (should_move_die_to_comdat): Call it.
9547
9548 2011-05-06  Jeff Law  <law@redhat.com>
9549
9550         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
9551         remove_ctrl_stmt_and_useless_edges.
9552         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
9553         (fixup_template_block, thread_single_edge): Likewise.
9554         (mark_threaded_blocks): Use THREAD_TARGET.
9555
9556 2011-05-06  Alan Modra  <amodra@gmail.com>
9557
9558         PR target/48900
9559         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
9560         const0_rtx as the arg to the dummy __tls_get_addr libcall.
9561
9562 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
9563
9564         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
9565         constraint modifier to "r".
9566
9567 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
9568
9569         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
9570         fall through for OPT_mcmodel_.
9571
9572 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9573
9574         * config/s390/s390.c (s390_asm_trampoline_template): Comment
9575         instruction sizes.
9576         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
9577
9578 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9579
9580         PR target/47930
9581         * config/arm/arm.opt (marm): Document it.
9582         (mthumb): Reject negative variant.
9583
9584 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
9585
9586         PR target/48898
9587         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
9588         Fix typo in "ccvt" variable name.
9589
9590 2011-05-06  Tristan Gingold  <gingold@adacore.com>
9591
9592         PR target/48895
9593         * config/vms/vms-ar.c (main): Remove cwd variable.
9594
9595 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
9596
9597         PR debug/48902
9598         * var-tracking.c (prepare_call_arguments): Move else before #endif.
9599
9600 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
9601
9602         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
9603         * gimplify.c (gimplify_switch_expr): Likewise.
9604         * omp-low.c (expand_omp_sections): Likewise.
9605         * tree-eh.c (lower_try_finally_switch): Likewise.
9606         (lower_eh_dispatch): Likewise.
9607         * tree.h (build_case_label): Declare.
9608         * tree.c (build_case_label): Define.
9609
9610 2011-05-05  Jason Merrill  <jason@redhat.com>
9611
9612         PR c++/40975
9613         * tree-inline.c (copy_tree_r): Use copy_statement_list.
9614         (copy_statement_list): Don't recurse.
9615         * stor-layout.c (copy_self_referential_tree_r): Don't allow
9616         STATEMENT_LIST.
9617
9618 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
9619
9620         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
9621         through from -mfpu= handling.
9622         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
9623
9624 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
9625
9626         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
9627         POST_MODIFY.
9628
9629 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
9630
9631         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
9632         for 11.31.
9633         (hppa[12]*-*-hpux11*): Ditto.
9634         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
9635         * config/ia64/hpux-unix2003.h: New.
9636         * config/pa/pa-hpux1131.opt: New.
9637         * config/pa/pa-hpux1131.h: New.
9638         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
9639         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
9640         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
9641
9642 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
9643
9644         PR debug/48853
9645         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
9646         instead of mode as 3rd argument to recursive call.
9647         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
9648         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
9649         VOIDmode.
9650         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
9651         don't give up if mode is Pmode and mem_mode is not VOIDmode.
9652         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
9653         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
9654
9655 2011-05-05  Julian Brown  <julian@codesourcery.com>
9656
9657         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
9658         parenthesis in D-register case.
9659
9660 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
9661
9662         * opt-functions.awk (var_type_struct): Handle Enum options.
9663         * optc-gen.awk: Don't check range of variables of character type.
9664         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
9665         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
9666         rs6000_sdata_name, rs6000_explicit_options): Remove.
9667         (rs6000_option_override_internal): Check for -malign-power here.
9668         Use global_options_set instead of rs6000_explicit_options.
9669         (rs6000_parse_fpu_option): Remove.
9670         (rs6000_handle_option): Access variables via opts and opts_set
9671         pointers.  Use error_at and warning_at.  Add fall-through
9672         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
9673         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
9674         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
9675         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
9676         here.  Don't use rs6000_parse_fpu_option.
9677         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
9678         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
9679         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
9680         (mrecip=): Use Var.
9681         (mspe): Use Var and Save.
9682         (mtraceback=): Use Enum and Var.
9683         (rs6000_traceback_type): New Enum and EnumValue entries.
9684         (mfloat-gprs=): Use Enum, Var and Save.
9685         (rs6000_float_gprs): New Enum and EnumValue entries.
9686         (mlong-double-): use Var and Save.
9687         (msched-costly-dep=, minsert-sched-nops=): Use Var.
9688         (malign-): Use Enum and Var.
9689         (rs6000_alignment_flags): New Enum and EnumValue entries.
9690         (mfpu=): Use Enum.
9691         (fpu_type_t): New Enum and EnumValue entries.
9692         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9693         global_options_set instead of rs6000_explicit_options.
9694         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9695         global_options_set instead of rs6000_explicit_options.
9696         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9697         global_options_set instead of rs6000_explicit_options.
9698         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9699         global_options_set instead of rs6000_explicit_options.
9700         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
9701         global_options_set instead of rs6000_explicit_options.
9702         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
9703         global_options_set instead of rs6000_explicit_options.
9704         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
9705         definition.
9706         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
9707         global_options_set instead of rs6000_explicit_options.
9708         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
9709         (rs6000_cmodel): New Enum and EnumValue entries.
9710         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
9711         global_options_set instead of rs6000_explicit_options.
9712         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
9713         (mtls-size=): Use Enum and Var.
9714         (rs6000_tls_size): New Enum and EnumValue entries.
9715
9716 2011-05-05  Michael Matz  <matz@suse.de>
9717
9718         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
9719         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
9720         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
9721         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
9722         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
9723         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
9724         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
9725         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
9726         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
9727         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
9728         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
9729         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
9730         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
9731         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
9732         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
9733         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
9734
9735 2011-05-05  Richard Guenther  <rguenther@suse.de>
9736
9737         * expmed.c (expand_variable_shift): Rename to ...
9738         (expand_shift_1): ... this.  Take an expanded shift amount.
9739         For rotates recurse directly not building trees for the shift amount.
9740         (expand_variable_shift): Wrap around expand_shift_1.
9741         (expand_shift): Adjust.
9742
9743 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
9744
9745         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
9746
9747 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
9748
9749         * tree.h (get_pending_sizes): Remove prototype.
9750         (put_pending_size): Likewise.
9751         (put_pending_sizes): Likewise.
9752         * stor-layout.c (pending_sizes): Delete.
9753         (get_pending_sizes): Likewise.
9754         (put_pending_size): Likewise.
9755         (put_pending_sizes): Likewise.
9756         (variable_size): Do not call put_pending_size and tidy up.
9757         * function.h (struct function): Remove dont_save_pending_sizes_p.
9758         * lto-streamer-in.c (input_function): Do not stream it.
9759         * lto-streamer-out.c (output_function): Likewise.
9760         * tree-inline.c (initialize_cfun): Do not copy it.
9761         * c-decl.c (store_parm_decls): Do not set it.
9762         * omp-low.c (create_task_copyfn): Likewise.
9763         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9764
9765 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
9766
9767         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
9768         conditions.
9769         (*movdf_internal): Ditto.
9770         (*movdf_internal_nointeger): Ditto.
9771         (*movsf_internal): Ditto.
9772
9773 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
9774
9775         * c-decl.c (finish_decl): Don't call get_pending_sizes.
9776         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
9777         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
9778         (c_variable_size): Remove.
9779         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
9780         call put_pending_sizes.
9781         (get_parm_info): Add parameter expr.  Use it to set
9782         arg_info->pending_sizes.
9783         (store_parm_decls): Use arg_info->pending_sizes instead or calling
9784         get_pending_sizes.
9785         * c-parser.c (c_parser_parms_declarator): Update call to
9786         c_parser_parms_list_declarator.
9787         (c_parser_parms_list_declarator): Take parameter expr.  Update
9788         call to push_parm_decl.  Update recursive call.  Don't call
9789         get_pending_sizes.  Update calls to get_parm_info.
9790         (c_parser_objc_method_definition): Update calls to
9791         c_parser_objc_method_decl and objc_start_method_definition.
9792         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
9793         (c_parser_objc_method_decl): Add parameter expr.  Update call to
9794         grokparm.
9795         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
9796         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
9797         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
9798
9799 2011-05-05  Michael Hope  <michael.hope@linaro.org>
9800
9801         PR pch/45979
9802         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
9803         __ARM_EABI__ hosts.
9804
9805 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9806
9807         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
9808         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
9809         (spu_output_mi_thunk): New function.
9810
9811 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9812
9813         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
9814         targetm.asm_out.print_operand.
9815         * config/sol2.c: Include target.h.
9816
9817 2011-05-04  Jan Hubicka  <jh@suse.cz>
9818
9819         * ipa-inline.c (reset_edge_caches): New function.
9820         (update_caller_keys): Add check_inlinablity_for; do not
9821         reset edge caches; remove now unnecesary loop.
9822         (update_callee_keys): Add comments; reset node_growth_cache of callee.
9823         (update_all_callee_keys): Likewise.
9824         (inline_small_functions): Sanity check cache; update code
9825         recomputing it.
9826
9827 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
9828
9829         PR rtl-optimization/47612
9830         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
9831         as the last insn of the sequence to be moved.
9832
9833 2011-05-04  Tobias Burnus  <burnus@net-b.de>
9834
9835         PR fortran/48864
9836         * doc/invoke.texi (Ofast): Document that it
9837         enables Fortran's -fno-protect-parens.
9838
9839 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
9840
9841         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
9842
9843 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
9844
9845         * stor-layout.c (variable_size): Do not issue errors.
9846
9847 2011-05-04  Richard Guenther  <rguenther@suse.de>
9848
9849         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
9850         for array-ref indices.
9851         (tree_coverage_counter_addr): Likewise.
9852         (build_fn_info_type): Use size_int for index types.
9853         (build_gcov_info): Likewise.
9854
9855 2011-05-04  Richard Guenther  <rguenther@suse.de>
9856
9857         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
9858         to build_int_cst.
9859         * c-typeck.c (really_start_incremental_init): Use bitsize_int
9860         for constructor indices.
9861         (push_init_level): Likewise.
9862
9863 2011-05-04  Richard Guenther  <rguenther@suse.de>
9864
9865         * explow.c (promote_mode): Move variable declarations before code.
9866
9867 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
9868
9869         * tree.h (build_function_type_array): Declare.
9870         (build_varargs_function_type_array): Declare.
9871         (build_function_type_vec, build_varargs_function_type_vec): Define.
9872         * tree.c (build_function_type_array_1): New function.
9873         (build_function_type_array): New function.
9874         (build_varargs_function_type_array): New function.
9875
9876 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
9877
9878         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
9879         before setting STMT_VINFO_TYPE.
9880
9881 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9882
9883         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
9884         instead of spu_pass_by_reference.
9885
9886 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9887
9888         * calls.c (emit_library_call_value_1): Invoke
9889         promote_function_mode hook on libcall arguments.
9890         * explow.c (promote_function_mode, promote_mode): Handle TYPE
9891         argument being NULL.
9892         * targhooks.c (default_promote_function_mode): Lisewise.
9893         * config/s390/s390.c (s390_promote_function_mode): Likewise.
9894         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
9895
9896         * doc/tm.texi: Document that TYPE argument might be NULL.
9897
9898 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
9899
9900         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
9901
9902 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
9903
9904         From Bernd Schmidt
9905         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
9906
9907 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9908
9909         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
9910         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
9911         Move ...
9912         * mips-tfile.c: ... here.
9913         Don't include coretypes.h, tm.h, filenames.h.
9914         (saber_stop): Remove definition and all calls.
9915         [__SABER__]: Remove.
9916         (__LINE__): Remove default.
9917         (Size_t, Ptrdiff_t): Remove definitions.
9918         Replace by size_t, ptrdiff_t.
9919         [!MIPS_DEBUGGING_INFO]: Remove.
9920         (SHASH_SIZE, THASH_SIZE): Remove defaults.
9921         (progname): Add const.
9922         (STATIC): Remove.
9923         Replace all uses by static.
9924         (ALIGN_SYMTABLE_OFFSET): Remove default.
9925         * mips-tdump.c: Don't include coretypes.h, tm.h.
9926         Remove !MIPS_IS_STAB guard.
9927         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
9928         $(TM_H), filenames.h dependencies.
9929         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
9930
9931 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
9932
9933         From Jie Zhang
9934         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
9935         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
9936
9937 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
9938
9939         From Bernd Schmidt
9940         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
9941         account and save/restore RETS.
9942         (PROFILE_BEFORE_PROLOGUE): Define.
9943         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
9944         the push insn to use predecrement.
9945
9946 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
9947
9948         From Jie Zhang
9949         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
9950
9951 2011-05-04  Nick Clifton  <nickc@redhat.com>
9952
9953         * config/mn10300/mn10300.c: Include cfgloop.h.
9954         (DUMP): New macro.
9955         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
9956         Lcc or a FLcc insn into the instruction stream.
9957         (mn10300_block_contains_call): New function.  Returns true if the
9958         given basic block contains a CALL insn.
9959         (mn10300_loop_contains_call_insn): New function.  Returns true if
9960         the given loop contains a CALL insn.
9961         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
9962         to use the SETLB and Lcc or FLcc insns.
9963         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
9964         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
9965         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
9966         disable the SETLB optimization.
9967         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
9968         __SETLB__ or __NO_SETLB__.
9969         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
9970         (movsf_internal): Handle MDR register.
9971         (cmpsi): Make visible.
9972         (setlb): New pattern.
9973         (Lcc): New pattern.
9974         (FLcc): New pattern.
9975
9976 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
9977
9978         PR target/48860
9979         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
9980         for reg<->xmm moves.
9981         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
9982         (vec_concatv2di_rex64_sse): Ditto.
9983         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
9984         (*vec_extractv2di_1_rex64): Ditto.
9985
9986         Revert:
9987         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
9988
9989         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
9990         reg<->xmm moves.
9991         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
9992
9993 2011-05-04  Richard Guenther  <rguenther@suse.de>
9994
9995         * tree.h (int_const_binop): Remove notrunc argument.
9996         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
9997         create integer constants that are properly truncated.
9998         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
9999         (const_binop): Remove zero notrunc argument to int_const_binop.
10000         (size_binop_loc): Likewise.
10001         (fold_div_compare): Likewise.
10002         (maybe_canonicalize_comparison_1): Likewise.
10003         (fold_comparison): Likewise.
10004         (fold_binary_loc): Likewise.
10005         (multiple_of_p): Likewise.
10006         * expr.c (store_constructor): Likewise.
10007         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
10008         (maybe_fold_stmt_addition): Likewise.
10009         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
10010         * stor-layout.c (layout_type): Likewise.
10011         * tree-data-ref.c (tree_fold_divides_p): Likewise.
10012         * tree-sra.c (build_ref_for_offset): Likewise.
10013         (build_user_friendly_ref_for_offset): Likewise.
10014         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
10015         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
10016         * tree-ssa-loop-niter.c (inverse): Likewise.
10017         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
10018         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
10019         * tree-switch-conversion.c (check_range): Likewise.
10020         (build_constructors): Likewise.
10021         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
10022         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
10023         (extract_range_from_assert): Likewise.
10024         (vrp_int_const_binop): Likewise.
10025         (extract_range_from_binary_expr): Likewise.
10026         (extract_range_from_unary_expr): Likewise.
10027         (check_array_ref): Likewise.
10028         (find_case_label_range): Likewise.
10029         (simplify_div_or_mod_using_ranges): Likewise.
10030         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
10031         comparing case labels for merging.
10032
10033 2011-05-03  Mark Wielaard  <mjw@redhat.com>
10034
10035         * dwarf2out.c (debug_str_hash_forced): Removed.
10036         (gen_label_for_indirect_string): Removed.
10037         (get_debug_string_label): Removed.
10038         (AT_string_form): Generate label directly.
10039         (output_indirect_string): Test indirect_string_node for
10040         DW_FORM_strp instead of checking label and refcount.
10041         (prune_indirect_string): Removed.
10042         (prune_unused_types): Don't check debug_str_hash_forced or
10043         call prune_indirect_string.
10044
10045 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
10046
10047         PR other/48093
10048         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
10049
10050 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
10051
10052         PR debug/47994
10053         PR debug/47919
10054         * combine.c (try_combine): Skip debug insns at m_split tests.
10055
10056 2011-04-26  Mark Wielaard  <mjw@redhat.com>
10057
10058         PR42288
10059         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
10060         when info_section_emitted.
10061
10062 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
10063
10064         * config/mips/mips-opts.h: New.
10065         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
10066         to mips-opts.h.
10067         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
10068         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
10069         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
10070         via opts pointer.
10071         * config/mips/mips.h (enum mips_code_readable_setting): Move to
10072         mips-opts.h.
10073         (mips_abi, mips_code_readable): Don't declare.
10074         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
10075         (mabi=): Use Enum and Var.
10076         (mips_abi): New Enum and EnumValue entries.
10077         (mcode-readable=): Use Enum and Var.
10078         (mips_code_readable_setting): New Enum and EnumValue entries.
10079         (mr10k-cache-barrier=): Use Enum and Var.
10080         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
10081
10082 2011-05-03  Jan Hubicka  <jh@suse.cz>
10083
10084         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
10085         replace hash by pointer map.
10086         (cgraph_node_set_element_def, cgraph_node_set_element,
10087         const_cgraph_node_set_element, varpool_node_set_element_def,
10088         varpool_node_set_element, const_varpool_node_set_element): Remove.
10089         (free_cgraph_node_set, free_varpool_node_set): New function.
10090         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
10091         * tree-emutls.c: Free varpool node set.
10092         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
10093         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
10094         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
10095         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
10096         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
10097         Move here from ipa.c; implement using pointer_map
10098         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
10099         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
10100         debug_cgraph_node_set, varpool_node_set_new,
10101         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
10102         dump_varpool_node_set, debug_varpool_node_set):
10103         Move to ipa-uitls.c.
10104         * passes.c (ipa_write_summaries): Update.
10105
10106 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
10107
10108         From Mike Frysinger:
10109         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
10110         bf542/bf544/bf547/bf548/bf549.
10111
10112 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
10113
10114         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
10115
10116 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
10117
10118         From Bernd Schmidt:
10119         * config/bfin/bfin.md (MOVCC): New mode_macro.
10120         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
10121         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
10122         comments from generated assembly.
10123
10124 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
10125
10126         From Bernd Schmidt
10127         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
10128         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
10129         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
10130         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
10131         * config/bfin/lib1funcs.asm (___muldi3): New function.
10132
10133 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10134
10135         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
10136         build_function_type_list instead of build_function_type.
10137         Rearrange initialization of `args' to do so.
10138
10139 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10140
10141         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
10142         instead of build_function_type.
10143
10144 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10145
10146         * config/rs6000/rs6000.c (spe_init_builtins): Call
10147         build_function_type_list instead of build_function_type.
10148         (paired_init_builtins, altivec_init_builtins): Likewise.
10149         (builtin_function_type): Likewise.
10150
10151 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10152
10153         * config/sh/sh.c (sh_media_init_builtins): Call
10154         build_function_type_list instead of build_function_type.
10155
10156 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10157
10158         * config/sparc/sparc.c (sparc_file_end): Call
10159         build_function_type_list instead of build_function_type.
10160
10161 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10162
10163         * config/alpha/alpha.c (alpha_init_builtins): Call
10164         build_function_type_list instead of build_function_type.
10165
10166 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10167
10168         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
10169         build_function_type_list instead of build_function_type.
10170
10171 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10172
10173         * config/iq2000/i2000.c (iq2000_init_builtins): Call
10174         build_function_type_list instead of build_function_type.
10175         Delete `endlink' variable.
10176
10177 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10178
10179         * config/avr/avr.c (avr_init_builtins): Call
10180         build_function_type_list instead of build_function_type.
10181
10182 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10183
10184         * config/picochip/picochip.c (picochip_init_builtins): Call
10185         build_function_type_list instead of build_function_type.
10186         Delete `endlink' variable.
10187
10188 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10189
10190         * config/bfin/bfin.c (bfin_init_builtins): Call
10191         build_function_type_list instead of build_function_type.
10192
10193 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
10194
10195         From Bernd Schmidt
10196         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
10197         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
10198
10199 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
10200
10201         From Jie Zhang:
10202         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
10203         libbffastfp overrides libgcc when -mfast-fp.
10204
10205 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
10206
10207         Originally from Bernd Schmidt
10208         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
10209         * config/bfin/bfin.c (override_options): Test it and error if
10210         TARGET_FDPIC.
10211
10212 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
10213
10214         Originally From Bernd Schmidt
10215         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
10216         FD-PIC.
10217
10218 2011-05-03  Jeff Law  <law@redhat.com>
10219
10220         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
10221         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
10222         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
10223         than accessing AUX field directly.  Free the AUX field before
10224         clearing it.
10225         (thread_block, thread_through_loop_header): Likewise.
10226         (thread_single_edge, mark_threaded_blocks): Likewise.
10227         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
10228         (register_jump_thread): Do not attempt to thread to a NULL edge.
10229
10230 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
10231
10232         * function.c (init_function_start): Call decide_function_section.
10233         * varasm.c (decide_function_section): New function.
10234         (assemble_start_function): When not using
10235         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
10236         or first_function_block_is_cold.
10237         * rtl.h (decide_function_section): Declare.
10238
10239 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
10240             Jakub Jelinek  <jakub@redhat.com>
10241
10242         PR target/48774
10243         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
10244         only succeed if req_mode is the same as set_mode.
10245
10246 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
10247
10248         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
10249         * genemit.c (gen_exp): Handle RETURN.
10250         * emit-rtl.c (verify_rtx_sharing): Likewise.
10251         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
10252         * rtl.c (copy_rtx): RETURN is shared.
10253         * rtl.h (enum global_rtl_index): Add GR_RETURN.
10254         (ret_rtx): New.
10255         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
10256         * config/s390/s390.c (s390_emit_epilogue): Likewise.
10257         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
10258         * config/cris/cris.c (cris_expand_return): Likewise.
10259         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
10260         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
10261         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
10262         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
10263         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
10264         Likewise.
10265         * config/v850/v850.c (expand_epilogue): Likewise.
10266         * config/bfin/bfin.c (bfin_expand_call): Likewise.
10267         * config/arm/arm.md (epilogue): Likewise.
10268         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
10269         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
10270         variable to ret_reg.
10271
10272 2011-05-03  Richard Guenther  <rguenther@suse.de>
10273
10274         PR lto/48846
10275         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
10276         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
10277         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
10278
10279 2011-05-03  Richard Guenther  <rguenther@suse.de>
10280
10281         * c-decl.c (grokdeclarator): Instead of looking at
10282         TREE_OVERFLOW check if the constant fits in the index type.
10283
10284 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
10285
10286         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
10287         (vec_store_lanes<mode><mode>): Likewise.
10288
10289 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
10290
10291         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
10292         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
10293         convert_optab_index values.
10294         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
10295         * genopinit.c (optabs): Initialize the new optabs.
10296         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
10297         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
10298         (expand_STORE_LANES): New functions.
10299         * tree.h (build_array_type_nelts): Declare.
10300         * tree.c (build_array_type_nelts): New function.
10301         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
10302         (vect_model_load_cost): Likewise.
10303         (vect_store_lanes_supported, vect_load_lanes_supported)
10304         (vect_record_strided_load_vectors): Declare.
10305         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
10306         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
10307         (vect_transform_strided_load): Split out statement recording into...
10308         (vect_record_strided_load_vectors): ...this new function.
10309         * tree-vect-stmts.c (create_vector_array, read_vector_array)
10310         (write_vector_array, create_array_ref): New functions.
10311         (vect_model_store_cost): Add store_lanes_p argument.
10312         (vect_model_load_cost): Add load_lanes_p argument.
10313         (vectorizable_store): Try to use store-lanes functions for
10314         interleaved stores.
10315         (vectorizable_load): Likewise load-lanes and loads.
10316         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
10317         to vect_model_store_cost.
10318         (vect_build_slp_tree): Likewise vect_model_load_cost.
10319
10320 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
10321
10322         * hooks.h (hook_bool_mode_uhwi_false): Declare.
10323         * hooks.c (hook_bool_mode_uhwi_false): New function.
10324         * target.def (array_mode_supported_p): New hook.
10325         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
10326         * doc/tm.texi: Regenerate.
10327         * stor-layout.c (mode_for_array): New function.
10328         (layout_type): Use it.
10329         * config/arm/arm.c (arm_array_mode_supported_p): New function.
10330         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
10331
10332 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
10333
10334         PR target/48723
10335         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
10336         for -fstack-check if the size to allocate is negative.
10337
10338 2011-05-02  Lawrence Crowl  <crowl@google.com>
10339
10340         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
10341         (timevar_cond_start): New for starting a timer only when it is not
10342         already running.
10343         (timevar_cond_stop): New for stopping a timer when it was not already
10344         running.
10345
10346         * timevar.c (timevar_stop): Enable start/stop timers to start again.
10347         (timevar_cond_start): New as above.
10348         (timevar_cond_stop): New as above.
10349
10350         * timevar.def: Add start/stop timers for compiler phases,
10351         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
10352         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
10353         and TV_PHASE_FINALIZE.
10354         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
10355         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
10356         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
10357         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
10358         Make unused TV_OVERLOAD into a start/stop timer.
10359
10360         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
10361         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
10362         to indicate that they are start/stop timers.
10363
10364         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
10365         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
10366         Move initialization to do_compile.
10367         (do_compile): Add initialization from above.
10368         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
10369
10370         * c-decl.c (c_write_global_declarations): Add start/stop of
10371         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
10372
10373         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
10374         or TV_PARSE_INLINE, as appropriate.
10375         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
10376         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
10377
10378 2011-05-02  Jason Merrill  <jason@redhat.com>
10379
10380         PR c++/40975
10381         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
10382
10383 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
10384
10385         PR c/35445
10386         * c-decl.c (finish_decl): Only create a composite if the types are
10387         compatible.
10388
10389 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
10390
10391         * config/fr30/fr30-protos.h (Mmode): Don't define.
10392         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
10393         definition where used.
10394         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
10395         define.  Expand definitions where used.
10396         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
10397         Expand definitions where used.
10398         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
10399         rx_function_arg, rx_function_arg_advance,
10400         rx_function_arg_boundary): Expand definitions of those macros.
10401         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
10402         definition where used.
10403
10404 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
10405
10406         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
10407         reg<->xmm moves.
10408         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
10409         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
10410         with *movv2sf_internal_rex64_avx.
10411         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
10412         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
10413         Use %v prefix in insn mnemonic to handle TARGET_AVX.
10414         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
10415         "vex" in "prefix" attribute calculation.
10416         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
10417
10418 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
10419
10420         PR target/47951
10421         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
10422         inputs match the output.
10423
10424 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
10425
10426         PR target/47955
10427         * config/m68k/m68k.c (m68k_expand_prologue): Set
10428         current_function_static_stack_size.
10429
10430 2011-05-02   Jan Hubicka  <jh@suse.cz>
10431
10432         * lto-streamer.c (lto_streamer_cache_insert_1,
10433         lto_streamer_cache_lookup, lto_streamer_cache_create,
10434         lto_streamer_cache_delete): Use pointer map instead of hashtable.
10435         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
10436
10437 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
10438
10439         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
10440         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
10441         config/m68k/t-opts: New files.
10442         * config/m68k/m68k-tables.opt: New file (generated).
10443         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
10444         extra_options and m68k/t-opts to tmake_file.
10445         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
10446         (all_isas): Initialize using m68k-isas.def.
10447         (all_microarchs): Initialize using m68k-microarchs.def.
10448         (m68k_find_selection): Remove.
10449         (m68k_handle_option): Don't assert that global structures are in
10450         use.  Use error_at.  Access variables via opts pointer.  Don't
10451         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
10452         directly for -m68020-40 and -m68020-60.
10453         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
10454         m68k_tune_entry here.
10455         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
10456         to m68k-opts.h.
10457         (m68k_library_id_string): Remove declaration.
10458         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
10459         (m68k_library_id_string): New Variable.
10460         (march=, mcpu=, mtune=): Use Enum and Var.
10461
10462 2011-05-02  Richard Guenther  <rguenther@suse.de>
10463
10464         * varasm.c (output_constructor_regular_field): Compute zero-based
10465         index with double-ints.  Make sure to ICE instead of producing
10466         wrong code.
10467         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
10468         in asserts.  Properly use a signed type.
10469
10470 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
10471
10472         * config/i386/sse.md (V): New mode iterator.
10473         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
10474         TARGET_SSE2.
10475         (V_256): Rename from AVX256MODE.
10476         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
10477         condition to all users.
10478         (VF1): Ditto.
10479         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
10480         condition to all users.
10481         (VF_128): Make V4SF mode unconditional.
10482         (VF_256): Rename from AVX256MODEF2P.
10483         (VI4F_128): Rename from SSEMODE4S.
10484         (VI8F_128): Rename from SSEMODE2D.
10485         (VI4F_256): Rename from AVX256MODE8P.
10486         (VI8F_256): Rename from AVX256MODE4P.
10487         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
10488         (ssescalarmodesuffix): Remove SF and DF modes.
10489         (SSEMODE124): Remove.
10490         (SSEMODE1248): Ditto.
10491         (SSEMODEF2P): Ditto.
10492         (AVXMODEF2P): Ditto.
10493         (AVXMODEFDP): Ditto.
10494         (AVXMODEFSP): Ditto.
10495         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
10496         unconditional.
10497         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
10498         unconditional.
10499         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
10500         xop_pcmov_<mode>256.  Use V mode iterator.
10501
10502         Adjust RTX patterns globally for renamed mode attributes.
10503
10504 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10505
10506         * haifa-sched.c (sched_emit_insn): Emit insn before first
10507         non-scheduled insn.  Inform back-end about new insn.  Add
10508         new insn to scheduled_insns list.
10509
10510 2011-05-02  Richard Guenther  <rguenther@suse.de>
10511
10512         PR tree-optimization/48822
10513         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
10514         (process_scc): Indicate which iteration we start.
10515
10516 2011-05-02  Jan Hubicka  <jh@suse.cz>
10517
10518         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
10519         (lto_section_overrun): New.
10520         * lto-section-out.c (append_block): Rename to ...
10521         (lto_append_block): ... this one; export.
10522         (lto_output_1_stream): Move lto lto-streamer.h
10523         (lto_output_data_stream): Update.
10524         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
10525         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
10526         functions.
10527
10528 2011-05-02  Richard Guenther  <rguenther@suse.de>
10529
10530         * tree.c (tree_code_counts): New global array.
10531         (record_node_allocation_statistics): Count individual tree codes.
10532         (dump_tree_statistics): Dump individual code stats.
10533
10534 2011-05-01  Jan Hubicka  <jh@suse.cz>
10535
10536         * ipa-inline.c (caller_growth_limits): Fix thinko when
10537         looking for largest stack frame.
10538         * ipa-inline.h (dump_inline_summary): Declare.
10539         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
10540         on stack usage.
10541         (dump_inline_summary): Export.
10542         (debug_inline_summary): Declare as DEBUG_FUNCTION.
10543
10544 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
10545
10546         * reginfo.c (memory_move_cost): Change rclass argument type form
10547         'enum reg_class' to reg_class_t.
10548         * reload.h (memory_move_cost): Update prototype.
10549         * postreload.c reload_cse_simplify_set): Change type dclass var to
10550         reg_class_t.
10551         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
10552         Update prototype.
10553         (ira_allocate_and_set_costs): Change aclass argument type form
10554         'enum reg_class' to reg_class_t.
10555         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
10556         Change aclass argument type to reg_class_t.
10557         (update_conflict_hard_reg_costs): Change type aclass and pref vars
10558         to reg_class_t.
10559         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
10560         memory_move_cost call.
10561
10562         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
10563         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
10564         Change type tmp var to reg_class_t.
10565
10566 2011-04-30  Jan Hubicka  <jh@suse.cz>
10567
10568         * ipa-inline.c (can_inline_edge_p): Disregard limits when
10569         inlining into function with flatten attribute.
10570         (want_inline_small_function_p): Be more realistic about inlining
10571         cold calls where callee size grows.
10572
10573 2011-04-30  Jan Hubicka  <jh@suse.cz>
10574
10575         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
10576         flags.
10577
10578 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
10579
10580         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
10581         PRINT_OPERAND_PUNCT_VALID_P): Remove.
10582         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
10583         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
10584         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10585         (print_operand): Rename to...
10586         (sparc_print_operand): ...this. Make static. Adjust
10587         sparc_print_operand function call.
10588         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
10589         functions.
10590
10591 2011-04-30  Jan Hubicka  <jh@suse.cz>
10592
10593         PR middle-end/48752
10594         * ipa-inline.c (early_inliner): Disable when doing late
10595         addition of function.
10596
10597 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
10598
10599         * dwarf2out.c (get_address_mode): New inline.
10600         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
10601         if not dwarf_strict emit
10602         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
10603         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
10604         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
10605         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
10606         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
10607         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
10608         mem_loc_descriptor callers.
10609         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
10610         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
10611         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
10612         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
10613         (base_types): New variable.
10614         (get_base_type_offset, calc_base_type_die_sizes,
10615         base_type_for_mode, mark_base_types, base_type_cmp,
10616         move_marked_base_types): New functions.
10617         (calc_die_sizes): Assert that die_offset is 0 or equal to
10618         next_die_offset.
10619         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
10620         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
10621         callers.  If not dwarf_strict, call mem_loc_descriptor even for
10622         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
10623         (gen_subprogram_die): Don't give up on call site parameters
10624         with non-integral or large integral modes.  Adjust
10625         mem_loc_descriptor callers.
10626         (prune_unused_types): Call prune_unused_types_mark on base_types
10627         vector entries.
10628         (resolve_addr): Call mark_base_types.
10629         (dwarf2out_finish): Call move_marked_base_types.
10630
10631         PR tree-optimization/48809
10632         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
10633         type.
10634         (gen_inbound_check): Don't compute index_expr - range_min in utype
10635         again, instead reuse SSA_NAME initialized in build_arrays.
10636         Remove two useless gsi_for_stmt calls.
10637
10638 2011-04-29  Jeff Law  <law@redhat.com>
10639
10640         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
10641
10642 2011-04-29  Martin Jambor  <mjambor@suse.cz>
10643
10644         * cgraph.h (cgraph_postorder): Remove declaration.
10645         * ipa-utils.h (ipa_free_postorder_info): Declare.
10646         (ipa_reverse_postorder): Likewise.
10647         * cgraphunit.c: Include ipa-utils.h.
10648         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
10649         * ipa-inline.c: Include ipa-utils.h.
10650         (ipa_inline): Update call to ipa_reverse_postorder.
10651         * ipa-pure-const.c (propagate_pure_const): Update call to
10652         ipa_reduced_postorder and ipa_print_order.  Call
10653         ipa_free_postorder_info to clean up.
10654         (propagate_nothrow): Likewise.
10655         * ipa-reference.c (propagate): Removed a useless call to
10656         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
10657         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
10658         * ipa.c: Include ipa-utils.h.
10659         (ipa_profile): Update call to ipa_reverse_postorder.
10660         (cgraph_postorder): Moved to...
10661         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
10662         (ipa_utils_print_order): Renamed to ipa_print_order.
10663         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
10664         comments.
10665         (ipa_free_postorder_info): New function.
10666         * passes.c: Include ipa-utils.h.
10667         (do_per_function_toporder): Update call to ipa_reverse_postorder.
10668         (ipa_write_summaries): Likewise.
10669         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
10670         (cgraphunit.o): Likewise.
10671         (ipa.o): Likewise.
10672         (ipa-inline.o): Likewise.
10673
10674 2011-04-29  Jan Hubicka  <jh@suse.cz>
10675
10676         * gcc.dg/tree-ssa/inline-10.c: New testcase.
10677         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
10678         * ipa-inline.h (clause_t): Turn into unsigned int.
10679         * ipa-inline-analysis.c (add_clause): Do more simplification.
10680         (and_predicates): Shortcut more cases.
10681         (predicates_equal_p): Move forward; check that clauses are properly
10682         ordered.
10683         (or_predicates): Shortcut more cases.
10684         (edge_execution_predicate): Rewrite as...
10685         (set_cond_stmt_execution_predicate): ... this function; handle
10686         __builtin_constant_p.
10687         (set_switch_stmt_execution_predicate): New .
10688         (compute_bb_predicates): New.
10689         (will_be_nonconstant_predicate): Update TODO.
10690         (estimate_function_body_sizes): Use compute_bb_predicates
10691         and free them later, always try to estimate if stmt is constant.
10692         (estimate_time_after_inlining, estimate_size_after_inlining):
10693         Gracefully handle optimized out edges.
10694         (read_predicate): Fix off by one error.
10695
10696 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10697
10698         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
10699
10700 2011-04-27  Xinliang David Li  <davidxl@google.com>
10701
10702         * tree-profile.c (init_ic_make_global_vars): Set
10703         tls attribute on ic vars.
10704         * coverage.c (coverage_end_function): Initialize
10705         function_list with zero.
10706
10707 2011-04-29  Richard Guenther  <rguenther@suse.de>
10708
10709         * builtins.c (fold_builtin_classify_type): Use integer_type_node
10710         for the type of the result.
10711         (fold_builtin_isascii): Likewise.
10712         (fold_builtin_toascii): Use integer_type_node where appropriate.
10713         (fold_builtin_logb): Likewise.
10714         (fold_builtin_frexp): Likewise.
10715         (fold_builtin_strstr): Likewise.
10716         (fold_builtin_strpbrk): Likewise.
10717         (fold_builtin_fputs): Likewise.
10718         (fold_builtin_sprintf): Likewise.
10719         (fold_builtin_snprintf): Likewise.
10720         (fold_builtin_printf): Likewise.
10721         (do_mpfr_remquo): Use a proper type for the assigned constant.
10722         (do_mpfr_lgamma_r): Likewise.
10723         * dwarf2out.c (resolve_one_addr): Use size_int.
10724         * except.c (init_eh): Likewise.
10725         (assign_filter_values): Use integer_type_node for filter values.
10726         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
10727         indices.
10728         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
10729         for EH region numbers.
10730         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
10731         for the shift amount.
10732
10733 2011-04-29  Richard Guenther  <rguenther@suse.de>
10734
10735         * expr.h (expand_shift): Rename to ...
10736         (expand_variable_shift): ... this.
10737         (expand_shift): Take a constant shift amount.
10738         * expmed.c (expand_shift): Rename to ...
10739         (expand_variable_shift): ... this.
10740         (expand_shift): New wrapper around expand_variable_shift.
10741         * expr.c (convert_move, emit_group_load_1, emit_group_store,
10742         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
10743         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
10744         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
10745         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
10746         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
10747         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
10748         emit_store_flag_1, emit_store_flag): Likewise.
10749         * builtins.c (expand_builtin_signbit): Likewise.
10750         * calls.c (load_register_parameters): Likewise.
10751         * function.c (assign_parm_setup_block): Likewise.
10752         * lower-subreg.c (resolve_shift_zext): Likewise.
10753         * optabs.c (widen_bswap, expand_abs_nojump,
10754         expand_one_cmpl_abs_nojump, expand_float): Likewise.
10755         * spu/spu.c (spu_expand_extv): Likewise.
10756         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
10757
10758 2011-04-29  Richard Guenther  <rguenther@suse.de>
10759
10760         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
10761         for the remapped region number.
10762         * predict.c (build_predict_expr): Use integer_type_node for the
10763         predict kind.
10764         * fold-const.c (fold_binary_loc): Use integer_type_node for
10765         the shift amount.  Use a proper type for the PLUS_EXPR operand.
10766
10767 2011-04-29  Michael Matz  <matz@suse.de>
10768
10769         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
10770         other trees that just builtins.
10771         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
10772
10773 2011-04-29  Richard Guenther  <rguenther@suse.de>
10774
10775         * tree-nested.c (get_trampoline_type): Use size_int.
10776         (get_nl_goto_field): Likewise.
10777         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
10778         for all indexes.
10779         (lower_eh_constructs_2): Likewise.
10780         (lower_resx): Likewise.
10781         (lower_eh_dispatch): Likewise.
10782         * tree-mudflap.c (mf_build_string): Use size_int.
10783         (mudflap_register_call): Use integer_type_node for the flag.
10784         (mudflap_enqueue_constant): Use size_int.
10785         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
10786         instead of rebuilding it.
10787
10788 2011-04-29  Richard Guenther  <rguenther@suse.de>
10789
10790         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
10791         Handle OBJ_TYPE_REF.
10792         (find_func_aliases_for_call): Use it more consistently.
10793
10794 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
10795
10796         * haifa-sched.c (last_nondebug_scheduled_insn): New.
10797         (rank_for_schedule): Use it.
10798         (schedule_block): Set it.
10799
10800 2011-04-28  David Li  <davidxl@google.com>
10801
10802         * tree.c (crc32_string): Use crc32_byte.
10803         (crc32_byte): New function.
10804         * tree.h (crc32_byte): New function.
10805         * gcov.c (read_graph_file): Handle new cfg_cksum.
10806         (read_count_file): Ditto.
10807         * profile.c (instrument_values): Ditto.
10808         (get_exec_counts): Ditto.
10809         (read_profile_edge_counts): Ditto.
10810         (compute_branch_probabilities): Ditto.
10811         (compute_value_histograms): Ditto.
10812         (branch_prob): Ditto.
10813         (end_branch_prob): Ditto.
10814         * coverage.c (read_counts_file): Ditto.
10815         (get_coverage_counts): Ditto.
10816         (tree_coverage_counter_addr): Ditto.
10817         (coverage_checksum_string): Ditto.
10818         (coverage_begin_output): Ditto.
10819         (coverage_end_function): Ditto.
10820         (build_fn_info_type): Ditto.
10821         (build_fn_info_value): Ditto.
10822         * libgcov.c (gcov_exit): Ditto.
10823         * gcov-dump.c (tag_function): Ditto.
10824         (compute_checksum): Remove.
10825
10826 2011-04-29  Alan Modra  <amodra@gmail.com>
10827
10828         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
10829         unspec plus offset.  Tidy macho code.
10830
10831 2011-04-29  Martin Jambor  <mjambor@suse.cz>
10832
10833         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
10834         node instead of a decl.  Update all callers.
10835         * cgraph.h: Update declaration.
10836
10837 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
10838
10839         PR tree-optimization/48765
10840         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
10841         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
10842         to indicate if loop aware SLP is being used.  Scan the statements
10843         and update the vectorization factor according to the type of
10844         vectorization before statement analysis.
10845         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
10846         pass it to vect_analyze_loop_operations.
10847         (vectorizable_reduction): Set number of copies to 1 in case of pure
10848         SLP statement.
10849         * tree-vect-stmts.c (vectorizable_conversion,
10850         vectorizable_assignment, vectorizable_shift,
10851         vectorizable_operation, vectorizable_type_demotion,
10852         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
10853         Likewise.
10854         (vectorizable_condition): Move the check that it is not SLP
10855         vectorization before the number of copies check.
10856         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
10857         to vectorize the loop using SLP.
10858
10859 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
10860
10861         PR middle-end/48597
10862         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
10863         inline asm.
10864
10865 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
10866
10867         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
10868         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
10869         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
10870         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
10871         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
10872         linux*.h headers.
10873         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
10874         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
10875         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
10876         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
10877         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
10878         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
10879         REG_NAME.
10880         * config/i386/linux.h (REG_NAME): Don't define.
10881         * config/i386/linux64.h (REG_NAME): Don't define.
10882         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
10883         Undefine before defining.
10884
10885 2011-04-28  Jan Hubicka  <jh@suse.cz>
10886
10887         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
10888         nonconstant_names array.
10889         (estimate_function_body_sizes): Build nonconstant_names array; handle
10890         BUILT_IN_CONSTANT_P.
10891
10892 2011-04-28  Richard Guenther  <rguenther@suse.de>
10893
10894         PR bootstrap/48804
10895         Revert
10896         2011-04-28  Richard Guenther  <rguenther@suse.de>
10897
10898         * tree-ssa-structalias.c (solve_constraints): Build succ graph
10899         as late as possible.
10900
10901 2011-04-28  Richard Guenther  <rguenther@suse.de>
10902
10903         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
10904         (debug_constraint): Do it here.
10905         (dump_constraints): And here.
10906         (rewrite_constraints): And here.
10907         (dump_constraint_edge): Remove.
10908         (dump_constraint_graph): Rewrite to produce DOT output.
10909         (solve_constraints): Build succ graph as late as possible.
10910         Dump constraint graphs before and after solving.
10911
10912 2011-04-28  Richard Guenther  <rguenther@suse.de>
10913
10914         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
10915         New function split out from ...
10916         (find_func_aliases): ... here.  Call it.
10917         (find_func_aliases_for_call): Likewise.
10918
10919 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10920
10921         * internal-fn.h (internal_fn_name_array): Declare.
10922         (internal_fn_flags_array): Likewise.
10923
10924 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
10925
10926         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
10927         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
10928         Move from sse.md.
10929         (ssemodefsuffix): Remove.
10930         (ssevecmodesuffix): New mode attribute.
10931         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
10932         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
10933         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
10934         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
10935         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
10936         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
10937         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
10938         ssemodesuffix mode attribute.
10939         (float splitters): Use ssevecmodesuffix mode attribute.
10940         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
10941         (sseinsmode): Rename from avxvecmode.
10942         (avxsizesuffix): Rename from avxmodesuffix.
10943         (sseintvecmode): Rename from avxpermvecmode.
10944         (ssedoublevecmode): Rename from ssedoublesizemode.
10945         (ssehalfvecmode): Rename from avxhalfvecmode.
10946         (ssescalarmode): Rename from avxscalarmode.
10947         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
10948         templates for ssemodesuffix mode attribute.
10949         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
10950         mode attribute.
10951
10952         Adjust RTX patterns globally for renamed mode attributes.
10953
10954 2011-04-27  Jan Hubcika  <jh@suse.cz>
10955
10956         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
10957         * ipa-inline-analysis.c: Include alloc-pool.h.
10958         (edge_predicate_pool): New.
10959         (trye_predicate_p): New function
10960         (false_predicate_p): New function.
10961         (add_clause): Sanity check that false clauses are "optimized";
10962         never add clauses to predicate that is already known to be false.
10963         (and_predicate): Use flase_predicate_p.
10964         (evaulate_predicate): Rename to ...
10965         (evaluate_predicate): ... this one; update all callers; assert
10966         that false is not listed among possible truths.
10967         (dump_predicate): Use true_predicate_p.
10968         (account_size_time): Use false_predicate_p.
10969         (evaulate_conditions_for_edge): Rename to ...
10970         (evaluate_conditions_for_edge) ... this one.
10971         (edge_set_predicate): New function.
10972         (inline_edge_duplication_hook): Duplicate edge predicates.
10973         (inline_edge_removal_hook): Free edge predicates.
10974         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
10975         (dump_inline_summary): Update.
10976         (estimate_function_body_sizes): Set edge predicates.
10977         (estimate_calls_size_and_time): Handle predicates.
10978         (estimate_callee_size_and_time): Update.
10979         (remap_predicate): Add toplev_predicate; update comment.
10980         (remap_edge_predicates): New function.
10981         (inline_merge_summary): Compute toplev predicate; update.
10982         (read_predicate): New function.
10983         (read_inline_edge_summary): Use it.
10984         (inline_read_section): Likewise.
10985         (write_predicate): New function.
10986         (write_inline_edge_summary): Use it.
10987         (inline_write_summary): Likewise.
10988         (inline_free_summary): Free alloc pool and edge summary vec.
10989
10990 2011-04-27  Richard Guenther  <rguenther@suse.de>
10991
10992         * tree-ssa-structalias.c (changed_count): Remove.
10993         (changed): Use a bitmap.
10994         (unify_nodes): Adjust.
10995         (do_sd_constraint): Likewise.
10996         (do_ds_constraint): Likewise.
10997         (do_complex_constraint): Likewise.
10998         (solve_graph): Likewise.
10999
11000 2011-04-27  Jan Hubicka  <jh@suse.cz>
11001
11002         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
11003
11004 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
11005
11006         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
11007         (avx_vperm2f128_*_operand): Ditto.
11008         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
11009         Use avx_vpermilp_parallel in insn condition.
11010         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
11011         Use avx_vperm2f128_parallel in insn condition.
11012
11013 2011-04-27  Richard Guenther  <rguenther@suse.de>
11014
11015         * Makefile.in (tree-ssa-structalias.o): Remove
11016         gt-tree-ssa-structalias.h dependency.
11017         (GTFILES): Remove tree-ssa-structalias.c.
11018         * tree.c (allocate_decl_uid): New function.
11019         (make_node_stat): Use it.
11020         (copy_node_stat): Likewise.
11021         * tree.h (allocate_decl_uid): Declare.
11022         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
11023         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
11024         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
11025         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
11026         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
11027         (struct heapvar_map): Likewise.
11028         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
11029         heapvar_insert): Likewise.
11030         (make_heapvar_for): Rename to ...
11031         (make_heapvar): ... this.  Simplify.
11032         (fake_var_decl_obstack): New global var.
11033         (build_fake_var_decl): New function.
11034         (make_constraint_from_heapvar): Adjust.
11035         (handle_lhs_call): Likewise.
11036         (create_function_info_for): Likewise.
11037         (intra_create_variable_infos): Likewise.
11038         (init_alias_vars): Allocate fake_var_decl_obstack.
11039         (init_alias_heapvars, delete_alias_heapvars): Remove.
11040         (compute_points_to_sets): Do not call init_alias_heapvars.
11041         (ipa_pta_execute): Likewise.
11042         (delete_points_to_sets): Free fake_var_decl_obstack.
11043
11044 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11045
11046         * config/spu/divmovti4.c (union qword_UTItype): New data type.
11047         (si_from_UTItype, si_to_UTItype): New functions.
11048         (__udivmodti4): Use them to implement type-punning.
11049         * config/spu/multi3.c (union qword_TItype): New data type.
11050         (si_from_TItype, si_to_TItype): New functions.
11051         (__multi3): Use them to implement type-punning.
11052
11053 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11054
11055         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
11056
11057 2011-04-27  Jan Hubicka  <jh@suse.cz>
11058
11059         * ipa-prop.c (function_insertion_hook_holder): New holder.
11060         (ipa_add_new_function): New function.
11061         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
11062         Register/deregister holder.
11063
11064 2011-04-27  Richard Guenther  <rguenther@suse.de>
11065
11066         PR tree-optimization/48772
11067         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
11068
11069 2011-04-27  Richard Guenther  <rguenther@suse.de>
11070
11071         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
11072         TARGET_MEM_REF handling.
11073
11074 2011-04-27  Nick Clifton  <nickc@redhat.com>
11075
11076         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
11077         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
11078         (REG_CLASS_NAMES): Likewise.
11079         (REG_CLASS_CONTENTS): Likewise.
11080         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
11081         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
11082         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
11083         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
11084         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
11085         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
11086         duplicate register classes.
11087         (frv_class_likely_spilled_p): Likewise.
11088         (frv_register_move_cost): Likewise.
11089
11090         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
11091         end of the regno_reg_class array.
11092
11093 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
11094
11095         PR c/48742
11096         * c-typeck.c (build_binary_op): Don't wrap arguments if
11097         int_operands is true.
11098
11099 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
11100
11101         PR target/48767
11102         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
11103         targetm.calls.must_pass_in_stack for void type.
11104
11105 2011-04-26  Jan Hubicka  <jh@suse.cz>
11106
11107         * cgraphbuild.c (build_cgraph_edges): Update call
11108         of cgraph_create_edge and cgraph_create_indirect_edge.
11109         * cgraph.c (cgraph_create_edge_including_clones,
11110         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
11111         cgraph_update_edges_for_call_stmt_node): Do not take nest
11112         argument; do not initialize call_stmt_size/time.
11113         (dump_cgraph_node): Do not dump nest.
11114         (cgraph_clone_edge): Do not take loop_nest argument;
11115         do not propagate it; do not clone call_stmt_size/time.
11116         (cgraph_clone_node): Likewise.
11117         (cgraph_create_virtual_clone): Update.
11118         * cgraph.h (struct cgraph_edge): Remove
11119         call_stmt_size/call_stmt_time/loop_nest.
11120         (cgraph_create_edge, cgraph_create_indirect_edge,
11121         cgraph_create_edge_including_clones, cgraph_clone_node): Update
11122         prototype.
11123         * tree-emutls.c (gen_emutls_addr): Update.
11124         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
11125         loop_nest; handle indirect calls, too.
11126         (clone_inlined_nodes): Do not care about updating inline summaries.
11127         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
11128         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
11129         stream call_stmt_size/call_stmt_time/loop_nest.
11130         * ipa-inline.c (edge_badness): Update.
11131         (ipa_inline): dump summaries after inlining.
11132         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
11133         New.
11134         (inline_edge_summary): New function.
11135         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
11136         (inline_edge_removal_hook): Handle edge summaries.
11137         (inline_edge_duplication_hook): New hook.
11138         (inline_summary_alloc): Alloc hooks.
11139         (initialize_growth_caches): Do not register removal hooks.
11140         (free_growth_caches); Do not free removal hook.
11141         (dump_inline_edge_summary): New function.
11142         (dump_inline_summary): Use it.
11143         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
11144         (inline_update_callee_summaries): New function.
11145         (inline_merge_summary): Use it.
11146         (do_estimate_edge_time, do_estimate_edge_growth): Update.
11147         (read_inline_edge_summary): New function.
11148         (inline_read_section): Use it.
11149         (write_inline_edge_summary): New function.
11150         (inline_write_summary): Use it.
11151         (inline_free_summary): Free edge new holders.
11152         * tree-inline.c (copy_bb): Update.
11153
11154 2011-04-26  Jason Merrill  <jason@redhat.com>
11155
11156         * tree-eh.c (lower_try_finally_switch): Create the label along with
11157         the CASE_LABEL_EXPR.
11158
11159 2011-04-26  David S. Miller  <davem@davemloft.net>
11160             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11161
11162         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
11163         * configure: Regenerate.
11164
11165 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
11166
11167         PR target/48258
11168         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
11169         reduction.
11170         (VEC_reduc): New code iterator and splitters for vector reduction.
11171         (VEC_reduc_name): Ditto.
11172         (VEC_reduc_rtx): Ditto.
11173         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
11174         (reduc_<VEC_reduc_name>_v4sf): Ditto.
11175
11176         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
11177         support for extracting SF on VSX.
11178
11179         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
11180         generating xscvspdp.
11181         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
11182         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
11183         double add, minimum, maximum vector reduction.
11184         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
11185         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
11186         optimize double vector reduction.
11187         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
11188
11189 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
11190
11191         * config/fr30/fr30.h (inhibit_libc): Don't define.
11192         * config/m32r/m32r-protos.h: Correct comment.
11193         * config/v850/v850.h (GHS_default_section_names,
11194         GHS_current_section_names): Use tree, not union tree_node *.
11195
11196 2011-04-26  Xinliang David Li  <davidxl@google.com>
11197
11198         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
11199         * c-family/c-opts.c (c_common_handle_option): Set
11200         warn_maybe_uninitialized.
11201         * opts.c (common_handle_option): Ditto.
11202         * common.opt:  New option.
11203         * tree-ssa.c (warn_uninit): Add one more parameter.
11204         (warn_uninitialized_var): Pass warning code.
11205         * tree-flow.h: Interface change.
11206
11207 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11208
11209         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
11210         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
11211         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
11212
11213 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11214
11215         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
11216         * config/mips/mips.opt (mmips-tfile): Remove.
11217
11218         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
11219         mips-tdump reference to ...
11220         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
11221         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
11222         reference by Tru64 UNIX.
11223
11224 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
11225
11226         PR debug/48768
11227         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
11228         is error_mark_node, set value to NULL.
11229
11230         PR tree-optimization/48734
11231         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
11232         if return value from maybe_fold_*_comparsions isn't something
11233         the code is prepared to handle.
11234
11235 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
11236
11237         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
11238         mode check.
11239         (ext_QIreg_nomode_operands): Remove.
11240         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
11241         (*andsi_1): Ditto.
11242         (*andhi_1): Ditto.
11243
11244 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
11245
11246         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
11247
11248 2011-04-26  Richard Guenther  <rguenther@suse.de>
11249
11250         * c-typeck.c (build_unary_op): Do not expand array-refs via
11251         pointer arithmetic.  Only adjust qualifiers for function types.
11252
11253 2011-04-26  Richard Guenther  <rguenther@suse.de>
11254
11255         PR middle-end/48694
11256         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
11257         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
11258         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
11259         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
11260
11261 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
11262
11263         * doc/extend.texi: Document __underlying_type.
11264
11265 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
11266
11267         * config/rs6000/titan.md (automata_option "progress"): Remove.
11268
11269 2011-04-25  Jeff Law  <law@redhat.com>
11270
11271         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
11272
11273 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
11274
11275         * system.h (ENUM_BITFIELD): Remove.
11276
11277 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
11278             Eric Botcazou  <ebotcazou@adacore.com>
11279
11280         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
11281         for STORE_FLAG_VALUE==-1 case.
11282
11283 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
11284
11285         PR target/43804
11286         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
11287         LEGITIMATE_PIC_OPERAND_P.
11288
11289 2011-04-24  Jan Hubicka  <jh@suse.cz>
11290
11291         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
11292         WPA hack.
11293         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
11294         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
11295         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
11296         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
11297         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
11298         Sanity check predicate length.
11299         (remap_predicate): Likewise; sanity check jump functions.
11300         (inline_read_section, inline_write_summary): Sanity check
11301         predicate length.
11302
11303 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
11304
11305         PR other/48748
11306         * doc/extend.texi (Type Traits): Document __is_standard_layout,
11307         __is_literal_type, and __is_trivial; update throughout about
11308         possibly cv-qualified void types.
11309
11310 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
11311
11312         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
11313         testsuite and make it version agnostic.
11314
11315 2011-04-22  Jan Hubicka  <jh@suse.cz>
11316
11317         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
11318
11319 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
11320
11321         PR c/48685
11322         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
11323         to VOID_TYPE even around MODIFY_EXPR.
11324
11325 2011-04-22  Mike Stump  <mikestump@comcast.net>
11326
11327         * gensupport.c (read_md_rtx): Fix typo in comment.
11328         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
11329         comment.
11330
11331 2011-04-22  Jan Hubicka  <jh@suse.cz>
11332
11333         * gengtype.c (open_base_files): Add ipa-inline.h include.
11334         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
11335         ipa-prop.c; update all uses.
11336         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
11337         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
11338         merge summary of inlined function into former caller.
11339         * ipa-inline.c (max_benefit): Remove.
11340         (edge_badness): Compensate for removal of benefits.
11341         (update_caller_keys): Use
11342         reset_node_growth_cache/reset_edge_growth_cache.
11343         (update_callee_keys): Likewise.
11344         (update_all_callee_keys): Likewise.
11345         (inline_small_functions): Do not collect max_benefit; do not reset
11346         estimated_growth; call free_growth_caches and initialize_growth_caches.
11347         * ipa-inline.h (struct condition, type clause_t, struct predicate,
11348         struct size_time_entry): New structures.
11349         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
11350         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
11351         and estimated_growth.
11352         (edge_growth_cache_entry): New structure.
11353         (node_growth_cache, edge_growth_cache): New global vars.
11354         (estimate_growth): Turn into inline.
11355         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
11356         initialize_growth_caches, free_growth_caches): Declare.
11357         (estimate_edge_growth): Rewrite.
11358         (estimate_edge_time): Implement as inline cache lookup.
11359         (reset_node_growth_cache, reset_edge_growth_cache): New inline
11360         functions.
11361         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
11362         (NUM_CONDITIONS): New constant.
11363         (predicate_conditions): New enum.
11364         (IS_NOT_CONSTANT): New constant.
11365         (edge_removal_hook_holder): New var.
11366         (node_growth_cache, edge_growth_cache): New global vars.
11367         (true_predicate, single_cond_predicate, false_predicate,
11368         not_inlined_predicate, add_condition, add_clause, and_predicates,
11369         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
11370         dump_clause, dump_predicate, account_size_time,
11371         evaulate_conditions_for_edge): New functions.
11372         (inline_summary_alloc): Move to heap.
11373         (inline_node_removal_hook): Clear condition and entry vectors.
11374         (inline_edge_removal_hook): New function.
11375         (initialize_growth_caches, free_growth_caches): New function.
11376         (dump_inline_summary): Update.
11377         (edge_execution_predicate): New function.
11378         (will_be_nonconstant_predicate): New function.
11379         (estimate_function_body_sizes): Compute BB and constantness predicates.
11380         (compute_inline_parameters): Do not clear estimated_growth.
11381         (estimate_edge_size_and_time): New function.
11382         (estimate_calls_size_and_time): New function.
11383         (estimate_callee_size_and_time): New function.
11384         (remap_predicate): New function.
11385         (inline_merge_summary): New function.
11386         (do_estimate_edge_time): New function based on...
11387         (estimate_edge_time): ... this one.
11388         (do_estimate_edge_growth): New function.
11389         (do_estimate_growth): New function based on....
11390         (estimate_growth): ... this one.
11391         (inline_analyze_function): Analyze after deciding on jump functions.
11392         (inline_read_section): New function.
11393         (inline_read_summary): Use it.
11394         (inline_write_summary): Write all the new data.
11395         * ipa-prop.c (ipa_get_param_decl_index): Export.
11396         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
11397         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
11398         Declare.
11399         (ipa_get_lattice): Move here from ipa-cp.c
11400         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
11401         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
11402         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
11403         cgraph_edge_inlinable_p): Remove.
11404         * cgraphunit.c: Include ipainline.h
11405         (cgraph_process_new_functions): Update call of
11406         compute_inline_parameters.
11407
11408 2011-04-22  Richard Guenther  <rguenther@suse.de>
11409
11410         * tree.c (build_int_cst): Properly create canonicalized integer
11411         constants.
11412         (build_int_cst_type): Remove scary comments.
11413
11414 2011-04-22  Xinliang David Li  <davidxl@google.com>
11415
11416         * toplev.c (process_options): Enable -Werror=coverage-mismatch
11417         by default when -Wno-error is not specified.
11418         * opts-global.c (decode_options): Remove call to
11419         control_warning_options.
11420
11421 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
11422
11423         PR tree-optimization/48717
11424         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
11425         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
11426
11427 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
11428
11429         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
11430         definition where used.
11431
11432 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
11433
11434         PR c/48716
11435         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
11436         TREE_STATIC variables declared inside of some OpenMP construct.
11437
11438 2011-04-22  Martin Jambor  <mjambor@suse.cz>
11439
11440         PR middle-end/48585
11441         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
11442
11443 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
11444
11445         PR c/36750
11446         * c-typeck.c (pop_init_level): Do not warn about initializing
11447         with ` = {0}'.
11448
11449 2011-04-22  Alan Modra  <amodra@gmail.com>
11450
11451         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
11452         when returning call_cookie.
11453         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
11454         pointers, to functions with no more vector args than the current
11455         function, and some non-local calls for ABI_V4.
11456         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
11457         sibcall_nonlocal_aix64): Combine to ..
11458         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
11459         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
11460         (sibcall_value_nonlocal_aix<mode>): ..likewise.
11461         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
11462         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
11463         operand.
11464         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
11465         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
11466         sibcall_value_symbolic_64): Delete.
11467
11468 2011-04-21  Xinliang David Li  <davidxl@google.com>
11469
11470         * cgraph.h: Remove pid.
11471         * cgraph.c: Remove pid.
11472         * value-prof.c (init_node_map): New function.
11473         (del_node_map): New function.
11474         (find_func_by_funcdef_no): New function.
11475         (gimple_ic_transform): Call new function.
11476         * cgraphunit.c (cgraph_finalize_function): Remove pid.
11477         * function.c (get_last_funcdef_no): New function.
11478         * function.h (get_last_funcdef_no): New function.
11479         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
11480         to libgcov function.
11481         (tree-profiling): Call node map init and delete function.
11482
11483 2011-04-21  Ian Lance Taylor  <iant@google.com>
11484
11485         * godump.c (go_format_type): Use exported Go name for anonymous
11486         field name.
11487
11488 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
11489
11490         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
11491         Call builtin_function_type_list instead of builtin_function_type.
11492         (UNARY, BINARY, TRINARY, QUAD): Likewise.
11493
11494 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
11495
11496         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
11497         build_function_type_list instead of build_function_type.
11498         Delete variable `endlink'.
11499
11500 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
11501
11502         * config/s390/s390.c (s390_init_builtins): Call
11503         build_function_type_list instead of build_function_type.
11504
11505 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
11506
11507         * config/ia64/ia64.c (ia64_init_builtins): Call
11508         build_function_type_list instead of builtin_function_type.
11509
11510 2011-04-21  Easwaran Raman  <eraman@google.com>
11511
11512         * cfgexpand.c (stack_var): Remove OFFSET...
11513         (add_stack_var): ...and its reference here...
11514         (expand_stack_vars): ...and here.
11515         (stack_var_cmp): Sort by descending order of size.
11516         (partition_stack_vars): Change heuristic.
11517         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
11518         (dump_stack_var_partition): Add newline after each partition.
11519
11520 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
11521             Jeff Law  <law@redhat.com>
11522
11523         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
11524         * gengtype.c (matching_file_name_substitute): Likewise.
11525
11526 2011-04-21  Richard Guenther  <rguenther@suse.de>
11527
11528         PR lto/48703
11529         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
11530
11531 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
11532
11533         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
11534
11535 2011-04-21  Richard Guenther  <rguenther@suse.de>
11536
11537         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
11538         file name.
11539
11540 2011-04-21  Richard Guenther  <rguenther@suse.de>
11541
11542         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
11543         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
11544         Use DECL_P, not SSA_VAR_P.
11545         (ptr_derefs_may_alias_p): Likewise.
11546         (ptr_deref_may_alias_ref_p_1): Likewise.
11547         (decl_refs_may_alias_p): Likewise.
11548         (refs_may_alias_p_1): Likewise.
11549         (ref_maybe_used_by_call_p_1): Likewise.
11550         (call_may_clobber_ref_p_1): Likewise.
11551         (indirect_ref_may_alias_decl_p): Assume indirect refrences
11552         are either MEM_REF or TARGET_MEM_REF.
11553         (indirect_refs_may_alias_p): Likewise.
11554         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
11555         for MEM_EXPR of indirect calls.
11556
11557 2011-04-21  Tristan Gingold  <gingold@adacore.com>
11558
11559         * vmsdbgout.c (write_srccorr): Compute file length from the string.
11560         (dst_file_info_struct): Remove flen field.
11561         (lookup_filename): Remove code that set flen field.
11562
11563 2011-04-21  Tristan Gingold  <gingold@adacore.com>
11564
11565         * config/ia64/ia64.c (ia64_start_function): Add a guard.
11566
11567 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
11568
11569         PR target/48708
11570         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
11571         vec_extract and vec_concat for non-SSE4_1 targets.
11572
11573 2011-04-21  Richard Guenther  <rguenther@suse.de>
11574
11575         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
11576         return statements.
11577
11578 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
11579
11580         * config/i386/cygming.h (union tree_node, TREE): Don't define or
11581         undefine.
11582         (FILE): Don't undefine.
11583
11584 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
11585
11586         * config/alpha/alpha.c (struct machine_function): Use rtx, not
11587         struct rtx_def *.
11588         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
11589         struct rtx_def *.
11590         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
11591         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
11592         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
11593         rtx_def *.
11594         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
11595         definitions where used.
11596         * config/microblaze/microblaze.h (struct microblaze_args): Use
11597         rtx, not struct rtx_def *.
11598         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
11599         rtx_def *.
11600         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
11601         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
11602         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
11603         not struct rtx_def *.
11604         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
11605         struct rtx_def *.
11606         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
11607         rtx_def *.
11608         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
11609
11610 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
11611
11612         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
11613         operand_equal_p to compare DR_BASE_ADDRESSes.
11614         (vect_check_interleaving): Likewise.
11615
11616 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
11617
11618         PR target/46329
11619         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
11620         for all Neon struct constants.
11621
11622 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
11623
11624         * target.def (legitimate_constant_p): New hook.
11625         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
11626         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
11627         * doc/tm.texi: Regenerate.
11628         * hooks.h (hook_bool_mode_rtx_true): Declare.
11629         * hooks.c (hook_bool_mode_rtx_true): Define.
11630         * system.h (LEGITIMATE_CONSTANT_P): Poison.
11631         * calls.c (precompute_register_parameters): Replace uses of
11632         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
11633         (emit_library_call_value_1): Likewise.
11634         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
11635         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
11636         * ira-costs.c (scan_one_insn): Likewise.
11637         * recog.c (general_operand, immediate_operand): Likewise.
11638         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
11639         * reload1.c (init_eliminable_invariants): Likewise.
11640
11641         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
11642         mode argument.
11643         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
11644         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
11645         argument.
11646         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11647         * config/alpha/predicates.md (input_operand): Update call to
11648         alpha_legitimate_constant_p.
11649
11650         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
11651         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
11652         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
11653         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11654         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
11655         (arm_legitimate_constant_p): New functions.
11656         (arm_cannot_force_const_mem): Make static.
11657
11658         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
11659
11660         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
11661         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
11662         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
11663         instead of bfin_legitimate_constant_p.
11664         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
11665         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11666
11667         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
11668
11669         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
11670
11671         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
11672         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
11673         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11674         (frv_legitimate_constant_p): Make static.  Add a mode argument.
11675
11676         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
11677         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
11678         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
11679
11680         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
11681         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
11682         * config/i386/i386.c (legitimate_constant_p): Rename to...
11683         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
11684         argument.
11685         (ix86_cannot_force_const_mem): Update accordingly.
11686         (ix86_legitimate_address_p): Likewise.
11687         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11688         * config/i386/i386.md: Update commentary.
11689
11690         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
11691         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
11692         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11693         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
11694
11695         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
11696
11697         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
11698         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
11699         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11700         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
11701
11702         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
11703         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
11704         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
11705
11706         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
11707         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11708         (m32r_legitimate_constant_p): New function.
11709
11710         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
11711         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
11712         LEGITIMATE_CONSTANT_P.
11713         (LEGITIMATE_CONSTANT_P): Delete.
11714         * config/m68k/m68k.c (m68k_expand_prologue): Call
11715         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
11716         (m68k_legitimate_constant_p): New function.
11717         * config/m68k/m68k.md: Update comments.
11718
11719         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
11720         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11721         (mcore_legitimate_constant_p): New function.
11722
11723         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
11724         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
11725         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
11726         Add a mode argument.
11727         (mep_legitimate_address): Update accordingly.
11728         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11729
11730         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
11731         Delete.
11732         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
11733         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
11734         static.  Check OP's mode for VOIDmode.
11735         (microblaze_legitimate_constant_p): New function.
11736         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11737
11738         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
11739         * config/mips/mips.c (mips_legitimate_constant_p): New function.
11740         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
11741         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11742         * config/mips/predicates.md: Update comments.
11743
11744         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
11745         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
11746         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11747         (mmix_legitimate_constant_p): Make static, return a bool, and take
11748         a mode argument.
11749         (mmix_print_operand_address): Update accordingly.
11750
11751         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
11752         Delete.
11753         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
11754         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
11755         static.  Add a mode argument.
11756         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11757
11758         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
11759
11760         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
11761         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11762         (pa_legitimate_constant_p): New function.
11763
11764         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
11765
11766         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
11767         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11768         (pdp11_legitimate_constant_p): New function.
11769
11770         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
11771         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11772         (rs6000_legitimate_constant_p): New function.
11773
11774         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
11775         (rx_legitimate_constant_p): ...this.
11776         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
11777         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
11778         (rx_legitimate_constant_p): ...this.
11779         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11780         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
11781
11782         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
11783         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
11784         * config/s390/s390.c (legitimate_constant_p): Rename to...
11785         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
11786         and add a mode argument.
11787         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11788
11789         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
11790
11791         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
11792         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11793         (sh_legitimate_constant_p): New function.
11794
11795         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
11796         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
11797         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11798         (legitimate_constant_p): Rename to...
11799         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
11800         argument.
11801         (constant_address_p): Update accordingly.
11802
11803         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
11804         argument and return a bool.
11805         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
11806         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11807         (spu_legitimate_constant_p): Add a mode argument and return a bool.
11808         (spu_rtx_costs): Update accordingly.
11809         * config/spu/predicates.md (vec_imm_operand): Likewise.
11810
11811         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
11812
11813         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
11814         * config/v850/v850.c (v850_legitimate_constant_p): New function.
11815         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11816
11817         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
11818         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
11819         * config/vax/vax.c (legitimate_constant_p): Likewise.
11820
11821         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
11822         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11823         (xtensa_legitimate_constant_p): New function.
11824
11825 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
11826
11827         * target.def (cannot_force_const_mem): Add a mode argument.
11828         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
11829         * doc/tm.texi: Regenerate.
11830         * hooks.h (hook_bool_mode_rtx_false): Declare.
11831         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
11832         (hook_bool_mode_const_rtx_true): Likewise.
11833         (hook_bool_mode_rtx_false): New function.
11834         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
11835         to be non-VOID.  Update call to cannot_force_const_mem.
11836         (find_reloads): Update accordingly.
11837         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
11838         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
11839         argument.
11840         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
11841         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
11842         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
11843         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
11844         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
11845         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
11846         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
11847         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
11848         (m68k_cannot_force_const_mem): ...this new function.
11849         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
11850         argument.
11851         (mips_const_insns, mips_legitimize_const_move): Update calls.
11852         (mips_secondary_reload_class): Likewise.
11853         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
11854         (pa_cannot_force_const_mem): ...this new function.
11855         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
11856         (rs6000_cannot_force_const_mem): ...this new function.
11857         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
11858         argument.
11859         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
11860         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
11861         to...
11862         (xtensa_cannot_force_const_mem): ...this new function.
11863
11864 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
11865
11866         * config/mips/mips.c (mips16_build_function_stub): Call
11867         build_function_type_list instead of build_function_type.
11868         (mips16_build_call_stub): Likewise.
11869
11870 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
11871
11872         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
11873         instead of build_function_type.
11874
11875 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
11876
11877         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
11878         instead of build_function_type.
11879
11880 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
11881
11882         PR target/48678
11883         * config/i386/i386.md (insv): Change operand 0 constraint to
11884         "register_operand".  Change operand 1 and 2 constraint to
11885         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
11886         * config/i386/sse.md (sse4_1_pinsrb): Export.
11887         (sse2_pinsrw): Ditto.
11888         (sse4_1_pinsrd): Ditto.
11889         (sse4_1_pinsrq): Ditto.
11890         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
11891         * config/i386/i386.c (ix86_expand_pinsr): New.
11892
11893 2011-04-20  Easwaran Raman  <eraman@google.com>
11894
11895         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
11896         containing union type only with -fstrict-aliasing.
11897
11898 2011-04-20  Jim Meyering  <meyering@redhat.com>
11899
11900         Remove useless if-before-free tests.
11901         * calls.c (expand_call, save_area): Likewise.
11902         * cfgcleanup.c (try_forward_edges): Likewise.
11903         * collect2.c (collect_execute): Likewise.
11904         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
11905         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
11906         * coverage.c (coverage_checksum_string): Likewise.
11907         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
11908         * cselib.c (cselib_init): Likewise.
11909         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
11910         (df_set_clean_cfg): Likewise.
11911         * function.c (free_after_compilation): Likewise.
11912         * gcc.c (do_spec_1, main): Likewise.
11913         * gcov.c (create_file_names): Likewise.
11914         * gensupport.c (identify_predicable_attribute): Likewise.
11915         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
11916         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
11917         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
11918         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
11919         * ipa-pure-const.c (local_pure_const): Likewise.
11920         * ipa-reference.c (propagate): Likewise.
11921         * ira-costs.c (free_ira_costs): Likewise.
11922         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
11923         * matrix-reorg.c (mat_free): Likewise.
11924         * prefix.c (get_key_value): Likewise.
11925         * profile.c (compute_value_histograms): Likewise.
11926         * reload1.c (free_reg_equiv): Likewise.
11927         * sched-deps.c (free_deps): Likewise.
11928         * sel-sched-ir.c (fence_clear): Likewise.
11929         * sese.c (set_rename, if_region_set_false_region): Likewise.
11930         * tree-data-ref.c (free_rdg): Likewise.
11931         * tree-eh.c (lower_try_finally): Likewise.
11932         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
11933         * tree-ssa-live.c (delete_var_map): Likewise.
11934         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
11935         * tree-ssa-pre.c (phi_trans_add): Likewise.
11936
11937 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
11938
11939         PR tree-optimization/48611
11940         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
11941         beyond ERT_MUST_NOT_THROW region.
11942
11943 2011-04-20  Catherine Moore  <clm@codesourcery.com>
11944
11945         * config/mips/mips.opt (mfix-24k): New.
11946         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
11947         * config/mips/mips.md (length): Increase by 4 for stores if
11948         fixing 24K errata.
11949         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
11950         all noreorder if fixing 24K errata.
11951         * doc/invoke.texi: Document mfix-24k.
11952
11953 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
11954
11955         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
11956         quad-word modes, reduce to 9-bit index range when above 1016 limit.
11957
11958 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
11959
11960         * config/arm/arm.c (arm_gen_constant): Move movw support ....
11961         (const_ok_for_op): ... to here.
11962
11963 2011-04-20  Kai Tietz  <ktietz@redhat.com>
11964
11965         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
11966         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
11967
11968 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
11969
11970         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
11971
11972 2011-04-20  Richard Guenther  <rguenther@suse.de>
11973
11974         PR tree-optimization/47892
11975         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
11976         are if-convertible.
11977
11978 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
11979
11980         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
11981
11982 2011-04-20  Tristan Gingold  <gingold@adacore.com>
11983
11984         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
11985
11986 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
11987
11988         PR target/18145
11989
11990         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
11991         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
11992         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
11993         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
11994         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
11995
11996         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
11997         New prototype.
11998
11999         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
12000         (avr_asm_named_section, avr_asm_output_aligned_common,
12001         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
12002         New functions to update...
12003         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
12004         (avr_asm_init_sections): Overwrite section callbacks for
12005         data_section, bss_section.
12006         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
12007         from here to...
12008         (avr_file_end): ...here.
12009
12010 2011-04-20  Richard Guenther  <rguenther@suse.de>
12011
12012         PR middle-end/48695
12013         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
12014         objects and types here.  Adjust for their offset before comparing.
12015
12016 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
12017
12018         * tree-vect-stmts.c (vectorizable_store): Only chain one related
12019         statement per copy.
12020
12021 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
12022
12023         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
12024         (GIMPLE_H): Include $(INTERNAL_FN_H).
12025         (OBJS-common): Add internal-fn.o.
12026         (internal-fn.o): New rule.
12027         * internal-fn.def: New file.
12028         * internal-fn.h: Likewise.
12029         * internal-fn.c: Likewise.
12030         * gimple.h: Include internal-fn.h.
12031         (GF_CALL_INTERNAL): New gf_mask.
12032         (gimple_statement_call): Put fntype into a union with a new
12033         internal_fn field.
12034         (gimple_build_call_internal): Declare.
12035         (gimple_build_call_internal_vec): Likewise.
12036         (gimple_call_same_target_p): Likewise.
12037         (gimple_call_internal_p): New function.
12038         (gimple_call_internal_fn): Likewise.
12039         (gimple_call_fntype): Return null for internal calls.
12040         (gimple_call_set_fntype): Assert that the function is not internal.
12041         (gimple_call_set_fn): Likewise.
12042         (gimple_call_set_fndecl): Likewise.
12043         (gimple_call_set_internal_fn): New function.
12044         (gimple_call_addr_fndecl): Handle null functions.
12045         (gimple_call_return_type): Likewise null types.
12046         * gimple.c (gimple_build_call_internal_1): New function.
12047         (gimple_build_call_internal): Likewise.
12048         (gimple_build_call_internal_vec): Likewise.
12049         (gimple_call_same_target_p): Likewise.
12050         (gimple_call_flags): Handle calls to internal functions.
12051         (gimple_call_fnspec): New function.
12052         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
12053         (gimple_has_side_effects): Handle null functions.
12054         (gimple_rhs_has_side_effects): Likewise.
12055         (gimple_call_copy_skip_args): Handle calls to internal functions.
12056         * cfgexpand.c (expand_call_stmt): Likewise.
12057         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
12058         * gimple-fold.c (gimple_fold_call): Handle null functions.
12059         (gimple_fold_stmt_to_constant_1): Don't fold
12060         calls to internal functions.
12061         * gimple-low.c (gimple_check_call_args): Handle calls to internal
12062         functions.
12063         * gimple-pretty-print.c (dump_gimple_call): Likewise.
12064         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
12065         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
12066         (do_warn_unused_result): Likewise.
12067         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
12068         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
12069         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
12070         the target of a call.
12071         (initialize_hash_element): Update accordingly.
12072         (hashable_expr_equal_p): Use gimple_call_same_target_p.
12073         (iterative_hash_hashable_expr): Handle calls to internal functions.
12074         (print_expr_hash_elt): Likewise.
12075         * tree-ssa-pre.c (can_value_number_call): Likewise.
12076         (eliminate): Handle null functions.
12077         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
12078         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
12079         (find_func_aliases): Likewise.
12080         * value-prof.c (gimple_ic_transform): Likewise.
12081         (gimple_indirect_call_to_profile): Likewise.
12082         * lto-streamer-in.c (input_gimple_stmt): Likewise.
12083         * lto-streamer-out.c (output_gimple_stmt): Likewise.
12084
12085 2011-04-19  Jan Hubicka  <jh@suse.cz>
12086
12087         * ipa-inline-transform.c (save_inline_function_body): Add comments.
12088         * ipa-inline.c (inline_small_functions): Compute summaries first,
12089         populate heap later.
12090
12091 2011-04-19  Jan Hubicka  <jh@suse.cz>
12092
12093         * cgraph.h (save_inline_function_body): Remove.
12094         * ipa-inline-transform.c: New file, broke out of...
12095         * ipa-inline.c: ... this one; Update toplevel comment.
12096         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
12097         make global.
12098         (update_noncloned_frequencies): Move to ipa-inline-transform.c
12099         (cgraph_mark_inline_edge): Rename to inline_call; move to
12100         ipa-inline-transform.c.
12101         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
12102         move to ipa-inline-transform.c
12103         (recursive_inlining, inline_small_functions, flatten_function,
12104         ipa_inline, inline_always_inline_functions,
12105         early_inline_small_functions): Update.
12106         (inline_transform): Move to ipa-inline-transform.c.
12107         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
12108         Declare.
12109         * Makefile.in (ipa-inline-transform.o): New file.
12110         * cgraphunit.c (save_inline_function_body): Move to
12111         ipa-inline-transform.c
12112
12113 2011-04-19  DJ Delorie  <dj@redhat.com>
12114
12115         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
12116         registers if we already know there aren't any.
12117         (m32c_emit_epilogue): Don't emit a barrier here.
12118         (m32c_emit_eh_epilogue): Likewise.
12119         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
12120         operands at expand time.
12121         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
12122         int" wchar type.
12123         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
12124         duplicates.  Provide aliases instead.
12125         * config/m32c/prologue.md (eh_return): Emit a barrier here.
12126         (eh_epilogue): Add a "(return)" here as a hint to other parts of
12127         the compiler.
12128
12129 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
12130
12131         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
12132         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
12133         (general_or_i64_p, sparc_register_move_cost): New function.
12134
12135 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12136
12137         * doc/install.texi (Configuration, --enable-threads): Remove mach.
12138         Add lynx, mipssde.  Sort table.
12139
12140 2011-04-19  Xinliang David Li  <davidxl@google.com>
12141
12142         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
12143         not negative.
12144
12145 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
12146
12147         PR target/48678
12148         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
12149         is a SUBREG with non-MODE_INT mode inside of it.
12150
12151 2011-04-19  Martin Jambor  <mjambor@suse.cz>
12152
12153         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
12154         also according to actual contants.
12155         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
12156         (gimple_fold_call): Use it.
12157         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
12158
12159 2011-04-19  Martin Jambor  <mjambor@suse.cz>
12160
12161         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
12162         non-pointer assignments.
12163
12164 2011-04-19  Martin Jambor  <mjambor@suse.cz>
12165
12166         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
12167         account anc_offset and otr_type from the indirect edge info.
12168         * ipa-prop.c (get_ancestor_addr_info): New function.
12169         (compute_complex_ancestor_jump_func): Assignment analysis moved to
12170         get_ancestor_addr_info, call it.
12171         (ipa_note_param_call): Do not initialize information about polymorphic
12172         calls, return the indirect call graph edge.  Remove the last
12173         parameter, adjust all callers.
12174         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
12175         parameters.  Initialize polymorphic information in the indirect edge.
12176
12177 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
12178
12179         PR lto/48148
12180         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
12181         the types if they have different enumeration identifiers.
12182
12183 2011-04-19  Jan Hubicka  <jh@suse.cz>
12184
12185         * cgraph.h (cgraph_optimize_for_size_p): Declare.
12186         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
12187         * predict.c (cgraph_optimize_for_size_p): Break out from ...
12188         (optimize_function_for_size_p) ... here.
12189
12190 2011-04-19  Richard Guenther  <rguenther@suse.de>
12191
12192         PR lto/48207
12193         * tree.c (free_lang_data): Do not reset the decl-assembler-name
12194         langhook.
12195
12196 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
12197
12198         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
12199         if DECL_NO_INLINE_WARNING_P is set on the function.
12200
12201 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
12202
12203         PR fortran/47976
12204         * reload1.c (inc_for_reload): Return void. All callers changed.
12205         (emit_input_reload_insns): Don't try to delete previous output
12206         reloads to a register, or record spill_reg_store for autoincs.
12207
12208 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
12209
12210         * gengtype.h: Updated copyright year.
12211         (struct input_file_st): Add inpisplugin field.
12212         (type_fileloc): New function.
12213         * gengtype.c
12214         (write_typed_struct_alloc_def): Add gcc_assert.
12215         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
12216         (write_typed_alloc_defns): Don't output for plugin files.
12217         (input_file_by_name): Clear inpisplugin field.
12218         (main): Set inpisplugin field for plugin files.
12219
12220 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
12221
12222         * gengtype-state.c (string_eq): New.
12223         (read_state): Use string_eq instead of strcmp when creating the
12224         state_ident_tab.
12225
12226 2011-04-19  Wei Guozhi  <carrot@google.com>
12227
12228         PR target/47855
12229         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
12230         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
12231         linkage.
12232         * config/arm/constraints.md (Uu): New constraint.
12233         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
12234
12235 2011-04-19  Tristan Gingold  <gingold@adacore.com>
12236
12237         * config.gcc (-*-*-*vms): Added.
12238         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
12239         definitions moved.
12240         * config/vms/vms-ld.c: New file.
12241         * config/vms/vms-ar.c: New file.
12242         * config/vms/t-vmsnative: New file.
12243
12244 2011-04-18  Xinliang David Li  <davidxl@google.com>
12245
12246         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
12247
12248 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
12249
12250         PR middle-end/48661
12251         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
12252         if TREE_TYPE (v) is non-NULL.
12253
12254         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
12255         gimple_get_virt_mehtod_for_binfo.
12256         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
12257         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
12258         callers.
12259         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
12260
12261 2011-04-18  Michael Matz  <matz@suse.de>
12262             Steve Ellcey  <sje@cup.hp.com>
12263
12264         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
12265         use its mode as source mode if it isn't VOIDmode.
12266
12267 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
12268
12269         * doc/passes.texi: Fill crossref nodes.
12270
12271 2011-04-18  Jim Meyering  <meyering@redhat.com>
12272
12273         Fix doubled-word typos in comments and strings
12274         * config/alpha/vms-unwind.h: s/for for/for/
12275         * config/arm/unwind-arm.h: Likewise.
12276         * config/microblaze/microblaze.c: Likewise.
12277         * config/sh/constraints.md: s/in in/in/
12278         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
12279
12280 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
12281
12282         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
12283         (AVX_FLOAT_MODE_P): Ditto.
12284         (AVX128_VEC_FLOAT_MODE_P): Ditto.
12285         (AVX256_VEC_FLOAT_MODE_P): Ditto.
12286         (AVX_VEC_FLOAT_MODE_P): Ditto.
12287         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
12288         (UNSPEC_MASKSTORE): Ditto.
12289         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
12290         Merge from <sse>_movmsk<ssemodesuffix> and
12291         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
12292         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
12293         iterator.
12294         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
12295         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
12296         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
12297
12298 2011-04-18  Jan Hubicka  <jh@suse.cz>
12299
12300         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
12301
12302         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
12303         (want_inline_function_called_once_p): Break out the logic from
12304         ipa_inline.
12305         (edge_badness): Ensure that profile is not misupdated.
12306         (lookup_recursive_calls): Prioritize by call frequencies.
12307         (inline_small_functions): Move program size estimates here;
12308         actually process whole queue even when unit growth has been
12309         met. (to properly compute inline_failed reasons and for the
12310         case unit size decrease.) Revisit comments on recursive inlining.
12311         (ipa_inline): Remove unit summary code; first inline hot calls
12312         of functions called once, cold calls next.
12313         (order, nnodes): Remove unused variables.
12314         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
12315         (GTFILES): Remove ipa-inline.c
12316         * sel-sched.c (fill_insns): Silence uninitialized var warning.
12317
12318 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
12319
12320         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
12321
12322 2011-04-18  Jie Zhang  <jie@codesourcery.com>
12323             Richard Earnshaw  <rearnsha@arm.com>
12324
12325         * arm.c (neon_builtin_type_bits): Remove.
12326         (typedef enum neon_builtin_mode): New.
12327         (T_MAX): Don't define.
12328         (typedef enum neon_builtin_datum): Remove bits, codes[],
12329         num_vars and base_fcode.  Add mode, code and fcode.
12330         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
12331         VAR10): Change accordingly.
12332         (neon_builtin_data[]): Change accordingly
12333         (arm_init_neon_builtins): Change accordingly.
12334         (neon_builtin_compare): Remove.
12335         (locate_neon_builtin_icode): Remove.
12336         (arm_expand_neon_builtin): Change accordingly.
12337
12338         * arm.h (enum arm_builtins): Move to ...
12339         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
12340
12341         * arm.c (arm_builtin_decl): Declare.
12342         (TARGET_BUILTIN_DECL): Define.
12343         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
12344         (arm_builtin_decls[]): New.
12345         (arm_init_neon_builtins): Store builtin declarations in
12346         arm_builtin_decls[].
12347         (arm_init_tls_builtins): Likewise.
12348         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
12349         (arm_builtin_decl): New.
12350
12351 2011-04-18  Richard Guenther  <rguenther@suse.de>
12352
12353         * tree.c (upper_bound_in_type): Build properly canonicalized
12354         INTEGER_CSTs.
12355         (lower_bound_in_type): Likewise.
12356
12357 2011-04-18  Richard Guenther  <rguenther@suse.de>
12358
12359         * gimple.h (gimple_call_addr_fndecl): New function.
12360         (gimple_call_fndecl): Use it.
12361         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
12362         for direct calls.
12363         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
12364         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
12365
12366 2011-04-18  Richard Guenther  <rguenther@suse.de>
12367
12368         PR middle-end/48650
12369         * tree.c (build_string): STRING_CST is now derived from tree_typed.
12370
12371 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
12372
12373         PR lto/48492
12374         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
12375         DECL_IN_CONSTANT_POOL without RTL.
12376
12377 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
12378             Ira Rosen  <ira.rosen@linaro.org>
12379
12380         PR target/48252
12381         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
12382         to match neon_vzip/vuzp/vtrn_internal.
12383         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
12384         outputs explicitly dependent on both inputs.
12385         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
12386
12387 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
12388
12389         PR tree-optimization/48616
12390         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
12391         whether the shift is by scalar or vector based on whether all SLP
12392         scalar stmts have the same rhs.
12393
12394 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
12395
12396         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
12397         memory operands.
12398
12399 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
12400
12401         PR target/43700
12402         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
12403         registers.
12404
12405 2011-04-17  Jan Hubicka  <jh@suse.cz>
12406
12407         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
12408         * cgrpahunit.c (cgraph_finalize_function): Do not set
12409         finalized_by_frontend.
12410         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
12411         finalized_by_frontend.
12412
12413 2011-04-17  Jan Hubicka  <jh@suse.cz>
12414
12415         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
12416         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
12417         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
12418         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
12419         method.
12420         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
12421         gimple-fold.c
12422         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
12423
12424 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
12425
12426         PR lto/48538
12427         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
12428         is non-null before accessing it.
12429         (input_cgraph): Remove trailing spaces.
12430
12431 2011-04-17  Revital Eres  <revital.eres@linaro.org>
12432
12433         * params.def (sms-min-sc): New param flag.
12434         * modulo-sched.c (sms_schedule): Use it.
12435         * doc/invoke.texi (sms-min-sc): Document it.
12436
12437 2011-04-17  Jan Hubicka  <jh@suse.cz>
12438
12439         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
12440         present, also set gimple_call_set_cannot_inline.
12441         * ipa-inline.c: Update toplevel comment.
12442         (MAX_TIME): Remove.
12443         (cgraph_clone_inlined_nodes): Fix linebreaks.
12444         (cgraph_check_inline_limits): Restructure to ...
12445         (caller_growth_limits): ... this one; be more tolerant
12446         on growth in nested inline chains; add explanatory comment;
12447         fix stack accounting thinko introduced by previous patch.
12448         (cgraph_default_inline_p): Remove.
12449         (report_inline_failed_reason): New function.
12450         (can_inline_edge_p): New function.
12451         (can_early_inline_edge_p): New function.
12452         (leaf_node_p): Move upwards in file.
12453         (want_early_inline_function_p): New function.
12454         (want_inline_small_function_p): New function.
12455         (want_inline_self_recursive_call_p): New function.
12456         (cgraph_edge_badness): Rename to ...
12457         (edge_badness) ... this one; fix linebreaks.
12458         (update_edge_key): Update call of edge_baddness; add
12459         detailed dump about queue updates.
12460         (update_caller_keys): Use can_inline_edge_p and
12461         want_inline_small_function_p.
12462         (cgraph_decide_recursive_inlining): Rename to...
12463         (recursive_inlining): Use can_inline_edge_p and
12464         want_inline_self_recursive_call_p; simplify and remove no longer
12465         valid FIXME.
12466         (cgraph_set_inline_failed): Remove.
12467         (add_new_edges_to_heap): Use can_inline_edge_p and
12468         want_inline_small_function_p.
12469         (cgraph_decide_inlining_of_small_functions): Rename to ...
12470         (inline_small_functions): ... this one; cleanup; use
12471         can/want predicates; cleanup debug ouput; work edges till fibheap
12472         is exhausted and do not stop once unit growth is reached; remove
12473         later loop processing remaining edges.
12474         (cgraph_flatten): Rename to ...
12475         (flatten_function): ... this one; use can_inline_edge_p
12476         and can_early_inline_edge_p predicates.
12477         (cgraph_decide_inlining): Rename to ...
12478         (ipa_inline): ... this one; remove unreachable nodes before
12479         inlining functions called once; simplify the pass.
12480         (cgraph_perform_always_inlining): Rename to ...
12481         (inline_always_inline_functions): ... this one; use
12482         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
12483         (cgraph_decide_inlining_incrementally): Rename to ...
12484         (early_inline_small_functions): ... this one; simplify
12485         using new predicates; cleanup; make dumps prettier.
12486         (cgraph_early_inlining): Rename to ...
12487         (early_inliner): newer inline regular functions into always-inlines;
12488         fix updating of call stmt summaries.
12489         (pass_early_inline): Update for new names.
12490         (inline_transform): Fix formating.
12491         (gate_cgraph_decide_inlining): Rename to ...
12492         (pass_ipa_inline): ... this one.
12493         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
12494         * ipa-inline-analysis.c (dump_inline_summary): Update.
12495         (compute_inline_parameters): Do not compute disregard_inline_limits;
12496         look for mismatching arguments.
12497         (estimate_growth): Fix handlig of non-trivial self recursion.
12498         (inline_read_summary): Do not read info->disregard_inline_limits.
12499         (inline_write_summary): Do not write info->disregard_inline_limits.
12500         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
12501         and move all checks into can_inline_edge_p predicate; re-enable code
12502         comparing optimization levels.
12503         (expand_call_inline): Do not test inline_forbidden_into_p.
12504         * Makefile.in (ipa-inline.o): Update arguments.
12505
12506 2011-04-17  Revital Eres  <revital.eres@linaro.org>
12507
12508         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
12509
12510 2011-04-17  Revital Eres  <revital.eres@linaro.org>
12511
12512         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
12513
12514 2011-04-17  Michael Matz  <matz@suse.de>
12515
12516         PR tree-optimization/48622
12517         PR lto/48645
12518         * ipa-inline-analysis.c (inline_read_summary): Read size/time
12519         in same order as they're written.
12520
12521 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12522
12523         * config/pa/predicates.md: Reorganize and simplify predicates.
12524         Eliminate duplicate code checks.
12525         (arith_operand): Rename to arith14_operand
12526         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
12527         * config/pa/pa.md: Use renamed operands.
12528         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
12529         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
12530         arith11_operand, adddi3_operand, indexed_memory_operand,
12531         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
12532         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
12533         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
12534         move_dest_operand, move_src_operand, prefetch_cc_operand,
12535         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
12536         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
12537         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
12538         div_operand, int5_operand, movb_comparison_operator,
12539         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
12540         arith_double_operand, ireg_operand, lhs_lshift_operand,
12541         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
12542         integer_store_memory_operand): Likewise.
12543         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
12544         (integer_store_memory_operand, read_only_operand,
12545         function_label_operand, borx_reg_operand,
12546         non_hard_reg_operand): Likewise.
12547         (eq_neq_comparison_operator): Delete unused operator.
12548         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
12549         function_label_operand.
12550         (emit_move_sequence): Likewise.
12551
12552 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
12553
12554         * config/i386/sse.md (sseunpackmode): New mode attribute.
12555         (ssepackmode): Ditto.
12556         (vec_pack_trunc_<mode>): Macroize expander from
12557         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
12558         (vec_unpacks_lo_<mode>): Macroize expander from
12559         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12560         (vec_unpacks_hi_<mode>): Macroize expander from
12561         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12562         (vec_unpacku_lo_<mode>): Macroize expander from
12563         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12564         (vec_unpacku_hi_<mode>): Macroize expander from
12565         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12566         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
12567         ix86_expand_sse4_unpack.
12568         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
12569
12570 2011-04-16  Jan Hubicka  <jh@suse.cz>
12571
12572         * cgraphbuild.c: Include ipa-inline.h.
12573         (reset_inline_failed): Use initialize_inline_failed.
12574         * cgraph.c: Include ipa-inline.h.
12575         (cgraph_create_node_1): Do not initialize estimated_growth.
12576         (initialize_inline_failed): More to ipa-inline-analysis.c
12577         (dump_cgraph_node): Do not dump inline flags.
12578         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
12579         and disregard_inline_limits flags.
12580         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
12581         time, size, estimated_growth.
12582         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
12583         Update.
12584         * cgraphunit.c (cgraph_decide_is_function_needed): Use
12585         DECL_DISREGARD_INLINE_LIMITS.
12586         (cgraph_analyze_function): Do not initialize
12587         node->local.disregard_inline_limits.
12588         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
12589         inlinable, versionable and disregard_inline_limits.
12590         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
12591         cgraph_check_inline_limits, cgraph_default_inline_p,
12592         cgraph_edge_badness, update_caller_keys, update_callee_keys,
12593         add_new_edges_to_heap): Update.
12594         (cgraph_decide_inlining_of_small_function): Update; set
12595         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
12596         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
12597         cgraph_decide_inlining_incrementally): Update.
12598         * ipa-inline.h (inline_summary): Add inlinable, versionable,
12599         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
12600         time, size and estimated_growth parameters.
12601         (estimate_edge_growth): Update.
12602         (initialize_inline_failed): Declare.
12603         * ipa-split.c: Include ipa-inline.h
12604         (execute_split_functions): Update.
12605         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
12606         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
12607         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
12608         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
12609         estimated_growth to INT_MIN.
12610         (inline_node_duplication_hook): Likewise.
12611         (dump_inline_summary): Dump new fields.
12612         (compute_inline_parameters): Update.
12613         (estimate_edge_time, estimate_time_after_inlining,
12614         estimate_size_after_inlining, estimate_growth, inline_read_summary,
12615         inline_write_summary):
12616         (initialize_inline_failed): Move here from cgraph.c.
12617         * tree-sra.c: Include ipa-inline.h.
12618         (ipa_sra_preliminary_function_checks): Update.
12619         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
12620         ipa-inline.h.
12621
12622 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
12623
12624         * config/i386/sse.md (V16): New mode iterator.
12625         (VI1, VI8): Ditto.
12626         (AVXMODEQI, AVXMODEDI): Remove.
12627         (sse2, sse3): New mode attribute.
12628         (mov<mode>): Use V16 mode iterator.
12629         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
12630         (push<mode>1): Use V16 mode iterator.
12631         (movmisalign<mode>): Ditto.
12632         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
12633         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
12634         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
12635         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
12636         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
12637         avx_movdqu<avxmodesuffix>.
12638         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
12639         *avx_movdqu<avxmodesuffix>.
12640         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
12641         avx_lddqu<avxmodesuffix>.
12642         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
12643         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
12644         avx_movnt<AVXMODEDI:mode>.
12645         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
12646         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
12647
12648 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
12649
12650         PR target/48629
12651         * haifa-sched.c (prune_ready_list, schedule_block): Use
12652         sched_pressure_p rather than flag_sched_pressure.
12653
12654 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
12655
12656         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
12657         cgraph_get_node instead of cgraph_get_create_node.
12658
12659 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
12660
12661         * cfgexpand.c (expand_debug_expr): Use
12662         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
12663
12664 2011-04-15  Michael Matz  <matz@suse.de>
12665
12666         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
12667         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
12668         * function.c (gimplify_parameters): Ditto.
12669         * gimplify.c (gimplify_vla_decl): Ditto.
12670
12671         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
12672         (gimple_call_set_alloca_for_var): New inline function.
12673         (gimple_call_alloca_for_var_p): Ditto.
12674         * gimple.c (gimple_build_call_from_tree): Remember
12675         CALL_ALLOCA_FOR_VAR_P state.
12676         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
12677
12678         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
12679         calls if they were for VLA objects.
12680
12681 2011-04-15  Martin Jambor  <mjambor@suse.cz>
12682
12683         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
12684         of ADR_EXPRs.
12685
12686 2011-04-15  Martin Jambor  <mjambor@suse.cz>
12687
12688         PR middle-end/48601
12689         * tree-emutls.c (lower_emutls_function_body): Call
12690         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
12691         result is non-NULL.
12692
12693 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
12694
12695         * c-decl.c (detect_field_duplicates): Call
12696         objc_detect_field_duplicates instead of objc_get_interface_ivars.
12697
12698 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
12699
12700         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
12701         * gimple.c (gimple_asm_clobbers_memory_p): Define.
12702         * ipa-pure-const.c (check_stmt): Call it.
12703         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
12704
12705 2011-04-15  Richard Guenther  <rguenther@suse.de>
12706
12707         PR tree-optimization/48290
12708         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
12709         Properly decide inhibiting propagation based on the valueized
12710         operand.  Do loop-closed SSA form preserving here ...
12711         (init_copy_prop): ... not here.
12712
12713 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
12714
12715         PR target/48612
12716         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
12717         (*ieee_smax<mode>3): Likewise.
12718
12719 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12720
12721         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
12722         Replace match_operand with match_dup for the third operand in
12723         these expanders.
12724
12725 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
12726
12727         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
12728         to track processing of conditionals.  Update all callers.
12729         (try_combine, simplify_if_then_else): Update.
12730
12731 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
12732
12733         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
12734         -fsched-pressure.
12735
12736 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
12737
12738         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
12739         instead of match_operand for operand 3.
12740
12741 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
12742
12743         * recog.h (insn_operand_data): Add an "allows_mem" field.
12744         * genoutput.c (output_operand_data): Initialize it.
12745         * optabs.c (maybe_legitimize_operand_same_code): New function.
12746         (maybe_legitimize_operand): Use it when matching the original
12747         op->value.
12748
12749 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
12750
12751         * gimplify.c: Fix issues in comments throughout.
12752         (voidify_wrapper_expr): Fix long line.
12753         (build_stack_save_restore): Likewise.
12754         (gimplify_loop_expr): Likewise.
12755         (gimplify_compound_lval): Likewise.
12756         (gimplify_init_ctor_eval): Likewise.
12757         (gimplify_modify_expr_rhs): Likewise.
12758         (omp_notice_threadprivate_variable): Likewise.
12759
12760 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
12761
12762         * cfgexpand.c (expand_call_stmt): Convert the function type to the
12763         original one if this is not a builtin function.
12764
12765 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
12766
12767         PR target/48605
12768         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
12769         offset it as needed based on top 2 bits in operands[3], change
12770         MEM mode to SFmode and mask those 2 bits away from operands[3].
12771
12772 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
12773
12774         * c-parser.c (c_parser_objc_protocol_definition): Updated for
12775         change from objc_declare_protocols() to objc_declare_protocol().
12776
12777 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
12778
12779         * config/i386/sse.md (sse4_1): New mode attribute.
12780         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
12781         avx_blend<ssemodesuffix><avxmodesuffix> and
12782         sse4_1_blend<ssemodesuffix> using VF mode iterator.
12783         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
12784         avx_blendv<ssemodesuffix><avxmodesuffix> and
12785         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
12786         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
12787         avx_dp<ssemodesuffix><avxmodesuffix> and
12788         sse4_1_dp<ssemodesuffix> using VF mode iterator.
12789         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
12790         (sse4_1_packusdw): Merge with *avx_packusdw.
12791         (sse4_1_pblendvb): Merge with *avx_pblendvb.
12792         (sse4_1_pblendw): Merge with *avx_pblendw.
12793         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
12794         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
12795         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
12796         VF mode iterator.
12797         (sse4_1_round<ssescalarmodesuffix>): Merge with
12798         *avx_round<ssescalarmodesuffix>.
12799         (aesenc): Merge with *avx_aesenc.
12800         (aesenclast): Merge with *avx_aesenclast.
12801         (aesdec): Merge with *avx_aesdec.
12802         (aesdeclast): Merge with *avx_aesdeclast.
12803         (pclmulqdq): Merge with *pclmulqdq.
12804         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
12805         New predicate.
12806         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
12807
12808 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
12809
12810         PR middle-end/48608
12811         * cfgexpand.c (get_decl_align_unit): Renamed to ...
12812         (align_local_variable): This.  Update DECL_ALIGN.
12813         (add_stack_var): Updated.
12814         (expand_one_stack_var): Likewise.
12815
12816 2011-04-14  Richard Guenther  <rguenther@suse.de>
12817
12818         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
12819         Remove.
12820         (dse_initialize_block_local_data, dse_leave_block,
12821         record_voperand_set, get_stmt_uid): Likewise.
12822         (dse_possible_dead_store_p): Allow any kind of killing stmt.
12823         (dse_optimize_stmt): Remove voperand set handling code.
12824         Simplify and improve to handle any kind of killing stmt.
12825         (dse_record_phi): Remove.
12826         (dse_enter_block): Simplify.
12827         (tree_ssa_dse): Likewise.
12828         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
12829
12830 2011-04-14  Jan Hubicka  <jh@suse.cz>
12831
12832         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
12833         * cgraph.h (struct inline_summary): Move to ipa-inline.h
12834         (cgraph_local_info): Remove inline_summary.
12835         * ipa-cp.c: Include ipa-inline.h.
12836         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
12837         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
12838         accesor.
12839         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
12840         (input_overwrite_node): Do not set inline summary.
12841         (input_node): Do not stream inline summary.
12842         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
12843         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
12844         growth; we do not have inline parameters computed for that anyway.
12845         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
12846         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
12847         (inline_summary_t): New type and VECtor.
12848         (debug_inline_summary, dump_inline_summaries): Declare.
12849         (inline_summary): Use VOCtor.
12850         (estimate_edge_growth): Kill hack computing call stmt size directly.
12851         * lto-section-in.c (lto_section_name): Add inline section.
12852         * ipa-inline-analysis.c: Include lto-streamer.h
12853         (node_removal_hook_holder, node_duplication_hook_holder): New holders
12854         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
12855         (inline_summary_vec): Define.
12856         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
12857         dump_inline_summaries): New functions.
12858         (estimate_function_body_sizes): Properly compute size/time of outgoing
12859         calls.
12860         (compute_inline_parameters): Alloc inline_summary; do not compute
12861         size/time of incomming calls.
12862         (estimate_edge_time): Avoid missing time summary hack.
12863         (inline_read_summary): Read inline summary info.
12864         (inline_write_summary): Write inline summary info.
12865         (inline_free_summary): Free all hooks and inline summary vector.
12866         * lto-streamer.h: Add LTO_section_inline_summary section.
12867         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
12868         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
12869
12870 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
12871
12872         * tree-vectorizer.h (vect_strided_store_supported): Add a
12873         HOST_WIDE_INT argument.
12874         (vect_strided_load_supported): Likewise.
12875         (vect_permute_store_chain): Return void.
12876         (vect_transform_strided_load): Likewise.
12877         (vect_permute_load_chain): Delete.
12878         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
12879         count argument.  Check that the count is a power of two.
12880         (vect_strided_load_supported): Likewise.
12881         (vect_permute_store_chain): Return void.  Update after above changes.
12882         Assert that the access is supported.
12883         (vect_permute_load_chain): Likewise.
12884         (vect_transform_strided_load): Return void.
12885         * tree-vect-stmts.c (vectorizable_store): Update calls after
12886         above interface changes.
12887         (vectorizable_load): Likewise.
12888         (vect_analyze_stmt): Don't check for strided powers of two here.
12889
12890 2011-04-14  Richard Guenther  <rguenther@suse.de>
12891
12892         PR tree-optimization/48590
12893         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
12894         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
12895         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
12896         BUILT_IN_STACK_SAVE.
12897         * tree-ssa-dce.c (propagate_necessity): Handle
12898         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
12899
12900 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
12901
12902         * c-parser.c (c_parser_objc_class_declaration): Updated call to
12903         objc_declare_class.
12904
12905 2011-04-14  Richard Guenther  <rguenther@suse.de>
12906
12907         * tree.h (get_object_alignment_1): Declare.
12908         * builtins.c (get_object_alignment_1): Split out worker from ...
12909         (get_object_alignment): ... here.
12910         * fold-const.c (get_pointer_modulus_and_residue): Use
12911         get_object_alignment_1.
12912
12913 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
12914
12915         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
12916         type parameter.
12917         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
12918         parameter.  Generalise code to handle arrays as well as vectors.
12919         (vect_setup_realignment): Update accordingly.
12920         * tree-vect-stmts.c (vectorizable_store): Likewise.
12921         (vectorizable_load): Likewise.
12922
12923 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
12924
12925         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
12926         within the per-copy loop.
12927
12928 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
12929
12930         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
12931         in the dump file.
12932
12933 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
12934
12935         * doc/options.texi (Negative): Explicitly mention that the
12936         Negative chain must be circular.
12937
12938 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
12939
12940         * function.h (block_chainon): Declare.
12941         * function.c (block_chainon): Define.
12942
12943 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
12944             Eric Weddington  <eric.weddington@atmel.com>
12945             Georg-Johann Lay  <avr@gjlay.de>
12946
12947         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
12948         New Includes
12949         (avr_init_builtins, avr_expand_builtin,
12950         avr_expand_delay_cycles, avr_expand_unop_builtin,
12951         avr_expand_binop_builtin ): New functions.
12952         (avr_builtin_id): New enum
12953         (struct avr_builtin_description): New struct
12954         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
12955         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
12956
12957         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
12958         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
12959         UNSPECV_DELAY_CYCLES): new enumeration values
12960         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
12961         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
12962         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
12963         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
12964         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
12965         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
12966         "fmulsu"): New insns
12967
12968         * config/avr/avr-c.c: fix line endings
12969         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
12970         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
12971         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
12972         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
12973         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
12974
12975         * doc/extend.texi (AVR Built-in Functions): New node
12976         (Target Builtins): Add documentation of AVR
12977         built-in functions.
12978
12979 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
12980
12981         PR target/44643
12982         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
12983         alone. Error if non-const data has attribute progmem.
12984
12985 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
12986
12987         * tree.h (struct tree_constructor): Include tree_typed instead of
12988         tree_common.
12989         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
12990         TS_TYPED instead of TS_COMMON.
12991
12992 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
12993
12994         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
12995         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
12996         (sse2_psadbw): Merge with *avx_psadbw.
12997         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
12998         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
12999         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
13000         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
13001         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
13002         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
13003         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
13004         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
13005         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
13006         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
13007         (ssse3_palignrti): Merge with *avx_palignrti.
13008
13009 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
13010
13011         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
13012         * tree-ssanames.c (fini_ssanames): VEC_free it.
13013         (make_ssa_name_fn): Update for VECness of free_ssanames.
13014         (release_ssa_name, release_dead_ssa_names): Likewise.
13015         * tree.h (struct tree_ssa_name): Include tree_typed instead of
13016         tree_common.
13017         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
13018         TS_TYPED instead of TS_COMMON.
13019
13020 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
13021
13022         * postreload-gcse.c (gcse_after_reload_main): Add calls to
13023         statistics_counter_event.
13024         * tree-ssa-copyrename.c (stats): Define.
13025         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
13026         statistics_counter_event.
13027         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
13028         (bswap_stats, widen_mul_stats): Define.
13029         (insert_reciprocals): Increment rdivs_inserted.
13030         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
13031         rfuncs_inserted.  Add calls to statistics_counter_event.
13032         (execute_cse_sincos_1): Increment inserted.
13033         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
13034         statistics_counter_event.
13035         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
13036         of bswap_stats.  Add calls to statistics_counter_event.
13037         (convert_mult_to_widen): Increment widen_mults_inserted.
13038         (convert_plusminus_to_widen): Increment maccs_inserted.
13039         (convert_mult_to_fma): Increment fmas_inserted.
13040         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
13041         calls to statistics_counter_event.
13042
13043 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
13044
13045         PR rtl-optimization/48455
13046         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
13047         `temp_costs->mem_cost'.
13048
13049 2011-04-13  Jan Hubicka  <jh@suse.cz>
13050
13051         * ipa-inline.h: New file.
13052         * ipa-inline-analysis.c: New file. Broken out of ...
13053         * ipa-inline.c: ... this file; update toplevel comment;
13054         include ipa-inline.h
13055         (inline_summary): Move to ipa-inline.h
13056         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
13057         ipa-inline-analysis.c.
13058         (cgraph_estimate_time_after_inlining): Rename to
13059         estiamte_time_after_inlining; move to ipa-inline-analysis.c
13060         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
13061         to estimate_edge_growth.
13062         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
13063         rename to estimate_size_after_inlining.
13064         (cgraph_mark_inline_edge): Update for new naming convention.
13065         (cgraph_check_inline_limits): Likewise.
13066         (cgraph_edge_badness): Likewise.
13067         (cgraph_decide_recursive_inlining): Likewise.
13068         (cgraph_decide_inlining_of_small_functions): Likewise.
13069         (cgraph_decide_inlining_incrementally): Likewise.
13070         (cgraph_estimate_growth): Rename to estimate_growth; move to
13071         ipa-inline-analysis.c.
13072         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
13073         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
13074         (compute_inline_parameters): Likewise.
13075         (compute_inline_parameters_for_current): Likewise.
13076         (pass_inline_parameters): Likewise.
13077         (inline_indirect_intraprocedural_analysis): Likewise.
13078         (analyze_function): Rename to inline_analyze_function; likewise.
13079         (add_new_function): Move to ipa-inline-analysis.c.
13080         (inline_generate_summary): Likewise.
13081         (inline_read_summary): Likewise.
13082         (inline_write_summary): Likewise.
13083         * Makefile.in (ipa-inline-analysis.c): New file.
13084
13085 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13086
13087         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
13088         * configure: Regenerate.
13089
13090 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
13091
13092         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
13093         instead of tree_common.
13094         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
13095         Likewise.
13096         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
13097         TS_TYPED rather than TS_COMMON.
13098         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
13099
13100 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
13101
13102         PR target/45263
13103         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
13104         r20 around calls of __tablejump_elpm__
13105
13106 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
13107
13108         PR middle-end/48591
13109         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
13110         NULL.
13111         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
13112
13113 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
13114
13115         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
13116         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
13117         (cfi_vec): New typedef.
13118         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
13119         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
13120         (cie_cfi_vec): New static variable.
13121         (cie_cfi_head): Delete.
13122         (add_cfi): Accept a cfi_vec * as first argument. All callers and
13123         declaration changed. Use vector rather than list operations.
13124         (new_cfi): Don't initialize the dw_cfi_next field.
13125         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
13126         rather than list operations.
13127         (lookup_cfa): Use vector rather than list operations.
13128         (output_cfis): New argument upto. Accept a cfi_vec rather than
13129         a dw_cfi_ref list head as argument. All callers changed.
13130         Iterate over the vector using upto as a maximum index.
13131         (output_all_cfis): New static function.
13132         (output_fde): Use vector rather than list operations. Use the
13133         new upto argument for output_cfis rather than manipulating a
13134         list.
13135         (dwarf2out_begin_prologue): Change initializations to match
13136         new struct members.
13137         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
13138         from the vector length rather than searching for the end of a list.
13139         Use output_all_cfis.
13140         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
13141
13142 2011-04-13  Nick Clifton  <nickc@redhat.com>
13143
13144         * config/rx/rx.md (movmemsi): Do not use this pattern when
13145         volatile pointers are involved.
13146
13147 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
13148
13149         * config/i386/sse.md (pinsrbits): Remove.
13150         (sse2_packsswb): Merge with *avx_packsswb.
13151         (sse2_packssdw): Merge with *avx_packssdw.
13152         (sse2_packuswb): Merge with *avx_packuswb.
13153         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
13154         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
13155         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
13156         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
13157         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
13158         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
13159         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
13160         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
13161         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
13162         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
13163         (sse2_loadld): Merge with *avx_loadld.
13164         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
13165         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
13166         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
13167         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
13168         (vec_concatv2di): Merge with *vec_concatv2di_avx.
13169
13170 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
13171
13172         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
13173         calling TREE_CHAIN.
13174         * print-tree.c (print_node): Likewise.
13175         * tree-inline.c (copy_tree_r): Likewise.
13176         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
13177         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
13178         instead of TS_COMMON.
13179         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
13180         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
13181         (copy_node_stat): Zero TREE_CHAIN only if necessary.
13182         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
13183         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
13184         ...and these...
13185         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
13186         * tree.h: ...here.
13187         (TREE_CHAIN): Check for a TS_COMMON structure.
13188         (TREE_TYPE): Check for a TS_TYPED structure.
13189
13190 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
13191
13192         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
13193         cgraph_get_create_node instead of cgraph_node.
13194
13195 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
13196
13197         * c-parser.c (c_parser_initelt): Updated call to
13198         objc_build_message_expr.
13199         (c_parser_postfix_expression): Likewise.
13200
13201 2011-04-12  Kai Tietz  <ktietz@redhat.com>
13202
13203         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
13204         MASK_MS_BITFIELD_LAYOUT bit.
13205
13206 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
13207
13208         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
13209         assert it is always true.
13210         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
13211         moves.
13212
13213 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
13214
13215         * c-parser.c (c_lex_one_token): Rewritten conditional used when
13216         compiling Objective-C to be more efficient.
13217
13218 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
13219
13220         * opts-common.c (decode_cmdline_options_to_array): Remove variable
13221         argv_copied.
13222
13223 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
13224
13225         * recog.h, genoutput.c, optabs.c: Revert last patch.
13226
13227 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13228
13229         PR target/48090
13230         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
13231
13232 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
13233
13234         * recog.h (insn_operand_data): Add an "allows_mem" field.
13235         * genoutput.c (output_operand_data): Initialize it.
13236         * optabs.c (maybe_legitimize_operand_same_code): New function.
13237         (maybe_legitimize_operand): Use it when matching the original
13238         op->value.
13239
13240 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
13241
13242         * genpreds.c (process_define_predicate): Move most processing
13243         to gensupport.c.  Continue to validate the expression.
13244         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
13245         (process_define_predicate): Move processing to gensupport.c.
13246         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
13247         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
13248         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
13249         argument.
13250         (valid_predicate_name_p): New function, split out from old
13251         genpreds.c:process_define_predicate.
13252         (process_define_predicate): New function, combining code from
13253         old genpreds.c and genrecog.c functions.
13254         (process_rtx): Call it for DEFINE_PREDICATE and
13255         DEFINE_SPECIAL_PREDICATE.
13256
13257 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
13258
13259         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
13260         size of a '%A' memory reference.
13261         (T_DREG, T_QREG): New neon_builtin_type_bits.
13262         (arm_init_neon_builtins): Assert that the load and store operands
13263         are neon_struct_operands.
13264         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
13265         (NEON_ARG_MEMORY): New builtin_arg.
13266         (neon_dereference_pointer): New function.
13267         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
13268         Handle NEON_ARG_MEMORY.
13269         (arm_expand_neon_builtin): Update after above interface changes.
13270         Use NEON_ARG_MEMORY for loads and stores.
13271         * config/arm/predicates.md (neon_struct_operand): New predicate.
13272         * config/arm/iterators.md (V_two_elem): Tweak formatting.
13273         (V_three_elem): Use BLKmode for accesses that have no associated mode.
13274         (V_four_elem): Tweak formatting.
13275         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
13276         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
13277         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
13278         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
13279         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
13280         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
13281         (neon_vst4<mode>): Replace pointer operand with a memory operand.
13282         Use %A in the output template.
13283         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
13284         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
13285         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
13286         the width of the memory access.  Remove post-increment.
13287         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
13288
13289 2011-04-12  Nick Clifton  <nickc@redhat.com>
13290
13291         * config/v850/v850.c (expand_prologue): Do not use the CALLT
13292         instruction for interrupt handlers if the target is the basic V850
13293         architecture.
13294         (expand_epilogue): Likewise.
13295
13296 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
13297
13298         PR rtl-optimization/48549
13299         * combine.c (propagate_for_debug): Also stop after BB_END of
13300         this_basic_block.  Process LAST and just stop processing after it.
13301         (combine_instructions): If last_combined_insn has been deleted,
13302         set last_combined_insn to its PREV_INSN.
13303
13304 2011-04-12  Richard Guenther  <rguenther@suse.de>
13305
13306         PR tree-optimization/46076
13307         * gimple.h (struct gimple_statement_call): Add fntype field.
13308         (gimple_call_fntype): Adjust.
13309         (gimple_call_set_fntype): New function.
13310         * gimple.c (gimple_build_call_1): Set the call function type.
13311         * gimplify.c (gimplify_call_expr): Preserve the function
13312         type the frontend used for the call.
13313         (gimplify_modify_expr): Likewise.
13314         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
13315         function type.
13316         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
13317         function type.
13318         * tree-ssa.c (useless_type_conversion_p): Function pointer
13319         conversions are useless.
13320
13321 2011-04-12  Martin Jambor  <mjambor@suse.cz>
13322
13323         * cgraph.h (cgraph_node): Remove function declaration.
13324         (cgraph_create_node): Declare.
13325         (cgraph_get_create_node): Likewise.
13326         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
13327         Updated all callers.
13328         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
13329         the decl does not already exist.  Call cgraph_get_create_node instead
13330         of cgraph_node.
13331         (cgraph_get_create_node): New function.
13332         (cgraph_same_body_alias): Update comment.
13333         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
13334         assert it does not return NULL.
13335         (cgraph_update_edges_for_call_stmt): Likewise.
13336         (cgraph_clone_edge): Likewise.
13337         (cgraph_create_virtual_clone): Likewise.
13338         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
13339         instead of cgraph_node.
13340         (cgraph_add_new_function): Call cgraph_create_node or
13341         cgraph_get_create_node instead of cgraph_node.
13342         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
13343         instead of cgraph_node.
13344         (record_eh_tables): Likewise.
13345         (mark_address): Likewise.
13346         (mark_load): Likewise.
13347         (build_cgraph_edges): Call cgraph_get_create_node instead
13348         of cgraph_node.
13349         (rebuild_cgraph_edges): Likewise.
13350         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
13351         instead of cgraph_node.
13352         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
13353         cgraph_node.
13354         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
13355         cgraph_create_node instead of cgraph_node.
13356         * c-decl.c (finish_function): Call cgraph_get_create_node instead
13357         of cgraph_node.
13358         * lto-cgraph.c (input_node): Likewise.
13359         * lto-streamer-in.c (input_function): Likewise.
13360         * varasm.c (mark_decl_referenced): Likewise.
13361         (assemble_alias): Likewise.
13362
13363 2011-04-12  Martin Jambor  <mjambor@suse.cz>
13364
13365         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
13366         instead of cgraph_node and assert it does not return NULL.
13367         * lto-streamer-in.c (lto_read_body): Likewise.
13368         * omp-low.c (new_omp_context): Likewise.
13369         (create_task_copyfn): Likewise.
13370         * tree-emutls.c (lower_emutls_function_body): Likewise.
13371         * matrix-reorg.c (transform_allocation_sites): Likewise.
13372
13373 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
13374
13375         PR c/48552
13376         * c-typeck.c (build_asm_expr): Error out on attempts to use
13377         void type outputs or inputs for constraints that allow reg or
13378         don't allow memory.
13379
13380 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
13381             Richard Earnshaw  <rearnsha@arm.com>
13382
13383         PR target/48250
13384         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
13385         to use sign-magnitude offsets. Reject unsupported unaligned
13386         cases. Add detailed description in comments.
13387         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
13388         condition from TARGET_32BIT to TARGET_ARM.
13389
13390 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
13391
13392         * tree.h (struct typed_tree): New.
13393         (struct tree_common): Include it instead of tree_base.
13394         (TREE_TYPE): Update for new location of type field.
13395         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
13396         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
13397         (union tree_node): Add typed field.
13398         * treestruct.def (TS_TYPED): New.
13399         * lto-streamer.c (check_handled_ts_structures): Handle it.
13400         * tree.c (MARK_TS_TYPED): New macro.
13401         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
13402
13403 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
13404
13405         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
13406         (force_nonfallthru): Do not alter the loop nest if no basic block
13407         was created.
13408
13409 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
13410
13411         * config/i386/sse.md (VI): New mode iterator.
13412         (SSEMODEI): Remove.
13413         (AVX256MODEI): Ditto.
13414         (AVXMODEF4P): Ditto.
13415         (avxvecpsmode): Ditto.
13416         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
13417         (sse2_andnot<mode>3): New expander.
13418         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
13419         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
13420         (<any_logic:code><mode>3): Use VI mode iterator.
13421         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
13422         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
13423         (*andnottf3): Handle AVX three-operand constraints.
13424         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
13425
13426 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
13427             Robert Millan  <rmh@gnu.org>
13428
13429         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
13430         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
13431         GNU_USER_DYNAMIC_LINKER64): Define.
13432         (REG_NAME): Don't undefine.
13433         (MD_UNWIND_SUPPORT): Undefine.
13434         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
13435         (REG_NAME): Don't undefine.
13436         (MD_UNWIND_SUPPORT): Undefine.
13437         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
13438
13439 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
13440
13441         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
13442         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
13443
13444 2011-04-11  Xinliang David Li  <davidxl@google.com>
13445
13446         * value-profile.c (check_ic_target): New function.
13447         (gimple_ic_transform): Sanity check indirect call target.
13448         * gimple-low.c (gimple_check_call_args): Interface change.
13449         (gimple_check_call_matching_types): New function.
13450         * tree-inline.c (tree_can_inline_p): Call new function.
13451
13452 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
13453
13454         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
13455         tree-pretty-print.h & realmpfr.h.
13456
13457 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
13458
13459         PR middle-end/48464
13460         * ira.c (setup_pressure_classes): Fix typo in loop condition.
13461         (setup_allocno_and_important_classes): Ditto.
13462
13463 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
13464
13465         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
13466         GNU_USER_DYNAMIC_LINKER.
13467         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
13468         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13469         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
13470         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13471         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
13472         GNU_USER_TARGET_OS_CPP_BUILTINS.
13473         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
13474         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13475         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
13476         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13477         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
13478         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13479         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
13480         GNU_USER_TARGET_OS_CPP_BUILTINS.
13481         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13482         GNU_USER_DYNAMIC_LINKER.
13483         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13484         GNU_USER_TARGET_OS_CPP_BUILTINS.
13485         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
13486         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13487         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
13488         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13489         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
13490         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
13491         GNU_USER_DYNAMIC_LINKER64): Remove.
13492         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
13493         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13494         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13495         GNU_USER_DYNAMIC_LINKER.
13496         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13497         GNU_USER_TARGET_OS_CPP_BUILTINS.
13498         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13499         GNU_USER_TARGET_OS_CPP_BUILTINS.
13500         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
13501         to GNU_USER_TARGET_OS_CPP_BUILTINS.
13502         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13503         GNU_USER_TARGET_OS_CPP_BUILTINS.
13504         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
13505         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
13506         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
13507         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
13508         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13509         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13510         GNU_USER_DYNAMIC_LINKER.
13511         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
13512         GNU_USER_TARGET_OS_CPP_BUILTINS.
13513         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
13514         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13515         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13516         GNU_USER_DYNAMIC_LINKER.
13517         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
13518         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13519         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
13520         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13521         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13522         GNU_USER_DYNAMIC_LINKER.
13523         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
13524         GNU_USER_DYNAMIC_LINKERN32.
13525         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
13526         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
13527         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
13528         GNU_USER_DYNAMIC_LINKER32.
13529         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
13530         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13531         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13532         GNU_USER_DYNAMIC_LINKER.
13533         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
13534         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13535         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
13536         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13537         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13538         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
13539         GNU_USER_DYNAMIC_LINKER32.
13540         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
13541         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
13542         GNU_USER_DYNAMIC_LINKER.
13543         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
13544         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13545         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
13546         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
13547         GNU_USER_DYNAMIC_LINKER64.
13548         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
13549         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13550         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13551         GNU_USER_DYNAMIC_LINKER.
13552         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
13553         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13554         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13555         GNU_USER_DYNAMIC_LINKER.
13556         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
13557         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13558         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
13559         GNU_USER_DYNAMIC_LINKER32.
13560         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
13561         GNU_USER_DYNAMIC_LINKER64.
13562         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
13563         GNU_USER_DYNAMIC_LINKER64.
13564         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
13565         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13566         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
13567         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13568         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13569
13570 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
13571
13572         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
13573         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
13574         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
13575         GNU_USER_DYNAMIC_LINKER.
13576         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
13577         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
13578         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
13579         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
13580         GNU_USER_DYNAMIC_LINKER64.
13581         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
13582         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
13583         GNU_USER_LINK_EMULATION.
13584         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
13585         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
13586         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
13587         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
13588         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
13589         CPP_SPEC, CC1_SPEC): Remove.
13590         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
13591         (GNU_USER_DYNAMIC_LINKER): Define.
13592         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
13593         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
13594         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
13595         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
13596         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
13597         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
13598         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
13599         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
13600         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
13601         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
13602         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
13603         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
13604         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
13605         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
13606         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
13607         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
13608         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13609         GNU_USER_DYNAMIC_LINKER.
13610         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13611         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
13612         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13613         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
13614         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13615         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
13616         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
13617         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
13618         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
13619         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
13620
13621 2011-04-11  Kai Tietz  <ktietz@redhat.com>
13622
13623         PR target/9601
13624         PR target/11772
13625         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
13626         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
13627         comment.
13628         (ix86_is_msabi_thiscall): Removed.
13629         (ix86_is_type_thiscall): Likewise.
13630         (ix86_get_callcvt): New function.
13631         (ix86_comp_type_attributes): Simplify check.
13632         (ix86_function_regparm): Use ix86_get_callcvt for calling
13633         convention attribute checks.
13634         (ix86_return_pops_args): Likewise.
13635         (ix86_static_chain): Likewise.
13636         (x86_this_parameter): Likewise.
13637         (x86_output_mi_thunk): Likewise.
13638         (ix86_function_type_abi): Optimize check for types without attributes.
13639         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
13640         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
13641         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
13642         by flag-values.
13643         (IX86_BASE_CALLCVT): Helper macro.
13644         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
13645         Use ix86_get_callcvt for calling convention attribute checks and avoid
13646         symbol-decoration for stdcall in TARGET_RTD case.
13647         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
13648         Likewise.
13649         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
13650         for declaration.
13651
13652 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
13653
13654         * config/i386/sse.md (VI_128): New mode iterator.
13655         (VI12_128): Rename from SSEMODE12.
13656         (VI14_128): Rename from SSEMODE14.
13657         (VI124_128): New mode iterator.
13658         (VI24_128): Rename from SSEMODE248.
13659         (VI248_128): Rename from SSEMODE248.
13660         (SSEMODE124C8): Remove.
13661         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
13662         (*sse2_<plusminus_insn><mode>3): Merge with
13663         *avx_<plusminus_insn><mode>3.
13664         (*mulv8hi3): Merge with *avx_mulv8hi3.
13665         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
13666         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
13667         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
13668         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
13669         (ashr<mode>3): Merge with *avx_ashr<mode>3.
13670         (lshr<mode>3): Merge with *avx_lshr<mode>3.
13671         (ashl<mode>3): Merge with *avx_ashl<mode>3.
13672         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
13673         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
13674         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
13675         (*<smaxmin:code>v8hi3): Ditto.
13676         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
13677         (*<smaxmin:code>v16qi3): Ditto.
13678         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
13679         (*sse2_eq<mode>3): Ditto.
13680         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
13681         (*sse2_gt<mode>3): Ditto.
13682         (vcondv2di): Split out of vcond<mode>.
13683         (vconduv2di): Split out of vcondu<mode>.
13684
13685 2011-04-11  Richard Guenther  <rguenther@suse.de>
13686
13687         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
13688         before calling tree_low_cst.
13689
13690 2011-04-11  Richard Guenther  <rguenther@suse.de>
13691
13692         * stor-layout.c (layout_type): Compute all array index size operations
13693         in the original type.
13694         (initialize_sizetypes): Add comment.
13695         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
13696
13697 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
13698
13699         * common.opt (Tbss=, Tdata=, Ttext=): New options.
13700
13701 2011-04-11  Martin Jambor  <mjambor@suse.cz>
13702
13703         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
13704         of cgraph_node, handle NULL return value.
13705         (cgraph_global_info): Likewise.
13706         (cgraph_rtl_info): Likewise.
13707         * tree-inline.c (estimate_num_insns): Likewise.
13708         * gimplify.c (unshare_body): Likewise.
13709         (unvisit_body): Likewise.
13710         (gimplify_body): Likewise.
13711         * predict.c (optimize_function_for_size_p): Likewise.
13712         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
13713         (call_may_clobber_ref_p_1): Likewise.
13714         * varasm.c (function_section_1): Likewise.
13715         (assemble_start_function): Likewise.
13716
13717 2011-04-11  Martin Jambor  <mjambor@suse.cz>
13718
13719         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
13720         of cgraph_node.
13721         * final.c (rest_of_clean_state): Likewise.
13722         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
13723         * passes.c (pass_init_dump_file): Likewise.
13724         (execute_all_ipa_transforms): Likewise.
13725         (function_called_by_processed_nodes_p): Likewise.
13726         * predict.c (maybe_hot_frequency_p): Likewise.
13727         (probably_never_executed_bb_p): Likewise.
13728         (compute_function_frequency): Likewise.
13729         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
13730         (unnest_nesting_tree_1): Likewise.
13731         (lower_nested_functions): Likewise.
13732         * tree-optimize.c (execute_fixup_cfg): Likewise.
13733         (tree_rest_of_compilation): Likewise.
13734         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
13735         * tree-sra.c (ipa_early_sra): Likewise.
13736         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
13737         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
13738         * ipa.c (record_cdtor_fn): Likewise.
13739         * ipa-inline.c (cgraph_early_inlining): Likewise.
13740         (compute_inline_parameters_for_current): Likewise.
13741         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
13742         * ipa-pure-const.c (local_pure_const): Likewise.
13743         * ipa-split.c (split_function): Likewise.
13744         (execute_split_functions): Likewise.
13745         * cgraphbuild.c (build_cgraph_edges): Likewise.
13746         (rebuild_cgraph_edges): Likewise.
13747         (cgraph_rebuild_references): Likewise.
13748         (remove_cgraph_callee_edges): Likewise.
13749         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
13750         (verify_cgraph_node): Likewise.
13751         (cgraph_analyze_functions): Likewise.
13752         (cgraph_preserve_function_body_p): Likewise.
13753         (save_inline_function_body): Likewise.
13754         (save_inline_function_body): Likewise.
13755         * tree-inline.c (copy_bb): Likewise.
13756         (optimize_inline_calls): Likewise.
13757
13758 2011-04-11  Martin Jambor  <mjambor@suse.cz>
13759
13760         PR tree-optimization/48195
13761         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
13762         ipa_check_create_edge_args.
13763         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
13764         ipa_check_create_edge_args.
13765         * ipa-inline.c (inline_generate_summary): Do not call
13766         ipa_check_create_node_params and ipa_check_create_edge_args.
13767         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
13768         ipa_check_create_edge_args.
13769
13770 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
13771
13772         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
13773         instead of loop.
13774         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
13775         * function.c (record_hard_reg_sets): Likewise.
13776         * ira.c (compute_regs_asm_clobbered): Likewise.
13777         * sched-deps.c (sched_analyze_1): Likewise.
13778         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
13779
13780 2011-04-09  Xinliang David Li  <davidxl@google.com>
13781
13782         PR tree-optimization/PR48484
13783         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
13784         has_valid_pred lazily
13785
13786 2011-04-09  Duncan Sands  <baldrick@free.fr>
13787
13788         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
13789
13790 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
13791
13792         * combine.c (combine_validate_cost): Adjust comments.  Set registered
13793         cost of I0 to zero at the end, if any.
13794
13795 2011-04-08  Xinliang David Li  <davidxl@google.com>
13796
13797         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
13798         to insane profile data.
13799
13800 2011-04-08  Xinliang David Li  <davidxl@google.com>
13801
13802         * ipa-cp.c (ipcp_update_profiling): Correct
13803          negative scale factor due to insane profile data.
13804
13805 2011-04-08  Xinliang David Li  <davidxl@google.com>
13806
13807         * final.c (dump_basic_block_info): New function.
13808         (final): Dump basic block.
13809         (final_scan_insn): Remove old dump.
13810
13811 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
13812
13813         PR target/47829
13814         * config.gcc (i386-*-freebsd): Disable unwind table generation for
13815         crtbegin/crtend.
13816
13817 2011-04-08  Michael Matz  <matz@suse.de>
13818
13819         PR middle-end/48389
13820         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
13821         functions.
13822         (rebuild_jump_labels): Call rebuild_jump_labels_1.
13823         * rtl.h (rebuild_jump_labels_chain): Declare.
13824         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
13825         insns inserted on edges.
13826
13827 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
13828
13829         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
13830         * config/arm/arm-arches.def: New.
13831         * config/arm/arm-opts.h: New.
13832         * config/arm/genopt.sh: New.
13833         * config/arm/arm-tables.opt: New (generated).
13834         * config/arm/arm.c (arm_handle_option, arm_target_help,
13835         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
13836         (all_architectures): Get most table contents from arm-arches.def.
13837         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
13838         arm_selected_tune here.
13839         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
13840         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
13841         (march=, mcpu=, mtune=): Use Enum and Var.
13842         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
13843         (arm.o): Update dependencies.
13844
13845 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
13846
13847         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
13848         of header_file.
13849         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
13850         (write_typed_alloc_defns): Likewise.
13851         (main): Calls write_typed_alloc_defns with output_header.
13852
13853 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
13854
13855         PR inline-asm/48435
13856         * ira-color.c (setup_profitable_hard_regs): Add comments.
13857         Don't take prohibited hard regs into account.
13858         (setup_conflict_profitable_regs): Rename to
13859         get_conflict_profitable_regs.
13860         (check_hard_reg_p): Check prohibited hard regs.
13861
13862 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
13863
13864         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
13865         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
13866         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
13867
13868 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13869
13870         PR target/48366
13871         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
13872         move from floating point to shift amount register.
13873         (emit_move_sequence): Remove secondary reload support for floating
13874         point to shift amount amount register copies.
13875         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
13876         amount register copies.
13877         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
13878         register, return false if mode isn't a scalar integer mode.
13879         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
13880
13881 2011-04-08  Richard Guenther  <rguenther@suse.de>
13882
13883         * gimple.c (gimple_call_flags): Remove kludge.
13884
13885 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
13886
13887         * sel-sched.c (sel_region_init): Move call to
13888         sel_setup_region_sched_flags after setup_current_loop_nest.
13889
13890 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
13891
13892         PR rtl-optimization/48272
13893         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
13894         init_insn_reg_pressure_info.  Adjust a caller.
13895         * sched-int.h (init_insn_reg_pressure_info): Declare.
13896         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
13897         when sched-pressure is enabled.
13898
13899 2011-04-08  Richard Guenther  <rguenther@suse.de>
13900
13901         * gimple.c (gimple_set_modified): Do not queue calls to
13902         MODIFIED_NORETURN_CALLS here ...
13903         * tree-ssa-operands.c (update_stmt_operands): ... but here.
13904
13905 2011-04-08  Richard Guenther  <rguenther@suse.de>
13906
13907         PR lto/48467
13908         * toplev.c (lang_dependent_init): Do not open asm_out_file
13909         in WPA mode, nor perform debug machinery initialization.
13910         (finalize): Do not unlink asm_out_file in WPA mode.
13911
13912 2011-04-08  Richard Guenther  <rguenther@suse.de>
13913
13914         * gimple.h (gimple_call_fntype): New function.
13915         (gimple_call_return_type): Use it.
13916         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
13917         * gimple-low.c (gimple_check_call_args): Likewise.
13918         * gimple.c (gimple_call_flags): Likewise.
13919         (gimple_call_arg_flags): Likewise.
13920         (gimple_call_return_flags): Likewise.
13921         * tree-cfg.c (verify_gimple_call): Likewise.
13922         (do_warn_unused_result): Likewise.
13923         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
13924         * value-prof.c (gimple_ic_transform): Fix fndecl check.
13925
13926 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
13927
13928         PR rtl-optimization/48235
13929         * sel-sched.c (code_motion_process_successors): Recompute the last
13930         insn in basic block if control flow changed.
13931         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
13932         Update condition for ilist_remove.
13933
13934 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
13935
13936         PR rtl-optimization/48302
13937         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
13938         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
13939         it to record added preheader blocks.
13940         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
13941         on to sel_add_loop_preheaders.
13942         (sel_region_init): Move call to setup_current_loop_nest after
13943         sel_init_bbs.
13944
13945 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
13946
13947         PR target/48273
13948         * cfgloop.h (loop_has_exit_edges): New helper.
13949         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
13950         non-clonable.
13951         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
13952         that have no exit edges.
13953
13954 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
13955
13956         PR rtl-optimization/48442
13957         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
13958         all callers.  Adjust assert.
13959
13960 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
13961
13962         PR tree-optimization/48377
13963         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
13964         is_packed to true even for types with smaller TYPE_ALIGN than
13965         TYPE_SIZE.
13966
13967 2011-04-08  Richard Guenther  <rguenther@suse.de>
13968
13969         PR bootstrap/48513
13970         * doc/tm.texi: Re-generate.
13971
13972 2011-04-08  Wei Guozhi  <carrot@google.com>
13973
13974         PR target/47855
13975         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
13976         * config/arm/arm.c (arm_attr_length_push_multi): New function.
13977         * config/arm/arm.md (*push_multi): Change the length computation to
13978         call a C function.
13979
13980 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
13981
13982         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
13983         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
13984         * doc/tm.texi: Regenerate.
13985         * system.h (ASM_OUTPUT_BSS): Poison.
13986         * varasm.c (asm_output_bss): Remove function.
13987         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
13988
13989         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
13990         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
13991         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
13992         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13993         Likewise.
13994         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13995         Likewise.
13996         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13997         Likewise.
13998         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
13999
14000 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
14001
14002         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
14003         EnumValue lines.
14004
14005 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
14006
14007         * config/m68k/m68k.c (m68k_handle_option): Don't handle
14008         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
14009         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
14010         OPT_mcpu32.
14011         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
14012         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
14013         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
14014         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
14015         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
14016         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
14017         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
14018         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
14019         options.  Don't map other m68k options manually.  Don't handle
14020         old-style options as canonical.
14021         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
14022         * doc/install.texi (m68k-*-*): Document binutils version requirement.
14023
14024 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
14025
14026         * basic-block.h (force_nonfallthru): Move to...
14027         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
14028         (force_nonfallthru): ...here.
14029         * cfghooks.c (force_nonfallthru): New function.
14030         * cfgrtl.c (force_nonfallthru): Rename into...
14031         (rtl_force_nonfallthru): ...this.
14032         (commit_one_edge_insertion): Do not set AUX field.
14033         (commit_edge_insertions): Do not discover new basic blocks.
14034         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
14035         (cfg_layout_rtl_cfg_hooks): Likewise.
14036         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
14037         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
14038         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
14039
14040 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
14041
14042         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
14043         Remove macros.
14044
14045 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
14046
14047         * config/i386/sse.md: Update copyright year.
14048         (avxcvtvecmode): Remove.
14049         (sse_movhlps): Merge with *avx_movhlps.
14050         (sse_movlhps): Merge with *avx_movlhps.
14051         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
14052         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
14053         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
14054         (sse_loadhps): Merge with *avx_loadhps.
14055         (sse_storelps): Merge with *avx_storelps.
14056         (sse_loadlps): Merge with *avx_loadlps.
14057         (sse_movss): Merge with *avx_movss.
14058         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
14059         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
14060         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
14061         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
14062         (vec_set<mode>_0): Ditto.
14063         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
14064         (sse4_1_insertps): Merge with *avx_insertps.
14065         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
14066         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
14067         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
14068         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
14069         (sse2_storehpd): Merge with *avx_storehpd.
14070         (sse2_loadhpd): Merge with *avx_loadhpd.
14071         (sse2_loadlpd): Merge with *avx_loadlpd.
14072         (sse2_movsd): Merge with *avx_movsd.
14073         (*vec_concatv2df): Merge with *vec_concatv2df.
14074
14075 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
14076
14077         PR debug/48343
14078         * combine.c (combine_instructions): Add last_combined_insn,
14079         update it if insn is after it, pass it to all try_combine calls.
14080         (try_combine): Add last_combined_insn parameter, pass it instead of
14081         i3 to propagate_for_debug.
14082
14083 2011-04-07  Nick Clifton  <nickc@redhat.com>
14084
14085         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
14086         to handle MDR <-> data register transfers.
14087         (movhi_internal): Likewise.
14088
14089 2011-04-07  Alan Modra  <amodra@gmail.com>
14090
14091         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
14092         previous stack info.
14093
14094 2011-04-07  Tom de Vries  <tom@codesourcery.com>
14095
14096         PR target/43920
14097         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
14098         flow_find_cross_jump.  Swap variables to implement backward replacement.
14099         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
14100
14101 2011-04-07  Tom de Vries  <tom@codesourcery.com>
14102
14103         PR target/43920
14104         * cfgcleanup.c (walk_to_nondebug_insn): New function.
14105         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
14106         and bb2.
14107         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
14108         src1 or src2.  Redirect edges to the last basic block.  Update
14109         frequency and count on multiple basic blocks in case of fallthru.
14110
14111 2011-04-07  Tom de Vries  <tom@codesourcery.com>
14112
14113         PR target/43920
14114         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
14115         function.
14116         (old_insns_match_p): Change return type.  Replace return false/true
14117         with return dir_none/dir_both.  Use can_replace_by.
14118         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
14119         direction from dir_p.  Register replacement direction in dir, last_dir
14120         and afterlast_dir.  Handle new return type of old_insns_match_p using
14121         merge_dir.  Return replacement direction in dir_p.
14122         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
14123         return type of old_insns_match_p.
14124         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
14125         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
14126         flow_find_cross_jump.
14127         * basic-block.h (enum replace_direction): New type.
14128         (flow_find_cross_jump): Add parameter to declaration.
14129
14130 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
14131
14132         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
14133         (AVXMODEDCVTPS2DQ): Ditto.
14134         (VEC_FLOAT_MODE): Ditto.
14135         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
14136         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
14137         (<any_logic:code><mode>3): Use VF mode iterator.
14138         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
14139         Use VF mode iterator.
14140         (copysign<mode>3): Use VF mode iterator.
14141         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
14142         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
14143         (*<any_logic:code><MODEF:mode>3): Merge with
14144         *avx_<any_logic:code><MODEF:mode>3.
14145         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
14146         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
14147         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
14148         (avx_cvtdq2ps<avxmodesuffix>): Remove.
14149         (sse2_cvtdq2ps): Use %v modifier.
14150         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
14151         (avx_cvtps2dq<avxmodesuffix>): Remove.
14152         (sse2_cvtps2dq): Use %v modifier.
14153         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
14154         (avx_cvttps2dq<avxmodesuffix>): Remove.
14155         (sse2_cvttps2dq): Use %v modifier.
14156         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
14157         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
14158         (sse2_cvtsd2siq): Fix insn template.
14159         (sse2_cvtsd2siq_2): Ditto.
14160         (sse2_cvttsd2siq): Ditto.
14161         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
14162         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
14163
14164 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
14165
14166         * gcov-io.c: Use GCC Runtime Library Exception.
14167
14168 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
14169
14170         PR debug/48466
14171         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
14172         as base_reg whatever register reg has been eliminated to, instead
14173         of hardcoding STACK_POINTER_REGNUM.
14174
14175 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
14176
14177         * doc/tm.texi.in: Document C target hooks as separate from general
14178         target hooks.
14179         * doc/tm.texi: Regenerate.
14180         * genhooks.c (struct hook_desc): Add docname field.
14181         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
14182         docname field.
14183         (hook_array): Include c-target.def.
14184         (emit_documentation): Use docname field in output.
14185         (emit_init_macros): Take docname argument.  Only emit definitions
14186         for hooks matching docname.
14187         (main): Expect additional arguments in all cases.  Pass argument
14188         to emit_init_macros.
14189         * target.def: Move initial macro definitions and comments to
14190         target-hooks-macros.h.
14191         (gcc_targetcm): Move to c-family/c-target.def.
14192         * target.h (targetcm): Move declaration to c-family/c-target.h.
14193         * targhooks.c (default_handle_c_option): Move to
14194         c-family/c-opts.c.
14195         * targhooks.h (default_handle_c_option): Move declaration to
14196         c-family/c-common.h.
14197         * target-hooks-macros.h: New file.
14198         * config.gcc (target_has_targetcm): Define and use to add to
14199         c_target_objs and cxx_target_objs.
14200         * config/default-c.c: New file.
14201         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
14202         of target.h and target-def.h.
14203         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
14204         (darwin_objc_construct_string, darwin_cfstring_ref_p,
14205         darwin_check_cfstring_format_arg): Make static.
14206         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
14207         TARGET_STRING_OBJECT_REF_TYPE_P,
14208         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
14209         * config/darwin-protos.h (darwin_objc_construct_string,
14210         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
14211         declare.
14212         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
14213         TARGET_STRING_OBJECT_REF_TYPE_P,
14214         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
14215         * config/t-darwin (darwin-c.o): Update dependencies.
14216         * system.h (TARGET_HAS_TARGETCM): Poison.
14217         * Makefile.in (TARGET_H): Update.
14218         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
14219         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
14220         (default-c.o): New target.
14221         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
14222         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
14223         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
14224         c-target.def.
14225         (build/genhooks.o): Update dependencies.
14226
14227 2011-04-06  Richard Guenther  <rguenther@suse.de>
14228
14229         * ipa-inline.c (enum inlining_mode): Remove.
14230         (cgraph_flatten): Use some other token.
14231         (cgraph_edge_early_inlinable_p): New function, split out from ...
14232         (cgraph_perform_always_inlining): New function, split out from ...
14233         (cgraph_decide_inlining_incrementally): ... here.
14234         (cgraph_mark_inline_edge): Adjust.
14235         (cgraph_early_inlining): Re-structure.
14236         (pass_early_inline): Require SSA form.
14237
14238 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
14239             Julian Brown  <julian@codesourcery.com>
14240             Mark Shinwell  <shinwell@codesourcery.com>
14241
14242         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
14243         LO_REGS only for Thumb-1.
14244         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
14245         be used in short instructions when optimising for size on Thumb-2.
14246
14247 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
14248
14249         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
14250         associated with user returns to be preserved.
14251
14252 2011-04-06  Tristan Gingold  <gingold@adacore.com>
14253
14254         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
14255         symbol_queue_size, DBXOUT_DECR_NESTING,
14256         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
14257         if XCOFF_DEBUGGING_INFO.
14258
14259 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
14260
14261         * config/i386/i386.md (attribute isa): New.
14262         (attribute enabled): New.
14263         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
14264         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
14265         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
14266         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
14267         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
14268         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14269         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
14270         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
14271
14272         * config/i386/sse.md (VF): New mode iterator.
14273         (VF1): Ditto.
14274         (VF2): Ditto.
14275         (VF_128): Ditto.
14276         (SSEMODEF4): Remove.
14277         (attribute sse): Handle V8SF and V4DF modes.
14278         (<absneg:code><mode>2): Use VF mode iterator.
14279         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
14280         mode iterator.
14281         (<plusminus_insn><mode>3): Use VF mode iterator.
14282         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
14283         Use VF mode iterator.
14284         (<sse>_vm<plusminus_insn><mode>3): Merge with
14285         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
14286         (mul<mode>3): Use VF mode iterator.
14287         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
14288         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
14289         mode iterator.
14290         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
14291         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
14292         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
14293         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
14294         mode iterator.
14295         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
14296         Use VF1 mode iterator.
14297         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
14298         (sqrt<VF2:mode>2): New expander.
14299         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
14300         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
14301         and sqrtv2df2.  Use VF mode iterator.
14302         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
14303         mode iterator.
14304         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
14305         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
14306         Use VF1 mode iterator.
14307         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
14308         (<smaxmin:code><mode>3): Use VF mode iterator.
14309         (*<smaxmin:code><mode>3_finite): Merge with
14310         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
14311         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14312         (<sse>_vm<smaxmin:code><mode>2): Merge with
14313         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
14314         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
14315         mode iterator.
14316         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
14317         mode iterator.
14318         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
14319         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
14320         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
14321         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
14322         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
14323         VF mode iterator.
14324         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
14325         Use VF_128 mode iterator.
14326         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
14327         mode iterator.
14328         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
14329         VF_128 mode iterator.
14330         (vcond<mode>): Use VF mode iterator.
14331         * config/i386/predicates.md (sse_comparison_operator): Merge with
14332         avx_comparison_float_operator.  Do not declare as special_predicate.
14333         * config/i386/i386.c (struct builtin_description): Update for renamed
14334         compare patterns.
14335         (ix86_expand_args_builtin): Ditto.
14336         (ix86_expand_sse_compare_mask): Ditto.
14337
14338 2011-04-06  Richard Guenther  <rguenther@suse.de>
14339
14340         * tree-inline.c (estimate_num_insns): For calls simply account
14341         for all passed arguments and a used return value.
14342
14343 2011-04-06  Richard Guenther  <rguenther@suse.de>
14344
14345         PR tree-optimization/47663
14346         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
14347         call_stmt_time fields.
14348         (cgraph_edge_inlinable_p): Declare.
14349         (cgraph_edge_recursive_p): New inline function.
14350         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
14351         (cgraph_clone_edge): Copy it.
14352         * ipa-inline.c (cgraph_estimate_edge_time): New function.
14353         Account for call stmt time.
14354         (cgraph_estimate_time_after_inlining): Take edge argument.
14355         (cgraph_estimate_edge_growth): Account call stmt size.
14356         (cgraph_estimate_size_after_inlining): Take edge argument.
14357         (cgraph_mark_inline_edge): Adjust.
14358         (cgraph_check_inline_limits): Likewise.
14359         (cgraph_recursive_inlining_p): Remove.
14360         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
14361         (cgraph_decide_recursive_inlining): Take edge argument and
14362         adjust.
14363         (cgraph_decide_inlining_of_small_functions): Do not avoid
14364         diags for recursive inlining here.
14365         (cgraph_flatten): Adjust.
14366         (cgraph_decide_inlining_incrementally): Likewise.
14367         (estimate_function_body_sizes): Remove call cost handling.
14368         (compute_inline_parameters): Initialize caller edge call costs.
14369         (cgraph_estimate_edge_growth): New function.
14370         (cgraph_estimate_growth): Use it.
14371         (cgraph_edge_badness): Likewise.
14372         (cgraph_check_inline_limits): Take an edge argument.
14373         (cgraph_decide_inlining_of_small_functions): Adjust.
14374         (cgraph_decide_inlining): Likewise.
14375         * tree-inline.c (estimate_num_insns): Only account for call
14376         return value if it is used.
14377         (expand_call_inline): Avoid diagnostics on recursive inline
14378         functions here.
14379         * lto-cgraph.c (lto_output_edge): Output edge call costs.
14380         (input_edge): Input edge call costs.
14381
14382 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14383
14384         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
14385
14386 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
14387
14388         * doc/invoke.texi (Spec Files): Fix typo.
14389
14390 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
14391
14392         * profile.c (branch_prob): Move declaration of local variable.  Remove
14393         obsolete ??? comment.  Expand the location explicitly instead of using
14394         the LOCATION_FILE and LOCATION_LINE macros.
14395
14396 2011-04-06  Wei Guozhi  <carrot@google.com>
14397
14398         PR target/47855
14399         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
14400         (arm_cond_branch): Likewise.
14401         (arm_cond_branch_reversed): Likewise.
14402         (arm_jump): Likewise.
14403         (push_multi): Likewise.
14404         * config/arm/constraints.md (Py): New constraint.
14405
14406 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14407
14408         PR bootstrap/48471
14409         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
14410         Move these...
14411         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
14412         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
14413         #ifdef DBX_DEBUGGING_INFO.
14414
14415 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
14416
14417         PR bootstrap/48403
14418         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
14419         if old and new states differ.
14420
14421 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
14422
14423         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
14424         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
14425         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
14426         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
14427         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
14428         mcfv4e): Use Alias.
14429         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
14430         ColdFire options to -mcpu= options.
14431
14432 2011-04-05  Jeff Law  <law@redhat.com>
14433
14434         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
14435         check if BB is a successor of LOOP->header and return
14436         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
14437
14438 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
14439
14440         * cprop.c (struct reg_use): Remove.
14441         (reg_use_table): Make an array of RTX.
14442         (find_used_regs, constprop_register, local_cprop_pass,
14443         bypass_block): Simplify users of reg_use_table.
14444         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
14445         on one of the uses found by find_used_regs.
14446
14447 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14448
14449         PR bootstrap/48469
14450         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
14451         declaration.
14452
14453 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14454
14455         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
14456         as an rtx.
14457         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
14458
14459 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
14460
14461         PR middle-end/48441
14462         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
14463
14464 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14465
14466         * combine.c: Include obstack.h.
14467         (struct insn_link): Define.
14468         (uid_log_links): Adjust type.
14469         (FOR_EACH_LOG_LINK): New macro.
14470         (insn_link_obstack): Declare.
14471         (alloc_insn_link): Define.
14472         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
14473         type of link variables.
14474         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
14475         (try_combine, record_promoted_values, distribute_notes): Likewise.
14476         (distribute_links): Likewise.  Tweak prototype.
14477         (clear_log_links): Delete.
14478         (adjust_for_new_dest): Call alloc_insn_link.
14479         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
14480
14481 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14482
14483         * gcse.c (modify_mem_list): Convert to an array of VECs.
14484         (canon_modify_mem_list, compute_transp): Tweak formatting.
14485         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
14486         (load_killed_in_block_p): Likewise.
14487         (record_last_mem_set_info): Likewise.
14488         (clear_modify_mem_tables): Likewise.
14489
14490 2011-04-05  Tom de Vries  <tom@codesourcery.com>
14491
14492         PR middle-end/48461
14493         * function.c (emit_use_return_register_into_block): Only define if
14494         HAVE_return.
14495
14496 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
14497
14498         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
14499
14500 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
14501
14502         * config/rx/rx-opts.h: New.
14503         * config/rx/rx.c (rx_cpu_type): Remove.
14504         (rx_handle_option): Don't assert that global structures are in
14505         use.  Access variables via opts pointer.  Defer most handling of
14506         OPT_mint_register_.  Use error_at.
14507         (rx_option_override): Handle deferred OPT_mint_register_ here.
14508         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
14509         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
14510         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
14511         (rx_cpu_types): New Enum and EnumValue entries.
14512         (mint-register=): Use Defer and use Var accordingly.
14513
14514 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14515
14516         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
14517         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
14518         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
14519         Move these...
14520         (debug_free_queue, debug_nesting, symbol_queue_index):
14521         ...and these...
14522         * dbxout.c: ...to here.  Make static.
14523
14524 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14525
14526         * gcse.c (modify_pair): Define.  Define a VEC of it.
14527         (canon_modify_mem_list): Convert to an array of VECs.
14528         (free_insn_expr_list_list): Delete.
14529         (clear_modify_mem_tables): Call VEC_free instead.
14530         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
14531         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
14532         (canon_list_insert, compute_transp): Likewise.
14533
14534 2011-04-05  Tom de Vries  <tom@codesourcery.com>
14535
14536         PR target/43920
14537         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
14538         for size.
14539
14540 2011-04-05  Tom de Vries  <tom@codesourcery.com>
14541
14542         PR target/43920
14543         * function.c (emit_use_return_register_into_block): New function.
14544         (thread_prologue_and_epilogue_insns): Use
14545         emit_use_return_register_into_block.
14546
14547 2011-04-05  Tom de Vries  <tom@codesourcery.com>
14548
14549         PR target/43920
14550         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
14551         insn.
14552
14553 2011-04-05  Tom de Vries  <tom@codesourcery.com>
14554
14555         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
14556
14557 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
14558
14559         * config/arm/arm.md (define_constants for unspec): Replace with
14560         define_c_enum.
14561         (define_constants for unspecv): Replace with define_c_enum.
14562         * config/arm/neon.md (define_constants for unspec): Replace with
14563         define_c_enum.
14564
14565 2011-04-04  Richard Henderson  <rth@redhat.com>
14566
14567         PR bootstrap/48400
14568         * dwarf2out.c (output_line_info): Always emit line info from
14569         at least one section.
14570         (dwarf2out_init): Create text_section_line_info here ...
14571         (set_cur_line_info_table): ... not here.
14572
14573 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
14574
14575         PR target/48380
14576         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
14577         not called.
14578
14579         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
14580
14581 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
14582
14583         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
14584         (expr_equiv_p): Remove.
14585         (insert_set_in_table): Look at <dest, src> pair instead of expr.
14586         (hash_scan_set): Update call to insert_set_in_table.
14587         (dump_hash_table): Dump <dest, src> pair.
14588         (lookup_set): Simplify.  Lookup <dest, src> pair.
14589         (compute_transp): Remove, fold heavily simplified code into...
14590         (compute_local_properties): ...here.  Expect COMP and TRANSP
14591         unconditionally.
14592         (find_avail_set): Take set directly from struct expr.
14593         (find_bypass-set): Likewise.
14594         (bypass_block): Likewise.
14595         (cprop_insn): Likewise.  Remove redundant INSN_P test.
14596
14597         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
14598         checks on form of COND from find_implicit_sets to here.
14599         (find_implicit_sets): Cleanup control flow. Split critical edges
14600         if it exposes implicit sets.  Allocate/resize implicit_sets as
14601         necessary.
14602         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
14603         changed something.  Run df_analyze after find_implicit_sets if any
14604         edges were split.  Do not allocate implicit_sets here.
14605
14606         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
14607         (gcse_obstack): Renamed to cprop_obstack.
14608         (GNEW, GNEWVEC, GNEWVAR): Remove.
14609         (gmalloc): Remove.
14610         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
14611         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
14612         (gcse_alloc): Likewise, and rename to cprop_alloc.
14613         (alloc_gcse_men, free_gcse_mem): Remove.
14614         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
14615         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
14616         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
14617
14618         * cprop.c (oprs_not_set_p): Remove.
14619         (mark_set, mark_clobber): Remove.
14620         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
14621         (reg_not_set_p): New function.
14622         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
14623         (cprop_insn): Likewise.
14624         (cprop_jump): Use FOR_EACH_EDGE.
14625
14626 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
14627
14628         PR bootstrap/48403
14629         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
14630         (rank_for_schedule): Use scheduled_insns vector instead of
14631         last_scheduled_insn.
14632         (ok_for_early_queue_removal): Likewise.
14633         (queue_to_ready): Search forward in nonscheduled_insns_begin if
14634         we have a dbg_cnt.
14635         (choose_ready): Likewise.
14636         (commit_schedule): Use VEC_iterate.
14637         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
14638         a dbg_cnt, use it and ensure the first insn is in the ready list.
14639         (haifa_sched_init): Allocate scheduled_insns.
14640         (sched_extend_ready_list): Don't allocate it; reserve space.
14641         (haifa_sched_finish): Free it.
14642
14643 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
14644
14645         * optc-gen.awk: Always remove type from Variable entry before
14646         recording in var_seen.
14647
14648 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
14649
14650         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
14651         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
14652         call to tidy_fallthru_edges.
14653
14654 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
14655
14656         * doc/options.texi (ToLower): Document.
14657         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
14658         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
14659         * opts.h (cl_option): Add cl_tolower field.
14660         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
14661         arguments with lowercase strings.
14662         * config/rx/rx.opt (mcpu=): Add ToLower.
14663         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
14664         argument.
14665
14666 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
14667
14668         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
14669
14670 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
14671
14672         * config/vax/vax.c: Include reload.h.
14673
14674 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
14675
14676         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
14677         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
14678         (sparc_preferred_reload_class): New function.
14679
14680 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
14681
14682         PR debug/48401
14683         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
14684         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
14685
14686 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
14687
14688         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
14689         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
14690
14691 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
14692
14693         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
14694         (ASM_OUTPUT_ALIGNED_BSS): Define.
14695
14696 2011-04-03  Michael Matz  <matz@suse.de>
14697
14698         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
14699         and next_slot members.
14700         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
14701         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
14702         (lto_streamer_cache_append): Declare.
14703         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
14704         unsigned index, remove offset parameter, ensure that we append
14705         or update existing entries.
14706         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
14707         parameter, update next_slot for append.
14708         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
14709         parameter.
14710         (lto_streamer_cache_insert_at): Likewise.
14711         (lto_streamer_cache_append): New function.
14712         (lto_streamer_cache_lookup): Use unsigned index.
14713         (lto_streamer_cache_get): Likewise.
14714         (lto_record_common_node): Don't test tree_node_can_be_shared.
14715         (preload_common_node): Adjust call to lto_streamer_cache_insert.
14716         (lto_streamer_cache_delete): Don't free offsets member.
14717         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
14718         (lto_output_string_with_length): Use lto_output_data_stream.
14719         (lto_output_tree_header): Remove ix parameter, don't write it.
14720         (lto_output_builtin_tree): Likewise.
14721         (lto_write_tree): Adjust callers to above, don't track and write
14722         offset, write unsigned index.
14723         (output_unreferenced_globals): Don't emit all global vars.
14724         (write_global_references): Use unsigned indices.
14725         (lto_output_decl_state_refs): Likewise.
14726         (write_symbol): Likewise.
14727         * lto-streamer-in.c (lto_input_chain): Move earlier.
14728         (input_function): Use unsigned index.
14729         (input_alias_pairs): Don't read and then ignore all global vars.
14730         (lto_materialize_tree): Remove ix_p parameter, don't read index,
14731         don't pass it back, use lto_streamer_cache_append.
14732         (lto_register_var_decl_in_symtab): Use unsigned index.
14733         (lto_register_function_decl_in_symtab): Likewise.
14734         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
14735         index.
14736         (lto_get_builtin_tree): Don't read index, use
14737         lto_streamer_cache_append.
14738         (lto_read_tree): Adjust call to lto_materialize_tree.
14739
14740         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
14741         don't use function calls in arguments to MIN.
14742
14743         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
14744         twice.
14745
14746         * gimple.c (gimple_type_leader_entry): Mark deletable.
14747
14748 2011-04-03  Alan Modra  <amodra@gmail.com>
14749
14750         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
14751
14752 2011-04-03  Michael Matz  <matz@suse.de>
14753
14754         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
14755         an integer.
14756         * tree.h (tree_decl_non_common.vindex): Adjust comment.
14757
14758 2011-04-03  Michael Matz  <matz@suse.de>
14759
14760         * cgraphbuild.c (record_reference): Canonicalize constructor values.
14761         * gimple-fold.c (canonicalize_constructor_val): Accept being called
14762         without function context.
14763         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
14764         current_function_decl and cfun.
14765
14766 2011-04-03  Michael Matz  <matz@suse.de>
14767
14768         * tree.c (decl_init_priority_insert): Don't create entry for
14769         default priority.
14770         (decl_fini_priority_insert): Ditto.
14771         (fields_compatible_p, find_compatible_field): Remove.
14772         * tree.h (fields_compatible_p, find_compatible_field): Remove.
14773         * gimple.c (gimple_compare_field_offset): Adjust block comment.
14774
14775 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
14776
14777         * combine.c (try_combine): Remove useless local variable.
14778
14779 2011-04-03  Richard Guenther  <rguenther@suse.de>
14780             Ira Rosen  <ira.rosen@linaro.org>
14781
14782         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
14783         non-variable offsets and compare the remaining bases of the two
14784         accesses instead of looking for exact same data-ref.
14785
14786 2011-04-02  Kai Tietz  <ktietz@redhat.com>
14787
14788         PR target/48416
14789         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
14790
14791         * i386.c (ix86_is_msabi_thiscall): New helper function.
14792         (ix86_is_type_thiscall): New helper function.
14793         (ix86_comp_type_attributes): Handle thiscall for method-functions
14794         special.
14795         (init_cumulative_args): Likewise.
14796         (find_drap_reg): Likewise.
14797         (ix86_static_chain): Likewise.
14798         (x86_this_parameter): Likewise.
14799         (x86_output_mi_thunk): Likewise.
14800
14801 2011-04-01  Olivier Hainque  <hainque@adacore.com>
14802             Nicolas Setton  <setton@adacore.com>
14803             Eric Botcazou  <ebotcazou@adacore.com>
14804
14805         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
14806         (add_gnat_descriptive_type_attribute): New function.
14807         (gen_array_type_die): Call it.
14808         (gen_enumeration_type_die): Likewise.
14809         (gen_struct_or_union_type_die): Likewise.
14810         (modified_type_die): Likewise.
14811         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
14812         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
14813         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
14814
14815 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
14816
14817         PR bootstrap/48148
14818         * dwarf2out.c (resolve_addr): Don't call force_decl_die
14819         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
14820
14821         Revert:
14822         2011-03-17  Richard Guenther  <rguenther@suse.de>
14823
14824         PR bootstrap/48148
14825         * lto-cgraph.c (input_overwrite_node): Clear the abstract
14826         origin for decls in other ltrans units.
14827         (input_varpool_node): Likewise.
14828
14829 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
14830
14831         PR middle-end/48335
14832         * expr.c (expand_assignment): Handle all possibilities
14833         if TO_RTX is CONCAT.
14834         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
14835         (store_split_bit_field): If SUBREG_REG (op0) or
14836         op0 itself has smaller mode than word, return it
14837         for offset 0 and const0_rtx for out-of-bounds stores.
14838         If word is const0_rtx, skip it.
14839
14840 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
14841
14842         * config/h8300/h8300.c (print_operand_address): Rename to...
14843         (h8300_print_operand_address): ...this. Make static. Adjust comments.
14844         Call h8300_print_operand and h8300_print_operand_address instead of
14845         print_operand and print_operand_address. Declare.
14846         (print_operand): Renake to...
14847         (h8300_print_operand): ...this. Make static. Adjust comments.
14848         Call h8300_print_operand instead of print_operand. Declare.
14849         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
14850         (h8300_register_move_cost): Likewise.
14851         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
14852         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
14853         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
14854         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
14855         * config/h8300/h8300-protos.h (print_operand): Delete.
14856         (print_operand_address): Delete.
14857
14858 2011-04-01  Richard Henderson  <rth@redhat.com>
14859
14860         PR 48400
14861         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
14862         in strict mode before dwarf4.  Re-order tests to early out
14863         before switching sections.
14864
14865 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
14866
14867         * config/h8300/constraints.md: New file.
14868         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
14869         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
14870         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
14871         * config/h8300/predicates.md (bit_operand): Likewise.
14872         (incdec_operand): Use satisfies_constraint_M and
14873         satisfies_constraint_O.  Don't use C code block.
14874         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
14875         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
14876         (compute_mov_length): Use satisfies_constraint_G.
14877         (fix_bit_operand): Use satisfies_constraint_U.
14878         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
14879         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
14880         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
14881         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
14882         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
14883         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
14884         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14885         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
14886         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
14887         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
14888         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
14889         (EXTRA_MEMORY_CONSTRAINT): Delete.
14890
14891 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
14892             Michael Meissner  <meissner@linux.vnet.ibm.com>
14893
14894         PR target/48262
14895         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
14896         operands, as per the specifications.
14897
14898         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
14899         (vec_extract_evenv4sf): Ditto.
14900         (vec_extract_evenv8hi): Ditto.
14901         (vec_extract_evenv16qi): Ditto.
14902         (vec_extract_oddv4si): Ditto.
14903
14904 2011-03-31  Mark Wielaard  <mjw@redhat.com>
14905
14906         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
14907         high_pc attribute if the CU has no associated code. Only output
14908         DW_AT_entry_pc for CU if not generating strict dwarf and
14909         dwarf_version < 4.
14910
14911 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
14912
14913         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
14914         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
14915         out of ...
14916         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
14917         * final.c (final_start_function): Call the new function rather
14918         than using a NULL argument for dwarf2out_frame_debug.
14919
14920         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
14921         that contains the prologue.
14922
14923         * haifa-sched.c (queue_insn): New arg REASON.  All callers
14924         changed.  Print it in debugging output.
14925
14926         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
14927
14928         * sched-ebb.c (begin_schedule_ready): Remove second argument.
14929         Split most of the code into...
14930         (begin_move_insn): ... here.  New function.
14931         (ebb_sched_info): Add a pointer to it.
14932         * haifa-sched.c (scheduled_insns): New static variable.
14933         (sched_extend_ready_list): Allocate it.
14934         (schedule_block): Use it to record the order of scheduled insns.
14935         Perform RTL changes to move insns only after all scheduling
14936         decisions have been made.
14937         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
14938         begin_move_insn field.
14939         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
14940         * sched-int.h (struct haifa_sched_info): Remove second argument
14941         from begin_schedule_ready hook.  Add new member begin_move_insn.
14942         * sched-rgn.c (begin_schedule_ready): Remove second argument.
14943         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
14944
14945         * haifa-sched.c (prune_ready_list): New function, broken out of
14946         schedule_block.
14947         (schedule_block): Use it.
14948
14949 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14950
14951         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
14952
14953 2011-04-01  Kai Tietz  <ktietz@redhat.com>
14954
14955         * config.gcc (*-*-mingw*): Allow as option the
14956         posix threading model.
14957         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
14958         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
14959         definition.
14960         (CPP_SPEC): Add pthread/no-pthread handling.
14961         (LIB_SPEC): Likewise.
14962         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
14963         (LIB_SPEC): Likewise.
14964         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
14965         flag to pass -pthread option for shared libgcc build.
14966         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
14967         for shared libgcc build.
14968         * config/i386/t-mingw-pthread: New file.
14969         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
14970         New define to enable use of library pthread by default.
14971         * config/i386/mingw.opt (pthread): New driver option.
14972         (no-pthread): New driver option.
14973         * config/i386/cygming.opt: Make sure trailing empty line is retained.
14974         * config/i386/mingw-w64.opt: Likewise.
14975
14976 2011-04-01  Gary Funck  <gary@intrepid.com>
14977
14978         * c-decl.c (grokdeclarator): Fix formatting.
14979
14980 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
14981
14982         * expr.c (emit_block_move_via_movmem): Use n_generator_args
14983         instead of n_operands.
14984         (set_storage_via_setmem): Likewise.
14985         * optabs.c (maybe_gen_insn): Likewise.
14986         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
14987         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
14988         (mips_expand_builtin_direct): Likewise.
14989         * config/spu/spu.c (expand_builtin_args): Likewise.
14990
14991 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
14992
14993         * recog.h (insn_data_d): Add n_generator_args.
14994         * genoutput.c (data): Likewise.
14995         (output_insn_data): Print it.
14996         (max_opno, num_dups): Delete.
14997         (scan_operands): Just fill in "d->operand[...]".
14998         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
14999
15000 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
15001
15002         * gensupport.h (pattern_stats): New structure.
15003         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
15004         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
15005         (max_operand_1, max_operand_vec): Delete.
15006         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
15007
15008 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
15009
15010         * emit-rtl.c (emit_pattern_after_setloc): New function.
15011         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
15012         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
15013         (emit_pattern_after): New function.
15014         (emit_insn_after, emit_jump_insn_after): Call it.
15015         (emit_call_insn_after, emit_debug_insn_after): Likewise.
15016         (emit_pattern_before_setloc): New function.
15017         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
15018         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
15019         Likewise.
15020         (emit_pattern_before): New function.
15021         (emit_insn_before, emit_jump_insn_before): Call it.
15022         (emit_call_insn_before, emit_debug_insn_before): Likewise.
15023
15024 2011-03-31  Richard Henderson  <rth@redhat.com>
15025
15026         * dwarf2out.c (dw_separate_line_info_ref): Remove.
15027         (dw_separate_line_info_entry): Remove.
15028         (enum dw_line_info_opcode): New.
15029         (dw_line_info_entry): Use it.
15030         (dw_line_info_table, dw_line_info_table_p): New.
15031         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
15032         (line_info_table, line_info_label_num): Remove.
15033         (line_info_table_in_use): Remove.
15034         (separate_line_info_table): Remove.
15035         (separate_line_info_table_allocated): Remove.
15036         (separate_line_info_table_in_use): Remove.
15037         (LINE_INFO_TABLE_INCREMENT): Remove.
15038         (line_info_label_num): New.
15039         (cur_line_info_table): New.
15040         (text_section_line_info, cold_text_section_line_info): New.
15041         (separate_line_info): New.
15042         (SEPARATE_LINE_CODE_LABEL): Remove.
15043         (print_dwarf_line_table): Remove.
15044         (debug_dwarf): Don't dump it.
15045         (output_one_line_info_table): New.
15046         (output_line_info): Use it.
15047         (new_line_info_table): New.
15048         (set_cur_line_info_table): New.
15049         (dwarf2out_switch_text_section): Use it.
15050         (dwarf2out_begin_function): Likewise.
15051         (push_dw_line_info_entry): New.
15052         (dwarf2out_source_line): Rewrite for new line info tables.
15053         (dwarf2out_init): Remove dead initailizations.
15054
15055 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
15056
15057         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
15058         various flags.
15059         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
15060         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
15061         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
15062         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
15063         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
15064         * opt-functions.awk (flag_init, switch_bit_fields): New.
15065         (switch_flags): Don't handle flags moved to bit-fields.  Don't
15066         generate CL_MISSING_OK or CL_SAVE.
15067         * optc-gen.awk: Update to generate bit-field output as well as
15068         flags field.
15069         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
15070         bit-field instead of CL_REJECT_DRIVER flag.
15071         * opts-common.c (generate_canonical_option,
15072         decode_cmdline_option): Use bit-fields instead of CL_* flags.
15073         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
15074         instead of CL_REJECT_NEGATIVE flag.
15075         * toplev.c (print_switch_values): Use cl_report bit-field instead
15076         of CL_REPORT flag.
15077
15078 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
15079
15080         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
15081         a zero minimum index only if it is redundant.
15082
15083 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
15084
15085         PR rtl-optimization/48381
15086         * ira-color.c (assign_hard_reg): Use hard reg set intersection
15087         instead of ira_class_hard_reg_index for calculating conflicting
15088         hard registers.
15089
15090 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
15091
15092         * cprop.c: Clean up hash table building.
15093         (reg_avail_info): Remove.
15094         (oprs_available_p): Remove.
15095         (record_last_reg_set_info): Remove.
15096         (record_last_set_info): Remove.
15097         (reg_available_p): New function.
15098         (gcse_constant_p): Do not treat unfolded conditions as constants.
15099         (make_set_regs_unavailable): New function.
15100         (hash_scan_set): Simplify with new reg_available_p.
15101         (compute_hash_table_work): Traverse insns stream only once.
15102         Do not compute reg_avail_info. Traverse insns in reverse order.
15103         Record implicit sets after recording explicit sets from the block.
15104
15105 2011-03-31  Michael Matz  <matz@suse.de>
15106
15107         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
15108
15109 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
15110
15111         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
15112         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
15113         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15114         (h8300_mode_dependent_address_p): New function.
15115         (h8300_get_index): Make static.
15116
15117 2011-03-31  Jeff Law  <law@redhat.com>
15118
15119         * reload1.c (elimination_effects): Fix typo in recent change.
15120
15121         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
15122         typo potentially leading to null pointer dereference.
15123
15124         * caller-save.c (new_saved_hard_reg): Eliminate return value.
15125         (setup_save_areas): Corresponding changes to avoid useless
15126         assignments.
15127
15128         * jump.c (reversed_comparison_code_parts): Avoid successive return
15129         statements when REVERSE_CONDITION is defined.
15130
15131         * expr.c (expand_assignment): Avoid useless assignments.
15132         (expand_expr_real_1): Likewise.
15133         (expand_expr_real_2): Avoid useless statements.
15134
15135         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
15136
15137         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
15138
15139         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
15140         statements.
15141
15142         * stmt.c (expand_expr_stmt): Avoid useless assignment.
15143
15144 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
15145
15146         PR target/47109
15147         * doc/tm.texi.in (TARGET_VERSION): Remove.
15148         * doc/tm.texi: Regenerate.
15149         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
15150         * collect2.c (main): Don't use TARGET_VERSION.
15151         * mips-tdump.c (main): Don't use TARGET_VERSION.
15152         * mips-tfile.c (main): Don't use TARGET_VERSION.
15153         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
15154         * config/rs6000/vxworksae.h: Remove.
15155         * config/alpha/alpha.h (TARGET_VERSION): Remove.
15156         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
15157         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
15158         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
15159         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
15160         * config/arm/arm.h (TARGET_VERSION): Remove.
15161         * config/arm/coff.h (TARGET_VERSION): Remove.
15162         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
15163         * config/arm/elf.h (TARGET_VERSION): Remove.
15164         * config/arm/freebsd.h (TARGET_VERSION): Remove.
15165         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
15166         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
15167         * config/arm/pe.h (TARGET_VERSION): Remove.
15168         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
15169         * config/arm/semi.h (TARGET_VERSION): Remove.
15170         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
15171         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
15172         * config/arm/vxworks.h (TARGET_VERSION): Remove.
15173         * config/avr/avr.h (TARGET_VERSION): Remove.
15174         * config/bfin/bfin.h (TARGET_VERSION): Remove.
15175         * config/fr30/fr30.h (TARGET_VERSION): Remove.
15176         * config/frv/frv.h (TARGET_VERSION): Remove.
15177         * config/h8300/h8300.h (TARGET_VERSION): Remove.
15178         * config/i386/cygwin.h (TARGET_VERSION): Remove.
15179         * config/i386/darwin.h (TARGET_VERSION): Remove.
15180         * config/i386/darwin64.h (TARGET_VERSION): Remove.
15181         * config/i386/djgpp.h (TARGET_VERSION): Remove.
15182         * config/i386/freebsd.h (TARGET_VERSION): Remove.
15183         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
15184         * config/i386/gnu.h (TARGET_VERSION): Remove.
15185         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
15186         * config/i386/i386elf.h (TARGET_VERSION): Remove.
15187         * config/i386/linux.h (TARGET_VERSION): Remove.
15188         * config/i386/linux64.h (TARGET_VERSION): Remove.
15189         * config/i386/lynx.h (TARGET_VERSION): Remove.
15190         * config/i386/mingw32.h (TARGET_VERSION): Remove.
15191         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
15192         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
15193         * config/i386/netware.h (TARGET_VERSION): Remove.
15194         * config/i386/nto.h (TARGET_VERSION): Remove.
15195         * config/i386/openbsd.h (TARGET_VERSION): Remove.
15196         * config/i386/vxworks.h (TARGET_VERSION): Remove.
15197         * config/ia64/elf.h (TARGET_VERSION): Remove.
15198         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
15199         * config/ia64/hpux.h (TARGET_VERSION): Remove.
15200         * config/ia64/linux.h (TARGET_VERSION): Remove.
15201         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
15202         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
15203         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
15204         * config/lm32/lm32.h (TARGET_VERSION): Remove.
15205         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
15206         * config/m32c/m32c.h (TARGET_VERSION): Remove.
15207         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
15208         * config/m32r/m32r.h (TARGET_VERSION): Remove.
15209         * config/m68k/linux.h (TARGET_VERSION): Remove.
15210         * config/m68k/m68k.h (TARGET_VERSION): Remove.
15211         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
15212         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
15213         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
15214         * config/mep/mep.h (TARGET_VERSION): Remove.
15215         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
15216         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
15217         * config/mips/iris6.h (MACHINE_TYPE): Remove.
15218         * config/mips/linux.h (TARGET_VERSION): Remove.
15219         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
15220         * config/mips/vxworks.h (TARGET_VERSION): Remove.
15221         * config/mmix/mmix.h (TARGET_VERSION): Remove.
15222         * config/mn10300/linux.h (TARGET_VERSION): Remove.
15223         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
15224         * config/pa/pa.h (TARGET_VERSION): Remove.
15225         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
15226         * config/picochip/picochip.h (TARGET_VERSION): Remove.
15227         * config/rs6000/aix.h (TARGET_VERSION): Remove.
15228         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
15229         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
15230         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
15231         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
15232         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
15233         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
15234         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
15235         * config/rs6000/linux.h (TARGET_VERSION): Remove.
15236         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
15237         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
15238         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
15239         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
15240         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
15241         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
15242         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
15243         * config/s390/linux.h (TARGET_VERSION): Remove.
15244         * config/s390/s390.h (TARGET_VERSION): Remove.
15245         * config/s390/tpf.h (TARGET_VERSION): Remove.
15246         * config/score/score.h (TARGET_VERSION): Remove.
15247         * config/sh/linux.h (TARGET_VERSION): Remove.
15248         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
15249         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
15250         * config/sh/sh.h (TARGET_VERSION): Remove.
15251         * config/sh/sh64.h (TARGET_VERSION): Remove.
15252         * config/sh/superh.h (TARGET_VERSION): Remove.
15253         * config/sh/vxworks.h (TARGET_VERSION): Remove.
15254         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
15255         * config/sparc/linux.h (TARGET_VERSION): Remove.
15256         * config/sparc/linux64.h (TARGET_VERSION): Remove.
15257         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
15258         TARGET_NAME32, TARGET_NAME): Remove.
15259         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
15260         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
15261         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
15262         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
15263         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
15264         * config/spu/spu.h (TARGET_VERSION): Remove.
15265         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
15266         * config/v850/v850.h (TARGET_VERSION): Remove.
15267         * config/vax/linux.h (TARGET_VERSION): Remove.
15268         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
15269         * config/xtensa/elf.h (TARGET_VERSION): Remove.
15270         * config/xtensa/linux.h (TARGET_VERSION): Remove.
15271
15272 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
15273
15274         PR target/48142
15275         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
15276         frame-related from frame-unrelated adjustments to the stack pointer.
15277
15278 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
15279
15280         * common.opt (fdebug-types-section): Move earlier.
15281         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
15282
15283 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
15284
15285         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
15286         var.
15287
15288 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
15289
15290         * tree.h (CASE_CHAIN): Define.
15291         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
15292         (gimple_redirect_edge_and_branch): Likewise.
15293
15294 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
15295
15296         PR middle-end/48367
15297         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
15298         calculation.
15299
15300 2011-03-30  Jeff Law  <law@redhat.com>
15301
15302         * PR bootstrap/48371
15303         * reload1.c (reload): Fix botch in last change.
15304
15305         * reload.h (struct reload): Fix typo introduced in last change.
15306
15307 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
15308
15309         * config/arm/arm.opt (mhard-float, msoft-float): Mark
15310         Undocumented.  Remove help text.
15311         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
15312         -mhard-float.
15313
15314 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
15315
15316         * doc/options.texi (NegativeAlias): Document.
15317         (Alias): Mention NegativeAlias.
15318         * opt-functions.awk: Handle NegativeAlias.
15319         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
15320         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
15321         * opts.h (CL_NEGATIVE_ALIAS): Define.
15322         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
15323         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
15324         OPT_mspe_.
15325         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
15326         Alias entries.
15327         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
15328         mno-spe and mno-isel instead of mspe=no and -misel=no.
15329
15330 2011-03-29  Mark Wielaard  <mjw@redhat.com>
15331
15332         * common.opt (fdebug-types-section): New flag.
15333         * doc/invoke.texi: Document new -fno-debug-types-section flag.
15334         * dwarf2out.c (use_debug_types): New define.
15335         (struct die_struct): Mark die_id with GTY desc use_debug_types.
15336         (print_die): Guard output of type unit signatures using
15337         use_debug_types.
15338         (build_abbrev_table): Replace assert of dwarf_version >= 4
15339         with assert on use_debug_types.
15340         (size_of_die): Likewise.
15341         (unmark_dies): Likewise.
15342         (value_format): Decide AT_ref_external form on use_debug_types.
15343         (output_die): Replace dwarf_version version check guard with
15344         use_debug_types where appropriate.
15345         (modified_type_die): Likewise.
15346         (gen_reference_type_die): Likewise.
15347         (dwarf2out_start_source_file): Likewise.
15348         (dwarf2out_end_source_file): Likewise.
15349         (prune_unused_types_walk_attribs): Likewise.
15350         (dwarf2out_finish): Likewise.
15351
15352 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
15353
15354         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
15355
15356 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
15357
15358         PR rtl-optimization/48332
15359         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
15360         mode of input operand N and modeN to its actual mode.
15361
15362 2011-03-30  Jeff Law  <law@redhat.com>
15363
15364         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
15365         define accessor macro.
15366         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
15367         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
15368         (reg_equiv_init): Likewise.
15369         (reg_equivs_size): New variable.
15370         (reg_equiv_init_size): Remove.
15371         (allocate_initial_values): Move prototype to here from....
15372         * integrate.h (allocate_initial_values): Remove prototype.
15373         * integrate.c: Include reload.h.
15374         (allocate_initial_values): Corresponding changes.
15375         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
15376         (fix_reg_equiv_init, no_equiv): Corresponding changes.
15377         (update_equiv_regs): Corresponding changes.
15378         (ira): Corresponding changes.
15379         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
15380         (push_secondary_reload): Corresponding changes.
15381         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
15382         (make_memloc, find_reloads_address): Corresponding changes.
15383         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
15384         (find_reloads_address_1): Corresponding changes.
15385         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
15386         (refers_to_regno_for_reload_p): Corresponding changes.
15387         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
15388         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
15389         * reload1.c: Include ggc.h.
15390         (grow_reg_equivs): New function.
15391         (replace_pseudos_in, reload): Corresponding changes.
15392         (calculate_needs_all_insns, alter_regs): Corresponding changes.
15393         (eliminate_regs_1, elimination_effects): Corresponding changes.
15394         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
15395         (delete_output_reload): Likewise.
15396         * caller-save.c (mark_referenced_regs): Corresponding changes.
15397         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
15398         * frv/predicates.md (frv_load_operand): Corresponding changes.
15399         * microblaze/microblaze.c (double_memory_operand): Corresponding
15400         changes.
15401         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
15402         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
15403         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
15404         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
15405         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
15406         changes.
15407         * pa/pa.c (emit_move_sequence): Corresponding changes.
15408         * vax/vax.c (nonindexed_address_p): Corresponding changes.
15409
15410 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
15411
15412         PR target/47551
15413         * config/arm/arm.c (coproc_secondary_reload_class): Handle
15414         structure modes.  Don't check neon_vector_mem_operand for
15415         vector or structure modes.
15416
15417 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
15418             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
15419
15420         PR target/43590
15421         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
15422         operand 1 and reshuffle the operands to match.
15423         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
15424
15425 2011-03-30  Christian Schüler  <cschueler@gmx.de>
15426
15427         PR driver/48208
15428         * config/c.opt (F): Added 'Driver' to -F option.
15429
15430         PR driver/48260
15431         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
15432           handler function.
15433         * config/darwin.opt: Added '-arch' option.
15434
15435 2011-03-30  Nick Clifton  <nickc@redhat.com>
15436
15437         * config/rx/rx.md: Add peepholes and patterns to combine
15438         extending loads and simple arithmetic instructions.
15439         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
15440         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
15441         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
15442         modes to use pre-decrement and post-increment addressing.
15443         (rx_is_restricted_memory_address): Add range checking of REG+INT
15444         addresses.
15445         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
15446         (rx_memory_move_cost): Adjust cost of stores.
15447         (rx_adjust_insn_length): New function.
15448
15449 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
15450
15451         PR c/48305
15452         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
15453         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
15454         matching arg00/arg01 types.
15455
15456 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
15457
15458         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
15459         last_location to UNKNOWN_LOCATION.
15460
15461 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
15462
15463         PR target/48349
15464         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
15465         FLOAT_SSE_REGS.
15466
15467 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
15468             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15469
15470         PR bootstrap/48337
15471         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
15472         Init(PROCESSOR_V7).
15473         (sparc_cpu): Likewise.
15474         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
15475         PROCESSOR_V7.
15476
15477 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
15478
15479         PR target/48336
15480         PR middle-end/48342
15481         PR rtl-optimization/48345
15482         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
15483         hard regs for given mode from profitable regs when doing secondary
15484         allocation.
15485
15486 2011-03-29  Jeff Law  <law@redhat.com>
15487
15488         PR bootstrap/48327
15489         * tree-ssa-threadupdate.c (struct redirection_data): Remove
15490         do_not_duplicate field.
15491         (lookup_redirection_data): Corresponding changes.
15492         (create_duplicates): Always create a template block.
15493         (redirect_edges): Remove code which reused the original block
15494         when it was going to become unreachable code.
15495         (thread_block): Don't set do_not_duplicate field.
15496
15497 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
15498
15499         * lto-opts.c (register_user_option_p, lto_register_user_option):
15500         Make type argument unsigned.
15501         * lto-streamer.h (lto_register_user_option): Make type argument
15502         unsigned.
15503         * opth-gen.awk: Make CL_* macros unsigned.
15504         * opts-common.c (find_opt): Make lang_mask argument unsigned.
15505         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
15506         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
15507         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
15508         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
15509         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
15510         (find_opt): Make lang_mask argument unsigned.
15511
15512 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
15513
15514         PR rtl-optimization/48331
15515         PR rtl-optimization/48334
15516         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
15517         for any used algorithm.
15518
15519 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
15520
15521         * ira-conflicts.c (build_object_conflicts): Add unused attribute
15522         to parent_max.
15523
15524 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
15525
15526         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
15527         (alpha_option_override): Don't set alpha_sr_alias_set.
15528         (emit_frame_store_1): Use gen_frame_mem rather than calling
15529         set_mem_alias_set.
15530         (alpha_expand_epilogue): Ditto.
15531
15532 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
15533
15534         PR tree-optimization/48290
15535         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
15536         vectorization, check that relevant phis in the basic block after
15537         the inner loop are really inner loop's exit phis.
15538
15539 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
15540
15541         PR debug/48190
15542         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
15543         (cached_dw_loc_list_def): New structure.
15544         (cached_dw_loc_list): New typedef.
15545         (cached_dw_loc_list_table): New variable.
15546         (cached_dw_loc_list_table_hash): New function.
15547         (cached_dw_loc_list_table_eq): Likewise.
15548         (add_location_or_const_value_attribute): Take a bool cache_p.
15549         Cache the list when the parameter is true.
15550         (gen_formal_parameter_die): Update caller.
15551         (gen_variable_die): Likewise.
15552         (dwarf2out_finish): Likewise.
15553         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
15554         while generating debug info for the decl.
15555         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
15556         (dwarf2out_init): Initialize cached_dw_loc_list_table.
15557         (resolve_addr): Cache the result of resolving a chain of
15558         location lists.
15559
15560 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
15561
15562         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
15563         conflict object hard regset nodes have intersecting hard reg sets.
15564
15565         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
15566         after regstat_init_n_sets_and_refs.
15567
15568         * ira.c: Add more comments at the top.
15569         (setup_stack_reg_pressure_class, setup_pressure_classes):
15570         Add comments how we compute the register pressure classes.
15571         (setup_allocno_and_important_classes): Add more comments.
15572         (setup_class_translate_array, reorder_important_classes)
15573         (setup_reg_class_relations): Add comments.
15574
15575         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
15576         start of the file.
15577
15578         * ira-color.c: Add 2011 to the Copyright line.
15579         (assign_hard_reg):  Add more comments.
15580         (improve_allocation): Ditto.
15581
15582         * ira-costs.c: Add 2011 to the Copyright line.
15583         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
15584         comments.
15585         (setup_regno_cost_classes_by_mode): Ditto.
15586
15587         Initial patches from ira-improv branch:
15588
15589         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
15590
15591         * ira-build.c (ira_create_object): Remove initialization of
15592         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
15593         (ira_create_allocno): Remove initialization of
15594         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
15595         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
15596         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
15597         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
15598         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
15599         Initialize ALLOCNO_ADD_DATA.
15600         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
15601         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
15602         ALLOCNO_REG.
15603         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
15604         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
15605
15606         * ira.c (ira_reallocate): Remove.
15607         (setup_pressure_classes): Call
15608         ira_init_register_move_cost_if_necessary.  Use
15609         ira_register_move_cost instead of ira_get_register_move_cost.
15610         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
15611         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
15612
15613         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
15614         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
15615         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
15616         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
15617         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
15618         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
15619         Fix formatting.
15620         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
15621         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
15622         (struct allocno_color_data): New.
15623         (allocno_color_data_t): New typedef.
15624         (allocno_color_data): New definition.
15625         (ALLOCNO_COLOR_DATA): New macro.
15626         (struct object_color_data): New.
15627         (object_color_data_t): New typedef.
15628         (object_color_data): New definition.
15629         (OBJECT_COLOR_DATA): New macro.
15630         (update_copy_costs, calculate_allocno_spill_cost): Call
15631         ira_init_register_move_cost_if_necessary.  Use
15632         ira_register_move_cost instead of ira_get_register_move_cost.
15633         (move_spill_restore, update_curr_costs): Ditto.
15634         (allocno_spill_priority): Make it inline.
15635         (color_pass): Allocate and free allocno_color_dat and object_color_data.
15636         (struct coalesce_data, coalesce_data_t): New.
15637         (allocno_coalesce_data): New definition.
15638         (ALLOCNO_COALESCE_DATA): New macro.
15639         (merge_allocnos, coalesced_allocno_conflict_p): Use
15640         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
15641         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
15642         (coalesce_allocnos): Ditto.
15643         (setup_coalesced_allocno_costs_and_nums): Ditto.
15644         (collect_spilled_coalesced_allocnos): Ditto.
15645         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
15646         (setup_slot_coalesced_allocno_live_ranges): Ditto.
15647         (coalesce_spill_slots): Ditto.
15648         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
15649         free allocno_coalesce_data.
15650
15651         * ira-conflicts.c: Fix formatting.
15652         (process_regs_for_copy): Call
15653         ira_init_register_move_cost_if_necessary.  Use
15654         ira_register_move_cost instead of ira_get_register_move_cost.
15655         (build_object_conflicts): Optimize.
15656
15657         * ira-costs.c (record_reg_classes): Optimize.  Call
15658         ira_init_register_move_cost_if_necessary.  Use
15659         ira_register_move_cost, ira_may_move_in_cost, and
15660         ira_may_move_out_cost instead of ira_get_register_move_cost and
15661         ira_get_may_move_cost.
15662         (record_address_regs): Ditto.
15663         (scan_one_insn): Optimize.
15664         (find_costs_and_classes): Optimize.
15665         (process_bb_node_for_hard_reg_moves): Call
15666         ira_init_register_move_cost_if_necessary.  Use
15667         ira_register_move_cost instead of ira_get_register_move_cost.
15668
15669         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
15670         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
15671         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
15672         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
15673         definitions.
15674         (ira_initiate_emit_data, ira_finish_emit_data)
15675         (create_new_allocno): New functions.
15676         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
15677         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
15678         Use ira_register_move_cost instead of ira_get_register_move_cost.
15679
15680         * ira-int.h: Fix some comments.
15681         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
15682         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
15683         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
15684         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
15685         add_data.
15686         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
15687         bitfield after mode.  Make hard_regno a short int.  Make
15688         hard_regno short.  Remove first_coalesced_allocno and
15689         next_coalesced_allocno.  Move mem_optimized_dest_p,
15690         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
15691         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
15692         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
15693         temp, colorable_p.  Add new member add_data.
15694         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
15695         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
15696         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
15697         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
15698         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
15699         (ALLOCNO_ADD_DATA): New macro.
15700         (ira_emit_data_t): New typedef.
15701         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
15702         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
15703         from struct ira_allocno.
15704         (ALLOCNO_EMIT_DATA): New macro.
15705         (ira_allocno_emit_data, allocno_emit_reg): New.
15706         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
15707         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
15708         (OBJECT_ADD_DATA): New macro.
15709         (ira_reallocate): Remove.
15710         (ira_initiate_emit_data, ira_finish_emit_data): New.
15711         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
15712         (ira_init_register_move_cost_if_necessary): New.
15713         (ira_object_conflict_iter_next): Merge into
15714         ira_object_conflict_iter_cond.
15715         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
15716
15717         * ira-live.c (process_single_reg_class_operands): Call
15718         ira_init_register_move_cost_if_necessary.  Use
15719         ira_register_move_cost instead of ira_get_register_move_cost.
15720
15721         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
15722
15723         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
15724
15725         * ira-costs.c: Fix formatting.
15726         (cost_classes, cost_classes_num): Remove.
15727         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
15728         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
15729         (cost_classes_del, cost_classes_htab): New.
15730         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
15731         (initiate_regno_cost_classes, setup_cost_classes): New.
15732         (setup_regno_cost_classes_by_aclass): New.
15733         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
15734         (record_reg_classes): Use regno_cost_classes instead of
15735         cost_classes.  Move checking opposite operand up.
15736         (record_address_regs): Use regno_cost_classes
15737         instead of cost_classes.
15738         (scan_one_insn): Ditto.  Use always general register.
15739         (print_allocno_costs): Use regno_cost_classes instead of
15740         cost_classes.
15741         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
15742         (find_costs_and_classes): Set up cost classes for each registers.
15743         Use also their mode for this.  Use regno_cost_classes instead of
15744         cost_classes.
15745         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
15746         cost_classes.
15747         (free_ira_costs, ira_init_costs): Don't use cost_classes.
15748         (ira_costs, ira_set_pseudo_classes): Call
15749         initiate_regno_cost_classes and finish_regno_cost_classes.
15750
15751         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
15752
15753         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
15754
15755         * target.def (ira_cover_classes): Remove.
15756
15757         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
15758
15759         * doc/tm.texi.in: Ditto.
15760
15761         * ira-conflicts.c: Remove mentioning cover classes from the file.
15762         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
15763         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
15764
15765         * targhooks.c (default_ira_cover_classes): Remove.
15766
15767         * targhooks.h (default_ira_cover_classes): Ditto.
15768
15769         * haifa-sched.c: Remove mentioning cover classes from the file.
15770         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
15771         ira_pressure_classes and ira_pressure_classes_num instead of
15772         ira_reg_class_cover_size and ira_reg_class_cover.  Use
15773         sched_regno_pressure_class instead of sched_regno_cover_class.
15774         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
15775         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
15776
15777         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
15778         classes from the file.
15779         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
15780         (struct object_hard_regs, struct object_hard_regs_node): New.
15781         (struct ira_object): New members profitable_hard_regs,
15782         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
15783         (struct ira_allocno): Rename cover_class to aclass.  Rename
15784         cover_class_cost and updated_cover_class_cost to class_cost and
15785         updated_class_cost.  Remove splay_removed_p and
15786         left_conflict_size.  Add new members colorable_p.
15787         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
15788         (ALLOCNO_COLORABLE_P): New macro.
15789         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
15790         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
15791         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
15792         (OBJECT_...): Rename parameter C to O.
15793         (OBJECT_PROFITABLE_HARD_REGS): New macro.
15794         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
15795         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
15796         (struct target_ira_int): New members x_ira_max_memory_move_cost,
15797         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
15798         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
15799         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
15800         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
15801         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
15802         x_ira_reg_class_subunion.
15803         (ira_max_memory_move_cost, ira_max_register_move_cost)
15804         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
15805         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
15806         (ira_important_class_nums, ira_reg_class_superunion): New macros.
15807         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
15808         (ira_reg_class_union): Rename to ira_reg_class_subunion.
15809         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
15810         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
15811         (ira_tune_allocno_costs_and_cover_classes): Rename to
15812         ira_tune_allocno_costs.
15813         (ira_debug_hard_regs_forest): New.
15814         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
15815         (ira_object_conflict_iter_next): Fix comments.
15816         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
15817         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
15818         cover_class to aclass.
15819         (ira_allocate_and_accumulate_costs): Ditto.
15820         (ira_allocate_and_set_or_copy_costs): Ditto.
15821
15822         * opts.c (decode_options): Remove ira_cover_class check.
15823
15824         * ira-color.c: Remove mentioning cover classes from the file.  Use
15825         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
15826         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
15827         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
15828         (splay-tree.h): Remove include.
15829         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
15830         before copy_freq_compare_func.
15831         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
15832         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
15833         New definitions.
15834         (hard_regs_roots, hard_regs_node_vec): Ditto.
15835         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
15836         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
15837         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
15838         (create_new_object_hard_regs_node): Ditto.
15839         (add_new_object_hard_regs_node_to_forest): Ditto.
15840         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
15841         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
15842         Ditto.
15843         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
15844         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
15845         (remove_unused_object_hard_regs_nodes): Ditto.
15846         (enumerate_object_hard_regs_nodes): Ditto.
15847         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
15848         (object_hard_regs_subnode_t): Ditto.
15849         (struct object_hard_regs_subnode): Ditto.
15850         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
15851         (setup_object_hard_regs_subnode_index): Ditto.
15852         (get_object_hard_regs_subnodes_num): Ditto.
15853         (form_object_hard_regs_nodes_forest): Ditto.
15854         (finish_object_hard_regs_nodes_tree): Ditto.
15855         (finish_object_hard_regs_nodes_forest): Ditto.
15856         (allocnos_have_intersected_live_ranges_p): Rename to
15857         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
15858         (pseudos_have_intersected_live_ranges_p): Rename to
15859         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
15860         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
15861         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
15862         (update_copy_costs): Remove assert.  Skip cost update if the hard
15863         reg does not belong the class.
15864         (assign_hard_reg): Process only profitable hard regs.
15865         (uncolorable_allocnos_num): Make it scalar.
15866         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
15867         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
15868         and ira_reg_class_max_nregs.
15869         (bucket_allocno_compare_func): Check frequency first.
15870         (sort_bucket): Add compare function as a parameter.
15871         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
15872         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
15873         (push_allocno_to_stack): Rewrite for checking new allocno
15874         colorability.
15875         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
15876         (push_only_colorable): Pass new parameter to sort_bucket.
15877         (push_allocno_to_spill): Remove.
15878         (allocno_spill_priority_compare): Make it inline and rewrite.
15879         (splay_tree_allocate, splay_tree_free): Remove.
15880         (allocno_spill_sort_compare): New function.
15881         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
15882         build and use splay tree.  Choose first allocno in uncolorable
15883         allocno bucket to spill.  Remove setting spill cost.
15884         (all_conflicting_hard_regs): Remove.
15885         (setup_allocno_available_regs_num): Check only profitable hard
15886         regs.  Print info about hard regs nodes.
15887         (setup_allocno_left_conflicts_size): Remove.
15888         (put_allocno_into_bucket): Don't call
15889         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
15890         (improve_allocation): New.
15891         (color_allocnos): Call setup_profitable_hard_regs,
15892         form_object_hard_regs_nodes_forest, improve_allocation,
15893         finish_object_hard_regs_nodes_forest.  Setup spill cost.
15894         (print_loop_title): Use pressure classes.
15895         (color_allocnso): Ditto.
15896         (do_coloring): Remove allocation and freeing splay_tree_node_pool
15897         and allocnos_for_spilling.
15898         (ira_sort_regnos_for_alter_reg): Don't setup members
15899         {first,next}_coalesced_allocno.
15900         (color): Remove allocating and freeing removed_splay_allocno_vec.
15901         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
15902         prohibited_class_mode_regs.
15903
15904         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
15905         formatting.
15906         (update_allocno_pressure_excess_length): Use pressure classes.
15907         (inc_register_pressure, dec_register_pressure): Check for pressure
15908         class.
15909         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
15910         pressure class.  Use ira_reg_class_nregs instead of
15911         ira_reg_class_max_nregs.
15912         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
15913         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
15914         (single_reg_class): Use ira_reg_class_nregs instead of
15915         ira_reg_class_max_nregs.
15916         (process_bb_node_lives): Use pressure classes.
15917
15918         * ira-emit.c: Remove mentioning cover classes from the file.  Use
15919         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
15920         (change_loop): Use pressure classes.
15921         (modify_move_list): Call ira_set_allocno_class instead of
15922         ira_set_allocno_cover_class.
15923
15924         * ira-build.c: Remove mentioning cover classes from the file.  Use
15925         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
15926         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
15927         ALLOCNO_UPDATED_CLASS_COST instead of
15928         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
15929         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
15930         (ira_create_allocno): Remove initialization of
15931         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
15932         ALLOCNO_COLORABLE_P.
15933         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
15934         Update conflict regs for the objects.
15935         (create_cap_allocno): Remove assert.  Don't propagate
15936         ALLOCNO_AVAILABLE_REGS_NUM.
15937         (ira_free_allocno_costs): New function.
15938         (finish_allocno): Change a part of code into call of
15939         ira_free_allocno_costs.
15940         (low_pressure_loop_node_p): Use pressure classes.
15941         (object_range_compare_func): Don't compare classes.
15942         (setup_min_max_conflict_allocno_ids): Ditto.
15943
15944         * loop-invariant.c: Remove mentioning cover classes from the file.
15945         Use ira_pressure_classes and ira_pressure_classes_num instead of
15946         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
15947         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
15948         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
15949         Use reg_allocno_class instead of reg_cover_class.
15950         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
15951         STACK_REG_COVER_CLASS.
15952         (get_regno_cover_class): Rename to get_regno_pressure_class.
15953         (move_loop_invariants): Initialize and finalize regstat.
15954
15955         * ira.c: Remove mentioning cover classes from the file.  Add
15956         comments about coloring without cover classes.  Use ALLOCNO_CLASS
15957         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
15958         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
15959         setup_class_subset_and_memory_move_costs.
15960         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
15961         (setup_cover_and_important_classes): Rename to
15962         setup_allocno_and_important_classes.
15963         (setup_class_translate_array): New.
15964         (setup_class_translate): Call it for allocno and pressure classes.
15965         (cover_class_order): Rename to allocno_class_order.
15966         (comp_reg_classes_func): Use ira_allocno_class_translate instead
15967         of ira_class_translate.
15968         (reorder_important_classes): Set up ira_important_class_nums.
15969         (setup_reg_class_relations): Set up ira_reg_class_superunion.
15970         (print_class_cover): Rename to print_classes.  Add parameter.
15971         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
15972         Print pressure classes too.
15973         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
15974         setup_reg_subclasses.
15975         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
15976         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
15977         (setup_prohibited_class_mode_regs): Use
15978         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
15979         (clarify_prohibited_class_mode_regs): New function.
15980         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
15981         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
15982         (ira_init_once): Initialize them.
15983         (free_register_move_costs): Process them.
15984         (ira_init): Move calls of find_reg_classes and
15985         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
15986         Call clarify_prohibited_class_mode_regs.
15987         (ira_no_alloc_reg): Remove.
15988         (too_high_register_pressure_p): Use pressure classes.
15989
15990         * sched-deps.c: Remove mentioning cover classes from the file.
15991         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
15992         ira_pressure_classes and ira_pressure_classes_num instead of
15993         ira_reg_class_cover_size and ira_reg_class_cover.
15994         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
15995         sched_regno_pressure_class instead of sched_regno_cover_class.
15996         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
15997         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
15998
15999         * ira.h: Add 2010 to Copyright.
16000         (ira_no_alloc_reg): Remove external.
16001         (struct target_ira): Rename x_ira_hard_regno_cover_class,
16002         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
16003         x_ira_class_translate to x_ira_hard_regno_allocno_class,
16004         x_ira_allocno_classes_num, x_ira_allocno_classes, and
16005         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
16006         x_ira_pressure_classes, x_ira_pressure_class_translate, and
16007         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
16008         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
16009         x_ira_no_alloc_regs.
16010         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
16011         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
16012         ira_allocno_classes_num and ira_allocno_classes.
16013         (ira_class_translate): Rename to ira_allocno_class_translate.
16014         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
16015         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
16016         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
16017         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
16018         (ira_no_alloc_regs): New.
16019
16020         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
16021         classes from the file.  Use ALLOCNO_CLASS instead of
16022         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
16023         ALLOCNO_COVER_CLASS_COST.
16024         (regno_cover_class): Rename to regno_aclass.
16025         (record_reg_classes): Use ira_reg_class_subunion instead of
16026         ira_reg_class_union.
16027         (record_address_regs): Check overflow.
16028         (scan_one_insn): Ditto.
16029         (print_allocno_costs): Print total mem cost fore regional allocation.
16030         (print_pseudo_costs): Use REG_N_REFS.
16031         (find_costs_and_classes): Use classes intersected with them on the
16032         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
16033         ira_reg_class_union.  Use ira_allocno_class_translate and
16034         regno_aclass instead of ira_class_translate and regno_cover_class.
16035         Modify code for finding regno_aclass.  Setup preferred classes for
16036         the next pass.
16037         (setup_allocno_cover_class_and_costs): Rename to
16038         setup_allocno_class_and_costs.  Use regno_aclass instead of
16039         regno_cover_class.  Use ira_set_allocno_class instead of
16040         ira_set_allocno_cover_class.
16041         (init_costs, finish_costs): Use regno_aclass instead of
16042         regno_cover_class.
16043         (ira_costs): Use setup_allocno_class_and_costs instead of
16044         setup_allocno_cover_class_and_costs.
16045         (ira_tune_allocno_costs_and_cover_classes): Rename to
16046         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
16047         by processing objects.  Use ira_reg_class_max_nregs instead of
16048         ira_reg_class_nregs.
16049
16050         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
16051
16052         * sched-int.h: Remove mentioning cover classes from the file.
16053         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
16054
16055         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
16056         classes from the file.
16057         (struct reg_pref): Rename coverclass into allocnoclass.
16058         (reg_cover_class): Rename to reg_allocno_class.
16059
16060         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
16061
16062         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
16063
16064         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
16065
16066         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
16067
16068         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
16069
16070         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
16071
16072         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
16073
16074         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
16075
16076         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
16077
16078         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
16079
16080         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
16081         (i386_ira_cover_classes): Ditto.
16082
16083         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
16084
16085         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
16086
16087         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
16088
16089         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
16090
16091         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
16092
16093         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
16094
16095         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
16096         (mips_ira_cover_classes): Ditto.
16097
16098         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
16099
16100         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
16101
16102         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
16103
16104         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
16105
16106         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
16107
16108         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
16109         (IRA_COVER_CLASSES_VSX): Ditto.
16110
16111         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
16112         (rs6000_ira_cover_classes): Ditto.
16113
16114         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
16115
16116         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
16117
16118         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
16119
16120         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
16121
16122         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
16123
16124         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
16125
16126         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
16127
16128         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
16129
16130         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
16131
16132         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
16133
16134 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
16135
16136         PR debug/48253
16137         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
16138         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
16139         dw_fde_unlikely_section_end_label, cold_in_std_section,
16140         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
16141         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
16142         fields.
16143         (output_fde): Use dw_fde_second_{begin,end} if second is
16144         true, otherwise dw_fde_{begin,end}.
16145         (output_call_frame_info): Test dw_fde_second_begin != NULL
16146         instead of dw_fde_switched_sections.
16147         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
16148         fields, initialize new fields.  Initialize in_std_section
16149         unconditionally from the first partition.
16150         (dwarf2out_end_epilogue): Don't override dw_fde_end when
16151         dw_fde_second_begin is non-NULL.
16152         (dwarf2out_switch_text_section): Stop initializing removed
16153         dw_fde_struct fields, initialize new fields, initialize
16154         also dw_fde_end here.  Set dw_fde_switch_cfi even when
16155         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
16156         (struct var_loc_list_def): Add last_before_switch field.
16157         (arange_table, arange_table_allocated, arange_table_in_use,
16158         ARANGE_TABLE_INCREMENT, add_arange): Removed.
16159         (size_of_aranges): Count !in_std_section and !second_in_std_section
16160         hunks in fdes, instead of looking at arange_table_in_use.
16161         (output_aranges): Add aranges_length argument, don't call
16162         size_of_aranges here.  Instead of using aranges_table*
16163         emit ranges for fdes when !in_std_section resp.
16164         !second_in_std_section.
16165         (dw_loc_list): Break ranges crossing section switch.
16166         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
16167         use dw_fde_second_end instead of dw_fde_end as end of last range.
16168         (gen_subprogram_die): Don't call add_arange.  Use
16169         dw_fde_{begin,end} for first partition and if switched
16170         section dw_fde_second_{begin,end} for the second.
16171         (var_location_switch_text_section_1,
16172         var_location_switch_text_section): New functions.
16173         (dwarf2out_begin_function): Initialize cold_text_section even
16174         when function_section () isn't text_section.
16175         (prune_unused_types): Don't walk arange_table.
16176         (dwarf2out_finish): Don't needlessly test
16177         flag_reorder_blocks_and_partition when testing cold_text_section_used.
16178         If info_section_emitted, call size_of_aranges and if it indicates
16179         non-empty .debug_aranges, call output_aranges with the computed
16180         size.  Stop using removed dw_fde_struct fields, use
16181         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
16182         for second.
16183
16184         PR debug/48203
16185         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
16186         create ENTRY_VALUE if incoming or address of incoming's MEM
16187         is a hard REG.
16188         * dwarf2out.c (mem_loc_descriptor): Don't emit
16189         DW_OP_GNU_entry_value of DW_OP_fbreg.
16190         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
16191         on ENTRY_VALUE is able to find the canonical parameter VALUE.
16192         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
16193         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
16194         ENTRY_VALUE_EXPs.
16195         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
16196         is a REG_P or MEM_P with REG_P address, compute hash directly
16197         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
16198         (preserve_only_constants): Don't clear VALUES forwaring
16199         ENTRY_VALUE to some other VALUE.
16200
16201 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
16202
16203         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
16204         instead of GEN_INT.
16205
16206 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
16207
16208         * cfgexpand.c (expand_gimple_cond): Always set the source location and
16209         block before expanding the statement.
16210         (expand_gimple_stmt_1): Likewise.  Set them here...
16211         (expand_gimple_stmt): ...and not here.  Tidy.
16212         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
16213         unknown.
16214
16215 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
16216
16217         * Makefile.in: New rule for cprop.o.
16218         * gcse.c: Move constant/copy propagation to cprop.c.
16219         (compute_local_properties): Only handle expression tables.
16220         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
16221         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
16222         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
16223         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
16224         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
16225         compute_cprop_data, find_used_regs, try_replace_reg,
16226         find_avail_set, cprop_jump, constprop_register, cprop_insn,
16227         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
16228         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
16229         find_bypass_set, reg_killed_on_edge, bypass_block,
16230         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
16231         execute_rtl_cprop, pass_rtl_cprop): Move to...
16232         * cprop.c: ...here.  New file, constant/copy propagation for RTL
16233         moved from gcse.c to here with minor cleanups in duplicated code.
16234
16235 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
16236
16237         * config/i386/i386.c (flag_opts): Fix a typo in
16238         -mavx256-split-unaligned-store.
16239
16240 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
16241
16242         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
16243         LIBCALL_VALUE): Remove macros.
16244         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16245         TARGET_FUNCTION_VALUE_REGNO_P): Define.
16246         (h8300_function_value, h8300_libcall_value,
16247         h8300_function_value_regno_p): New functions.
16248
16249 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
16250
16251         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
16252
16253 2011-03-28  Jeff Law  <law@redhat.com>
16254
16255         * tree-ssa-threadupdate.c (redirect_edges): Call
16256         create_edge_and_update_destination_phis as needed.
16257         (create_edge_and_update_destination_phis): Accept new BB argument.
16258         All callers updated.
16259         (thread_block): Do not update the profile when threading around
16260         intermediate blocks.
16261         (thread_single_edge): Likewise.
16262         (determine_bb_domination_status): If BB is not a successor of the
16263         loop header, return NONDOMINATING.
16264         (register_jump_thread): Note when we register a jump thread around
16265         an intermediate block.
16266         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
16267         (thread_across_edge): Use it.
16268
16269 2011-03-28  Tristan Gingold  <gingold@adacore.com>
16270
16271         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
16272         when for_return is 2.
16273
16274 2011-03-28  Jeff Law  <law@redhat.com>
16275
16276         * var-tracking.c (canonicalize_values_mark): Delete unused
16277         lhs assignment.
16278         (canonicalize_values_star, set_variable_part): Likewise.
16279         (clobber_variable_part, delete_variable_part): Likewise.
16280
16281 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
16282
16283         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
16284
16285 2011-03-28  Martin Jambor  <mjambor@suse.cz>
16286
16287         * tree-inline.c (expand_call_inline): Do not check that destination
16288         node is analyzed.
16289         (optimize_inline_calls): Assert that destination node is analyzed.
16290         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
16291         not call tree_lowering_passes.
16292         * cgraph.h (cgraph_analyze_function): Declare.
16293         * cgraphunit.c (cgraph_analyze_function): Make public.
16294
16295 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
16296
16297         * config/sparc/sparc-opts.h: New.
16298         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
16299         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
16300         (sparc_option_override): Store processor_type enumeration rather
16301         than string in cpu_default.  Remove name and enumeration from
16302         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
16303         without using sparc_select.  Use target_flags_explicit instead of
16304         fpu_option_set.
16305         * config/sparc/sparc.h (enum processor_type): Move to
16306         sparc-opts.h.
16307         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
16308         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
16309         HeaderInclude entry.
16310         (mcpu=, mtune=): Use Var and Enum.
16311         (sparc_processor_type): New Enum and EnumValue entries.
16312
16313 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16314             Iain Sandoe  <iains@gcc.gnu.org>
16315
16316         PR target/48245
16317         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
16318
16319 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
16320
16321         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
16322         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
16323         Insert new statements at it in lieu of STMT.
16324         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
16325         * tree-vect-stmts.c (vectorizable_store): Likewise.
16326         (vectorizable_load): Likewise.
16327
16328 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
16329
16330         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
16331         (divtf3): Ditto.
16332         (multf3): Ditto.
16333         (subtf3): Ditto.
16334
16335 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
16336
16337         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
16338         unaligned 256bit load/store.
16339         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
16340         (*avx_movdqu<avxmodesuffix>): Likewise.
16341
16342 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16343
16344         PR target/48288
16345         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
16346         * config/pa/pa.md (iordi3): Use new predicate in expander.
16347         (iorsi3): Likewise.
16348
16349 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
16350
16351         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
16352         FUNCTION_VALUE_REGNO_P): Remove macros.
16353         * config/mips/mips-protos.h (mips_function_value): Remove.
16354         * config/mips/mips.c (mips_function_value): Rename to...
16355         (mips_function_value_1): ... this. Make static.  Handle receiving
16356         the function type in 'fn_decl_or_type' argument.
16357         (mips_function_value, mips_libcall_value,
16358         mips_function_value_regno_p): New function.
16359         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16360         TARGET_FUNCTION_VALUE_REGNO_P): Define.
16361
16362 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
16363
16364         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
16365         and -mavx256-split-unaligned-store.
16366         (ix86_option_override_internal): Split 32-byte AVX unaligned
16367         load/store by default.
16368         (ix86_avx256_split_vector_move_misalign): New.
16369         (ix86_expand_vector_move_misalign): Use it.
16370
16371         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
16372         -mavx256-split-unaligned-store.
16373
16374         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
16375         256bit load/store.  Generate unaligned store on misaligned memory
16376         operand.
16377         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
16378         256bit load/store.
16379         (*avx_movdqu<avxmodesuffix>): Likewise.
16380
16381         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
16382         -mavx256-split-unaligned-store.
16383
16384 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
16385
16386         PR target/38598
16387         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
16388         Update commentary.
16389
16390 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
16391
16392         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
16393         opno arguments with an expand_operand.  Use create_input_operand.
16394         (mips_prepare_builtin_target): Delete.
16395         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
16396         functions.
16397         (mips_expand_builtin_direct): Use create_output_operand and
16398         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
16399         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
16400         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
16401
16402 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
16403
16404         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
16405         function.
16406         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
16407
16408 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
16409
16410         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
16411         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
16412         basic blocks and call commit_edge_insertions directly.
16413         (fixup_abnormal_edges): Move from here to...
16414         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
16415         on the edges and return whether some have actually been inserted.
16416         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
16417         compensation code.
16418
16419 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
16420
16421         PR rtl-optimization/48144
16422         * sel-sched-ir.c (merge_history_vect): Factor out from ...
16423         (merge_expr_data): ... here.
16424         (av_set_intersect): Rename to av_set_code_motion_filter.
16425         Update all callers.  Call merge_history_vect when an expression
16426         is found in both sets.
16427         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
16428
16429 2011-03-26  Alan Modra  <amodra@gmail.com>
16430
16431         * config/rs6000/predicates.md (word_offset_memref_op): Handle
16432         cmodel medium addresses.
16433         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
16434         64-bit gpr loads and stores.
16435         (rs6000_secondary_reload_ppc64): New function.
16436         * config/rs6000/rs6000-protos.h: Declare it.
16437         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
16438
16439 2011-03-26  Alan Modra  <amodra@gmail.com>
16440
16441         PR target/47487
16442         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
16443         GNU Go in traceback table.
16444
16445 2011-03-25  Richard Henderson  <rth@redhat.com>
16446
16447         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
16448         if there are exactly 6 operands.
16449         (set_storage_via_setmem): Similarly.
16450
16451 2011-03-25  Kai Tietz  <ktietz@redhat.com>
16452
16453         * collect2.c (write_c_file_stat): Handle backslash
16454         as right-hand directory separator.
16455         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
16456         checking just for slash.
16457         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
16458         instead of checking for trailing slash.
16459         * gcc.c (record_temp_file): Use filename_cmp instead
16460         of strcmp.
16461         (do_spec_1): Likewise.
16462         (replace_outfile_spec_function): Likewise.
16463         (is_directory): Use filename_ncmp instead of strncmp.
16464         (print_multilib_info): Likewise.
16465         * gcov.c (find_source): Use filename_cmp instead
16466         instead of strcmp.
16467         (make_gcov_file_name): Fix order of slash/backslash
16468         checks.
16469         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
16470         (add_standard_paths): Likewise.
16471         * mips-tfile.c (saber_stop): Handle backslash.
16472         * prefix.c (update_path): Use filename_ncmp instead of
16473         strncmp.
16474         * profile.c (output_location): Use filename_cmp instead
16475         of strcmp.
16476         * read-md.c (handle_toplevel_file): Handle backslash.
16477         * tlink.c (frob_extension):  Likewise.
16478         * tree-cfg.c (same_line_p): Use filename_cmp instead of
16479         strcmp.
16480         * tree-dump.c (dequeue_and_dump): Handle backslash.
16481         * tree.c (get_file_function_name): Likewise.
16482         * gengtype.c (read_input_list): Likewise.
16483         (get_file_realbasename): Likewise.
16484         (get_output_file_with_visibility): Use filename_cmp
16485         instead of strcmp.
16486
16487 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
16488
16489         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
16490         case to VFPv1.
16491
16492 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
16493
16494         * fold-const.c (expr_location_or): New function.
16495         (fold_truth_not_expr): Call it.
16496
16497 2011-03-25  Jeff Law  <law@redhat.com>
16498
16499         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
16500         va_end.
16501         * c-family/c-common.c (def_fn_type): Likewise.
16502         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
16503         * emit-rtl.c (gen_rtvec): Likewise.
16504         * lto/lto-lang.c (def_fn_type): Likewise.
16505
16506 2011-03-25  Richard Guenther  <rguenther@suse.de>
16507
16508         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
16509         also generate copies.
16510         (fini_copy_prop): Handle constant values properly.
16511
16512 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
16513
16514         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
16515         mode size instead of bitsize with DWARF2_ADDR_SIZE.
16516         (hash_loc_operands, compare_loc_operands): Handle
16517         DW_OP_GNU_entry_value.
16518
16519 2011-03-25  Kai Tietz  <ktietz@redhat.com>
16520
16521         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
16522         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
16523         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
16524         comment and use macro TARGET_64BIT_MS_ABI instead.
16525         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
16526         and change default behavior for 32-bit MS_ABI.
16527         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
16528         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
16529         32-bit, too.
16530         (ix86_cfun_abi): Likewise.
16531         (ix86_maybe_switch_abi): Adjust comment.
16532         (init_cumulative_args): Check for bit-ness in MS_ABI case.
16533         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
16534         instead of checking for SYSV_ABI.
16535         (ix86_nsaved_sseregs): Likewise.
16536         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
16537         to 16 bytes.
16538         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
16539         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
16540         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
16541         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
16542         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
16543
16544 2011-03-25  Richard Guenther  <rguenther@suse.de>
16545
16546         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
16547         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
16548         (verify_gimple): Remove.
16549         * tree-cfg.c (verify_gimple_call): Merge verification
16550         from verify_stmts.
16551         (verify_gimple_phi): Merge verification from verify_stmts.
16552         (verify_gimple_label): New function.
16553         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
16554         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
16555         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
16556         (verify_stmts): Rename to verify_gimple_in_cfg.
16557         (verify_gimple_in_cfg): New function.
16558         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
16559         * tree-ssa.c (verify_ssa): Likewise.
16560         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
16561
16562 2011-03-25  Richard Guenther  <rguenther@suse.de>
16563
16564         * passes.c (init_optimization_passes): Add FRE pass after
16565         early SRA.
16566
16567 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
16568             Andrew Stubbs  <ams@codesourcery.com>
16569
16570         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
16571         for Cortex-A8.
16572         (arm_movdi_vfp_cortexa8): New pattern.
16573         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
16574         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
16575         instructions when tuning for Cortex-A8.  Set attribute "arch".
16576         * config/arm/arm.md: Move include arm-tune.md up a bit.
16577         (define_attr "arch"): Add "onlya8" and "nota8" values.
16578         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
16579
16580 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
16581
16582         PR bootstrap/48282
16583         Revert:
16584         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
16585
16586         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
16587         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
16588         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
16589         * passes.c (init_optimization_passes): Move
16590         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
16591
16592 2011-03-25  Kai Tietz  <ktietz@redhat.com>
16593
16594         * c-typeck.c (comptypes_internal): Replace target
16595         hook call of comp_type_attributes by version in tree.c file.
16596         * gimple.c (gimple_types_compatible_p_1): Likewise.
16597         * tree-ssa.c (useless_type_conversion_p): Likewise.
16598         * tree.c (build_type_attribute_qual_variant): Likewise.
16599         (attribute_value_equal): New static helper function.
16600         (comp_type_attributes): New function.
16601         (merge_attributes): Use attribute_value_equal for comparison.
16602         (attribute_list_contained): Likewise.
16603         * tree.h (comp_type_attributes): New prototype.
16604
16605 2011-03-25  Richard Guenther  <rguenther@suse.de>
16606
16607         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
16608         of complex types at -O0.
16609         (verify_gimple_assign_binary): Likewise.
16610         (verify_gimple_assign_ternary): Likewise.
16611
16612 2011-03-24  Mark Wielaard  <mjw@redhat.com>
16613
16614         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
16615         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
16616
16617 2011-03-24  Mark Wielaard  <mjw@redhat.com>
16618
16619         PR debug/48041
16620         * dwarf2out.c (output_abbrev_section): Only write table when
16621         abbrev_die_table_in_use > 1.
16622
16623 2011-02-24  Richard Henderson  <rth@redhat.com>
16624
16625         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
16626         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
16627         (alpha_expand_unaligned_load_words): Use extql.
16628         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
16629         (emit_insxl): Handle all modes for consistency.
16630
16631 2011-02-24  Richard Henderson  <rth@redhat.com>
16632
16633         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
16634         (alpha_expand_unaligned_load): Likewise.
16635         (alpha_expand_unaligned_store): Likewise.
16636         (alpha_expand_unaligned_load_words): Likewise.
16637         (alpha_expand_unaligned_store_words): Likewise.
16638         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
16639         (alpha_split_lock_test_and_set_12): Likewise.
16640         (print_operand, alpha_fold_builtin_extxx): Likewise.
16641         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
16642         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
16643         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
16644         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
16645         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
16646         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
16647         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
16648         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
16649         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
16650         (extwl, extll, extql): Similarly.
16651         (inswh, inslh, insqh): Similarly.
16652         (mskbl, mskwl, mskll, mskql): Similarly.
16653         (mskwh, msklh, mskqh): Similarly.
16654
16655 2011-02-24  Richard Henderson  <rth@redhat.com>
16656
16657         * config/alpha/alpha.md (attribute isa): Add er, ner.
16658         (attribute enabled): Handle them.
16659         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
16660
16661 2011-02-24  Richard Henderson  <rth@redhat.com>
16662
16663         * config/alpha/alpha.md (attribute isa): Add vms.
16664         (attribute enabled): Handle it.
16665         (*movsf): Merge *movsf_{nofix,fix,nofp}.
16666         (*movdf): Merge *movdf_{nofix,fix,nofp}.
16667         (*movtf): Rename from *movtf_internal for consistency.
16668         (*movsi): Merge with *movsi_nt_vms.
16669         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
16670         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
16671         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
16672         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
16673
16674 2011-02-24  Richard Henderson  <rth@redhat.com>
16675
16676         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
16677         (extendqisi2, extendhisi2): Likewise.
16678         (extendqidi2): Simplify BWX/non-BWX expansions.
16679         (extendhidi2): Similarly.
16680
16681 2011-02-24  Richard Henderson  <rth@redhat.com>
16682
16683         * config/alpha/alpha.md (attribute isa): New.
16684         (attribute enabled): New.
16685         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
16686         (zero_extendqisi2, zero_extendqidi2): Similarly.
16687         (zero_extendhisi2, zero_extendhidi2): Similarly.
16688         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
16689
16690 2011-02-24  Richard Henderson  <rth@redhat.com>
16691
16692         * config/alpha/predicates.md (input_operand): Revert last change;
16693         update comment to mention 32-bit VMS rather than Windows.
16694
16695 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
16696
16697         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
16698         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
16699         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
16700         * passes.c (init_optimization_passes): Move
16701         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
16702
16703 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
16704
16705         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
16706
16707 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
16708
16709         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
16710         correctly.
16711
16712 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
16713
16714         PR debug/48204
16715         * simplify-rtx.c (simplify_const_unary_operation): Call
16716         real_convert when changing mode class with FLOAT_EXTEND.
16717
16718 2011-03-24  Nick Clifton  <nickc@redhat.com>
16719
16720         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
16721         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
16722         * config/rx/rx.c (rx_option_override): Set align_jumps,
16723         align_loops and align_labels if not set by the user.
16724         (rx_align_for_label): New function.
16725         (rx_max_skip_for_label): New function.
16726         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
16727         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
16728         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
16729         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
16730         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
16731
16732 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
16733
16734         PR rtl-optimization/48263
16735         * optabs.c (expand_binop_directly): Reinstate convert_modes code
16736         and original commutative_p handling.  Use maybe_gen_insn.
16737
16738 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16739
16740         * reload.c (find_reloads_subreg_address): Add address_reloaded
16741         parameter and return true there if the full address has been
16742         reloaded.
16743         (find_reloads_toplev): Pass address_reloaded flag.
16744         (find_reloads_address_1): Don't use address_reloaded parameter.
16745
16746 2011-03-24  Jeff Law  <law@redhat.com>
16747
16748         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
16749         unused variable "ann".
16750         (remove_unused_locals): Likewise.
16751
16752         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
16753         statement.
16754
16755         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
16756         after it is freed.
16757
16758 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16759
16760         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
16761         for invalid symbolic addresses.
16762         (s390_secondary_reload): Don't use s390_check_symref_alignment for
16763         larl operands.
16764
16765 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
16766
16767         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
16768         the argument in calls to fold_truth_not_expr.
16769
16770 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
16771
16772         * tree.c (record_node_allocation_statistics): New function.
16773         (make_node_stat, copy_node_stat, build_string): Call it.
16774         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
16775         (build1_stat, build_omp_clause): Likewise.
16776
16777 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
16778
16779         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
16780         last commit.
16781
16782 2011-03-24  Richard Guenther  <rguenther@suse.de>
16783
16784         PR tree-optimization/48271
16785         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
16786         blocks that still exist.
16787
16788 2011-03-24  Richard Guenther  <rguenther@suse.de>
16789
16790         PR tree-optimization/48270
16791         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
16792         not free datarefs before ddrs.
16793
16794 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
16795
16796         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
16797         from the address built for a reference with variable offset.
16798
16799 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
16800
16801         PR target/48237
16802         * config/i386/i386.md (*movdf_internal_rex64): Do not split
16803         alternatives that can be handled with movq or movabsq insn.
16804         (*movdf_internal): Disable for !TARGET_64BIT.
16805         (*movdf_internal_nointeger): Ditto.
16806         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
16807
16808 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
16809
16810         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
16811         (FUNCTION_ARG_ADVANCE): Likewise.
16812         * tm.texi.in: Change references to them to hook references.
16813         * tm.texi: Regenerate.
16814         * targhooks.c (default_function_arg): Eliminate check for target macro.
16815         (default_function_incoming_arg): Likewise.
16816         (default_function_arg_advance): Likewise.
16817         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
16818         (function_arg_advance): Likewise.
16819         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
16820
16821 2011-03-24  Richard Guenther  <rguenther@suse.de>
16822
16823         PR middle-end/48269
16824         * tree-object-size.c (addr_object_size): Do not double-account
16825         for MEM_REF offsets.
16826
16827 2011-03-24  Diego Novillo  <dnovillo@google.com>
16828
16829         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
16830         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
16831         (lto_input_data_block): Move from lto-opts.c.  Make extern.
16832         Update all users.
16833         (lto_input_string): Rename from input_string.  Make extern.
16834         Update all users.
16835         * lto-streamer-out.c (lto_output_string_with_length): Rename from
16836         output_string_with_length.
16837         Output 0 to indicate a non-NULL string.  Update all callers to
16838         not emit 0.
16839         (lto_output_string): Rename from output_string.  Make extern.
16840         Update all users.
16841         (lto_output_decl_state_streams): Make extern.
16842         (lto_output_decl_state_refs): Make extern.
16843         * lto-streamer.h (lto_input_string): Declare.
16844         (lto_input_data_block): Declare.
16845         (lto_output_string): Declare.
16846         (lto_output_string_with_length): Declare.
16847         (lto_output_decl_state_streams): Declare.
16848         (lto_output_decl_state_refs): Declare.
16849
16850 2011-03-24  Richard Guenther  <rguenther@suse.de>
16851
16852         PR tree-optimization/46562
16853         * tree.c (build_invariant_address): New function.
16854         * tree.h (build_invariant_address): Declare.
16855         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
16856         a renamed function moved ...
16857         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
16858         Take valueization callback parameter.
16859         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
16860         * gimple-fold.h: New file.
16861         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
16862         (ccp_fold, fold_const_aggregate_ref,
16863         fold_ctor_reference, fold_nonarray_ctor_reference,
16864         fold_array_ctor_reference, fold_string_cst_ctor_reference,
16865         get_base_constructor): Move ...
16866         * gimple-fold.c: ... here.
16867         (gimple_fold_stmt_to_constant_1): New function
16868         split out from ccp_fold.  Take a valueization callback parameter.
16869         Valueize all operands.
16870         (gimple_fold_stmt_to_constant): New wrapper function.
16871         (fold_const_aggregate_ref_1): New function split out from
16872         fold_const_aggregate_ref.  Take a valueization callback parameter.
16873         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
16874         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
16875         invariant POINTER_PLUS_EXPRs to invariant form.
16876         (vn_valueize): New function.
16877         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
16878         * tree-vrp.c (vrp_valueize): New function.
16879         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
16880         to fold statements to constants.
16881         * tree-ssa-pre.c (eliminate): Properly guard propagation of
16882         function declarations.
16883         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
16884         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
16885
16886 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
16887
16888         * config/h8300/predicates.md (jump_address_operand): Fix register
16889         mode check.
16890
16891 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
16892
16893         * doc/invoke.texi (max-stores-to-sink): Document.
16894         * params.h (MAX_STORES_TO_SINK): Define.
16895         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
16896         if either vectorization or if-conversion is disabled.
16897         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
16898         tree-vect-data-refs.c vect_equal_offsets.
16899         (dr_equal_offsets_p): New function.
16900         (find_data_references_in_bb): Remove static.
16901         * tree-data-ref.h (find_data_references_in_bb): Declare.
16902         (dr_equal_offsets_p): Likewise.
16903         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
16904         (vect_drs_dependent_in_basic_block): Update calls to
16905         vect_equal_offsets.
16906         (vect_check_interleaving): Likewise.
16907         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
16908         (cond_if_else_store_replacement): Rename to...
16909         (cond_if_else_store_replacement_1): ... this.  Change arguments and
16910         documentation.
16911         (cond_if_else_store_replacement): New function.
16912         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
16913         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
16914
16915 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
16916
16917         PR target/46934
16918         * config/arm/arm.md (casesi): Use the gen_int_mode() function
16919         to subtract lower bound instead of GEN_INT().
16920
16921 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
16922
16923         PR other/48179
16924         PR other/48221
16925         PR other/48234
16926         * doc/extend.texi (Alignment): Move section to match order in TOC.
16927         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
16928         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
16929
16930 2011-03-23  Jeff Law  <law@redhat.com>
16931
16932         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
16933         before removing the edge.
16934
16935         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
16936         it may have been freed by redirect_branch_edge or
16937         redirect_edge_succ_nodup.
16938
16939 2011-03-23  Richard Guenther  <rguenther@suse.de>
16940
16941         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
16942         (check_va_list_escapes): Likewise.
16943         (check_all_va_list_escapes): Likewise.
16944
16945 2011-03-23  Richard Guenther  <rguenther@suse.de>
16946
16947         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
16948         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
16949         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
16950         (alias.o): Likewise.
16951         (ipa-type-escape.o): Remove.
16952         (ipa-struct-reorg.o): Likewise.
16953         (GTFILES): Remove ipa-struct-reorg.c.
16954         * alias.c: Do not include ipa-type-escape.h.
16955         * tree-ssa-alias.c: Likewise.
16956         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
16957         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
16958         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
16959         and ipa-type-escape passes.
16960         * tree-pass.h (pass_ipa_type_escape): Remove.
16961         (pass_ipa_struct_reorg): Likewise.
16962         * ipa-struct-reorg.h: Remove.
16963         * ipa-struct-reorg.c: Likewise.
16964         * ipa-type-escape.h: Likewise.
16965         * ipa-type-escape.c: Likewise.
16966         * doc/invoke.texi (-fipa-struct-reorg): Remove.
16967         (--param struct-reorg-cold-struct-ratio): Likewise.
16968         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
16969         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
16970         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
16971
16972 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16973
16974         * config/s390/2084.md: Enable all insn reservations also for z9_ec
16975         cpu attribute value.
16976         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
16977         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
16978         * config/s390/s390.c (processor_flags_table): New constant array.
16979         (s390_handle_arch_option): Remove.
16980         (s390_handle_option): Remove s390_handle_arch_option invocations
16981         and OPT_mwarn_framesize_ handling.
16982         (s390_option_override): Remove s390_handle_arch_option invocation.
16983         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
16984         warnings.
16985         * config/s390/s390.md (cpu attribute): Add z9_ec value.
16986         * config/s390/s390.opt (s390_tune, s390_arch)
16987         (march=): Replace s390_arch_option enum and values with
16988         processor_type.  Set variable name to s390_arch.  Set
16989         initialization value.
16990         (mtune=): Replace s390_arch_option with processor_type.  Set
16991         variable name to s390_tune.  Set initialization value.
16992
16993 2011-03-23  Julian Brown  <julian@codesourcery.com>
16994
16995         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
16996         accesses which are not naturally aligned.
16997
16998 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
16999
17000         PR target/47553
17001         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
17002
17003 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
17004
17005         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
17006         parameter from "int" to "enum insn_code".
17007         (expand_operand_type): New enum.
17008         (expand_operand): New structure.
17009         (create_expand_operand): New function.
17010         (create_fixed_operand, create_output_operand): Likewise
17011         (create_input_operand, create_convert_operand_to): Likewise.
17012         (create_convert_operand_from, create_address_operand): Likewise.
17013         (create_integer_operand): Likewise.
17014         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
17015         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
17016         (expand_insn, expand_jump_insn): Likewise.
17017         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
17018         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
17019         (expand_movstr, expand_builtin___clear_cache): Likewise.
17020         (expand_builtin_lock_release): Likewise.
17021         * explow.c (allocate_dynamic_stack_space): Likewise.
17022         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
17023         and use the default handling in that case.
17024         * expmed.c (check_predicate_volatile_ok): Delete.
17025         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
17026         (emit_cstore): Likewise.
17027         * expr.c (emit_block_move_via_movmem): Likewise.
17028         (set_storage_via_setmem, expand_assignment): Likewise.
17029         (emit_storent_insn, try_casesi): Likewise.
17030         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
17031         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
17032         (expand_vec_shift_expr, expand_binop_directly): Likewise.
17033         (expand_twoval_unop, expand_twoval_binop): Likewise.
17034         (expand_unop_direct, emit_indirect_jump): Likewise.
17035         (emit_conditional_move, vector_compare_rtx): Likewise.
17036         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
17037         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
17038         (expand_sync_lock_test_and_set): Likewise.
17039         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
17040         (emit_unop_insn): Likewise.
17041         (expand_copysign_absneg): Change icode to an insn_code.
17042         (create_convert_operand_from_type): New function.
17043         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
17044         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
17045         (expand_insn, expand_jump_insn): Likewise.
17046         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
17047         than const_int_operand for operand 2.
17048
17049 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17050
17051         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
17052         if possible.
17053
17054 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
17055
17056         * emit-rtl.c (emit_pattern_before_noloc): New function.
17057         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
17058         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
17059         (emit_pattern_after_noloc): New function.
17060         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
17061         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
17062
17063 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
17064
17065         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
17066         (__ffsDI2): Likewise.
17067
17068 2011-03-22  Richard Henderson  <rth@redhat.com>
17069
17070         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
17071         of !TARGET_ABI_OPEN_VMS.
17072         (alpha_trampoline_init, alpha_start_function): Likewise.
17073         (alpha_expand_epilogue, alpha_file_start): Likewise.
17074         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
17075         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
17076         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
17077         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
17078         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
17079
17080 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17081
17082         * config/s390/s390-opts.h: New.
17083         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
17084         s390_arch_flags, s390_warn_framesize, s390_stack_size,
17085         s390_stack_guard): Remove.
17086         (s390_handle_arch_option): Return void.  Take enum
17087         s390_arch_option value instead of string and searching array.
17088         (s390_handle_option): Don't assert that global structures are in
17089         use.  Access variables via opts pointer.  Use error_at.  Don't use
17090         sscanf for -mstack-guard= or -mstack-size=.  Update call to
17091         s390_handle_arch_option.
17092         (s390_option_override): Update call to s390_handle_arch_option.
17093         (s390_emit_prologue): Use %d format for s390_stack_size in
17094         diagnostic.  Use %wd for HOST_WIDE_INT.
17095         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
17096         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
17097         * config/s390/s390.opt (config/s390/s390-opts.h): New
17098         HeaderInclude entry.
17099         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
17100         s390_arch_flags, s390_warn_framesize): New Variable entries.
17101         (s390_arch_option): New Enum and EnumValue entries.
17102         (march=): Use Enum instead of Var.
17103         (mstack-guard=, mstack-size=): Use UInteger and Var.
17104         (mtune=): Use Enum.
17105
17106 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17107
17108         * config/score/score.c (score_handle_option): Don't assert that
17109         global structures are in use.  Access target_flags via opts
17110         pointer.  Use value of -march= option to determine target_flags
17111         settings.
17112         * config/score/score.opt (march=): Use Enum.
17113         (score_arch): New Enum and EnumValue entries.
17114
17115 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17116
17117         * config/mep/mep.c (option_mtiny_specified): Remove.
17118         (mep_option_override): Move register handling for -mivc2 from
17119         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
17120         instead of option_mtiny_specified.
17121         (mep_handle_option): Access target_flags via opts pointer.  Don't
17122         assert that global structures are in use.  Defer part of -mivc2
17123         handling and move it to mep_option_override.
17124         * config/mep/mep.opt (IVC2): New Mask entry.
17125         (mivc2): Use Var and Defer instead of Mask.
17126
17127 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17128
17129         * config/v850/v850-opts.h: New.
17130         * config/v850/v850.c (small_memory): Replace with
17131         small_memory_physical_max array.  Make that array static const.
17132         (v850_handle_memory_option): Take integer value of argument.  Take
17133         gcc_options pointer, option text and location.  Return void.
17134         Update for changes to small memory structures.
17135         (v850_handle_option): Access target_flags via opts pointer.  Don't
17136         assert that global structures are in use.  Update calls to
17137         v850_handle_memory_option.
17138         (v850_encode_data_area): Update references to small memory settings.
17139         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
17140         (enum small_memory_type): Move to v850-opts.h.
17141         * config/v850/v850.opt (config/v850/v850-opts.h): New
17142         HeaderInclude entry.
17143         (small_memory_max): New Variable entry.
17144         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
17145         (mtda, mzda): Likewise.
17146
17147 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17148
17149         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
17150         pointer.  Don't assert that global structures are in use.
17151
17152 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17153
17154         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
17155         via opts pointer.  Don't assert that global structures are in use.
17156
17157 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17158
17159         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
17160         (munix=93): Use Var.
17161         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
17162         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
17163         * config/pa/pa-opts.h: New.
17164         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
17165         (pa_handle_option): Don't assert that global structures are in
17166         use.  Access target_flags via opts pointer.  Don't handle
17167         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
17168         OPT_munix_98 here.
17169         (pa_option_override): Handle deferred OPT_mfixed_range_.
17170
17171 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17172
17173         * config/mn10300/mn10300-opts.h: New.
17174         * config/mn10300/mn10300.c (mn10300_processor,
17175         mn10300_tune_string): Remove.
17176         (mn10300_handle_option): Don't assert that global structures are
17177         in use.  Access mn10300_processor via opts pointer.  Don't handle
17178         OPT_mtune_ here.
17179         * config/mn10300/mn10300.h (enum processor_type): Move to
17180         mn10300-opts.h.
17181         (mn10300_processor): Remove.
17182         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
17183         HeaderInclude entry.
17184         (mn10300_processor): New Variable entry.
17185         (mtune=): Use Var.
17186
17187 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17188
17189         * config/microblaze/microblaze.c: Don't include opts.h.
17190         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
17191         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
17192         (mno-clearbss): Use Var and Warn.
17193
17194 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17195
17196         * config/m32r/m32r-opts.h: New.
17197         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
17198         (m32r_handle_option): Don't assert that global structures are in
17199         use.  Access target_flags and m32r_cache_flush_func via opts
17200         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
17201         OPT_mno_flush_trap here.
17202         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
17203         include of m32r-opts.h.
17204         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
17205         HeaderInclude entry.
17206         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
17207         (mmodel=): Use Enum and Var.
17208         (m32r_model): New Enum and EnumValue entries.
17209         (mno-flush-trap): Use Var.
17210         (msdata=): Use Enum and Var.
17211         (m32r_sdata): New Enum and EnumValue entries.
17212
17213 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17214
17215         * config/m32c/m32c.c: Don't include opts.h.
17216         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
17217         m32c_handle_option): Remove.
17218         (m32c_option_override): Check global_options_set.x_target_memregs
17219         instead of target_memregs_set.
17220         * config/m32c/m32c.h (target_memregs): Remove.
17221         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
17222         variable.
17223
17224 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17225
17226         * config/iq2000/iq2000-opts.h: New.
17227         * config/iq2000/iq2000.c: Don't include opts.h.
17228         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
17229         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
17230         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
17231         HeaderInclude entry.
17232         (iq2000_tune): New Variable entry.
17233         (march=): Add comment.  Use Enum.
17234         (iq2000_arch): New Enum and EnumValue entries.
17235         (mcpu=): Use Enum and Var.
17236         (iq2000_tune): New Enum and EnumValue entries.
17237
17238 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17239
17240         * config/ia64/ia64-opts.h: New.
17241         * config/ia64/ia64.c (ia64_tune): Remove.
17242         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
17243         here.  Use error_at.
17244         (ia64_option_override): Handle deferred OPT_mfixed_range_.
17245         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
17246         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
17247         HeaderInclude entry.
17248         (ia64_tune): New Variable entry.
17249         (mfixed-range=): Use Defer and Var.
17250         (mtune=): Use Enum and Var.
17251         (ia64_tune): New Enum and EnumValue entries.
17252
17253 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17254
17255         * config/frv/frv-opts.h: New.
17256         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
17257         frv-opts.h.
17258         (frv_cpu_type): Remove.
17259         * config/frv/frv.c: Don't include opts.h.
17260         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
17261         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
17262         (frv_cpu_type): New Variable entry.
17263         (frv_cpu): New Enum and EnumValue entries.
17264
17265 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17266
17267         * config/cris/cris.c (cris_handle_option): Access target_flags via
17268         opts pointer.  Don't assert that global structures are in use.
17269         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
17270         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
17271
17272 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17273
17274         * config/bfin/bfin-opts.h: New.
17275         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
17276         bfin_si_revision, bfin_workarounds): Remove.
17277         (bfin_cpus): Make static const.
17278         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
17279         not bfin_lib_id_given.
17280         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
17281         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
17282         pointer. Use error_at.  Don't assert that global structures are in use.
17283         * config/bfin/bfin.h: Include bfin-opts.h.
17284         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
17285         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
17286         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
17287         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
17288         entries.
17289
17290 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17291
17292         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
17293         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
17294         or -msoft-float here.
17295         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
17296         -msoft-float and -mhard-float.
17297         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
17298         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
17299         msoft-float.
17300         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
17301         -msoft-float.
17302         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
17303         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
17304         not mhard-float.
17305         (LIBGCC_SPEC): Don't handle -msoft-float.
17306         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
17307         -mhard-float.
17308         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
17309         msoft-float.
17310         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
17311         -mfloat-abi=*, not -msoft-float and -mhard-float.
17312         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
17313         -msoft-float.
17314         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
17315         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
17316         mhard-float and msoft-float.
17317         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
17318         mfloat-abi=soft in comments, not mhard-float and msoft-float.
17319         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
17320         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
17321         mhard-float.
17322         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
17323         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
17324         msoft-float.
17325         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
17326         not mhard-float.
17327         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
17328         not msoft-float.
17329
17330 2011-03-22  Richard Henderson  <rth@redhat.com>
17331
17332         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
17333         TARGET_ABI_WINDOWS_NT.
17334         (alpha_output_function_end_prologue): Likewise.
17335         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
17336         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
17337         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
17338         (trap, *movsi_nt_vms): Likewise.
17339         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
17340         (*tablejump_osf_nt_internal): Remove.
17341         * config/alpha/predicates.md (input_operand): Only test Pmode.
17342
17343 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17344
17345         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
17346         via opts pointer.  Use error_at.  Don't assert that global
17347         structures are in use.
17348
17349 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17350
17351         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
17352         (ix86_handle_option): Access ix86_isa_flags and
17353         ix86_isa_flags_explicit via opts pointer.  Don't assert that
17354         global structures are in use.
17355         (ix86_function_specific_save, ix86_function_specific_restore):
17356         Update ix86_isa_flags_explicit field name.
17357         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
17358         (ix86_isa_flags_explicit): Rename TargetSave entry to
17359         x_ix86_isa_flags_explicit.
17360
17361 2011-03-22  Richard Henderson  <rth@redhat.com>
17362
17363         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
17364         (alpha_option_override, direct_return): Likewise.
17365         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
17366         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
17367         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
17368         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
17369         (alpha_expand_epilogue, alpha_end_function): Likewise.
17370         (alpha_init_libfuncs): Likewise.
17371         (struct machine_function): Remove unicosmk members.
17372         (print_operand) ['t']: Remove.
17373         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
17374         unicosmk_output_module_name, unicosmk_output_common,
17375         current_section_align, unicosmk_output_text_section_asm_op,
17376         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
17377         unicosmk_section_type_flags, unicosmk_unique_section,
17378         unicosmk_asm_named_section, unicosmk_insert_attributes,
17379         unicosmk_output_align, unicosmk_defer_case_vector,
17380         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
17381         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
17382         unicosmk_output_ssib, unicosmk_add_call_info_word,
17383         unicosmk_extern_head, unicosmk_output_default_externs,
17384         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
17385         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
17386         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
17387         * config/alpha/alpha-protos.h: Update.
17388         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
17389         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
17390         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
17391         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
17392         (*mulsi_se, mulvsi3): Likewise.
17393         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
17394         (*divmodsi_internal, call, call_value, realign): Likewise.
17395         (moddi3, umoddi3): Likewise; remove duplicate expander.
17396         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
17397         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
17398         (*movdi_nofix): Remove r/U alternative.
17399         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
17400         * config/alpha/constraints.md ("U"): Remove.
17401         * config/alpha/predicates.md (call_operand"): Don't test
17402         TARGET_ABI_UNICOSMK.
17403
17404 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17405
17406         * target.def (handle_option): Take gcc_options and
17407         cl_decoded_option pointers and location_t.
17408         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
17409         * doc/tm.texi: Regenerate.
17410         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
17411         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
17412         * lto-opts.c (lto_reissue_options): Generate option structure for
17413         targetm.handle_option call.
17414         * opts.c (target_handle_option): Update call to
17415         targetm.handle_option.  Remove assertions about values now passed
17416         down to hook.
17417         * targhooks.c (default_target_handle_option): New.
17418         * targhooks.h (default_target_handle_option): Declare.
17419         * config/alpha/alpha.c: Include opts.h.
17420         (alpha_handle_option): Update to new hook interface.
17421         * config/arm/arm.c: Include opts.h.
17422         (arm_handle_option): Update to new hook interface.
17423         * config/arm/t-arm (arm.o): Update dependencies.
17424         * config/bfin/bfin.c: Include opts.h.
17425         (bfin_handle_option): Update to new hook interface.
17426         * config/cris/cris.c: Include opts.h.
17427         (cris_handle_option): Update to new hook interface.
17428         * config/frv/frv.c: Include opts.h.
17429         (frv_handle_option): Update to new hook interface.
17430         * config/i386/i386.c: Include opts.h.
17431         (ix86_handle_option): Update to new hook interface.
17432         (ix86_valid_target_attribute_inner_p): Generate option structure
17433         for call to ix86_handle_option.
17434         * config/i386/t-i386 (i386.o): Update dependencies.
17435         * config/ia64/ia64.c: Include opts.h.
17436         (ia64_handle_option): Update to new hook interface.
17437         * config/ia64/t-ia64 (ia64.o): Update dependencies.
17438         * config/iq2000/iq2000.c: Include opts.h.
17439         (iq2000_handle_option): Update to new hook interface.
17440         * config/m32c/m32c.c: Include opts.h.
17441         (m32c_handle_option): Update to new hook interface.
17442         * config/m32r/m32r.c: Include opts.h.
17443         (m32r_handle_option): Update to new hook interface.
17444         * config/m68k/m68k.c: Include opts.h.
17445         (m68k_handle_option): Update to new hook interface.
17446         * config/mep/mep.c: Include opts.h.
17447         (mep_handle_option): Update to new hook interface.
17448         * config/microblaze/microblaze.c: Include opts.h.
17449         (microblaze_handle_option): Update to new hook interface.
17450         * config/mips/mips.c: Include opts.h.
17451         (mips_handle_option): Update to new hook interface.
17452         * config/mn10300/mn10300.c: Include opts.h.
17453         (mn10300_handle_option): Update to new hook interface.
17454         * config/pa/pa.c: Include opts.h.
17455         (pa_handle_option): Update to new hook interface.
17456         * config/pdp11/pdp11.c: Include opts.h.
17457         (pdp11_handle_option): Update to new hook interface.
17458         * config/rs6000/rs6000.c: Include opts.h.
17459         (rs6000_handle_option): Update to new hook interface.
17460         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
17461         * config/rx/rx.c: Include opts.h.
17462         (rx_handle_option): Update to new hook interface.
17463         * config/s390/s390.c: Include opts.h.
17464         (s390_handle_option): Update to new hook interface.
17465         * config/score/score.c: Include opts.h.
17466         (score_handle_option): Update to new hook interface.
17467         * config/sh/sh.c: Include opts.h.
17468         (sh_handle_option): Update to new hook interface.
17469         * config/sparc/sparc.c: Include opts.h.
17470         (sparc_handle_option): Update to new hook interface.
17471         * config/v850/v850.c: Include opts.h.
17472         (v850_handle_option): Update to new hook interface.
17473
17474 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17475
17476         * gcc.c (driver_unknown_option_callback): Only permit and save
17477         unknown -Wno- options.
17478         (driver_wrong_lang_callback): Save options directly instead of via
17479         driver_unknown_option_callback.
17480
17481 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
17482
17483         * combine.c (simplify_set): Try harder to find the best CC mode when
17484         simplifying a nested COMPARE on the RHS.
17485
17486 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17487
17488         * config/alpha/gnu.h: Remove.
17489         * config/arc: Remove directory.
17490         * config/arm/netbsd.h: Remove.
17491         * config/arm/t-pe: Remove.
17492         * config/crx: Remove directory.
17493         * config/i386/netbsd.h: Remove.
17494         * config/m68hc11: Remove directory.
17495         * config/m68k/uclinux-oldabi.h: Remove.
17496         * config/mcore/mcore-pe.h: Remove.
17497         * config/mcore/t-mcore-pe: Remove.
17498         * config/netbsd-aout.h: Remove.
17499         * config/rs6000/gnu.h: Remove.
17500         * config/sh/sh-symbian.h: Remove.
17501         * config/sh/symbian-base.c: Remove.
17502         * config/sh/symbian-c.c: Remove.
17503         * config/sh/symbian-cxx.c: Remove.
17504         * config/sh/symbian-post.h: Remove.
17505         * config/sh/symbian-pre.h: Remove.
17506         * config/sh/t-symbian: Remove.
17507         * config/svr3.h: Remove.
17508         * config/vax/netbsd.h: Remove.
17509         * config.build: Don't handle i[34567]86-*-pe.
17510         * config.gcc: Remove handling of deprecations for most deprecated
17511         targets.
17512         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
17513         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
17514         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
17515         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
17516         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
17517         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
17518         Remove cases.
17519         * config.host: Don't handle i[34567]86-*-pe.
17520         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
17521         (ASM_SPEC32): Don't handle -mcall-gnu.
17522         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
17523         -mcall-gnu.
17524         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
17525         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
17526         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
17527         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
17528         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
17529         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
17530         conditional on SYMBIAN.
17531         * configure.ac: Don't handle powerpc*-*-gnu*.
17532         * configure: Regenerate.
17533         * doc/extend.texi (interrupt attribute): Don't mention CRX.
17534         * doc/install-old.texi (m6811, m6812): Don't mention.
17535         * doc/install.texi (arc-*-elf*): Don't document multilib option.
17536         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
17537         (m68k-uclinuxoldabi): Don't mention.
17538         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
17539         Remove.
17540         (-mcall-gnu): Remove.
17541         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
17542         families): Remove constraint documentation.
17543
17544 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
17545
17546         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
17547         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
17548         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
17549
17550 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
17551
17552         PR target/48226
17553         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
17554         vector when peeking at the next token for vector, don't expand the
17555         keywords.
17556
17557 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
17558
17559         * config/avr/avr-protos.h (expand_epilogue): Change prototype
17560         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
17561         * config/avr/avr.c (init_cumulative_args)
17562         (avr_function_arg_advance): Use it.
17563         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
17564         sibcall epilogues.
17565         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
17566         (avr_function_ok_for_sibcall): ...this new function.
17567         (avr_lookup_function_attribute1): New static Function.
17568         (avr_naked_function_p, interrupt_function_p)
17569         (signal_function_p, avr_OS_task_function_p)
17570         (avr_OS_main_function_p): Use it.
17571         * config/avr/avr.md ("sibcall", "sibcall_value")
17572         ("sibcall_epilogue"): New expander.
17573         ("*call_insn", "*call_value_insn"): New insn.
17574         ("call_insn", "call_value_insn"): Remove
17575         ("call", "call_value", "epilogue"): Change expander to handle
17576         sibling calls.
17577
17578 2011-03-21  Nick Clifton  <nickc@redhat.com>
17579
17580         * doc/invoke.texi (Overall Options): Move closing brace to end of
17581         options list.
17582         (Optimization Options): Add missing @gol.
17583         (Directory Options): Likewise.
17584         (i386 and x86-64 Options): Likewise.
17585         (RS6000 and PowerPC Options): Likewise.
17586         (i386 and x86-64 Windows Options): Likewise.
17587         (V850 Options): Add text missing from descriptions.
17588
17589 2011-03-22  Richard Henderson  <rth@redhat.com>
17590
17591         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
17592         (avr_incoming_return_addr_rtx): New.
17593         (emit_push_byte): New.
17594         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
17595         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
17596         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
17597         (emit_pop_byte): New.
17598         (expand_epilogue): Use it.  Pop frame pointer by bytes.
17599         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
17600         (INCOMING_RETURN_ADDR_RTX): New.
17601         (INCOMING_FRAME_SP_OFFSET): New.
17602         (ARG_POINTER_CFA_OFFSET): New.
17603         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
17604         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
17605         (pophi): Remove.
17606
17607         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
17608
17609 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
17610
17611         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
17612         (FUNCTION_ARG_ADVANCE): Likewise.
17613         * tm.texi.in: Change references to them to hook references.
17614         * tm.texi: Regenerate.
17615         * targhooks.c (default_function_arg): Eliminate check for target
17616         macro.
17617         (default_function_incoming_arg): Likewise.
17618         (default_function_arg_advance): Likewise.
17619         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
17620         (function_arg_advance): Likewise.
17621         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
17622
17623 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
17624
17625         * tree.c (build_call_1): New function.
17626         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
17627
17628 2011-03-22  Richard Guenther  <rguenther@suse.de>
17629
17630         PR tree-optimization/48228
17631         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
17632         for single-arg PHIs.
17633
17634 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
17635
17636         PR rtl-optimization/48143
17637         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
17638         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
17639         sse2_cvtps2pd): Likewise.
17640
17641 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17642
17643         * recog.c (canonicalize_change_group): Use validate_unshare_change.
17644
17645 2011-03-22  Richard Guenther  <rguenther@suse.de>
17646
17647         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
17648         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
17649         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
17650         and REALIGN_LOAD_EXPR.
17651         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
17652         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
17653         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
17654         DOT_PROD_EXPR case ...
17655         (expand_expr_real_2): ... here.
17656         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
17657         and REALIGN_LOAD_EXPR.
17658         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
17659         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
17660         (vect_create_epilog_for_reduction): Likewise.
17661         (vectorizable_reduction): Likewise.
17662         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
17663         * tree-vect-stmts.c (vectorizable_load): Likewise.
17664
17665 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
17666
17667         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
17668
17669 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17670
17671         * config/s390/s390.c (s390_delegitimize_address): Fix offset
17672         handling for PLTOFF/GOTOFF.
17673
17674 2011-03-22  Nick Clifton  <nickc@redhat.com>
17675
17676         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
17677         trailing backslash from the end of the macro definition.
17678
17679 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17680
17681         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
17682         and PLT unspecs.
17683
17684 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
17685
17686         * expr.h (prepare_operand): Move to...
17687         * optabs.h (prepare_operand): ...here and change the insn code
17688         parameter from "int" to "enum insn_code".
17689         (insn_operand_matches): Declare.
17690         * expr.c (init_expr_target): Use insn_operand_matches.
17691         (compress_float_constant): Likewise.
17692         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
17693         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
17694         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
17695         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
17696         Likewise.
17697         (gen_cond_trap): Likewise.
17698         (prepare_operand): Likewise.  Change icode to an insn_code.
17699         (insn_operand_matches): New function.
17700         * reload.c (find_reloads_address_1): Use insn_operand_matches.
17701         * reload1.c (gen_reload): Likewise.
17702         * targhooks.c (default_secondary_reload): Likewise.
17703
17704 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
17705
17706         * config/alpha/alpha.md (unspec): New define_c_enum.
17707         (unspecv): Ditto.
17708
17709 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
17710
17711         PR debug/48214
17712         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
17713         between a call and its CALL_ARG_LOCATION note.
17714
17715 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
17716
17717         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
17718
17719 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
17720
17721         PR c/42544
17722         PR c/48197
17723         * c-common.c (shorten_compare): If primopN is first sign-extended
17724         to opN and then zero-extended to result type, set primopN to opN.
17725
17726 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
17727
17728         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
17729         for barrier handlers.
17730
17731 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
17732
17733         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
17734         UNSPEC constants to be in the unspec enumeration, and redefine
17735         all UNSPECV constants to be in the unspecv enumeration, so that
17736         dumps print which unspec/unspec_volatile this is.
17737         * config/rs6000/vector.md (UNSPEC_*): Ditto.
17738         * config/rs6000/paired.md (UNSPEC_*): Ditto.
17739         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
17740         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
17741         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
17742
17743         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
17744         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
17745         UNSPECV_LWSYNC, since these are used as unspec_volatile.
17746         * config/rs6000/sync.md (isync, lwsync): Ditto.
17747
17748 2011-03-21  Richard Guenther  <rguenther@suse.de>
17749
17750         * params.def (lto-min-partition): Fix typo.
17751
17752 2011-03-21  Richard Guenther  <rguenther@suse.de>
17753
17754         PR c/47939
17755         * c-decl.c (grokdeclarator): Drop to the main variant only
17756         for array types.  Drop flag_gen_aux_info check.
17757
17758 2011-03-21  Richard Guenther  <rguenther@suse.de>
17759
17760         PR translation/47911
17761         * params.def (lto-partitions): Fix typo.
17762         (lto-min-partition): Fix wording.
17763
17764 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
17765
17766         * config/rs6000/t-freebsd: Remove duplication from file.
17767
17768 2011-03-21  Richard Guenther  <rguenther@suse.de>
17769
17770         PR middle-end/47661
17771         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
17772
17773 2011-03-21  Richard Guenther  <rguenther@suse.de>
17774
17775         PR lto/48210
17776         * params.def (lto-partitions): Require at least 1 partition.
17777
17778 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17779
17780         * gthr-solaris.h: Remove.
17781         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
17782         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
17783         (LIB_SPEC): Likewise.
17784         * config/sol2.opt (threads): Remove.
17785         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
17786         (sparc*-*-solaris2*): Likewise.
17787         * configure.ac (enable_threads): Enable solaris support.
17788         * configure: Regenerate.
17789         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
17790         * doc/install.texi (Configuration, --enable-threads=lib): Remove
17791         solaris.
17792
17793 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17794
17795         * config.gcc: Obsolete *-*-solaris2.8*.
17796         * doc/install.texi (Specific, *-*-solaris2*): Document it.
17797
17798 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17799
17800         PR bootstrap/48135
17801         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
17802         reference.  Solaris 8 perl works.
17803
17804 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17805
17806         PR bootstrap/48135
17807         * doc/install.texi (Prerequisites): Move jar etc. up.
17808         Explain support library version requirements.
17809
17810 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17811
17812         PR bootstrap/48135
17813         * doc/install.texi (Prerequisites): Move Perl to build
17814         requirements.  Always necessary on Solaris 2 with Sun ld.
17815
17816 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17817
17818         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
17819         binutils 2.21.
17820         (Specific, i?86-*-solaris2.[89]): Likewise.
17821         (Specific, i?86-*-solaris2.10): Likewise.
17822         (Specific, mips-sgi-irix6): Likewise.
17823         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
17824         Update for binutils 2.21.
17825
17826 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17827
17828         * configure.ac (gcc_cv_lto_plugin): Fix typo.
17829         Allow -fuse-linker-plugin for non-default plugin linker.
17830         * configure: Regenerate.
17831
17832 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
17833
17834         PR bootstrap/48167
17835         * gengtype.c (files_rules): Added rule for cp/parser.h.
17836
17837 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
17838
17839         PR target/48213
17840         * config/s390/s390.c (s390_delegitimize_address): Don't call
17841         lowpart_subreg if orig_x has BLKmode.
17842
17843 2011-03-21  Kai Tietz  <ktietz@redhat.com>
17844
17845         PR target/12171
17846         * doc/plugins.texi: Adjust documentation for plugin register_callback.
17847         * tree.h (attribute_spec): Add new member affects_type_identity.
17848         * attribs.c (empty_attribute_table): Adjust attribute_spec
17849         initializers.
17850         * config/alpha/alpha.c: Likewise.
17851         * config/arc/arc.c: Likewise.
17852         * config/arm/arm.c: Likewise.
17853         * config/avr/avr.c: Likewise.
17854         * config/bfin/bfin.c: Likewise.
17855         * config/crx/crx.c: Likewise.
17856         * config/darwin.h: Likewise.
17857         * config/h8300/h8300.c: Likewise.
17858         * config/i386/cygming.h: Likewise.
17859         * config/i386/i386.c: Likewise.
17860         * config/ia64/ia64.c: Likewise.
17861         * config/m32c/m32c.c: Likewise.
17862         * config/m32r/m32r.c: Likewise.
17863         * config/m68hc11/m68hc11.c: Likewise.
17864         * config/m68k/m68k.c: Likewise.
17865         * config/mcore/mcore.c: Likewise.
17866         * config/mep/mep.c: Likewise.
17867         * config/microblaze/microblaze.c: Likewise.
17868         * config/mips/mips.c: Likewise.
17869         * config/rs6000/rs6000.c: Likewise.
17870         * config/rx/rx.c: Likewise.
17871         * config/sh/sh.c: Likewise.
17872         * config/sol2.h: Likewise.
17873         * config/sparc/sparc.c: Likewise.
17874         * config/spu/spu.c: Likewise.
17875         * config/stormy16/stormy16.c: Likewise.
17876         * config/v850/v850.c: Likewise.
17877
17878 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
17879
17880         * simplify-rtx.c (simplify_binary_operation_1): Handle
17881         (xor (and A B) C) case when B and C are both constants.
17882
17883 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
17884
17885         * tree-dfa.c (add_referenced_var): Fix typo in comment.
17886
17887 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
17888
17889         PR bootstrap/48168
17890         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
17891
17892 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
17893
17894         PR rtl-optimization/48156
17895         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
17896         assume df and df_lr are not NULL.
17897
17898 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
17899
17900         PR debug/48023
17901         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
17902         between a call and its CALL_ARG_LOCATION note.
17903
17904 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
17905
17906         PR debug/48178
17907         * config/sh/sh.c (find_barrier): Don't emit a constant pool
17908         between a call and its corresponding CALL_ARG_LOCATION note.
17909
17910 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
17911
17912         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
17913         instead of loop. Use HARD_REGISTER_NUM_P predicate.
17914         * haifa-sched.c (setup_ref_regs): Ditto.
17915         * caller-save.c (add_used_regs_1): Ditto.
17916         * dse.c (look_for_hardregs): Ditto.
17917         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
17918         * sched-rgn.c (check_live_1): Ditto.
17919
17920 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
17921
17922         * c-decl.c (diagnose_mismatched_decls): Give an error for
17923         redefining a typedef with variably modified type.
17924
17925 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
17926
17927         * c-decl.c (grokfield): Don't allow typedefs for structures or
17928         unions with no tag by default.
17929         * doc/extend.texi (Unnamed Fields): Update.
17930
17931 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
17932
17933         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
17934         Rewrite using indirect functions.
17935         (lwp_slwpcb): Ditto.
17936         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
17937         (avx_vinsertf128<mode>): Ditto.
17938
17939 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17940
17941         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
17942         unspecs.
17943
17944 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17945
17946         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
17947         splitting between a call and its corresponding CALL_ARG_LOCATION note.
17948
17949 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
17950
17951         PR rtl-optimization/48170
17952         * gcse.c (hoist_code): Remove bogus asserts.
17953
17954 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
17955
17956         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
17957         computation for prologue/epilogue.
17958
17959 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17960
17961         * Makefile.in (check-consistency): Remove.
17962
17963 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
17964
17965         PR debug/48176
17966         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
17967         arange_table_in_use is 0, but either text_section_used or
17968         cold_text_section_used is true.  Don't call it if
17969         !info_section_emitted.
17970
17971 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
17972
17973         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
17974         FUNCTION_VALUE_REGNO_P): Remove.
17975         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
17976         Remove.
17977         * config/avr/avr.c (avr_ret_register): Make static inline.
17978         (avr_function_value_regno_p): New function.
17979         (avr_libcall_value): Make static. Add 'func' argument.
17980         (avr_function_value): Make static. Rename 'func' argument to
17981         'fn_decl_or_type', forward it to avr_libcall_value. Call
17982         avr_ret_register function instead of RET_REGISTER macro.
17983         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
17984
17985 2011-03-18  Jason Merrill  <jason@redhat.com>
17986
17987         PR c++/23372
17988         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
17989
17990 2011-03-18  Richard Guenther  <rguenther@suse.de>
17991
17992         * doc/install.texi (--enable-gold): Remove.
17993         (--with-plugin-ld): Document.
17994         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
17995
17996 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
17997
17998         PR middle-end/47790
17999         * expr.c (optimize_bitfield_assignment_op): Revamp to work
18000         again after expansion changes.
18001
18002 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
18003
18004         * combine.c (try_combine): Do simplification only call of
18005         subst() on i2 even when i1 is present. Update comments.
18006
18007 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
18008
18009         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
18010         and UNSPEC_PCREL_SYMOFF.
18011
18012 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18013
18014         * config/s390/s390.md: Use define_c_enum for the unspec constant
18015         definitions.
18016
18017 2011-03-18  Richard Henderson  <rth@redhat.com>
18018             Jakub Jelinek  <jakub@redhat.com>
18019
18020         PR bootstrap/48161
18021         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
18022         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
18023
18024 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
18025
18026         PR middle-end/47725
18027         * combine.c (cant_combine_insn_p): Don't check zero/sign
18028         extended hard registers.
18029
18030 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
18031
18032         PR middle-end/47725
18033         * combine.c (cant_combine_insn_p): Check zero/sign extended
18034         hard registers.
18035
18036 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
18037
18038         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
18039         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
18040         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
18041         Change return type to bool.
18042         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
18043
18044 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
18045
18046         PR debug/48163
18047         * var-tracking.c (prepare_call_arguments): If CALL target
18048         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
18049         pc instead of looking it up using cselib_lookup and use
18050         Pmode for it if x has VOIDmode.
18051         * dwarf2out.c (gen_subprogram_die): If also both first and
18052         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
18053
18054         PR debug/48163
18055         * function.c (assign_parms): For data.passed_pointer parms
18056         use MEM of data.entry_parm instead of data.entry_parm itself
18057         as DECL_INCOMING_RTL.
18058         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
18059         also when passed and declared mode is the same, DECL_RTL
18060         is a MEM with pseudo as address and DECL_INCOMING_RTL is
18061         a MEM too.
18062
18063 2011-03-16  Jeff Law  <law@redhat.com>
18064
18065         PR rtl-optimization/37273
18066         * ira-costs.c (scan_one_insn): Detect constants living in memory and
18067         handle them like argument loads from stack slots.  Do not double
18068         count memory for memory constants and argument loads from stack slots.
18069
18070 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
18071
18072         PR debug/48160
18073         * var-tracking.c (prepare_call_arguments): Check SUBREG.
18074
18075 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
18076
18077         PR target/48171
18078         * config/i386/i386.opt: Add Save to -mavx and -mfma.
18079
18080 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
18081
18082         PR bootstrap/48153
18083         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
18084         if dwarf_strict.
18085         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
18086         Clear call_arg_locations and call_arg_loc_last always.
18087
18088         PR middle-end/48152
18089         * var-tracking.c (prepare_call_arguments): If argument needs to be
18090         passed by reference, adjust argtype and mode.
18091
18092 2011-03-17  Richard Guenther  <rguenther@suse.de>
18093
18094         PR middle-end/48134
18095         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
18096         a value make sure to fold the statement.
18097
18098 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
18099
18100         PR target/43872
18101         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
18102         return condition with !cfun->calls_alloca.
18103
18104 2011-03-17  Richard Guenther  <rguenther@suse.de>
18105
18106         PR bootstrap/48148
18107         * lto-cgraph.c (input_overwrite_node): Clear the abstract
18108         origin for decls in other ltrans units.
18109         (input_varpool_node): Likewise.
18110
18111 2011-03-17  Richard Guenther  <rguenther@suse.de>
18112
18113         PR middle-end/48165
18114         * tree-object-size.c (compute_object_offset): Properly return
18115         the offset operand of MEM_REFs as sizetype.
18116
18117 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
18118
18119         PR rtl-optimization/48141
18120         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
18121         * dse.c: Include params.h.
18122         (active_local_stores_len): New variable.
18123         (add_wild_read, dse_step1): Clear it when setting active_local_stores
18124         to NULL.
18125         (record_store, check_mem_read_rtx): Decrease it when removing
18126         from the chain.
18127         (scan_insn): Likewise.  Increase it when adding to chain, if it
18128         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
18129         set active_local_stores to NULL before the addition.
18130         * Makefile.in (dse.o): Depend on $(PARAMS_H).
18131
18132         PR rtl-optimization/48141
18133         * dse.c (record_store): If no positions are needed in an insn
18134         that cannot be deleted, at least unchain it from active_local_stores.
18135
18136 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
18137
18138         PR debug/47510
18139         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
18140         (lookup_type_die_strip_naming_typedef): ... here.
18141         (get_context_die): Use it.
18142         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
18143         the anonymous struct named by the naming typedef.
18144
18145 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
18146
18147         PR target/48154
18148         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
18149         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
18150
18151 2011-03-16  Jeff Law  <law@redhat.com>
18152
18153         * tree-vrp.c (identify_jump_threads): Slightly simplify type
18154         check for operands of conditional.  Allow type to be a pointer.
18155
18156 2011-03-16  Richard Guenther  <rguenther@suse.de>
18157
18158         PR tree-optimization/48149
18159         * fold-const.c (fold_binary_loc): Fold
18160         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
18161
18162 2011-03-16  Richard Guenther  <rguenther@suse.de>
18163
18164         PR tree-optimization/26134
18165         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
18166         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
18167         (non_rewritable_mem_ref_base): Handle complex type component
18168         accesses, constrain offsets for vector and complex extracts
18169         more properly.
18170
18171 2011-03-16  Richard Guenther  <rguenther@suse.de>
18172
18173         PR tree-optimization/48146
18174         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
18175         operands avoiding the need for renaming.
18176
18177 2011-03-16  Richard Guenther  <rguenther@suse.de>
18178
18179         * gimple-fold.c (maybe_fold_reference): Open-code relevant
18180         constant folding.  Move MEM_REF canonicalization first.
18181         Rely on fold_const_aggregate_ref for initializer folding.
18182         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
18183
18184 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
18185
18186         PR middle-end/48136
18187         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
18188         arg0/arg1 or their arguments are always fold converted to matching
18189         types.
18190
18191         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
18192         to nargs.
18193
18194 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18195
18196         PR lto/46944
18197         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
18198         Handle in-tree gold.
18199         (ld_vers): Extract binutils version for gold.
18200         (gcc_cv_ld_hidden): Handle gold here.
18201         (gcc_cv_lto_plugin): Determine level of linker plugin support.
18202         * configure: Regenerate.
18203         * config.in: Regenerate.
18204         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
18205         -fuse-linker-plugin otherwise.
18206         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
18207         (LINK_COMMAND_SPEC): Use it.
18208         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
18209
18210 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
18211
18212         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
18213         * calls.c: Remove debug.h include.
18214         (emit_call_1): Don't call virtual_call_token debug hook.
18215         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
18216         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
18217         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
18218         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
18219         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
18220         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
18221         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
18222         dwarf2out_virtual_call): Remove.
18223         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
18224         copy_call_info and virtual_call hooks.
18225         (dwarf2out_init): Don't initialize vcall_insn_table,
18226         debug_dcall_section and debug_vcall_section.
18227         (prune_unused_types): Don't mark nodes from dcall_table.
18228         (dwarf2out_finish): Don't output dcall or vcall tables.
18229         * final.c (final_scan_insn): Don't call direct_call or
18230         virtual_call debug hooks.
18231         * debug.h (struct gcc_debug_hooks): Remove direct_call,
18232         virtual_call_token, copy_call_info and virtual_call hooks.
18233         (debug_nothing_uid): Remove prototype.
18234         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
18235         copy_call_info and virtual_call hooks.
18236         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
18237         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
18238         * debug.c (do_nothing_debug_hooks): Likewise.
18239         (debug_nothing_uid): Remove.
18240         * doc/invoke.texi (-fenable-icf-debug): Remove.
18241         * common.opt (-fenable-icf-debug): Likewise.
18242
18243         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
18244         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
18245         call's MEM.  Handle functions returning aggregate through a hidden
18246         first pointer.  For virtual calls add clobbered pc to call arguments
18247         chain.
18248         * dwarf2out.c (gen_subprogram_die): Emit
18249         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
18250         can't be emitted.
18251
18252         PR debug/45882
18253         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
18254         * rtl.h (ENTRY_VALUE_EXP): Define.
18255         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
18256         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
18257         * print-rtl.c (print_rtx): Likewise.
18258         * gengtype.c (adjust_field_rtx_def): Likewise.
18259         * var-tracking.c (vt_add_function_parameter): Adjust
18260         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
18261         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
18262         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
18263         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
18264         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
18265
18266         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
18267         Call var_location debug hook even on CALL_INSNs.
18268         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
18269         * rtl.def (ENTRY_VALUE): New.
18270         * dwarf2out.c: Include cfglayout.h.
18271         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
18272         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
18273         (struct call_arg_loc_node): New type.
18274         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
18275         tail_call_site_count): New variables.
18276         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
18277         DW_TAG_GNU_call_site_parameter.
18278         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
18279         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
18280         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
18281         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
18282         and DW_AT_GNU_all_source_call_sites.
18283         (mem_loc_descriptor): Handle ENTRY_VALUE.
18284         (add_src_coords_attributes): Don't add enything if
18285         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
18286         (dwarf2out_abstract_function): Save and clear call_arg_location,
18287         call_site_count and tail_call_site_count around dwarf2out_decl call.
18288         (gen_call_site_die): New function.
18289         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
18290         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
18291         (dwarf2out_function_decl): Clear call_arg_locations,
18292         call_arg_loc_last, set call_site_count and tail_call_site_count
18293         to -1 and free block_map.
18294         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
18295         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
18296         followed by any real instructions.
18297         (dwarf2out_begin_function): Set call_site_count and
18298         tail_call_site_count to 0.
18299         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
18300         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
18301         attempt to force a DIE for it and worst case remove the attribute.
18302         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
18303         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
18304         the decl itself.
18305         * var-tracking.c: Include tm_p.h.
18306         (vt_stack_adjustments): For calls call note_register_arguments.
18307         (argument_reg_set): New variable.
18308         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
18309         ensure the VALUE is resolved.
18310         (call_arguments): New variable.
18311         (prepare_call_arguments): New function.
18312         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
18313         (struct expand_loc_callback_data): Add ignore_cur_loc field.
18314         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
18315         always use the best expression.
18316         (vt_expand_loc): Add ignore_cur_loc argument.
18317         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
18318         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
18319         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
18320         note for all calls.
18321         (vt_add_function_parameter): Use cselib_lookup_from_insn.
18322         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
18323         argument.  Don't call cselib_preserve_only_values and
18324         cselib_reset_table.
18325         (note_register_arguments): New function.
18326         (vt_initialize): Compute argument_reg_set.  Call
18327         vt_add_function_parameters before processing basic blocks instead of
18328         afterwards.  For calls call prepare_call_arguments before calling
18329         cselib_process_insn.
18330         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
18331         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
18332         (var-tracking.o): Depend on $(TM_P_H).
18333         * cfglayout.h (insn_scope): New prototype.
18334         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
18335         * cfglayout.c (insn_scope): No longer static.
18336         * insn-notes.def (CALL_ARG_LOCATION): New.
18337         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
18338         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
18339         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
18340         nothing for DECL_EXTERNAL BLOCK_VARS.
18341
18342 2011-03-16  Alan Modra  <amodra@gmail.com>
18343
18344         PR target/45844
18345         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
18346         create invalid offset address for vsx splat insn.
18347         * config/rs6000/predicates.md (splat_input_operand): New.
18348         * config/rs6000/vsx.md (vsx_splat_*): Use it.
18349
18350 2011-03-15  Xinliang David Li  <davidxl@google.com>
18351
18352         PR c/47837
18353         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
18354         (normalize_preds): New function.
18355         (is_use_properly_guarded): Normalize def predicates.
18356
18357 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
18358
18359         PR target/46788
18360         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
18361         in the output template.
18362
18363 2011-03-15  Richard Guenther  <rguenther@suse.de>
18364
18365         PR middle-end/47650
18366         * tree-pretty-print.c (dump_function_declaration): Properly
18367         dump unprototyped and varargs function types.
18368
18369 2011-03-15  Richard Guenther  <rguenther@suse.de>
18370
18371         PR tree-optimization/13954
18372         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
18373         and friends.
18374
18375 2011-03-15  Richard Guenther  <rguenther@suse.de>
18376
18377         PR tree-optimization/48037
18378         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
18379         selects into BIT_FIELD_REFs.
18380         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
18381         vector select.
18382
18383 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
18384
18385         PR tree-optimization/48129
18386         * builtins.c (fold_builtin_snprintf): Convert to type of
18387         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
18388         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
18389
18390 2011-03-15  Richard Guenther  <rguenther@suse.de>
18391
18392         PR tree-optimization/41490
18393         * tree-ssa-dce.c (propagate_necessity): Handle returns without
18394         value but with VUSE.
18395         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
18396         return statements.
18397         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
18398         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
18399         * tree-tailcall.c (find_tail_calls): Ignore returns.
18400
18401 2011-03-15  Richard Guenther  <rguenther@suse.de>
18402
18403         PR middle-end/48031
18404         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
18405         or variable-indexed array accesses when in gimple form.
18406
18407 2011-03-15  Richard Guenther  <rguenther@suse.de>
18408
18409         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
18410
18411 2011-03-15  Alan Modra  <amodra@gmail.com>
18412
18413         PR target/48032
18414         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
18415         presume symbol_refs without a symbol_ref_decl are suitably
18416         aligned, nor other trees we may see here.  Handle anchor symbols.
18417         (legitimate_constant_pool_address_p): Comment.  Add mode param.
18418         Check cmodel=medium addresses.  Adjust all calls.
18419         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
18420         creating cmodel=medium optimized access to locals.
18421         * config/rs6000/constraints.md (R): Pass QImode to
18422         legitimate_constant_pool_address_p.
18423         * config/rs6000/predicates.md (input_operand): Pass mode to
18424         legitimate_constant_pool_address_p.
18425         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
18426         Update prototype.
18427
18428 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
18429
18430         PR target/48053
18431         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
18432         64-bit constants being loaded into registers other than GPRs such
18433         as loading 0 into a VSX register.
18434
18435 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18436
18437         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
18438
18439 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
18440
18441         PR middle-end/47917
18442         * builtins.c (fold_builtin_snprintf): New function.
18443         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
18444         (fold_builtin_4): Likewise.
18445
18446         PR middle-end/38878
18447         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
18448         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
18449         and C - X == X also strip nops from +/-/p+ operand.
18450         When optimizing -X == C, fold C to arg0's type.
18451
18452         PR debug/47946
18453         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
18454         emit it as add_AT_int instead of add_AT_unsigned.
18455
18456 2011-03-14  Tom Tromey  <tromey@redhat.com>
18457
18458         * unwind-dw2.c: Include sys/sdt.h if it exists.
18459         (_Unwind_DebugHook): Use STAP_PROBE2.
18460         * config.in, configure: Rebuild.
18461         * configure.ac: Check for sys/sdt.h.
18462
18463 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
18464
18465         * config/i386/i386.md (ROUND_FLOOR): New constant.
18466         (ROUND_CEIL): Ditto.
18467         (ROUND_TRUNC): Ditto.
18468         (ROUND_MXCSR): Ditto.
18469         (ROUND_NO_EXC): Ditto.
18470         (rint<mode>2): Use new defines instead of numerical constants.
18471         (floor<mode>2): Ditto.
18472         (ceil<mode>2): Ditto.
18473         (btrunc<mode>2): Ditto.
18474         * config/i386/i386-builtin-types.def: Define ROUND function type
18475         aliases.
18476         * config/i386/i386.c (enum ix86_builtins): Add
18477         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
18478         (struct builtin_description): Add
18479         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
18480         (ix86_expand_sse_round): New static function.
18481         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
18482         function types.
18483         (ix86_builtin_vectorized_function): Handle
18484         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
18485
18486 2011-03-14  Tom Tromey  <tromey@redhat.com>
18487
18488         * c-parser.c (c_parser_asm_string_literal): Clear
18489         warn_overlength_strings.
18490
18491 2011-03-14  Tom Tromey  <tromey@redhat.com>
18492
18493         * c-parser.c (disable_extension_diagnostics): Save
18494         warn_overlength_strings.
18495         (restore_extension_diagnostics): Restore warn_overlength_strings.
18496
18497 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
18498
18499         * BASE-VER: Change to 4.7.0.
18500
18501 2011-03-14  Richard Guenther  <rguenther@suse.de>
18502
18503         PR middle-end/48098
18504         * tree.c (build_vector_from_val): Adjust assert to requirements
18505         and reality.
18506
18507 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
18508
18509         PR bootstrap/48102
18510         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
18511
18512 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
18513
18514         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
18515         terms of target_flags_explicit. Adjust copyright year.
18516
18517         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
18518         * config/rs6000/t-freebsd: New file. Add override for
18519         LIB2FUNCS_EXTRA.
18520
18521 2011-03-13  Chris Demetriou  <cgd@google.com>
18522
18523         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
18524         (-fno-diagnostics-show-option): this, to reflect current default.
18525         (-Werror=): Update text about -fno-diagnostics-show-option.
18526
18527 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
18528
18529         PR target/48053
18530         * config/rs6000/predicates.md (easy_vector_constant_add_self,
18531         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
18532         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
18533         mode is not V2DImode or V2DFmode.
18534         (vspltis_constant): Do not handle V2DImode and V2DFmode.
18535         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
18536         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
18537         registers to 0.
18538         (movdi_internal64): Likewise.
18539
18540 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
18541
18542         PR tree-optimization/47127
18543         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
18544         parameter.
18545         (set_cloog_options): Same.
18546         (scop_to_clast): Same.
18547         (print_clast_stmt): Do not call cloog_state_malloc and
18548         cloog_state_free.
18549         (print_generated_program): Same.
18550         (gloog): Same.
18551         * graphite-clast-to-gimple.h (cloog_state): Declared.
18552         (scop_to_clast): Adjust declaration.
18553         * graphite.c (cloog_state): Defined here.
18554         (graphite_initialize): Call cloog_state_malloc.
18555         (graphite_finalize): Call cloog_state_free.
18556
18557 2011-03-11  Jason Merrill  <jason@redhat.com>
18558
18559         * attribs.c (lookup_attribute_spec): Take const_tree.
18560         * tree.h: Adjust.
18561
18562 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
18563
18564         * config/sparc/sparc.c (sparc_option_override): Use
18565         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
18566
18567 2011-03-11  Richard Guenther  <rguenther@suse.de>
18568
18569         PR tree-optimization/48067
18570         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
18571         multiplication result will be only used once on the target
18572         stmt.
18573
18574 2011-03-11  Richard Guenther  <rguenther@suse.de>
18575
18576         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
18577
18578 2011-03-11  Richard Guenther  <rguenther@suse.de>
18579
18580         PR lto/48073
18581         * tree.c (find_decls_types_r): Do not walk types only reachable
18582         from IDENTIFIER_NODEs.
18583
18584 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
18585
18586         PR middle-end/48044
18587         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
18588         all vnode->force_output nodes as needed.
18589
18590 2011-03-11  Jason Merrill  <jason@redhat.com>
18591
18592         PR c++/48069
18593         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
18594         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
18595
18596 2011-03-11  Martin Jambor  <mjambor@suse.cz>
18597
18598         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
18599         cgraph_node.
18600
18601 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
18602
18603         PR tree-optimization/48063
18604         * ipa-inline.c (cgraph_decide_inlining): Don't try to
18605         inline functions called once if !tree_can_inline_p (node->callers).
18606
18607 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
18608
18609         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
18610         extra_objs.
18611         * config/score/score3.c: Delete.
18612         * config/score/score3.h: Delete.
18613         * config/score/mul-div.S: Delete.
18614         * config/score/sfp-machine.h: Add new file.
18615         * config/score/constraints.md: Add new file.
18616         * config/score/t-score-softfp: Add new file.
18617         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
18618         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
18619         (score7_extra_constraint): Delete.
18620         (score7_option_override): Remove unused code.
18621         * config/score/score.c: Remove score3 and score5 define and code.
18622         * config/score/score.h: Remove score3 and score5 define and code.
18623         * config/score/score.md: Remove score3 template and unusual insn.
18624         * config/score/score.opt: Remove score3 and score5 options.
18625
18626 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18627
18628         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
18629         when _HPUX_SOURCE is defined.
18630         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
18631
18632 2011-03-10  Jason Merrill  <jason@redhat.com>
18633
18634         PR c++/48029
18635         * stor-layout.c (layout_type): Don't set structural equality
18636         on arrays of incomplete type.
18637         * tree.c (type_hash_eq): Handle comparing them properly.
18638
18639 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
18640
18641         PR debug/48043
18642         * config/s390/s390.c (s390_delegitimize_address): Make sure the
18643         result mode matches original rtl mode.
18644
18645 2011-03-10  Nick Clifton  <nickc@redhat.com>
18646
18647         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
18648         (andsi3, andsi3_flags): Fix timings for three operand alternative.
18649
18650 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
18651
18652         PR rtl-optimization/47866
18653         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
18654         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
18655         if target wasn't scalar.
18656         * function.c (assign_stack_temp_for_type): Assert that neither
18657         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
18658         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
18659         macro.
18660         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
18661
18662 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18663
18664         * config/s390/s390-protos.h (s390_label_align): New prototype.
18665         * config/s390/s390.c (s390_label_align): New function.
18666         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
18667
18668 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
18669
18670         PR target/47755
18671         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
18672         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
18673         (output_vec_const_move): Ditto.
18674
18675 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
18676
18677         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
18678         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
18679         * config/mips/mips.c (mips_preferred_reload_class): Make static.
18680         Change 'rclass' argument and result type to reg_class_t.
18681         (TARGET_PREFERRED_RELOAD_CLASS): Define.
18682
18683 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
18684
18685         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
18686         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
18687         (TARGET_MEMORY_MOVE_COST): Define.
18688         (avr_register_move_cost, avr_memory_move_cost): New Functions.
18689
18690 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
18691
18692         PR debug/47881
18693         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
18694         removed anything.
18695
18696         PR tree-optimization/48022
18697         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
18698         for EQ/NE_EXPR.
18699
18700 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
18701
18702         PR debug/47991
18703         * var-tracking.c (find_use_val): Return NULL for
18704         cui->sets && cui->store_p BLKmode MEMs.
18705
18706 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
18707
18708         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
18709         Remove.
18710         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
18711         xstormy16_print_operand_address): Remove.
18712         * config/stormy16/stormy16.c (xstormy16_print_operand,
18713         xstormy16_print_operand_address): Make static.
18714         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
18715
18716 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
18717
18718         PR target/47862
18719         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
18720         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
18721         before definition.
18722
18723 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
18724
18725         PR bootstrap/48000
18726         * cfgloopmanip.c (fix_bb_placements): Return immediately
18727         if FROM is BASE_LOOP's header.
18728
18729 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
18730
18731         * gimplify.c (gimplify_function_tree): Fix building calls
18732         to __builtin_return_address.
18733
18734 2011-03-07  Alan Modra  <amodra@gmail.com>
18735
18736         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
18737         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
18738         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
18739         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
18740         return_mode args.
18741         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
18742         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
18743         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
18744         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
18745         * config/rs6000/rs6000.c
18746         (rs6000_elf_end_indicate_exec_stack): Rename to..
18747         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
18748         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
18749         (rs6000_file_start): ..here.
18750         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
18751         file scope variables.
18752         (call_ABI_of_interest): New function.
18753         (init_cumulative_args): Set above vars when function return value
18754         is a float, vector, or small struct.
18755         (rs6000_function_arg_advance_1): Likewise for function args.
18756         (rs6000_va_start): Set rs6000_passes_float if variable arg function
18757         references float args.
18758
18759 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
18760
18761         * doc/cfg.texi: Remove "See" before @ref.
18762         * doc/invoke.texi: Likewise.
18763
18764 2011-03-05  Jason Merrill  <jason@redhat.com>
18765
18766         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
18767
18768 2011-03-05  Anthony Green  <green@moxielogic.com>
18769
18770         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
18771
18772 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
18773
18774         PR rtl-optimization/47899
18775         * cfgloopmanip.c (fix_bb_placements): Fix first argument
18776         to flow_loop_nested_p when moving the loop upward.
18777
18778 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
18779
18780         PR target/47719
18781         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
18782
18783 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
18784
18785         PR tree-optimization/47967
18786         * ipa-cp.c (build_const_val): Return NULL instead of creating
18787         VIEW_CONVERT_EXPR for mismatching sizes.
18788         (ipcp_create_replace_map): Return NULL if build_const_val failed.
18789         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
18790         give up on versioning.
18791
18792 2011-03-05  Alan Modra  <amodra@gmail.com>
18793
18794         PR target/47986
18795         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
18796         full cmodel medium/large lo_sum + high addresses.
18797
18798 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18799
18800         * config/s390/s390.c (s390_decompose_address): Reject non-literal
18801         pool references in UNSPEC_LTREL_OFFSET.
18802
18803 2011-03-04  Jan Hubicka  <jh@suse.cz>
18804
18805         PR lto/47497
18806         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
18807         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
18808         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
18809         Add node pointers.
18810         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
18811         cgraph_add_thunk): Add node pointers.
18812         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
18813         associated to right node.
18814         (input_node): Update use of cgraph_same_body_alias
18815         and cgraph_add_thunk.
18816
18817 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
18818
18819         * config/i386/i386.opt (mprefer-avx128): New flag.
18820         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
18821         modes when the flag -mprefer-avx128 is on.
18822
18823 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
18824
18825         * dwarf2out.c (compare_loc_operands): Fix address handling.
18826
18827 2011-03-04  Alan Modra  <amodra@gmail.com>
18828
18829         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
18830
18831 2011-03-04  Richard Guenther  <rguenther@suse.de>
18832
18833         PR middle-end/47968
18834         * expmed.c (extract_bit_field_1): Prefer vector modes that
18835         vec_extract patterns can handle.
18836
18837 2011-03-04  Richard Guenther  <rguenther@suse.de>
18838
18839         PR middle-end/47975
18840         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
18841
18842 2011-03-04  Richard Henderson  <rth@redhat.com>
18843
18844         * explow.c (emit_stack_save): Remove 'after' parameter.
18845         (emit_stack_restore): Likewise.
18846         * expr.h: Update to match.
18847         * builtins.c, calls.c, stmt.c: Likewise.
18848         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
18849         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
18850         * function.c (expand_function_end): Insert the emit_stack_save
18851         sequence before parm_birth_insn instead of after.
18852
18853 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
18854
18855         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
18856         (ssse3_pmaddubsw128): Ditto.
18857         (ssse3_pmaddubsw): Ditto.
18858
18859 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
18860
18861         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
18862
18863 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
18864
18865         PR c/47963
18866         * gimplify.c (omp_add_variable): Only call omp_notice_variable
18867         on TYPE_SIZE_UNIT if it is a DECL.
18868
18869         PR debug/47283
18870         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
18871         first operand is not is_gimple_mem_ref_addr, try to fold it.
18872         If the operand still isn't is_gimple_mem_ref_addr, clear
18873         MEM_EXPR on op0.
18874
18875 2011-03-03  Richard Guenther  <rguenther@suse.de>
18876
18877         PR middle-end/47283
18878         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
18879         match comment.
18880         (refs_may_alias_p_1): For release branches return true if
18881         we are confused by our input.
18882
18883 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18884
18885         * config/s390/s390.c (s390_function_value): Rename to ...
18886         (s390_function_and_libcall_value): ... this.
18887         (s390_function_value): New function.
18888         (s390_libcall_value): New function.
18889         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
18890         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
18891         target macro definitions.
18892         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
18893
18894 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
18895
18896         * config/i386/freebsd64.h (CC1_SPEC): Define.
18897         * config/i386/linux64.h (CC1_SPEC): Define.
18898         * config/i386/x86-64.h (CC1_SPEC): Don't define.
18899
18900 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
18901
18902         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
18903         Remove.
18904         * config/stormy16/stormy16.c: Include reload.h.
18905         (xstormy16_memory_move_cost): New function.
18906         (TARGET_MEMORY_MOVE_COST): Define.
18907
18908 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
18909
18910         PR rtl-optimization/47925
18911         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
18912         with side effects.  Remove the more-specific check for volatile asms.
18913
18914 2011-03-02  Alan Modra  <amodra@gmail.com>
18915
18916         PR target/47935
18917         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
18918         toc relative addresses for valid offsets.
18919
18920 2011-03-01  Richard Guenther  <rguenther@suse.de>
18921
18922         PR tree-optimization/47890
18923         * tree-vect-loop.c (get_initial_def_for_induction): Set
18924         related stmt properly.
18925
18926 2011-03-01  Richard Guenther  <rguenther@suse.de>
18927
18928         PR lto/47924
18929         * lto-streamer.c (lto_record_common_node): Also register
18930         the canonical type.
18931
18932 2011-03-01  Richard Guenther  <rguenther@suse.de>
18933
18934         PR lto/46911
18935         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
18936         Do not stream DECL_ABSTRACT_ORIGIN.
18937         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
18938         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
18939         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
18940         Do not stream DECL_ABSTRACT_ORIGIN.
18941         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
18942         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
18943
18944 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
18945
18946         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
18947         FUNCTION_VALUE_REGNO_P): Remove.
18948         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
18949         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
18950         Add 'outgoing' argument.
18951         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
18952         function.
18953         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18954         TARGET_FUNCTION_VALUE_REGNO_P): Define.
18955
18956 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
18957
18958         PR debug/28047
18959         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
18960         (lookup_filename): Likewise.
18961         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
18962
18963 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
18964             Jakub Jelinek  <jakub@redhat.com>
18965
18966         PR middle-end/47893
18967         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
18968         (assign_stack_local_1): Change last argument type to int.
18969         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
18970         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
18971         don't record padding space into frame_space_list nor use those areas.
18972         (assign_stack_local): Adjust caller.
18973         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
18974         of assign_stack_local, pass 0 as last argument.
18975         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
18976         callers.
18977
18978 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
18979
18980         PR debug/47283
18981         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
18982         Use target address_mode and pointer_mode hooks instead of hardcoded
18983         Pmode and ptr_mode.  Handle some simple cases of extending if
18984         POINTERS_EXTEND_UNSIGNED < 0.
18985         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
18986         Call convert_debug_memory_address.
18987         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
18988         convert_debug_memory_address.
18989
18990         PR middle-end/46790
18991         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
18992         * configure: Regenerated.
18993         * config.in: Regenerated.
18994         * varasm.c (default_function_section): Return NULL
18995         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
18996
18997 2011-02-28  Martin Jambor  <mjambor@suse.cz>
18998
18999         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
19000         the description to match the printed values.
19001
19002 2011-02-28  Richard Guenther  <rguenther@suse.de>
19003
19004         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
19005         of the copied scope tree.
19006
19007 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19008
19009         * doc/extend.texi (Function Attributes): Avoid deeply (and
19010         wrongly) nested tables.
19011
19012 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
19013
19014         PR middle-end/47903
19015         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
19016         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
19017         r isn't op0 nor op1.
19018
19019 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
19020
19021         * config/avr/avr.md: Remove magic comment for emacs.
19022
19023 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
19024
19025         PR target/45261
19026         * config/avr/avr.c (avr_option_override): Use error on bad options.
19027         (avr_help): New function.
19028         (TARGET_HELP): Define.
19029
19030 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
19031
19032         PR target/42240
19033         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
19034         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
19035
19036 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
19037
19038         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
19039         (ARM Options): Ditto.
19040         (i386 and x86-64 Options): Ditto.
19041         (RX Options): Ditto.
19042         (SPARC Options): Ditto.
19043
19044 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
19045
19046         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
19047         FreeBSD 6 and later.  Generally use cpu generic.
19048
19049 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
19050
19051         * doc/cpp.texi: Update copyright years.
19052
19053 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
19054
19055         PR target/46898
19056         * config/lm32/lm32.md (ashrsi3): Added needed variable.
19057
19058 2011-02-25  Jon Beniston  <jon@beniston.com>
19059
19060         PR target/46898
19061         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
19062         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
19063         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
19064         (lm32_block_move_inline): Add type cast to remove warning.
19065         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
19066         (gen_int_relational): Move declarations to start of function.
19067
19068 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
19069
19070         PR tree-optimization/45470
19071         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
19072         can throw internally only.
19073         * tree-vect-stmts.c (vectorizable_call): Likewise.
19074
19075 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
19076
19077         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
19078         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
19079         * config/stormy16/stormy16-protos.h
19080         (xstormy16_preferred_reload_class): Remove.
19081         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
19082         static. Change 'rclass' argument and return type to reg_class_t.
19083         (TARGET_PREFERRED_RELOAD_CLASS,
19084         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
19085
19086 2011-02-24  Richard Guenther  <rguenther@suse.de>
19087
19088         * lto-streamer-in.c (input_bb): Do not find referenced vars
19089         in debug statements.
19090
19091 2011-02-23  Jason Merrill  <jason@redhat.com>
19092
19093         * common.opt (fabi-version): Document v5 and v6.
19094
19095 2011-02-23  Richard Guenther  <rguenther@suse.de>
19096
19097         PR tree-optimization/47849
19098         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
19099
19100 2011-02-23  Jie Zhang  <jie@codesourcery.com>
19101
19102         * opts-common.c (decode_cmdline_option): Print empty string
19103         argument as "" in decoded->orig_option_with_args_text.
19104         * gcc.c (execute): Print empty string argument as ""
19105         in the verbose output.
19106         (do_spec_1): Keep empty string argument.
19107
19108 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
19109
19110         * config.gcc: Declare score-* and crx-* obsolete.
19111
19112 2011-02-23  Jie Zhang  <jie@codesourcery.com>
19113
19114         PR rtl-optimization/47763
19115         * web.c (web_main): Ignore naked clobber when replacing register.
19116
19117 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
19118
19119         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
19120         Remove.
19121
19122 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
19123
19124         PR doc/47848
19125         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
19126
19127 2011-02-22  Mike Stump  <mikestump@comcast.net>
19128
19129         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
19130         assembler.
19131         * configure: Regenerate.
19132
19133 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
19134
19135         PR rtl-optimization/46002
19136         * ira-color.c (update_copy_costs): Change class intersection
19137         test to reg_class_contents[] test of 'hard_regno'.
19138
19139 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
19140
19141         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
19142         than Driver option.
19143         * config/hpux11.opt (mt): Likewise.
19144         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
19145         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
19146         * config/vax/elf.opt (mno-asm-pic): Likewise.
19147         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
19148
19149 2011-02-21  Mike Stump  <mikestump@comcast.net>
19150
19151         PR target/47822
19152         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
19153         tree so we can get save the type.
19154         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
19155         for CFString instead of trying to use past the end of the builtins.
19156         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
19157         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
19158         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
19159         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
19160         Rename to darwin_builtin_cfstring.
19161         (darwin_init_cfstring_builtins): Return the built type.
19162
19163 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
19164
19165         PR target/47840
19166         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
19167         (_mm256_insert_epi64): Use _mm_insert_epi64.
19168
19169 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
19170
19171         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
19172         * config/stormy16/stormy16-protos.h
19173         (xstormy16_mode_dependent_address_p): Remove.
19174         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
19175         Make static. Change return type to bool. Change argument type to
19176         const_rtx. Remove dead code.
19177         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19178
19179 2011-02-21  Richard Guenther  <rguenther@suse.de>
19180
19181         PR lto/47820
19182         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
19183         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
19184         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
19185         TUs context.
19186         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
19187         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
19188
19189 2011-02-20  Richard Guenther  <rguenther@suse.de>
19190
19191         PR lto/47822
19192         * tree.c (free_lang_data_in_decl): Clean builtins from
19193         the TU decl BLOCK_VARS.
19194
19195 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
19196
19197         PR debug/47620
19198         PR debug/47630
19199         * haifa-sched.c (fix_tick_ready): Skip tick computation
19200         for debug insns.
19201
19202 2011-02-19  Richard Guenther  <rguenther@suse.de>
19203
19204         PR lto/47647
19205         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
19206         Remove lazy BLOCK_VARS streaming.
19207         (lto_input_ts_block_tree_pointers): Likewise.
19208         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
19209
19210 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
19211
19212         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
19213
19214 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
19215
19216         * config/i386/biarch32.h, config/i386/mach.h,
19217         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
19218
19219 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
19220
19221         PR target/47800
19222         * config/i386/i386.md (peephole2 for shift and plus): Use
19223         operands[1] original mode in the first insn.
19224
19225 2011-02-18  Mike Stump  <mikestump@comcast.net>
19226
19227         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
19228
19229 2011-02-18  Jan Hubicka  <jh@suse.cz>
19230
19231         PR middle-end/47788
19232         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
19233         to zero when the function is not inlinable at all.
19234
19235 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19236
19237         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
19238         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
19239         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
19240         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
19241         * config/pa/t-pa64: Likewise.
19242         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
19243
19244 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
19245
19246         PR driver/47787
19247         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
19248
19249 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19250
19251         PR target/47792
19252         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
19253
19254 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
19255
19256         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
19257         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
19258         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
19259         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
19260         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
19261         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
19262         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
19263         m32r_load_postinc_p, m32r_store_preinc_predec_p,
19264         m32r_legitimate_address_p): New functions.
19265         * config/m32r/constraints.md (constraint "S"): Don't use
19266         STORE_PREINC_PREDEC_P.
19267         (constraint "U"): Don't use LOAD_POSTINC_P.
19268
19269 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
19270
19271         PR rtl-optimization/46178
19272         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
19273         compute ira_hard_regno_cover_class[].
19274
19275 2011-02-18  Richard Guenther  <rguenther@suse.de>
19276
19277         PR lto/47798
19278         * lto-streamer.h (lto_global_var_decls): Declare.
19279         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
19280         statics for global var processing.
19281
19282 2011-02-18  Richard Guenther  <rguenther@suse.de>
19283
19284         PR tree-optimization/47737
19285         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
19286         edge dominance check.
19287
19288 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
19289
19290         PR debug/47780
19291         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
19292         avoid invalid rtx sharing.
19293
19294 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
19295
19296         * doc/cpp.texi (Obsolete Features): Add background on the
19297         origin of assertions.
19298
19299 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
19300
19301         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
19302         objc_abi == 2.
19303         * config/darwin.c (output_objc_section_asm_op): Added support for
19304         ABI v1 and v2.
19305         (is_objc_metadata): New.
19306         (darwin_objc2_section): New.
19307         (darwin_objc1_section): New.
19308         (machopic_select_section): Added support for ABI v1 and v2.
19309         (darwin_emit_objc_zeroed): New.
19310         (darwin_output_aligned_bss): Detect objc metadata and treat it
19311         appropriately.
19312         (darwin_asm_output_aligned_decl_common): Same.
19313         (darwin_asm_output_aligned_decl_local): Same.
19314         * config/darwin-sections.def: Updated for ABI v1 and v2.
19315         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
19316         compiling Objective-C code for the NeXT runtime, default to using
19317         ABI version 0 for 32-bit, and version 2 for 64-bit.
19318
19319 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19320
19321         * common.opt (optimize_fast): New Variable.
19322         * opts.c (default_options_optimization): Use opts->x_optimize_fast
19323         instead of local variable ofast.
19324
19325 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
19326
19327         * doc/invoke.texi (fobjc-abi-version): Documented.
19328         (fobjc-nilcheck): Documented.
19329         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
19330         version.
19331
19332 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19333
19334         PR driver/47390
19335         * common.opt (export-dynamic): New Driver option.
19336         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
19337
19338 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19339
19340         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
19341
19342 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
19343             Jan Hubicka  <jh@suse.cz>
19344
19345         PR debug/47106
19346         PR debug/47402
19347         * cfgexpand.c (account_used_vars_for_block): Remove.
19348         (estimated_stack_frame_size): Use referenced vars.
19349         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
19350         that were referenced in the original function.  Test src_fn
19351         rather than cfun.  Drop redundant get_var_ann.
19352         (setup_one_parameter): Drop redundant get_var_ann.
19353         (declare_return_variable): Likewise.
19354         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
19355         (copy_arguments_for_versioning): Drop redundant get_var_ann.
19356         * ipa-inline.c (compute_inline_parameters): Do not compute
19357         disregard_inline_limits here.
19358         (compute_inlinable_for_current, pass_inlinable): New.
19359         (pass_inline_parameters): Require PROP_referenced_vars.
19360         * cgraphunit.c (cgraph_process_new_functions): Don't run
19361         compute_inline_parameters explicitly unless function is in SSA form.
19362         (cgraph_analyze_function): Set .disregard_inline_limits.
19363         * tree-sra.c (convert_callers): Compute inliner parameters
19364         only for functions already in SSA form.
19365
19366 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19367
19368         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
19369         -mlittle-endian-data.
19370
19371 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19372
19373         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
19374         -mno-fpu, not -fpu and -no-fpu.
19375         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
19376         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
19377
19378 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
19379
19380         PR target/43653
19381         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
19382         input reload with PLUS RTX.
19383
19384 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19385
19386         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
19387         of InverseVar(MDMX).
19388
19389 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19390
19391         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
19392         --m4-340.
19393
19394 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19395
19396         * config/mn10300/mn10300.opt (mno-crt0): New.
19397
19398 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19399
19400         * config/m68k/uclinux.opt (static-libc): New Driver option.
19401
19402 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19403
19404         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
19405
19406 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19407
19408         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
19409         %{muser-extend-enabled}.
19410
19411 2011-02-16  Richard Guenther  <rguenther@suse.de>
19412
19413         PR tree-optimization/47738
19414         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
19415         the TODO from tree_predictive_commoning.
19416
19417 2011-02-15  Jeff Law  <law@redhat.com>
19418
19419         Revert
19420         2011-01-25  Jeff Law  <law@redhat.com>
19421
19422         PR rtl-optimization/37273
19423         * ira-costs.c (scan_one_insn): Detect constants living in memory and
19424         handle them like argument loads from stack slots.  Do not double
19425         count memory for memory constants and argument loads from stack slots.
19426
19427 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
19428
19429         PR middle-end/47725
19430         * combine.c (cant_combine_insn_p): Revert the last change.
19431
19432 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
19433
19434         PR target/47755
19435         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
19436         mode for vector constants.  Remove code that checks for TImode.
19437
19438 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
19439
19440         PR debug/47106
19441         PR debug/47402
19442         * cgraph.h (compute_inline_parameters): Return void.
19443         * ipa-inline.c (compute_inline_parameters): Adjust.
19444
19445 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
19446
19447         PR debug/47106
19448         PR debug/47402
19449         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
19450         rather than decl.
19451         * cfgexpand.c (estimated_stack_frame_size): Likewise.
19452         * ipa-inline.c (compute_inline_parameters): Adjust.
19453
19454 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
19455
19456         PR debug/47106
19457         PR debug/47402
19458         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
19459         Adjust all users.  Pass FN to...
19460         * tree-flow-inline.h (first_referenced_var): ... this.  Add
19461         fn argument.
19462         * ipa-struct-reorg.c: Adjust.
19463         * tree-dfa.c: Adjust.
19464         * tree-into-ssa.c: Adjust.
19465         * tree-sra.c: Adjust.
19466         * tree-ssa-alias.c: Adjust.
19467         * tree-ssa-live.c: Adjust.
19468         * tree-ssa.c: Adjust.
19469         * tree-ssanames.c: Adjust.
19470         * tree-tailcall.c: Adjust.
19471
19472 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
19473
19474         PR debug/47106
19475         PR debug/47402
19476         * tree-flow.h (referenced_var_lookup): Add fn parameter.
19477         Adjust all callers.
19478         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
19479         * tree-flow-inline.h: Adjust.
19480         * gimple-pretty-print.c: Adjust.
19481         * tree-into-ssa.c: Adjust.
19482         * tree-ssa.c: Adjust.
19483         * cfgexpand.c: Adjust.
19484
19485 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
19486
19487         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
19488         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19489         (EXTRA_CONSTRAINT): Delete.
19490         * config/iq2000/constraints.md: New file.
19491         * config/iq2000/iq2000.md: Include it.
19492         (define_insn ""): Delete.
19493         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
19494         unsupported constraint letters from patterns.
19495         (call_value, call_value_internal1): Likewise.
19496         (call_value_multiple_internal1): Likewise.
19497
19498 2011-02-15  Nick Clifton  <nickc@redhat.com>
19499
19500         * config/mn10300/mn10300.c: Include tm-constrs.h.
19501         (struct liw_data): New data structure describing an LIW candidate
19502         instruction.
19503         (extract_bundle): Use struct liw_data.  Allow small integer
19504         operands for some instructions.
19505         (check_liw_constraints): Use struct liw_data.  Remove swapped
19506         parameter.  Add comments describing the checks.  Fix bug when
19507         assigning the source of liw1 to the source of liw2.
19508         (liw_candidate): Delete.  Code moved into extract_bundle.
19509         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
19510         before swapping.
19511         * config/mn10300/predicates.md (liw_operand): New predicate.
19512         Allows registers and small integer constants.
19513         * config/mn10300/constraints.md (O): New constraint.  Accetps
19514         integers in the range -8 to +7 inclusive.
19515         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
19516         for moving a small integer into a register.  Give this alternative
19517         LIW attributes.
19518         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
19519         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
19520         using the J,K,L and M constraints,
19521         (liw): Remove SI mode on second operands to allow for HI and QI
19522         mode values.
19523         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
19524         instruction.
19525
19526 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
19527
19528         PR middle-end/47725
19529         * combine.c (cant_combine_insn_p): Check zero/sign extended
19530         hard registers.
19531
19532 2011-02-15  Richard Guenther  <rguenther@suse.de>
19533
19534         PR tree-optimization/47743
19535         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
19536         for a non-type-compatible VN lookup bail out.
19537
19538 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
19539
19540         * config/fr30/constraints.md: New file.
19541         * config/fr30/fr30.md: Include it.
19542         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
19543         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19544         (EXTRA_CONSTRAINT): Delete.
19545
19546 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
19547
19548         * config/frv/constraints.md: New file.
19549         * config/frv/predicates.md: Include it.
19550         * config/frv/frv.c (reg_class_from_letter): Delete.
19551         (frv_option_override): Don't initialize it.
19552         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
19553         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
19554         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
19555         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
19556         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
19557         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19558         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
19559         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
19560         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
19561         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
19562         (REG_CLASS_FROM_CONSTRAINT): Delete.
19563
19564 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
19565
19566         PR middle-end/47581
19567         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
19568         if frame size is 0 in a leaf function.
19569
19570 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19571
19572         PR pch/14940
19573         * config/alpha/host-osf.c: New file.
19574         * config/alpha/x-osf: New file.
19575         * config.host (alpha*-dec-osf*): Use it.
19576
19577 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
19578
19579         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
19580         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
19581         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
19582         (rx_mode_dependent_address_p): ...this. Make static. Change argument
19583         type to const_rtx.
19584         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19585
19586 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
19587
19588         * config/stormy16/constraints.md: New file.
19589         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
19590         Use satisfies_constraint_Q and satisfies_constraint_R.
19591         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
19592         Delete.
19593         (xstormy16_legitiamte_address_p): Declare.
19594         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
19595         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19596         (EXTRA_CONSTRAINT): Delete.
19597         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
19598         Un-staticize.
19599         (xstormy16_extra_constraint_p): Delete.
19600
19601 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
19602
19603         PR tree-optimization/46494
19604         * loop-unroll.c (split_edge_and_insert): Adjust comment.
19605         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
19606         (pass_rtl_loop_done): Add TODO_verify_flow.
19607         * fwprop.c (pass_rtl_fwprop): Likewise.
19608         * modulo-sched.c (pass_sms): Likewise.
19609         * tree-ssa-dom.c (pass_dominator): Likewise.
19610         * tree-ssa-loop-ch.c (pass_ch): Likewise.
19611         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
19612         (pass_tree_loop_done): Likewise.
19613         * tree-ssa-pre.c (execute_pre): Likewise.
19614         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
19615         * tree-ssa-sink.c (pass_sink_code): Likewise.
19616         * tree-vrp.c (pass_vrp): Likewise.
19617
19618 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
19619
19620         * config/v850/constraints.md: New file.
19621         * config/v850/v850.md: Include it.
19622         * config/v850/predicates.md (reg_or_0_operand): Use
19623         satisfies_constraint_G.
19624         (special_symbolref_operand): Use satisfies_constraint_K.
19625         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
19626         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
19627         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
19628         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
19629         (EXTRA_CONSTRAINT): Delete.
19630         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
19631         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
19632         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
19633
19634 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
19635
19636         PR target/47696
19637         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
19638         description.
19639
19640 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
19641
19642         * config/mcore/constraints.md: New file.
19643         * config/mcore/mcore.md: Include it.
19644         * config/mcore/mcore.c (reg_class_from_letter): Delete.
19645         * config/mcore/mcore.h (reg_class_from_letter): Delete.
19646         (REG_CLASS_FROM_LETTER): Delete.
19647         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
19648         insn_const_int_ok_for_constraint.
19649         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
19650         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
19651         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19652         (EXTRA_CONSTRAINT): Delete.
19653
19654 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19655
19656         PR ada/41929
19657         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
19658         (IS_SIGHANDLER): Define.
19659         (sparc64_is_sighandler): New function, split off from
19660         sparc64_fallback_frame_state.
19661         (sparc_is_sighandler): New function, split off from
19662         sparc_fallback_frame_state.
19663         (sparc64_fallback_frame_state): Merge with ...
19664         (sparc_fallback_frame_state): ... this into ...
19665         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
19666         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
19667         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
19668         stack instead of hardcoded offsets.
19669
19670 2011-02-14  Andriy Gapon  <avg@freebsd.org>
19671
19672         PR target/45808
19673         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
19674
19675 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19676
19677         * configure: Regenerate.
19678
19679 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
19680
19681         PR driver/45731
19682         * gcc.c (asm_options): Correct spec matching --target-help.
19683
19684 2011-02-12  Martin Jambor  <mjambor@suse.cz>
19685
19686         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
19687         to gimple call error.
19688
19689 2011-02-12  Mike Stump  <mikestump@comcast.net>
19690
19691         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
19692         comments in backslash regions.
19693
19694 2011-02-12  Mike Stump  <mikestump@comcast.net>
19695             Jakub Jelinek  <jakub@redhat.com>
19696             Iain Sandoe  <iains@gcc.gnu.org>
19697
19698         PR target/47324
19699         * dwarf2out.c (output_cfa_loc): When required, apply the
19700         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
19701         (output_loc_sequence): Likewise.
19702         (output_loc_operands_raw): Likewise.
19703         (output_loc_sequence_raw): Likewise.
19704         (output_cfa_loc): Likewise.
19705         (output_loc_list): Suppress register number adjustment when
19706         calling output_loc_sequence()
19707         (output_die): Likewise.
19708
19709 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
19710
19711         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19712         Remove macros.
19713         * config/xtensa/xtensa.c (xtensa_register_move_cost,
19714         xtensa_memory_move_cost): New functions.
19715         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
19716
19717 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
19718
19719         PR lto/47225
19720         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
19721         in the current directory.
19722         * configure: Rebuilt.
19723
19724 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
19725
19726         * config/darwin.c (darwin_override_options): Add a hunk missed
19727         from the commit of r168571.  Trim comment line lengths and
19728         correct indents of the preceding block.
19729
19730 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
19731
19732         * gcc.c (driver_handle_option): Concatenate the argument to -F with
19733         the switch.
19734
19735 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
19736
19737         * common.opt (nostartfiles): New Driver option.
19738
19739 2011-02-11  Xinliang David Li  <davidxl@google.com>
19740
19741         PR tree-optimization/47707
19742         * tree-chrec.c (convert_affine_scev): Keep type precision.
19743
19744 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
19745
19746         PR tree-optimization/47420
19747         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
19748
19749 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
19750
19751         PR rtl-optimization/47614
19752         * rtl.h (check_for_inc_dec): Declare.
19753         * dse.c (check_for_inc_dec): Externalize...
19754         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
19755         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
19756
19757 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
19758
19759         PR driver/47678
19760         * gcc.c (main): Do not compile inputs if there were errors in
19761         option handling.
19762         * opts-common.c (read_cmdline_option): Check for wrong language
19763         after other error checks.
19764
19765 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
19766
19767         * cgraph.c: Fix comment typos.
19768         * cgraph.h: Likewise.
19769         * cgraphunit.c: Likewise.
19770         * ipa-cp.c: Likewise.
19771         * ipa-inline.c: Likewise.
19772         * ipa-prop.c: Likewise.
19773         * ipa-pure-const.c: Likewise.
19774         * ipa-ref.c: Likewise.
19775         * ipa-reference.c: Likewise.
19776
19777 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
19778
19779         PR debug/47684
19780         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
19781
19782 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19783
19784         PR testsuite/47400
19785         * doc/sourcebuild.texi (Require Support): Document
19786         dg-require-ascii-locale.
19787
19788 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
19789
19790         * doc/lto.texi (Write summary): Fix missing parentheses.
19791
19792 2011-02-10  DJ Delorie  <dj@redhat.com>
19793
19794         * config/m32c/m32c.c (m32c_option_override): Disable
19795         -fcombine-stack-adjustments until flag value tracking and compare
19796         optimization can be rewritten.
19797
19798 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
19799
19800         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
19801         PROCESSOR_POWER7.
19802         (PROCESSOR_DEFAULT64): Likewise.
19803
19804 2011-02-10  Richard Henderson  <rth@redhat.com>
19805
19806         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
19807         change from 2011-02-03.
19808         * config/rx/rx.c (flags_from_code): Likewise.
19809         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
19810         is valid, n/pz otherwise.
19811         (rx_select_cc_mode): Return CCmode if Y is not zero.
19812
19813 2011-02-10  Richard Guenther  <rguenther@suse.de>
19814
19815         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
19816
19817 2011-02-10  Richard Guenther  <rguenther@suse.de>
19818
19819         PR tree-optimization/47677
19820         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
19821
19822 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
19823
19824         PR target/47665
19825         * combine.c (make_compound_operation): Only change shifts into
19826         multiplication for SCALAR_INT_MODE_P.
19827
19828 2011-02-10  Jie Zhang  <jie@codesourcery.com>
19829
19830         PR testsuite/47622
19831         Revert
19832         2011-02-05  Jie Zhang  <jie@codesourcery.com>
19833         PR debug/42631
19834         * web.c (entry_register): Don't clobber the number of the
19835         first uninitialized reference in used[].
19836
19837 2011-02-09  Richard Guenther  <rguenther@suse.de>
19838
19839         PR tree-optimization/47664
19840         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
19841         all edges again.
19842
19843 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
19844
19845         PR target/46481
19846         PR target/47032
19847         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
19848         PROCESSOR_POWER7.
19849         (PROCESSOR_DEFAULT64): Same.
19850         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
19851
19852 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19853
19854         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
19855
19856 2011-02-09  Martin Jambor  <mjambor@suse.cz>
19857
19858         PR middle-end/45505
19859         * tree-sra.c (struct access): New flags grp_scalar_read and
19860         grp_scalar_write.  Changed description of assignment read and write
19861         flags.
19862         (dump_access): Dump new flags, reorder all of them.
19863         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
19864         to detect multiple scalar reads.
19865         (analyze_access_subtree): Use the new scalar read write flags instead
19866         of the old flags.  Adjusted comments.
19867
19868 2011-02-08  DJ Delorie  <dj@redhat.com>
19869
19870         PR target/47548
19871         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
19872         patterns.
19873
19874 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19875
19876         * config/m68k/uclinux.opt: New.
19877         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
19878
19879 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19880
19881         * config/cris/elf.opt (sim): New Driver option.
19882
19883 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19884
19885         * config/xtensa/elf.opt: New.
19886         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
19887
19888 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19889
19890         * config/vax/elf.opt: New.
19891         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
19892
19893 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19894
19895         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
19896
19897 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19898
19899         * config/gnu-user.opt: New.
19900         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
19901         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
19902         *-*-uclinux*): Use gnu-user.opt.
19903
19904 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
19905
19906         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
19907         * config/i386/gnu.h (CPP_SPEC): Likewise.
19908
19909 2011-02-08  Ian Lance Taylor  <iant@google.com>
19910
19911         * common.opt (fcx-limited-range): Add SetByCombined flag.
19912         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
19913         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
19914         (fassociative-math, freciprocal-math): Likewise.
19915         (funsafe-math-optimizations): Likewise.
19916         * opth-gen.awk: Handle SetByCombined.
19917         * optc-gen.awk: Likewise.
19918         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
19919         (set_unsafe_math_optimizations_flags): Likewise.
19920         * doc/options.texi (Option properties): Document SetByCombined.
19921
19922 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19923
19924         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
19925         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
19926         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
19927         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
19928         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
19929
19930 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
19931
19932         PR tree-optimization/46834
19933         PR tree-optimization/46994
19934         PR tree-optimization/46995
19935         * graphite-sese-to-poly.c (used_outside_reduction): New.
19936         (detect_commutative_reduction): Call used_outside_reduction.
19937         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
19938         translate_scalar_reduction_to_array only when at least one
19939         loop-phi/close-phi tuple has been detected.
19940
19941 2011-02-08  Richard Guenther  <rguenther@suse.de>
19942
19943         PR middle-end/47639
19944         * tree-vect-generic.c (expand_vector_operations_1): Update
19945         stmts here ...
19946         (expand_vector_operations): ... not here.  Cleanup EH info
19947         and the CFG if required.
19948
19949 2011-02-08  Richard Guenther  <rguenther@suse.de>
19950
19951         PR tree-optimization/47641
19952         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
19953         require type compatibility.
19954
19955 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19956
19957         * gimple-low.c (lower_function_body): Don't remove the location of
19958         the return statement here.
19959         (lower_gimple_return): Do it here instead but only if the return
19960         statement is actually used twice.
19961
19962 2011-02-08  Richard Guenther  <rguenther@suse.de>
19963
19964         PR tree-optimization/47632
19965         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
19966         unused up_to_stmt parameter, return whether cfg-cleanup is
19967         necessary, remove EH info properly.
19968         (forward_propagate_into_gimple_cond): Adjust caller.
19969         (forward_propagate_into_cond): Likewise.
19970         (forward_propagate_comparison): Likewise.
19971         (tree_ssa_forward_propagate_single_use_vars): Make
19972         forward_propagate_comparison case similar to the two others.
19973
19974 2011-02-08  Nick Clifton  <nickc@redhat.com>
19975
19976         * config/mn10300/mn10300.opt (mliw): New command line option.
19977         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
19978         (liw_bundling): New automaton.
19979         (liw): New attribute.
19980         (liw_op): New attribute.
19981         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
19982         (movsi_internal): Add LIW attributes.
19983         (andsi3): Likewise.
19984         (iorsi3): Likewise.
19985         (xorsi3): Likewise.
19986         (addsi3): Separate register and immediate alternatives.
19987         Add LIW attributes.
19988         (subsi3): Likewise.
19989         (cmpsi): Likewise.
19990         (aslsi3): Likewise.
19991         (lshrsi3): Likewise.
19992         (ashrsi3): Likewise.
19993         (liw): New pattern.
19994         * config/mn10300/mn10300.c (liw_op_names): New
19995         (mn10300_print_operand): Handle 'W' operand descriptor.
19996         (extract_bundle): New function.
19997         (check_liw_constraints): New function.
19998         (liw_candidate): New function.
19999         (mn10300_bundle_liw): New function.
20000         (mn10300_reorg): New function.
20001         (TARGET_MACHINE_DEPENDENT_REORG): Define.
20002         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
20003         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
20004         __LIW__ or __NO_LIW__.
20005         * doc/invoke.texi: Describe the -mliw command line option.
20006
20007 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20008
20009         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
20010         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
20011         pthread_mutex_unlock): Remove.
20012         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
20013         * config/pa/t-pa64: Likewise.
20014         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
20015         shared libc if not linking against libpthread.
20016         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
20017
20018 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
20019
20020         PR target/47558
20021         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
20022         on 10.6 and later to ensure that we always use the unwinder from
20023         the system.  Only add -no_compact_unwind when tarteting darwin
20024         10.6 or later.
20025
20026 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
20027
20028         PR target/46997
20029         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
20030         (vec_interleave_lowv2sf): Ditto.
20031         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
20032         (vec_extract_oddv2sf): Ditto.
20033
20034 2011-02-07  Mike Stump  <mikestump@comcast.net>
20035
20036         PR target/42333
20037         Add __ieee_divdc3 entry point.
20038         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
20039         entry point.
20040         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
20041         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
20042         * config/darwin.c (darwin_rename_builtins): Add.
20043         * config/darwin-protos.h (darwin_rename_builtins): Add.
20044
20045 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
20046
20047         PR target/47636
20048         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
20049         for the condition.
20050
20051 2011-02-07  Mike Stump  <mikestump@comcast.net>
20052
20053         * config/darwin.opt (mmacosx-version-min): Update default OS version.
20054
20055 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
20056
20057         PR target/47534
20058         * config/avr/libgcc.S (exit): Move .endfunc
20059
20060 2011-02-07  Richard Guenther  <rguenther@suse.de>
20061
20062         PR tree-optimization/47615
20063         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
20064         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
20065         (run_scc_vn): Initialize it.
20066         (visit_reference_op_load): Use it.
20067         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
20068
20069 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20070
20071         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
20072         DImode trapping arithmetic libfuncs.
20073
20074 2011-02-07  Richard Guenther  <rguenther@suse.de>
20075
20076         PR tree-optimization/47621
20077         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
20078         two duplicates ...
20079         (execute_update_addresses_taken): ... here.  Make it more
20080         conservative in what we accept.
20081
20082 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
20083
20084         * config/sparc/freebsd.h (ASM_SPEC): Define.
20085         * config/sparc/vxworks.h (ASM_SPEC): Define.
20086
20087 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
20088
20089         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
20090
20091 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
20092
20093         * doc/invoke.texi: Remove reference to compiler internals from
20094         user documentation.
20095
20096         * reg-notes.def: Remove REG_VALUE_PROFILE.
20097         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
20098
20099 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
20100
20101         PR middle-end/47610
20102         * varasm.c (default_section_type_flags): If decl is NULL,
20103         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
20104
20105 2011-02-05  Jie Zhang  <jie@codesourcery.com>
20106
20107         PR debug/42631
20108         * web.c (entry_register): Don't clobber the number of the
20109         first uninitialized reference in used[].
20110
20111 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
20112
20113         PR tree-optimization/46194
20114         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
20115         (build_classic_dist_vector_1): Do not represent classic distance
20116         vectors when the access functions are variating in different loops.
20117
20118 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
20119
20120         * config/mips/iris6.opt: New.
20121         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
20122
20123 2011-02-04  Richard Henderson  <rth@redhat.com>
20124             Steve Ellcey  <sje@cup.hp.com>
20125
20126         PR target/46997
20127         * config/ia64/predicates.md (mux1_brcst_element): New.
20128         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
20129         * config/ia64/ia64.c (ia64_unpack_assemble): New.
20130         (ia64_unpack_sign): New.
20131         (ia64_expand_unpack): Rewrite using new routines.
20132         (ia64_expand_widen_sum): Ditto.
20133         (ia64_expand_dot_prod_v8qi): Ditto.
20134         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
20135         routines, add endian check.
20136         (pmpy2_even): Rename from pmpy2_r, add endian check.
20137         (pmpy2_odd): Rename from pmpy2_l, add endian check.
20138         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
20139         (vec_widen_smult_hi_v4hi): Ditto.
20140         (vec_widen_umult_lo_v4hi): Ditto.
20141         (vec_widen_umult_hi_v4hi): Ditto.
20142         (mulv2si3): Change endian checks.
20143         (sdot_prodv4hi): Rewrite with new calls.
20144         (udot_prodv4hi): New.
20145         (vec_pack_ssat_v4hi): Add endian check.
20146         (vec_pack_usat_v4hi): Ditto.
20147         (vec_pack_ssat_v2si): Ditto.
20148         (max1_even): Rename from max1_r, add endian check.
20149         (max1_odd): Rename from max1_l, add endian check.
20150         (*mux1_rev): Format change.
20151         (*mux1_mix): Ditto.
20152         (*mux1_shuf): Ditto.
20153         (*mux1_alt): Ditto.
20154         (*mux1_brcst_v8qi): Use new predicate.
20155         (vec_extract_evenv8qi): Remove endian check.
20156         (vec_extract_oddv8qi): Ditto.
20157         (vec_interleave_lowv4hi): Format change.
20158         (vec_interleave_highv4hi): Ditto.
20159         (mix2_even): Rename from mix2_r, add endian check.
20160         (mix2_odd): Rename from mux2_l, add endian check.
20161         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
20162         (vec_extract_evenodd_helper): Format change.
20163         (vec_extract_evenv4hi): Remove endian check.
20164         (vec_extract_oddv4hi): Remove endian check.
20165         (vec_interleave_lowv2si): Format change.
20166         (vec_interleave_highv2si): Format change.
20167         (vec_initv2si): Remove endian check.
20168         (vecinit_v2si): Add endian check.
20169         (reduc_splus_v2sf): Add endian check.
20170         (reduc_smax_v2sf): Ditto.
20171         (reduc_smin_v2sf): Ditto.
20172         (vec_initv2sf): Remove endian check.
20173         (fpack): Add endian check.
20174         (fswap): Add endian check.
20175         (vec_interleave_highv2sf): Add endian check.
20176         (vec_interleave_lowv2sf): Add endian check.
20177         (fmix_lr): Add endian check.
20178         (vec_setv2sf): Format change.
20179         (*vec_extractv2sf_0_be): Use shift to extract operand.
20180         (*vec_extractv2sf_1_be): New.
20181         (vec_pack_trunc_v4hi): Add endian check.
20182         (vec_pack_trunc_v2si): Format change.
20183
20184 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
20185
20186         PR inline-asm/23200
20187         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
20188         do bb, locus and block comparison and disallow loads if it is not set.
20189         (stmt_is_replaceable_p): New function.
20190         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
20191         callers.
20192         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
20193         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
20194         SSA_NAME_DEF_STMT.
20195         * tree-flow.h (stmt_is_replaceable_p): New prototype.
20196
20197 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
20198
20199         * config/rs6000/xilinx.opt: New.
20200         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
20201
20202 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
20203
20204         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
20205
20206 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
20207
20208         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
20209         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
20210         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
20211         secondary_reload_info, xtensa_secondary_reload): Remove.
20212         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
20213         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
20214         (xtensa_preferred_reload_class): Make static. Change return and
20215         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
20216         Use CONST_DOUBLE_P predicate.
20217         (xtensa_preferred_output_reload_class): New function.
20218         (xtensa_secondary_reload): Make static.
20219
20220 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
20221
20222         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
20223         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
20224         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
20225
20226 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
20227
20228         PR middle-end/31490
20229         * output.h (SECTION_RELRO): Define.
20230         (SECTION_MACH_DEP): Adjust.
20231         (get_variable_section): New prototype.
20232         * varpool.c (varpool_finalize_named_section_flags): New function.
20233         (varpool_assemble_pending_decls): Call it.
20234         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
20235         * cgraphunit.c (cgraph_output_in_order): Call
20236         varpool_finalize_named_section_flags.
20237         * varasm.c (get_section): Allow section flags conflicts between
20238         relro and read-only sections if the section hasn't been declared yet.
20239         Set SECTION_OVERRIDE after diagnosing section type conflict.
20240         (get_variable_section): No longer static.
20241         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
20242         readonly sections that need relocations.
20243         (decl_readonly_section_1): New function.
20244         (decl_readonly_section): Use it.
20245
20246         Revert:
20247         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
20248                     Steve Ellcey  <sje@cup.hp.com>
20249
20250         PR middle-end/31490
20251         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
20252         if section attribute used.
20253
20254 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
20255
20256         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
20257         * config/darwin.c (SECTION_NO_ANCHOR): Define.
20258         (darwin_init_sections): Remove assertion.
20259
20260 2011-02-03  Nick Clifton  <nickc@redhat.com>
20261
20262         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
20263         lt and ge.
20264         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
20265         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
20266         instead of "n" and "pz".
20267         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
20268         CC_FLAG_S.
20269
20270 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
20271
20272         PR target/47312
20273         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
20274         fma, expand FMA_EXPR as fma{,f,l} call.
20275
20276         PR lto/47274
20277         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
20278         copy them into a unsigned char variable and pass address of it to
20279         lto_output_data_stream.
20280
20281         PR target/47564
20282         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
20283         around backend_init_target and lang_dependent_init_target calls.
20284         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
20285         (verify_cgraph_node): Don't call set_cfun here.  Use
20286         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
20287         Set error_found for incorrectly represented calls to thunks.
20288
20289 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
20290
20291         PR debug/43092
20292         PR rtl-optimization/43494
20293         * rtl.h (for_each_inc_dec_fn): New type.
20294         (for_each_inc_dec): Declare.
20295         * rtlanal.c (struct for_each_inc_dec_ops): New type.
20296         (for_each_inc_dec_find_inc_dec): New fn.
20297         (for_each_inc_dec_find_mem): New fn.
20298         (for_each_inc_dec): New fn.
20299         * dse.c (struct insn_size): Remove.
20300         (replace_inc_dec, replace_inc_dec_mem): Remove.
20301         (emit_inc_dec_insn_before): New fn.
20302         (check_for_inc_dec): Use it, along with for_each_inc_dec.
20303         (canon_address): Pass mem modes to cselib_lookup.
20304         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
20305         (cselib_lookup_from_insn): Likewise.
20306         (cselib_subst_to_values): Likewise.
20307         * cselib.c (find_slot_memmode): New var.
20308         (cselib_find_slot): New fn.  Use it instead of
20309         htab_find_slot_with_hash everywhere.
20310         (entry_and_rtx_equal_p): Use find_slot_memmode.
20311         (autoinc_split): New fn.
20312         (rtx_equal_for_cselib_p): Rename and implement in terms of...
20313         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
20314         Deal with autoinc.  Special-case recursion into MEMs.
20315         (cselib_hash_rtx): Likewise.
20316         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
20317         address and MEM modes.
20318         (cselib_subst_to_values): Add memmode, pass it on.
20319         Deal with autoinc.
20320         (cselib_lookup): Add memmode argument, pass it on.
20321         (cselib_lookup_from_insn): Add memmode.
20322         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
20323         (struct cselib_record_autoinc_data): New.
20324         (cselib_record_autoinc_cb): New fn.
20325         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
20326         mode to cselib_lookup.  Reset autoinced REGs here instead of...
20327         (cselib_process_insn): ... here.
20328         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
20329         to cselib_lookup.
20330         (add_uses): Likewise, also to cselib_subst_to_values.
20331         (add_stores): Likewise.
20332         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
20333         cselib_subst_to_values.
20334         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
20335         * gcse.c (do_local_cprop): Adjusted.
20336         * postreload.c (reload_cse_simplify_set): Adjusted.
20337         (reload_cse_simplify_operands): Adjusted.
20338         * sel-sched-dump (debug_mem_addr_value): Pass mode.
20339
20340 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
20341
20342         PR tree-optimization/45122
20343         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
20344         unsafe assumptions when there's more than one loop exit.
20345
20346 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
20347
20348         PR target/47272
20349         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
20350         Document using vector double with the load/store builtins, and
20351         that the load/store builtins always use Altivec instructions.
20352
20353         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
20354         to use altivec memory instructions, even on VSX.
20355         (vector_altivec_store_<mode>): Ditto.
20356
20357         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
20358         function.
20359
20360         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20361         V2DF, V2DI support to load/store overloaded builtins.
20362
20363         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
20364         altivec load/store builtins for V2DF/V2DI types.
20365
20366         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
20367         set avoid indexed addresses on power6 if -maltivec.
20368         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
20369         vector_altivec_load/vector_altivec_store builtins.
20370         (altivec_expand_st_builtin): Ditto.
20371         (altivec_expand_builtin): Add VSX memory builtins.
20372         (rs6000_init_builtins): Add V2DI types to internal types.
20373         (altivec_init_builtins): Add support for V2DF/V2DI altivec
20374         load/store builtins.
20375         (rs6000_address_for_altivec): Insure memory address is appropriate
20376         for Altivec.
20377
20378         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
20379         vec_vsx_ld and vec_vsx_st.
20380         (vsx_store_<mode>): Ditto.
20381
20382         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
20383         variables to hold long long types for VSX vector memory builtins.
20384         (RS6000_BTI_unsigned_long_long): Ditto.
20385         (long_long_integer_type_internal_node): Ditti.
20386         (long_long_unsigned_type_internal_node): Ditti.
20387
20388         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
20389         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
20390         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
20391
20392         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
20393         short cuts.
20394         (vec_vsx_st): Ditto.
20395
20396 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
20397
20398         * config/pa/pa-hpux10.opt: New.
20399         * config/hpux11.opt (pthread): New Driver option.
20400         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
20401         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
20402
20403 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
20404
20405         * config/ia64/vms.opt: New.
20406         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
20407
20408 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
20409
20410         PR target/47580
20411         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
20412         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
20413         generator functions.
20414         (vsx_floatuns<VSi><mode>2): Ditto.
20415         (vsx_fix_trunc<mode><VSi>2): Ditto.
20416         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
20417
20418 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
20419
20420         * config/i386/djgpp.opt (posix): New Driver option.
20421
20422 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
20423
20424         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
20425         Move to the unsupported targets list.
20426
20427 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
20428
20429         PR rtl-optimization/47525
20430         * df-scan.c: Update copyright years.
20431         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
20432         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
20433
20434 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20435
20436         * config/i386/sysv4.h (TARGET_VERSION): Remove.
20437         (SUBTARGET_RETURN_IN_MEMORY): Remove.
20438         (ASM_OUTPUT_ASCII): Remove.
20439         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
20440
20441 2011-02-02  Jeff Law  <law@redhat.com>
20442
20443         PR middle-end/47543
20444         * reload.c (find_reloads_address): Handle reg+d address where both
20445         components are invalid by reloading the entire address.
20446
20447 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
20448             Richard Guenther  <rguenther@suse.de>
20449
20450         PR tree-optimization/40979
20451         PR bootstrap/47044
20452         * passes.c (init_optimization_passes): After LIM call copy_prop
20453         and DCE to clean up.
20454         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
20455
20456 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
20457
20458         PR tree-optimization/47576
20459         PR tree-optimization/47555
20460         * doc/invoke.texi (scev-max-expr-complexity): Documented.
20461         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
20462         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
20463         * tree-scalar-evolution.c (follow_ssa_edge): Use
20464         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
20465
20466 2011-02-02  Richard Guenther  <rguenther@suse.de>
20467
20468         PR tree-optimization/47566
20469         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
20470
20471 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
20472
20473         PR debug/47106
20474         PR debug/47402
20475         * tree-inline.c (declare_return_variable): Remove unused caller
20476         variable.
20477
20478         PR debug/47106
20479         PR debug/47402
20480         * tree-flow-inline.h (clear_is_used, is_used_p): New.
20481         * cfgexpand.c (account_used_vars_for_block): Use them.
20482         * tree-nrv.c (tree_nrv): Likewise.
20483         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
20484         (dump_scope_block): Likewise.
20485         (remove_unused_locals): Likewise.
20486
20487         PR debug/47106
20488         PR debug/47402
20489         * tree-inline.c (declare_return_variable): Add result decl to
20490         local decls only once.
20491         * gimple-low.c (record_vars_into): Mark newly-created variables
20492         as referenced.
20493
20494 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
20495
20496         PR debug/47498
20497         PR debug/47501
20498         PR debug/45136
20499         PR debug/45130
20500         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
20501         debug insns.
20502         (no_real_insns_p, schedule_block, set_priorities): Drop special
20503         treatment of boundary debug insns.
20504         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
20505         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
20506         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
20507         (BOUNDARY_DEBUG_INSN_P): Likewise.
20508         (SCHEDULE_DEBUG_INSN_P): Likewise.
20509         * sched-rgn.c (init_ready_list): Drop special treatment of
20510         boundary debug insns.
20511         * final.c (rest_of_clean_state): Clear notes' BB.
20512
20513 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20514
20515         * config/openbsd.opt (assert=): New Driver option.
20516
20517 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20518
20519         * config/i386/nto.opt: New.
20520         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
20521
20522 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20523
20524         * config/i386/netware.opt: New.
20525         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
20526
20527 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20528
20529         * config/interix.opt (posix): New Driver option.
20530
20531 2011-02-01  DJ Delorie  <dj@redhat.com>
20532
20533         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
20534
20535         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
20536         class for A0/A1.
20537
20538 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
20539
20540         PR tree-optimization/47561
20541         * toplev.c (process_options): Print the Graphite flags.  Add
20542         flag_loop_flatten to the list of options requiring Graphite.
20543
20544 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20545
20546         * config/i386/cygming.opt (posix): New Driver option.
20547
20548 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20549
20550         * config/arm/vxworks.opt: New.
20551         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
20552
20553 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20554
20555         * config/alpha/elf.opt: New.
20556         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
20557         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
20558
20559 2011-02-01  Richard Guenther  <rguenther@suse.de>
20560
20561         PR tree-optimization/47559
20562         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
20563         store-motion on references that can throw.
20564
20565 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
20566
20567         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
20568         * tree-pass.h (TDF_CSELIB): New macro.
20569         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
20570         cselib_lookup): Check for it rather than for TDF_DETAILS.
20571
20572 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
20573
20574         PR driver/47547
20575         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
20576         is HOST_BIT_BUCKET.
20577
20578         * opts.c (finish_options): Don't add x_aux_base_name if it is
20579         HOST_BIT_BUCKET.
20580
20581 2011-02-01  Richard Guenther  <rguenther@suse.de>
20582
20583         PR tree-optimization/47555
20584         Revert
20585         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
20586
20587         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
20588
20589 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
20590
20591         PR gcc/46692
20592         * config/lm32/t-lm32: Add multilib for all CPU options.
20593
20594 2011-02-01  Richard Guenther  <rguenther@suse.de>
20595
20596         PR tree-optimization/47541
20597         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
20598         sure to have a field at offset zero.
20599
20600 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
20601
20602         * config/arc/arc.opt (EB, EL): New Driver options.
20603
20604 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
20605
20606         * config/alpha/osf5.opt: New.
20607         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
20608
20609 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
20610
20611         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
20612
20613 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
20614
20615         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
20616         -floop-interchange.
20617         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
20618         is an alias of -floop-interchange and that it requires the
20619         Graphite infrastructure.
20620         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
20621         flag_loop_interchange based on the value of flag_tree_loop_linear.
20622
20623 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
20624             Richard Guenther  <rguenther@suse.de>
20625
20626         PR tree-optimization/47538
20627         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
20628         type instead of r1type, except for comparisons.  For right
20629         shifts and comparisons punt if there are mismatches in
20630         sizetype vs. non-sizetype types.
20631
20632 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20633
20634         * doc/sourcebuild.texi (Effective-Target Keywords): Document
20635         avx_runtime.
20636
20637 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20638
20639         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
20640         version number.
20641         * configure: Regenerate.
20642
20643 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20644
20645         * configure.ac (gcc_cv_ld_static_option): Define.
20646         (gcc_cv_ld_dynamic_option): Define.
20647         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
20648         instead.
20649         (HAVE_LD_STATIC_DYNAMIC): Update message.
20650         (LD_STATIC_OPTION): Define.
20651         (LD_DYNAMIC_OPTION): Define.
20652         * configure: Regenerate.
20653         * config.in: Regenerate.
20654         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
20655         HAVE_LD_STATIC_DYNAMIC]: Use them.
20656
20657 2011-01-31  Nick Clifton  <nickc@redhat.com>
20658
20659         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
20660         registers inside interrupt handlers if the handler is not a leaf
20661         function.
20662
20663 2011-01-31  Nick Clifton  <nickc@redhat.com>
20664
20665         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
20666         reg_renumber returning an INVALID_REGNUM.
20667
20668 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
20669
20670         PR libgcj/44341
20671         * doc/install.texi: Document host options discarded when cross
20672         configuring target libraries.
20673
20674 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
20675
20676         Reverted:
20677         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
20678         PR debug/45136
20679         PR debug/45130
20680         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
20681         debug insns.
20682         (no_real_insns_p, schedule_block, set_priorities): Drop special
20683         treatment of boundary debug insns.
20684         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
20685         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
20686         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
20687         (BOUNDARY_DEBUG_INSN_P): Likewise.
20688         (SCHEDULE_DEBUG_INSN_P): Likewise.
20689         * sched-rgn.c (init_ready_list): Drop special treatment of
20690         boundary debug insns.
20691         * final.c (rest_of_clean-state): Clear notes' BB.
20692
20693 2011-01-31  Alan Modra  <amodra@gmail.com>
20694
20695         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
20696         toc relative expressions as we do in print_operand_address.
20697
20698 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
20699
20700         * doc/extend.texi: Follow spelling conventions.
20701         * doc/invoke.texi: Fix a typo.
20702
20703 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
20704
20705         * config/hpux11.opt: New.
20706         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
20707         ia64*-*-hpux*): Use hpux11.opt.
20708
20709 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
20710
20711         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
20712         to tmake_file.
20713
20714 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
20715
20716         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
20717         support sites.
20718
20719 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
20720
20721         * doc/install.texi (Binaries): Remove outdated reference for
20722         Motorola 68HC11/68HC12 downloads.
20723
20724 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
20725
20726         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
20727         Drepper's paper.
20728
20729 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
20730
20731         PR bootstrap/47147
20732         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
20733         used by NetBSD.
20734
20735 2011-01-28  Ahmad Sharif  <asharif@google.com>
20736
20737         * value-prof.c (check_counter): Corrected error message.
20738
20739 2011-01-29  Jie Zhang  <jie@codesourcery.com>
20740
20741         * config/arm/arm.c (arm_legitimize_reload_address): New.
20742         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
20743         arm_legitimize_reload_address.
20744         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
20745
20746 2011-01-28  Ian Lance Taylor  <iant@google.com>
20747
20748         * godump.c (go_define): Ignore macros whose definitions include
20749         two adjacent operands.
20750
20751 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
20752
20753         PR target/42894
20754         * varasm.c (force_const_mem): Store copy of x in desc->constant
20755         instead of x itself.
20756         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
20757         itself into REG_EQUAL note.
20758
20759 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
20760
20761         * config/freebsd.opt (posix, rdynamic): New Driver options.
20762
20763 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20764
20765         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
20766         -Bstatic/-Bdynamic.
20767         * configure: Regenerate.
20768
20769 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
20770
20771         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
20772         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
20773
20774 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
20775
20776         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
20777         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
20778         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
20779         (s390_preferred_reload_class): Make static. Change return and
20780         'rclass' argument type to reg_class_t.
20781
20782 2011-01-27  Jan Hubicka  <jh@suse.cz>
20783
20784         PR middle-end/46949
20785         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
20786         (process_function_and_variable_attributes): Check defined weakrefs.
20787
20788 2011-01-27  Martin Jambor  <mjambor@suse.cz>
20789
20790         PR tree-optimization/47228
20791         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
20792         build_ref_for_offset.
20793
20794 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20795
20796         * config/spu/spu-elf.h (ASM_SPEC): Remove.
20797
20798 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
20799
20800         PR rtl-optimization/46856
20801         * postreload.c (reload_combine_recognize_const_pattern): Do not
20802         separate cc0 setter and user on cc0 targets.
20803
20804 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
20805
20806         PR c/43082
20807         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
20808         passed a VOID_TYPE expression, immediately emit an error and
20809         return error_mark_node.
20810
20811 2011-01-26  Jeff Law  <law@redhat.com>
20812
20813         PR rtl-optimization/47464
20814         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
20815         rather than may_trap_p as needed.
20816
20817 2011-01-26  DJ Delorie  <dj@redhat.com>
20818
20819         PR rtl-optimization/46878
20820         * combine.c (insn_a_feeds_b): Check for the implicit cc0
20821         setter/user dependency as well.
20822
20823 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
20824
20825         PR rtl-optimization/44469
20826         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
20827         after removing trivially dead basic blocks.
20828
20829 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
20830
20831         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
20832         * config/frv/frv.h (LINK_SPEC): Likewise.
20833         * config/i386/netware.h (LINK_SPEC): Likewise.
20834         * config/m68k/linux.h (ASM_SPEC): Likewise.
20835         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
20836         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
20837         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
20838         * config/sparc/linux.h (ASM_SPEC): Likewise.
20839         * config/sparc/linux64.h (ASM_SPEC): Likewise.
20840         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
20841
20842 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
20843
20844         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
20845         * config/frv/frv.h (ASM_SPEC): Likewise.
20846         * config/m68k/linux.h (ASM_SPEC): Likewise.
20847         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
20848         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
20849         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
20850         * config/sparc/linux.h (ASM_SPEC): Likewise.
20851         * config/sparc/linux64.h (ASM_SPEC): Likewise.
20852         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
20853
20854 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
20855
20856         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
20857         * config/frv/frv.h (LINK_SPEC): Likewise.
20858         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
20859
20860 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
20861
20862         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
20863         * config/frv/frv.h (ASM_SPEC): Likewise.
20864         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
20865         * config/m68k/linux.h (ASM_SPEC): Likewise.
20866         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
20867         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
20868         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
20869         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
20870         * config/sparc/linux.h (ASM_SPEC): Likewise.
20871         * config/sparc/linux64.h (ASM_SPEC): Likewise.
20872         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
20873         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
20874
20875 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
20876
20877         PR target/46997
20878         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
20879         (*mux2): Ditto.
20880         (vec_extract_evenodd_help): Ditto.
20881         (vec_extract_evenv4hi): Ditto.
20882         (vec_extract_oddv4hi): Ditto.
20883         (vec_interleave_lowv2si): Ditto.
20884         (vec_interleave_highv2si): Ditto.
20885         (vec_extract_evenv2si): Ditto.
20886         (vec_extract_oddv2si: Ditto.
20887         (vec_pack_trunc_v2si): Ditto.
20888
20889 2011-01-22  Jan Hubicka  <jh@suse.cz>
20890
20891         PR target/47237
20892         * cgraph.h (cgraph_local_info): New field can_change_signature.
20893         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
20894         signature can change.
20895         (ipcp_estimate_growth): Call sequence simplify only if calle signature
20896         can change.
20897         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
20898         (cgraph_function_versioning): We can not change signature of functions
20899         that don't allow that.
20900         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
20901         (lto_input_node): Likewise.
20902         * ipa-inline.c (compute_inline_parameters): Compute
20903         local.can_change_signature.
20904         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
20905         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
20906         functions that can not change signature.
20907         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
20908         init_cumulative_args): Do not use local calling conventions
20909         for functions that can not change signature.
20910
20911 2011-01-22  Jan Hubicka  <jh@suse.cz>
20912
20913         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
20914
20915 2011-01-26  Richard Guenther  <rguenther@suse.de>
20916
20917         PR tree-optimization/47190
20918         * cgraphunit.c (process_common_attributes): New function.
20919         (process_function_and_variable_attributes): Use it.
20920
20921 2011-01-26  Richard Guenther  <rguenther@suse.de>
20922
20923         PR lto/47423
20924         * cgraphbuild.c (record_eh_tables): Record reference to personality
20925         function.
20926
20927 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
20928
20929         PR debug/45454
20930         * sel-sched.c (moveup_expr): Don't let debug insns prevent
20931         non-debug insns from moving up.
20932
20933 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
20934
20935         PR target/40125
20936         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
20937         t-dlldir{,-x} fragment for build and add it to tmake_file.
20938         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
20939         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
20940         * config/i386/t-dlldir: New file.
20941         (SHLIB_DLLDIR): Define.
20942         * config/i386/t-dlldir-x: New file.
20943         (SHLIB_DLLDIR): Define.
20944         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
20945         (SHLIB_INSTALL): Use it.
20946
20947 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
20948
20949         PR target/47246
20950         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
20951         lower bound of the allowed Thumb-2 coprocessor load/store
20952         index range to -256. Add explaining comment.
20953
20954 2011-01-25  Ian Lance Taylor  <iant@google.com>
20955
20956         * godump.c (go_define): Improve lexing of macro expansion to only
20957         accept expressions which match Go spec.
20958
20959 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
20960
20961         PR c++/43601
20962         * tree.c (handle_dll_attribute): Handle it.
20963         * doc/extend.texi (@item dllexport): Mention it.
20964         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
20965
20966 2011-01-25  Ian Lance Taylor  <iant@google.com>
20967
20968         PR tree-optimization/26854
20969         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
20970         (decl_jump_unsafe): Move higher in file, with no other change.
20971         (bind): Set has_jump_unsafe_decl if appropriate.
20972         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
20973         (check_earlier_gotos): Likewise.
20974         (c_check_switch_jump_warnings): Likewise.
20975
20976 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
20977
20978         * doc/invoke.texi (Warning Options): Add missing hyphen.
20979         (-fprofile-dir): Minor grammatical fixes.
20980         (-fbranch-probabilities): Likewise.
20981
20982 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
20983
20984         PR debug/45136
20985         PR debug/45130
20986         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
20987         debug insns.
20988         (no_real_insns_p, schedule_block, set_priorities): Drop special
20989         treatment of boundary debug insns.
20990         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
20991         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
20992         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
20993         (BOUNDARY_DEBUG_INSN_P): Likewise.
20994         (SCHEDULE_DEBUG_INSN_P): Likewise.
20995         * sched-rgn.c (init_ready_list): Drop special treatment of
20996         boundary debug insns.
20997         * final.c (rest_of_clean-state): Clear notes' BB.
20998
20999 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21000
21001         * Makefile.in (LAMBDA_H): Removed.
21002         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
21003         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
21004         lambda-trans.o, and tree-loop-linear.o.
21005         (lto-symtab.o): Remove dependence on LAMBDA_H.
21006         (tree-loop-linear.o): Remove rule.
21007         (lambda-mat.o): Same.
21008         (lambda-trans.o): Same.
21009         (lambda-code.o): Same.
21010         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
21011         (tree-vect-slp.o): Same.
21012         * hwint.h (gcd): Moved here.
21013         (least_common_multiple): Same.
21014         * lambda-code.c: Removed.
21015         * lambda-mat.c: Removed.
21016         * lambda-trans.c: Removed.
21017         * lambda.h: Removed.
21018         * tree-loop-linear.c: Removed.
21019         * lto-symtab.c: Do not include lambda.h.
21020         * omega.c (gcd): Removed.
21021         * passes.c (init_optimization_passes): Remove pass_linear_transform.
21022         * tree-data-ref.c (print_lambda_vector): Moved here.
21023         (lambda_vector_copy): Same.
21024         (lambda_matrix_copy): Same.
21025         (lambda_matrix_id): Same.
21026         (lambda_vector_first_nz): Same.
21027         (lambda_matrix_row_add): Same.
21028         (lambda_matrix_row_exchange): Same.
21029         (lambda_vector_mult_const): Same.
21030         (lambda_vector_negate): Same.
21031         (lambda_matrix_row_negate): Same.
21032         (lambda_vector_equal): Same.
21033         (lambda_matrix_right_hermite): Same.
21034         * tree-data-ref.h: Do not include lambda.h.
21035         (lambda_vector): Moved here.
21036         (lambda_matrix): Same.
21037         (dependence_level): Same.
21038         (lambda_transform_legal_p): Removed declaration.
21039         (lambda_collect_parameters): Same.
21040         (lambda_compute_access_matrices): Same.
21041         (lambda_vector_gcd): Same.
21042         (lambda_vector_new): Same.
21043         (lambda_vector_clear): Same.
21044         (lambda_vector_lexico_pos): Same.
21045         (lambda_vector_zerop): Same.
21046         (lambda_matrix_new): Same.
21047         * tree-flow.h (least_common_multiple): Removed declaration.
21048         * tree-parloops.c (lambda_trans_matrix): Moved here.
21049         (LTM_MATRIX): Same.
21050         (LTM_ROWSIZE): Same.
21051         (LTM_COLSIZE): Same.
21052         (LTM_DENOMINATOR): Same.
21053         (lambda_trans_matrix_new): Same.
21054         (lambda_matrix_vector_mult): Same.
21055         (lambda_transform_legal_p): Same.
21056         * tree-pass.h (pass_linear_transform): Removed declaration.
21057         * tree-ssa-loop.c (tree_linear_transform): Removed.
21058         (gate_tree_linear_transform): Removed.
21059         (pass_linear_transform): Removed.
21060         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
21061         flag_loop_interchange.
21062
21063 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
21064
21065         PR tree-optimization/47265
21066         PR tree-optimization/47443
21067         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
21068         if name still has some uses.
21069
21070 2011-01-25  Martin Jambor  <mjambor@suse.cz>
21071
21072         PR tree-optimization/47382
21073         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
21074         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
21075
21076 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
21077
21078         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
21079         sjlj_except_unwind_info.
21080
21081 2011-01-25  Richard Guenther  <rguenther@suse.de>
21082
21083         PR tree-optimization/47426
21084         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
21085         visible functions results escape.
21086
21087 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
21088
21089         PR target/45701
21090         * config/arm/arm.c (any_sibcall_uses_r3): New function.
21091         (arm_get_frame_offsets): Use it.
21092
21093 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21094             Jakub Jelinek  <jakub@redhat.com>
21095
21096         PR tree-optimization/47271
21097         * tree-if-conv.c (bb_postdominates_preds): New.
21098         (if_convertible_bb_p): Call bb_postdominates_preds.
21099         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
21100         (predicate_scalar_phi): Call bb_postdominates_preds.
21101
21102 2011-01-25  Nick Clifton  <nickc@redhat.com>
21103
21104         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
21105         * config/rx/rx.c (rx_function_value): Likewise.
21106         (rx_promote_function_mode): Likewise.
21107         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
21108         in order to make it legitimate.
21109         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
21110         make sure that the first operand is the same as the result register.
21111         (addsi3_unspec): Delete.
21112         (subdi3): Do not accept immediate operands.
21113         (subdi3_internal): Likewise.
21114
21115 2011-01-25  Jeff Law  <law@redhat.com>
21116
21117         PR rtl-optimization/37273
21118         * ira-costs.c (scan_one_insn): Detect constants living in memory and
21119         handle them like argument loads from stack slots.  Do not double
21120         count memory for memory constants and argument loads from stack slots.
21121
21122 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
21123
21124         PR tree-optimization/47427
21125         PR tree-optimization/47428
21126         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
21127         coalesce if the new root var would be TREE_READONLY.
21128
21129 2011-01-25  Richard Guenther  <rguenther@suse.de>
21130
21131         PR middle-end/47414
21132         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
21133         correct type for TBAA.
21134
21135 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21136
21137         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
21138         (close_phi_written_to_memory): Call for_each_index with
21139         dr_indices_valid_in_loop.
21140
21141 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21142
21143         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
21144         when it is initialized.
21145
21146 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21147
21148         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
21149         call to graphite_find_data_references_in_stmt.
21150         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
21151         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
21152         call to graphite_find_data_references_in_stmt.
21153         (analyze_drs_in_stmts): Same.
21154         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
21155         in which the scalar analysis of indices is performed.
21156         (create_data_ref): Same.  Update call to dr_analyze_indices.
21157         (find_data_references_in_stmt): Update call to create_data_ref.
21158         (graphite_find_data_references_in_stmt): Same.
21159         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
21160         declaration.
21161         (create_data_ref): Same.
21162         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
21163         call to create_data_ref.
21164
21165 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21166
21167         * graphite-sese-to-poly.c (build_poly_scop): Move
21168         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
21169
21170 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21171
21172         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
21173         VAR_DECL, PARM_DECL, and RESULT_DECL.
21174
21175 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21176
21177         * graphite-dependences.c (reduction_dr_1): Allow several reductions
21178         in a reduction PBB.
21179         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
21180         that have already been marked as PBB_IS_REDUCTION.
21181
21182 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21183
21184         * graphite-scop-detection.c (same_close_phi_node): New.
21185         (remove_duplicate_close_phi): New.
21186         (make_close_phi_nodes_unique): New.
21187         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
21188
21189 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21190
21191         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
21192         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
21193         of both data references to be the same.
21194
21195 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21196
21197         * graphite-dependences.c (build_lexicographical_constraint): Remove
21198         the gdim parameter.
21199         (build_lexicographical_constraint): Adjust call to
21200         ppl_powerset_is_empty.
21201         (dependence_polyhedron): Same.
21202         (graphite_legal_transform_dr): Same.
21203         (graphite_carried_dependence_level_k): Same.
21204         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
21205         parameter.
21206         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
21207
21208 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21209
21210         * graphite-sese-to-poly.c
21211         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
21212         (close_phi_written_to_memory): New.
21213         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
21214         and unshare_expr.
21215
21216 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21217
21218         * doc/install.texi: Update the expected version number of PPL to 0.11.
21219         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
21220         #if PPL_VERSION_MINOR < 11.
21221
21222 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21223
21224         * graphite-dependences.c: Include graphite-cloog-util.h.
21225         (new_poly_ddr): Inlined into dependence_polyhedron.
21226         (free_poly_ddr): Moved close by new_poly_ddr.
21227         (dependence_polyhedron_1): Renamed dependence_polyhedron.
21228         Early return NULL when ppl_powerset_is_empty returns true.
21229         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
21230         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
21231         (graphite_legal_transform_dr): Call new_poly_ddr.
21232         (graphite_carried_dependence_level_k): Same.
21233         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
21234         (dot_transformed_deps_stmt_1): Removed.
21235         (dot_deps_stmt_1): Call dot_deps_stmt_2.
21236         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
21237         (dot_deps_1): Call dot_deps_2.
21238         * Makefile.in (graphite-dependences.o): Add missing dependence on
21239         graphite-cloog-util.h.
21240
21241 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21242
21243         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
21244         (build_lexicographical_constraint): Same.
21245         (dependence_polyhedron_1): Same.
21246         (graphite_legal_transform_dr): Same.
21247         (graphite_carried_dependence_level_k): Same.
21248         * graphite-ppl.c (ppl_powerset_is_empty): New.
21249         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
21250         * tree-data-ref.c (dump_data_reference): Print the basic block index.
21251
21252 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21253
21254         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
21255         the "a followed by b" relation and document it.
21256
21257 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21258
21259         * graphite-dependences.c (build_lexicographical_constraint): Stop the
21260         iteration when the bag of constraints is empty.
21261
21262 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21263
21264         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
21265
21266 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21267
21268         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
21269         nest and two loop depths as parameters.
21270         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
21271         lst_perfect_nestify.
21272
21273 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21274
21275         * graphite-dependences.c (print_pddr): Call
21276         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
21277
21278 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21279
21280         * graphite-ppl.c (debug_gmp_value): New.
21281         * graphite-ppl.h (debug_gmp_value): Declared.
21282
21283 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
21284
21285         * doc/install.texi: Document availability of cloog-0.16.
21286
21287 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
21288
21289         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
21290         invalid postdominance info.
21291
21292 2011-01-24  Jan Hubicka  <jh@suse.cz>
21293
21294         PR c/21659
21295         * doc/extend.texi (weak pragma): Drop claim that it must
21296         appear before definition.
21297         * varasm.c (merge_weak, declare_weak): Only sanity check
21298         that DECL is not output at a time it is declared weak.
21299
21300 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
21301
21302         * machmode.def: Fixed comments.
21303
21304 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
21305
21306         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
21307
21308 2011-01-24  Paul Koning  <ni1d@arrl.net>
21309
21310         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
21311         WORDS_BIG_ENDIAN.
21312
21313 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
21314
21315         PR target/46519
21316         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
21317         (block_info): Add scanned and prev.
21318         (move_or_delete_vzeroupper_2): Return if the basic block
21319         has been scanned and the upper 128bit state is unchanged
21320         from the last scan.
21321         (move_or_delete_vzeroupper_1): Return true if the exit
21322         state is changed.
21323         (move_or_delete_vzeroupper): Visit basic blocks using the
21324         work-list based algorithm based on vt_find_locations in
21325         var-tracking.c.
21326
21327         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
21328
21329 2011-01-24  Nick Clifton  <nickc@redhat.com>
21330
21331         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
21332         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
21333         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
21334         then define __v850e1__.
21335         * doc/invoke.texi: Document -mv850es.
21336
21337 2011-01-24  Richard Henderson  <rth@redhat.com>
21338
21339         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
21340         compound unordered comparisons.
21341         * config/rx/rx.c (rx_split_fp_compare): Remove.
21342         * config/rx/rx-protos.h: Update.
21343         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
21344         (cbranchsf4): Don't call rx_split_fp_compare.
21345         (*cbranchsf4): Use rx_split_cbranch.
21346         (*cmpsf): Don't accept "i" constraint.
21347         (*conditional_branch): Only valid after reload.
21348         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
21349
21350 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
21351
21352         PR target/47385
21353         * config/rs6000/altivec.md (vector constant splitters): Add
21354         support for creating vector single precision constants if -mvsx is
21355         used and we would create the constant using Altivec primitives.
21356
21357 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
21358             Richard Sandiford  <rdsandiford@googlemail.com>
21359
21360         PR rtl-optimization/47166
21361         * reload1.c (emit_reload_insns): Disable the spill_reg_store
21362         mechanism for PRE_MODIFY and POST_MODIFY.
21363         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
21364         reloadreg.
21365
21366 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
21367
21368         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
21369
21370 2011-01-22  Jan Hubicka  <jh@suse.cz>
21371
21372         PR lto/47333
21373         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
21374
21375 2011-01-22  Jan Hubicka  <jh@suse.cz>
21376
21377         PR tree-optimization/43884
21378         PR lto/44334
21379         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
21380         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
21381
21382 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
21383
21384         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
21385         * config/s390/s390.c (s390_register_move_cost,
21386         s390_memory_move_cost): New.
21387         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
21388
21389 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21390
21391         PR middle-end/47401
21392         * except.c (sjlj_assign_call_site_values): Move setting the
21393         crtl->uses_eh_lsda flag to ...
21394         (sjlj_mark_call_sites): ... here.
21395         (sjlj_emit_function_enter): Support NULL dispatch label.
21396         (sjlj_build_landing_pads): In a function with no landing pads
21397         that still has must-not-throw regions, generate code to register
21398         a personality function with empty LSDA.
21399
21400 2011-01-21  Richard Henderson  <rth@redhat.com>
21401
21402         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
21403
21404         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
21405
21406         * compare-elim.c: New file.
21407         * Makefile.in (OBJS-common): Add it.
21408         (compare-elim.o): New.
21409         * common.opt (fcompare-elim): New.
21410         * opts.c (default_options_table): Add OPT_fcompare_elim.
21411         * tree-pass.h (pass_compare_elim_after_reload): New.
21412         * passes.c (init_optimization_passes): Add it.
21413         * recog.h: Protect against re-inclusion.
21414         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
21415         * doc/invoke.texi (-fcompare-elim): Document it.
21416         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
21417         * doc/tm.texi: Rebuild.
21418
21419 2011-01-22  Nick Clifton  <nickc@redhat.com>
21420
21421         * config/rx/rx.md (cstoresf4): Pass comparison operator to
21422         rx_split_fp_compare.
21423
21424 2011-01-22  Nick Clifton  <nickc@redhat.com>
21425
21426         * config/rx/rx.md (UNSPEC_CONST): New.
21427         (deallocate_and_return): Wrap the amount popped off the stack in
21428         an UNSPEC_CONST in order to stop it being rejected by
21429         -mmax-constant-size.
21430         (pop_and_return): Add a "(return)" rtx.
21431         (call): Drop the immediate operand.
21432         (call_internal): Likewise.
21433         (call_value): Likewise.
21434         (call_value_internal): Likewise.
21435         (sibcall_internal): Likewise.
21436         (sibcall_value_internal): Likewise.
21437         (sibcall): Likewise.  Generate an explicit call using
21438         sibcall_internal.
21439         (sibcall_value): Likewise.
21440         (mov<>): FAIL if a constant operand is not legitimate.
21441         (addsi3_unpsec): New pattern.
21442
21443         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
21444         (ok_for_max_constant): New function.
21445         (gen_safe_add): New function.
21446         (rx_expand_prologue): Use gen_safe_add.
21447         (rx_expand_epilogue): Likewise.
21448         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
21449         UNSPEC CONSTs.
21450
21451 2011-01-21  Jeff Law  <law@redhat.com>
21452
21453         PR tree-optimization/47053
21454         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
21455         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
21456         statements are deleted.
21457         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
21458         is nonempty, then purge dead edges and cleanup the CFG.
21459
21460 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
21461
21462         PR debug/47402
21463         Temporarily revert:
21464         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
21465         PR debug/47106
21466         * tree-dfa.c (create_var_ann): Mark variable as used.
21467
21468 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
21469
21470         PR middle-end/45566
21471         * except.c (convert_to_eh_region_ranges): Emit queued no-region
21472         notes from other section in hot/cold partitioning even if
21473         last_action is -3.  Increment call_site_base.
21474
21475         PR rtl-optimization/47366
21476         * fwprop.c (forward_propagate_into): Return bool.  If
21477         any changes are made, -fnon-call-exceptions is used and
21478         REG_EH_REGION note is present, call purge_dead_edges
21479         and return true if it purged anything.
21480         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
21481         any EH edges were purged.
21482
21483 2011-01-21  Jeff Law  <law@redhat.com>
21484
21485         PR rtl-optimization/41619
21486         * caller-save.c (setup_save_areas): Break out code to determine
21487         which hard regs are live across calls by examining the reload chains
21488         so that it is always used.
21489         Eliminate code which checked REG_N_CALLS_CROSSED.
21490
21491 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
21492
21493         PR tree-optimization/47355
21494         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
21495         NOP has non-debug uses beyond PHIs in new_bb.
21496
21497 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
21498
21499         PR debug/47106
21500         * cfgexpand.c (account_used_vars_for_block): Only account vars
21501         that are annotated as used.
21502         (estimated_stack_frame_size): Don't set TREE_USED.
21503         * tree-dfa.c (create_var_ann): Mark variable as used.
21504
21505 2011-01-21  Richard Guenther  <rguenther@suse.de>
21506
21507         PR middle-end/47395
21508         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
21509
21510 2011-01-21  Richard Guenther  <rguenther@suse.de>
21511
21512         PR tree-optimization/47365
21513         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
21514         (vn_reference_lookup_pieces): Adjust.
21515         (vn_reference_lookup): Likewise.
21516         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
21517         (vn_reference_lookup_3): Only look through kills if in
21518         VN_WALKREWRITE mode.
21519         (vn_reference_lookup_pieces): Adjust.
21520         (vn_reference_lookup): Likewise.
21521         (visit_reference_op_load): Likewise.
21522         (visit_reference_op_store): Likewise.
21523         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
21524         (compute_avail): Likewise.
21525         (eliminate): Likewise.
21526
21527 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
21528
21529         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
21530         DECL_IGNORED_P non-reg vars if they are used.
21531
21532         PR tree-optimization/47391
21533         * varpool.c (const_value_known_p): Return false if
21534         decl is volatile.
21535
21536 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
21537
21538         PR bootstrap/47215
21539         * config/i386/i386.c (ix86_local_alignment): Handle
21540         case for va_list_type_node is nil.
21541         (ix86_canonical_va_list_type): Likewise.
21542
21543 2011-01-21  Alan Modra  <amodra@gmail.com>
21544
21545         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
21546         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
21547
21548 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21549
21550         * config/arm/arm.md (define_attr type): Rename f_load
21551         and f_store to f_fpa_load and f_fpa_store. Update.
21552         (write_conflict): Deal with rename fallout.
21553         (*push_fp_multi): Likewise.
21554         * config/arm/fpa.md (f_load): Use f_fpa_load.
21555         (f_store): Use f_fpa_store.
21556         (*movsf_fpa): Likewise.
21557         (*movdf_fpa): Likewise.
21558         (*movxf_fpa): Likewise.
21559         (*thumb2_movsf_fpa): Likewise.
21560         (*thumb2_movdf_fpa): Likewise.
21561         (*thumb2_movxf_fpa): Likewise.
21562         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
21563         f_loadd and f_stored.
21564         (*thumb2_movdi_vfp): Likewise.
21565         (*thumb2_movsf_vfp): Fix attribute to f_loads.
21566         (*thumb2_movsi_vfp): Likewise.
21567         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
21568         Use f_loads instead of f_load.
21569         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
21570
21571 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
21572
21573         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21574         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
21575         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21576         (xtensa_mode_dependent_address_p): New function.
21577         (constantpool_address_p): Make static. Change return type to bool.
21578         Change argument type to const_rtx. Use CONST_INT_P predicate.
21579
21580 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
21581
21582         PR debug/46583
21583         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
21584
21585 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
21586
21587         PR debug/47283
21588         * cfgexpand.c (expand_debug_expr): Instead of generating
21589         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
21590         etc. handling.
21591
21592 2011-01-20  Richard Guenther  <rguenther@suse.de>
21593
21594         PR middle-end/47370
21595         * tree-inline.c (remap_gimple_op_r): Recurse manually for
21596         the pointer operand of MEM_REFs.
21597
21598 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
21599
21600         PR tree-optimization/46130
21601         * ipa-split.c (consider_split): If return_bb contains non-virtual
21602         PHIs other than for retval or if split_function would not adjust it,
21603         refuse to split.
21604
21605 2011-01-20  Richard Guenther  <rguenther@suse.de>
21606
21607         PR tree-optimization/47167
21608         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
21609         Revert previous change, only avoid enumeral type changes.
21610
21611 2011-01-19  Mike Stump  <mikestump@comcast.net>
21612
21613         * doc/tm.texi.in (BRANCH_COST): Englishify.
21614         * doc/tm.texi (BRANCH_COST): Likewise.
21615
21616 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
21617
21618         PR c++/47291
21619         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
21620         (gen_scheduled_generic_parms_dies): New functions.
21621         (gen_struct_or_union_type_die): Schedule template parameters DIEs
21622         generation for the end of CU compilation.
21623         (dwarf2out_finish): Generate template parameters DIEs here.
21624
21625 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
21626
21627         PR debug/46240
21628         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
21629         debug bind stmt on merge edges.
21630
21631 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
21632
21633         PR debug/47079
21634         PR debug/46724
21635         * function.c (instantiate_expr): Instantiate incoming rtl of
21636         implicit arguments, and recurse on VALUE_EXPRs.
21637         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
21638         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
21639
21640 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
21641
21642         * c-parser.c (c_parser_for_statement): Initialize
21643         collection_expression.
21644
21645 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
21646
21647         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
21648
21649 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
21650
21651         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
21652         (LINK_SHLIB_SPEC): Don't use %(link_path).
21653         (SUBTARGET_EXTRA_SPECS): Remove link_path.
21654
21655 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
21656
21657         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
21658         (NO_SHARED_LIB_SUPPORT): Remove.
21659         (LINK_SHLIB_SPEC): Remove one conditional definition.
21660
21661 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
21662
21663         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
21664         %{call_shared}.
21665         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
21666         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
21667         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
21668         %{call_shared} and conditionals on these options not being passed.
21669         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
21670         %{call_shared}.
21671
21672 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
21673
21674         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
21675         simplify.
21676
21677         * ipa-split.c: Spelling fixes.
21678
21679 2011-01-19  Richard Henderson  <rth@redhat.com>
21680
21681         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
21682         (*mulsi3): Likewise.
21683
21684         * longlong.h [__mn10300__] (count_leading_zeros): New.
21685         [__mn10300__] (umul_ppmm, smul_ppmm): New.
21686         [__mn10300__] (add_ssaaaa, subddmmss): New.
21687         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
21688         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
21689
21690 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21691
21692         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
21693
21694 2011-01-19  Richard Henderson  <rth@redhat.com>
21695
21696         * config/mn10300/mn10300.md (addsi3_flags): New.
21697         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
21698         (subsi3_flags, subc_internal, subdi3): New.
21699         (subdi3_internal, *subdi3_degenerate): New.
21700         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
21701
21702         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
21703         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
21704         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
21705         * config/mn10300/mn10300-protos.h: Update.
21706         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
21707         (return_ret): Likewise.  Rename from return_internal_regs.
21708         (return_internal): Remove.
21709
21710         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
21711         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
21712         (mn10300_legitimate_constant_p): Likewise.
21713         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
21714         (mn10300_frame_size): New.
21715         (mn10300_expand_prologue): Use it.
21716         (mn10300_expand_epilogue): Likewise.
21717         (mn10300_initial_offset): Likewise.
21718         * config/mn10300/mn10300-protos.h: Update.
21719         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
21720         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
21721         (prologue, epilogue, return_internal): Tidy output code.
21722         (mn10300_store_multiple_operation, return): Likewise.
21723         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
21724         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
21725         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
21726         (load_pic, am33_load_pic): New.
21727         (mn10300_load_pic0, mn10300_load_pic1): New.
21728
21729         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
21730         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
21731         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
21732         (cc_flags_for_mode, cc_flags_for_code): New.
21733         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
21734         overflow flag is not valid.  Validate that the flags we need
21735         for the comparison are valid.
21736         (mn10300_output_cmp): Remove.
21737         (mn10300_output_add): New.
21738         (mn10300_select_cc_mode): Use cc_flags_for_code.
21739         (mn10300_split_cbranch): New.
21740         (mn10300_match_ccmode): New.
21741         (mn10300_split_and_operand_count): New.
21742         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
21743         to the function.
21744         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
21745         (addsi3): ... here.  Use mn10300_output_add.
21746         (*addsi3_flags): New.
21747         (*am33_subsi3, *mn10300_subsi3): Merge...
21748         (subsi3): ... here.  Use attribute isa.
21749         (*subsi3_flags): New.
21750         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
21751         when possible.
21752         (*am33_andsi3, *mn10300_andsi3): Merge...
21753         (andsi3): ... here.
21754         (*andsi3_flags): New.
21755         (andsi3 splitters): New.
21756         (*am33_iorsi3, *mn10300_iorsi3): Merge...
21757         (iorsi3): ... here.
21758         (*iorsi3_flags): New.
21759         (*am33_xorsi3, *mn10300_xorsi3): Merge...
21760         (xorsi3): ... here.
21761         (*xorsi3_flags): New.
21762         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
21763         (one_cmplsi2): ... here.
21764         (*one_cmplsi2_flags): New.
21765         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
21766         instead of "dax" in constraints.  Use mn10300_split_cbranch.
21767         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
21768         use matching constraints to eliminate a self-comparison.
21769         (*integer_conditional_branch): Rename from integer_conditional_branch.
21770         Use int_mode_flags to match CC_REG.
21771         (*cbranchsi4_btst, *btstsi): New.
21772         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
21773         mn10300_split_cbranch.
21774         (*am33_cmpsf): Rename from am33_cmpsf.
21775         (*float_conditional_branch): Rename from float_conditional_branch.
21776         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
21777         (zero_extendqisi2): ... here.
21778         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
21779         (zero_extendhisi2): ... here.
21780         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
21781         (extendqisi2): ... here.
21782         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
21783         (extendhisi2): ... here.
21784         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
21785         (ashlsi3): ... here.
21786         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
21787         (lshrsi3): ... here.
21788         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
21789         (ashrsi3): ... here.
21790         (consecutive add peephole): Remove.
21791         * config/mn10300/predicates.md (label_ref_operand): New.
21792         (int_mode_flags): New.
21793         (CCZN_comparison_operator): New.
21794
21795         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
21796         (throughput_42_latency_43): New reservation.
21797         (mulsidi3, umulsidi3): New expanders.
21798         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
21799         the MDR register to allocation; separately allocate the low and
21800         high parts of the DImode result.
21801         (umulsidi3_internal): Similarly.
21802         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
21803         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
21804         (udivsi3, umodsi3): Remove.
21805         (udivmodsi4, divmodsi4): New expanders.
21806         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
21807         (*divmodsi4): Simiarly.
21808         (ext_internal): New.
21809
21810         * config/mn10300/constraints.md ("z"): New constraint.
21811         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
21812         (FIXED_REGISTERS): Don't fix MDR.
21813         (CALL_USED_REGSITERS): Reformat nicely.
21814         (REG_ALLOC_ORDER): Add MDR.
21815         (enum regclass): Add MDR_REGS.
21816         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
21817         (IRA_COVER_CLASSES): Add MDR_REGS.
21818         (REGNO_REG_CLASS): Handle MDR_REG.
21819         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
21820         (mn10300_register_move_cost): Likewise.
21821         * config/mn10300/mn10300.md (MDR_REG): New.
21822         (*movsi_internal): Handle moves to/from MDR_REGS.
21823
21824         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
21825         POST_MODIFY.
21826         (mn10300_secondary_reload): Tidy combination reload classes.
21827         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
21828         addresses for AM33.  Allow symbolic offsets for reg+imm.
21829         (mn10300_regno_in_class_p): New.
21830         (mn10300_legitimize_reload_address): New.
21831         * config/mn10300/mn10300.h (enum reg_class): Remove
21832         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
21833         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
21834         SP_OR_GENERAL_REGS.
21835         (REG_CLASS_NAMES): Update to match.
21836         (REG_CLASS_CONTENTS): Likewise.
21837         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
21838         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
21839         (REGNO_IN_RANGE_P): Remove.
21840         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
21841         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
21842         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
21843         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
21844         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
21845         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
21846         (REGNO_GENERAL_P): New.
21847         (HAVE_POST_MODIFY_DISP): New.
21848         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
21849         (LEGITIMIZE_RELOAD_ADDRESS): New.
21850         * config/mn10300/mn10300-protos.h: Update.
21851
21852         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
21853         DATA_REGS for AM33 stack-pointer destination.
21854         (mn10300_preferred_output_reload_class): Likewise.
21855         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
21856         into a form appropriate for ...
21857         (TARGET_SECONDARY_RELOAD): New.
21858         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
21859         * config/mn10300/mn10300-protos.h: Update.
21860         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
21861         reload_insi; use the "A" constraint for the scratch; handle AM33
21862         moves of sp to non-address registers.
21863
21864         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
21865         (*movqi_internal): ... here.
21866         (*am33_movhi, *mn10300_movhi): Merge into...
21867         (*movhi_internal): ... here.
21868         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
21869         as the source/destination of moves from/to SP.
21870         (movsf): Only allow for AM33-2.
21871         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
21872         any integer constant constraint.  Only allow for AM33-2.  Tidy
21873         all of the alternative outputs.
21874         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
21875         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
21876         for MN103.
21877         (udivsi3, umodsi3): New patterns for MN103 only.
21878
21879 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
21880
21881         * doc/tm.texi.in: Spell out that a lack of register class unions
21882         can lead to ICEs.
21883         * doc/tm.texi: Regenerate.
21884
21885 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
21886
21887         PR rtl-optimization/47337
21888         * dce.c (check_argument_store): New function.
21889         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
21890
21891         PR tree-optimization/47290
21892         * tree-eh.c (infinite_empty_loop_p): New function.
21893         (cleanup_empty_eh): Use it.
21894
21895 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
21896
21897         PR target/46997
21898         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
21899         (a64_expand_widen_sum): Ditto.
21900         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
21901         (vec_extract_evenodd_help): Ditto.
21902         (vec_extract_evenv4hi): Ditto.
21903         (vec_extract_oddv4hi): Ditto.
21904         (vec_extract_evenv2si): Ditto.
21905         (vec_extract_oddv2si): Ditto.
21906         (vec_extract_evenv2sf): Ditto.
21907         (vec_extract_oddv2sf): Ditto.
21908         (vec_pack_trunc_v4hi: Ditto.
21909         (vec_pack_trunc_v2si): Ditto.
21910         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
21911         (vec_interleave_highv8qi): Ditto.
21912         (mix1_r): Ditto.
21913         (vec_extract_oddv8qi): Ditto.
21914         (vec_interleave_lowv4hi): Ditto.
21915         (vec_interleave_highv4hi): Ditto.
21916         (vec_interleave_lowv2si): Ditto.
21917         (vec_interleave_highv2si): Ditto.
21918
21919 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21920
21921         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
21922         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
21923         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
21924         (pa_c_mode_for_suffix): New.
21925         (TARGET_EXPAND_BUILTIN): Define.
21926         (TARGET_C_MODE_FOR_SUFFIX): Define.
21927         (pa_builtins): Define.
21928         (pa_init_builtins): Register __float128 type and init new support
21929         builtins.
21930         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
21931         * config/pa/quadlib.c (_U_Qfcopysign): New.
21932
21933 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
21934
21935         PR middle-end/46894
21936         * explow.c (allocate_dynamic_stack_space): Do not assume more than
21937         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
21938         are defined.
21939
21940 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21941
21942         PR tree-optimization/47179
21943         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
21944         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
21945
21946 2011-01-18  Richard Guenther  <rguenther@suse.de>
21947
21948         PR rtl-optimization/47216
21949         * emit-rtl.c: Include tree-flow.h.
21950         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
21951         of replicating it with different semantics.
21952         * Makefile.in (emit-rtl.o): Adjust.
21953
21954 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21955
21956         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
21957         (cortex_a9_dp): Handle neon types correctly.
21958
21959 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
21960
21961         PR rtl-optimization/47299
21962         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
21963         subtarget.  Use normal multiplication if both operands are constants.
21964         * expmed.c (expand_widening_mult): Don't try to optimize constant
21965         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
21966         before using it.
21967
21968 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21969
21970         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
21971         spacing after 'e.g.', typos, comma, hyphenation.
21972
21973 2011-01-17  Richard Henderson  <rth@redhat.com>
21974
21975         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
21976         (rx_restricted_mem_operand): New.
21977         (rx_shift_operand): Use register_operand.
21978         (rx_source_operand, rx_compare_operand): Likewise.
21979         * config/rx/rx.md (addsi3_flags): New expander.
21980         (adddi3): Rewrite as expander.
21981         (adc_internal, *adc_flags, adddi3_internal): New patterns.
21982         (subsi3_flags): New expander.
21983         (subdi3): Rewrite as expander.
21984         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
21985
21986         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
21987         (rx_init_builtins): Remove sat builtin.
21988         (rx_expand_builtin): Likewise.
21989         * config/rx/rx.md (ssaddsi3): New.
21990         (*sat): Rename from sat.  Represent the CC_REG input.
21991
21992         * config/rx/predicates.md (rshift_operator): New.
21993         * config/rx/rx.c (rx_expand_insv): Remove.
21994         * config/rx/rx-protos.h: Update.
21995         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
21996         operand to the canonical position.
21997         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
21998         (*bitclr, *bitclr_in_memory): Similarly.
21999         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
22000         (insv): Retain the zero_extract in the expansion.
22001
22002         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
22003         (bswaphi2, bitinvert, revw): Likewise.
22004
22005         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
22006         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
22007         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
22008         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
22009         (bitset, bitset_in_memory): Likewise.
22010         (bitinvert, bitinvert_in_memory): Likewise.
22011         (bitclr, bitclr_in_memory): Likewise.
22012         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
22013         (rx_strend, rx_cmpstrn): Likewise.
22014         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
22015         (bitop peep2 patterns): Remove.
22016
22017         * config/rx/rx.c (rx_match_ccmode): New.
22018         * config/rx/rx-protos.h: Update.
22019         * config/rx/rx.md (abssi2): Clobber, don't set flags.
22020         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
22021         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
22022         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
22023         (fix_truncsfsi2, floatsisf2): Likewise.
22024         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
22025         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
22026         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
22027         (*subsi3_flags, *xorsi3_flags): New.
22028
22029         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
22030
22031         * config/rx/rx.c (rx_print_operand): Remove workaround for
22032         unsplit comparison operations.
22033
22034         * config/rx/rx.md (movsicc): Split after reload.
22035         (*movsicc): Merge *movsieq and *movsine via match_operator.
22036         (*stcc): New pattern.
22037
22038         * config/rx/rx.c (rx_float_compare_mode): Remove.
22039         * config/rx/rx.h (rx_float_compare_mode): Remove.
22040         * config/rx/rx.md (cstoresi4): Split after reload.
22041         (*sccc): New pattern.
22042
22043         * config/rx/predicates.md (label_ref_operand): New.
22044         (rx_z_comparison_operator): New.
22045         (rx_zs_comparison_operator): New.
22046         (rx_fp_comparison_operator): New.
22047         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
22048         Validate that the flags are set properly for the comparison.
22049         (rx_gen_cond_branch_template): Remove.
22050         (rx_cc_modes_compatible): Remove.
22051         (mode_from_flags): New.
22052         (flags_from_code): Rename from flags_needed_for_conditional.
22053         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
22054         (rx_select_cc_mode): Likewise.
22055         (rx_split_fp_compare): New.
22056         (rx_split_cbranch): New.
22057         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
22058         (*cbranchsi4): Use match_operator and rx_split_cbranch.
22059         (*cbranchsf4): Similarly.
22060         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
22061         match_operator and rx_split_cbranch.
22062         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
22063         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
22064         (*cmpsi): Rename from cmpsi.
22065         (*tstsi): Rename from tstsi.
22066         (*cmpsf): Rename from cmpsf; use CC_Fmode.
22067         (*conditional_branch): Rename from conditional_branch.
22068         (*reveresed_conditional_branch): Remove.
22069         (b<code>): Remove expander.
22070         * config/rx/rx-protos.h: Update.
22071
22072         * config/rx/rx.c (rx_compare_redundant): Remove.
22073         * config/rx/rx.md (cmpsi): Don't use it.
22074         * config/rx/rx-protos.h: Update.
22075
22076         * config/rx/rx-modes.def (CC_F): New mode.
22077         * config/rx/rx.c (rx_select_cc_mode): New.
22078         * config/rx/rx.h (SELECT_CC_MODE): Use it.
22079         * config/rx/rx-protos.h: Update.
22080
22081 2011-01-17  Richard Henderson  <rth@redhat.com>
22082
22083         * except.c (dump_eh_tree): Fix stray ; after for statement.
22084
22085 2011-01-17  Richard Guenther  <rguenther@suse.de>
22086
22087         PR tree-optimization/47313
22088         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
22089         handling before copying the body.  Properly deal with
22090         by-reference result in SSA form.
22091
22092 2011-01-17  Ian Lance Taylor  <iant@google.com>
22093
22094         PR target/47219
22095         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
22096         (struct_value_alias_set): Don't define.
22097         (sparc_option_override): Don't set sparc_sr_alias_set and
22098         struct_value_alias_set.
22099         (save_or_restore_regs): Use gen_frame_mem rather than calling
22100         set_mem_alias_set.
22101         (sparc_struct_value_rtx): Likewise.
22102
22103 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
22104
22105         PR target/47318
22106         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
22107         (_mm_maskstore_pd): Likewise.
22108         (_mm_maskload_ps): Likewise.
22109         (_mm_maskstore_ps): Likewise.
22110         (_mm256_maskload_pd): Change mask to __m256i.
22111         (_mm256_maskstore_pd): Likewise.
22112         (_mm256_maskload_ps): Likewise.
22113         (_mm256_maskstore_ps): Likewise.
22114
22115         * config/i386/i386-builtin-types.def: Updated.
22116         (ix86_expand_special_args_builtin): Likewise.
22117
22118         * config/i386/i386.c (bdesc_special_args): Update
22119         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
22120         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
22121         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
22122         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
22123
22124         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
22125         Use <avxpermvecmode> on mask register.
22126         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
22127
22128 2011-01-17  Olivier Hainque  <hainque@adacore.com>
22129             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
22130             Eric Botcazou  <ebotcazou@adacore.com>
22131
22132         PR target/46655
22133         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
22134         if <= USHRT_MAX in 32-bit mode.
22135
22136 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22137
22138         * doc/install.texi (Configuration, Specific): Wrap long
22139         lines in examples.  Allow line wrapping in long options
22140         and URLs where beneficial for PDF output.
22141
22142 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
22143
22144         * config/mips/mips.c (mips_classify_symbol): Don't return
22145         SYMBOL_PC_RELATIVE for nonlocal labels.
22146
22147 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
22148
22149         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
22150
22151 2011-01-15  Jan Hubicka  <jh@suse.cz>
22152
22153         PR tree-optimization/47276
22154         * ipa.c (function_and_variable_visibility): Do not try to mark alias
22155         declarations as needed.
22156
22157 2011-01-15  Martin Jambor  <mjambor@suse.cz>
22158
22159         * common.opt (fdevirtualize): New flag.
22160         * doc/invoke.texi (Option Summary): Document it.
22161         * opts.c (default_options_table): Add devirtualize flag.
22162         * ipa-prop.c (detect_type_change): Return immediately if
22163         devirtualize flag is not set.
22164         (detect_type_change_ssa): Likewise.
22165         (compute_known_type_jump_func): Likewise.
22166         (ipa_analyze_virtual_call_uses): Likewise.
22167
22168 2011-01-14  Martin Jambor  <mjambor@suse.cz>
22169
22170         PR tree-optimization/45934
22171         PR tree-optimization/46302
22172         * ipa-prop.c (type_change_info): New type.
22173         (stmt_may_be_vtbl_ptr_store): New function.
22174         (check_stmt_for_type_change): Likewise.
22175         (detect_type_change): Likewise.
22176         (detect_type_change_ssa): Likewise.
22177         (compute_complex_assign_jump_func): Check for dynamic type change.
22178         (compute_complex_ancestor_jump_func): Likewise.
22179         (compute_known_type_jump_func): Likewise.
22180         (compute_scalar_jump_functions): Likewise.
22181         (ipa_analyze_virtual_call_uses): Likewise.
22182         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
22183
22184 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22185
22186         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
22187         * config/i386/i386.opt (msse5): New Alias.
22188
22189 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22190
22191         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
22192         * config/sparc/linux64.h (CC1_SPEC): Likewise.
22193         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
22194         * config/sparc/sparc.h (CC1_SPEC): Likewise.
22195
22196 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22197
22198         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
22199         -mcpu options.
22200         * config/sparc/linux64.h (CC1_SPEC): Likewise.
22201         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
22202         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
22203         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
22204         Likewise.
22205         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
22206
22207 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22208
22209         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
22210
22211 2011-01-14  Mike Stump  <mikestump@comcast.net>
22212
22213         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
22214         * config/fr30/fr30.md: Likweise
22215         (movsi_push): Likewise.
22216         (movsi_pop): Likewise.
22217         (enter_func): Likewise.
22218         * config/moxie/moxie.md (movsi_push): Likewise.
22219         (movsi_pop): Likewise.
22220
22221 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22222
22223         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
22224         %{no_archive} %{exact_version}.
22225         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
22226         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
22227         %{no_archive} %{exact_version}.
22228         * config/mips/openbsd.h (LINK_SPEC): Likewise.
22229         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
22230         * config/mips/vxworks.h: Likewise.
22231
22232 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22233
22234         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
22235
22236 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22237
22238         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
22239         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
22240
22241 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22242
22243         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
22244         -nodefaultlib.
22245
22246 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22247
22248         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
22249         for mcpu not cpu.
22250         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
22251         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
22252         not cpu.
22253         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
22254         Don't handle -shlib.
22255
22256 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22257
22258         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
22259         (CC1_SPEC): Don't handle -profile.
22260
22261 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22262
22263         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
22264         * config/mips/mips.h (CC1_SPEC): Likewise.
22265
22266 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22267
22268         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
22269         * config/mips/mips.h (CC1_SPEC): Likewise.
22270
22271 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22272
22273         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
22274         * config/m32r/linux.h (LINK_SPEC): Likewise.
22275         * config/mips/linux.h (LINK_SPEC): Likewise.
22276         * config/mips/linux64.h (LINK_SPEC): Likewise.
22277         * config/sparc/linux.h (LINK_SPEC): Likewise.
22278         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
22279         LINK_SPEC): Likewise.
22280         * config/xtensa/linux.h (LINK_SPEC): Likewise.
22281
22282 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22283
22284         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
22285         %{version:-v}.
22286         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
22287
22288 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22289
22290         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
22291         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
22292
22293 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22294
22295         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
22296
22297 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22298
22299         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
22300         supports -Bstatic/-Bdynamic.
22301         * configure: Regenerate.
22302
22303 2011-01-14  Jan Hubicka  <jh@suse.cz>
22304             Jack Howarth  <howarth@bromo.med.uc.edu>
22305
22306         PR target/46037
22307         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
22308         when checking debug_info_level. Test write_symbols instead of
22309         debug_hooks->var_location when setting flag_var_tracking_uninit.
22310
22311 2011-01-14  Richard Guenther  <rguenther@suse.de>
22312
22313         PR tree-optimization/47179
22314         * target.def (ref_may_alias_errno): New target hook.
22315         * targhooks.h (default_ref_may_alias_errno): Declare.
22316         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
22317         (default_ref_may_alias_errno): New function.
22318         * target.h (struct ao_ref_s): Declare.
22319         * tree-ssa-alias.c: Include target.h.
22320         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
22321         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
22322         (targhooks.o): Likewise.
22323         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
22324         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
22325
22326 2011-01-14  Richard Guenther  <rguenther@suse.de>
22327
22328         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
22329
22330 2011-01-14  Richard Guenther  <rguenther@suse.de>
22331
22332         PR tree-optimization/47280
22333         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
22334         return CFG changes.
22335         (tree_ssa_forward_propagate_single_use_vars): Deal with
22336         CFG changes from associate_plusminus.
22337
22338 2011-01-14  Richard Guenther  <rguenther@suse.de>
22339
22340         PR middle-end/47281
22341         Revert
22342         2011-01-11  Richard Guenther  <rguenther@suse.de>
22343
22344         PR tree-optimization/46076
22345         * tree-ssa.c (useless_type_conversion_p): Conversions from
22346         unprototyped to empty argument list function types are useless.
22347
22348 2011-01-14  Richard Guenther  <rguenther@suse.de>
22349
22350         PR tree-optimization/47286
22351         * tree-ssa-structalias.c (new_var_info): Register variables are global.
22352
22353 2011-01-14  Martin Jambor  <mjambor@suse.cz>
22354
22355         PR middle-end/46823
22356         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
22357
22358 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
22359
22360         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
22361         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
22362         * config/xtensa/xtensa.c (xtensa_libcall_value,
22363         xtensa_function_value_regno_p): New functions.
22364         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
22365
22366 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
22367
22368         PR c++/47213
22369         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
22370         PE specific hook.
22371         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
22372         New function prototype.
22373         * config/i386/winnt.c (i386_pe_assemble_visibility):
22374         Warn only if attribute was specified by user.
22375
22376 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
22377
22378         PR target/47251
22379         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
22380         floating point.
22381         (floatunsdidf2_fcfidu): Ditto.
22382
22383 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22384
22385         * config/s390/s390.c (print_operand_address): Replace 'error' with
22386         'output_operand_lossage'.
22387         (print_operand): Likewise.
22388
22389 2011-01-13  Jeff Law  <law@redhat.com>
22390
22391         PR rtl-optimization/39077
22392         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
22393         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
22394         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
22395         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
22396         * gcse.c (prune_insertions_deletions): New function.
22397         (compute_pre_data): Use it.
22398
22399 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
22400
22401         PR debug/PR46973
22402         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
22403         static function.
22404         (prune_unused_types_mark): Use it.
22405
22406 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
22407
22408         PR rtl-optimization/45352
22409         * sel-sched.c: Update copyright years.
22410         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
22411         in the advancing loop when we have issued issue_rate insns.
22412
22413 2011-01-12  Richard Henderson  <rth@redhat.com>
22414
22415         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
22416         (TARGET_MD_ASM_CLOBBERS): New.
22417
22418         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
22419         (TARGET_DELEGITIMIZE_ADDRESS): New.
22420
22421         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
22422         (clzsi2, *bsch): New patterns.
22423
22424         * config/mn10300/mn10300.md (INT): New mode iterator.
22425         (*mov<INT>_clr): New pattern, and peep2 to generate it.
22426
22427         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
22428         flag_split_wide_types.
22429
22430         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
22431         (mn10300_trampoline_init): Rewrite without a template, an immediate
22432         load and a direct branch.
22433         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
22434
22435 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
22436
22437         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
22438         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
22439         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
22440         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
22441
22442 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
22443
22444         PR debug/47209
22445         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
22446         of type.
22447
22448 2011-01-12  Jan Hubicka  <jh@suse.cz>
22449
22450         PR driver/47244
22451         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
22452         (PLUGIN_COND_CLOSE): New macro.
22453         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
22454
22455 2011-01-12  Richard Guenther  <rguenther@suse.de>
22456
22457         PR lto/47259
22458         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
22459         register variables in a MEM_REF.
22460
22461 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
22462
22463         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
22464         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
22465         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
22466         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
22467         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
22468         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
22469         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
22470         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
22471         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
22472         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
22473         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
22474         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
22475         * config/gnu-user.h: New.  Copied from linux.h.
22476         (LINUX_TARGET_STARTFILE_SPEC): Rename to
22477         GNU_USER_TARGET_STARTFILE_SPEC.
22478         (LINUX_TARGET_ENDFILE_SPEC): Rename to
22479         GNU_USER_TARGET_ENDFILE_SPEC.
22480         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
22481         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
22482         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
22483         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
22484         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
22485         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
22486         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
22487         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
22488         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
22489         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
22490         * config/arm/linux-eabi.h (CC1_SPEC): Use
22491         GNU_USER_TARGET_CC1_SPEC.
22492         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
22493         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
22494         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
22495         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
22496         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
22497         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
22498         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
22499         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
22500
22501 2011-01-12  Richard Guenther  <rguenther@suse.de>
22502
22503         PR other/46946
22504         * doc/invoke.texi (ffast-math): Document it is turned on
22505         with -Ofast.
22506
22507 2011-01-12  Jan Hubicka  <jh@suse.cz>
22508
22509         PR tree-optimization/47233
22510         * opts.c (common_handle_option): Disable ipa-reference with profile
22511         feedback.
22512
22513 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
22514
22515         * c-parser.c (c_parser_objc_at_property_declaration): Improved
22516         error message.
22517
22518 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
22519
22520         * c-parser.c (c_lex_one_token): Updated and reindented some
22521         comments.  No changes in code.
22522
22523 2011-01-11  Ian Lance Taylor  <iant@google.com>
22524
22525         * godump.c (go_output_var): Don't output the variable if there is
22526         already a type with the same name.
22527
22528 2011-01-11  Ian Lance Taylor  <iant@google.com>
22529
22530         * godump.c (go_format_type): Don't generate float80.
22531
22532 2011-01-11  Richard Henderson  <rth@redhat.com>
22533
22534         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
22535         declaration.  Rewrite for both speed and size.
22536         (mn10300_address_cost_1): Remove.
22537         (mn10300_register_move_cost): New.
22538         (mn10300_memory_move_cost): New.
22539         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
22540         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
22541         extensions, shifts, BSWAP, CLZ.
22542         (mn10300_wide_const_load_uses_clr): Remove.
22543         (TARGET_REGISTER_MOVE_COST): New.
22544         (TARGET_MEMORY_MOVE_COST): New.
22545         * config/mn10300/mn10300-protos.h: Update.
22546         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
22547
22548         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
22549         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
22550         * config/mn10300/mn10300-protos.h: Update.
22551         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
22552         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
22553         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
22554         (*test_int_bitfield, *test_byte_bitfield): Remove.
22555         (*bit_test, *subreg_bit_test): Remove.
22556         * config/mn10300/predicates.md (const_8bit_operand): Remove.
22557
22558         * config/mn10300/constraints.md ("c"): Rename from "A".
22559         ("A", "D"): New constraint letters.
22560         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
22561         (fmssf4, fnmasf4, fnmssf4): Likewise.
22562
22563         * config/mn10300/mn10300.md (isa): New attribute.
22564         (enabled): New attribute.
22565
22566         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
22567         (abssf2, negsf2): Define only for hardware fp.
22568         (sqrtsf2): Reformat.
22569         (addsf3, subsf3, mulsf3): Merge expander and insn.
22570
22571         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
22572         (DEBUGGER_AUTO_OFFSET): Remove.
22573         (DEBUGGER_ARG_OFFSET): Remove.
22574
22575         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
22576         Emit register stores with the same offsets as the hardware.
22577         (mn10300_store_multiple_operation): Don't check that the register
22578         save offsets are monotonic.
22579         * config/mn10300/mn10300-protos.h: Update.
22580
22581         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
22582
22583         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
22584         in terms of the value on the stack, not the MDR register.
22585
22586 2011-01-11  Jan Hubicka  <jh@suse.cz>
22587
22588         PR lto/45721
22589         PR lto/45375
22590         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
22591         (symbol_alias_set_destroy, symbol_alias_set_contains,
22592         propagate_aliases_backward): Declare.
22593         * lto-streamer-out.c (struct sets): New sturcture.
22594         (trivally_defined_alias): New function.
22595         (output_alias_pair_p): Rewrite.
22596         (output_unreferenced_globals): Fix output of alias pairs.
22597         (produce_symtab): Likewise.
22598         * ipa.c (function_and_variable_visibility): Set weak alias destination
22599         as needed in lto.
22600         * varasm.c (symbol_alias_set_t): Remove.
22601         (symbol_alias_set_destroy): Export.
22602         (propagate_aliases_forward, propagate_aliases_backward): New functions
22603         based on ...
22604         (compute_visible_aliases): ... this one; remove.
22605         (trivially_visible_alias): New
22606         (trivially_defined_alias): New.
22607         (remove_unreachable_alias_pairs): Rewrite.
22608         (finish_aliases_1): Reorganize code checking if alias is defined.
22609         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
22610         in LTO mode.
22611
22612 2011-01-11  Richard Guenther  <rguenther@suse.de>
22613
22614         PR tree-optimization/46076
22615         * tree-ssa.c (useless_type_conversion_p): Conversions from
22616         unprototyped to empty argument list function types are useless.
22617
22618 2011-01-11  Richard Guenther  <rguenther@suse.de>
22619
22620         PR middle-end/45235
22621         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
22622         volatile MEMs as MEM_READONLY_P.
22623
22624 2011-01-11  Richard Guenther  <rguenther@suse.de>
22625
22626         PR tree-optimization/47239
22627         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
22628
22629 2011-01-11  Jeff Law  <law@redhat.com>
22630
22631         PR tree-optimization/47086
22632         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
22633         IVs from statements that might throw.
22634
22635 2011-01-10  Jan Hubicka  <jh@suse.cz>
22636
22637         PR lto/45375
22638         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
22639
22640 2011-01-10  Jan Hubicka  <jh@suse.cz>
22641
22642         PR lto/45375
22643         * profile.c (read_profile_edge_counts): Ignore profile inconistency
22644         when correcting profile.
22645
22646 2011-01-10  Jan Hubicka  <jh@suse.cz>
22647
22648         PR lto/46083
22649         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
22650         DECL_FINI_PRIORITY.
22651         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
22652         Restore DECL_FINI_PRIORITY.
22653
22654 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22655
22656         * doc/gimple.texi: Fix quoting of multi-word return values in
22657         @deftypefn statements.  Ensure presence of return value.  Wrap
22658         overlong @deftypefn lines.
22659         (is_gimple_operand, is_gimple_min_invariant_address): Remove
22660         descriptions of removed functions.
22661         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
22662         of multi-word return value in @deftypefn statement.
22663
22664 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22665
22666         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
22667         (Conditional Expressions, Logical Operators)
22668         (Statement and operand traversals): Do not indent smallexample
22669         code.  Fix duplicate function argument in example.
22670
22671 2011-01-10  Jeff Law  <law@redhat.com>
22672
22673         PR tree-optimization/47141
22674         * ipa-split.c (split_function): Handle case where we are
22675         returning a value and the return block has a virtual operand phi.
22676
22677 2011-01-10  Jan Hubicka  <jh@suse.cz>
22678
22679         PR tree-optimization/47234
22680         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
22681         (pass_feedback_split_functions): Declare.
22682         * passes.c (init_optimization_passes): Add ipa-split as subpass of
22683         tree-profile.
22684         * ipa-split.c (gate_split_functions): Update comments; disable
22685         split-functions for profile_arc_flag and branch_probabilities.
22686         (gate_feedback_split_functions): New function.
22687         (execute_feedback_split_functions): New function.
22688         (pass_feedback_split_functions): New global var.
22689
22690 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
22691
22692         PR lto/46760
22693         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
22694         calling gimple_call_set_cannot_inline.
22695
22696 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
22697
22698         * config/darwin-sections.def: Remove unused section.
22699
22700 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
22701
22702         PR c++/47218
22703         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
22704
22705 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
22706
22707         PR objc/47232
22708         * c-parser.c (c_parser_declaration_or_fndef): Improved
22709         error message.
22710
22711 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
22712
22713         * config/i386/winnt.c (i386_pe_start_function): Make sure
22714         to switch back to function's section.
22715
22716 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
22717
22718         PR gcc/46902
22719         PR testsuite/46912
22720         * plugin.c: Move include of dlfcn.h from here...
22721         * system.h: ... to here.
22722
22723 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22724
22725         * doc/cpp.texi (C++ Named Operators): Fix markup for header
22726         file name.
22727         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
22728         two extra empty pages in PDF output.
22729
22730 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
22731
22732         PR objc/47078
22733         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
22734         for error recovery purposes behave as if it was not specified so
22735         that the default type is usd.
22736
22737 2011-01-07  Jan Hubicka  <jh@suse.cz>
22738
22739         PR tree-optmization/46469
22740         * ipa.c (function_and_variable_visibility): Clear needed flags on
22741         nodes with external decls; handle weakrefs merging correctly.
22742
22743 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
22744
22745         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
22746         not false.
22747
22748 2011-01-07  Jan Hubicka  <jh@suse.cz>
22749
22750         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
22751         and no longer claim that gold is required for linker plugin.
22752         * configure: Regenerate.
22753         * gcc.c (PLUGIN_COND): New macro.
22754         (LINK_COMMAND_SPEC): Use it.
22755         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
22756         * config.in (HAVE_LTO_PLUGIN): New.
22757         * configure.ac (--with-lto-plugin): New parameter; autodetect
22758         HAVE_LTO_PLUGIN.
22759
22760 2011-01-07  Jan Hubicka  <jh@suse.cz>
22761
22762         PR tree-optimization/46367
22763         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
22764         when we can update original.
22765         (cgraph_mark_inline_edge): Sanity check.
22766         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
22767
22768 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22769
22770         * config/spu/spu.h (ASM_COMMENT_START): Define.
22771
22772 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
22773
22774         PR driver/42445
22775         * gcc.c (%>S): New.
22776         (SWITCH_KEEP_FOR_GCC): Likewise.
22777         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
22778         (do_spec_1): Handle "%>".
22779
22780         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
22781
22782 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
22783
22784         PR target/47201
22785         * config/i386/i386.c (ix86_delegitimize_address): If
22786         simplify_gen_subreg fails, return orig_x.
22787
22788         PR bootstrap/47187
22789         * value-prof.c (gimple_stringop_fixed_value): Handle
22790         lhs of the call properly.
22791
22792 2011-01-07  Jan Hubicka  <jh@suse.cz>
22793
22794         PR lto/45375
22795         * lto-opt.c (lto_reissue_options): Set flag_shlib.
22796
22797 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
22798
22799         * target.def (function_switched_text_sections): New hook.
22800         * doc/tm.texi: Regenerated.
22801         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
22802         * final.c (default_function_switched_text_sections): New.
22803         (final_scan_insn): Call function_switched_text_sections when a
22804         mid-function section change occurs.
22805         * output.h (default_function_switched_text_sections): Declare.
22806         * config/darwin-protos.h (darwin_function_switched_text_sections):
22807         Likewise.
22808         * config/darwin.c (darwin_function_switched_text_sections): New.
22809         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
22810
22811 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
22812
22813         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
22814         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
22815         the secondary code fragment when outputting for DWARF == 2.
22816
22817 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
22818
22819         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
22820         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
22821         Remove.
22822         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
22823         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
22824
22825 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
22826
22827         PR debug/46704
22828         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
22829         when it is not empty.
22830
22831 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
22832
22833         Bobcat Enablement
22834         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
22835         (case ${target}): Add btver1.
22836         * config/i386/driver-i386.c (host_detect_local_cpu): Let
22837         -march=native recognize btver1 processors.
22838         * config/i386/i386-c.c (ix86_target_macros_internal): Add
22839         btver1 def_and_undef
22840         * config/i386/i386.c (struct processor_costs btver1_cost): New
22841         btver1 cost table.
22842         (m_BTVER1): New definition.
22843         (m_AMD_MULTIPLE): Includes m_BTVER1.
22844         (initial_ix86_tune_features): Add btver1 tune.
22845         (processor_target_table): Add btver1 entry.
22846         (static const char *const cpu_names): Add btver1 entry.
22847         (software_prefetching_beneficial_p): Add btver1.
22848         (ix86_option_override_internal): Add btver1 instruction sets.
22849         (ix86_issue_rate): Add btver1.
22850         (ix86_adjust_cost): Add btver1.
22851         * config/i386/i386.h (TARGET_BTVER1): New definition.
22852         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
22853         (enum processor_type): Add PROCESSOR_BTVER1.
22854         * config/i386/i386.md (define_attr "cpu"): Add btver1.
22855
22856 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22857
22858         PR target/43309
22859         * config/i386/i386.c (legitimize_tls_address)
22860         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
22861         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
22862         (tls_initial_exec_64_sun): New pattern.
22863
22864 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
22865
22866         * doc/invoke.texi (Overall Options): Improve wording and markup
22867         of the description of -wrapper.
22868
22869 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
22870
22871         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
22872         rdynamic, threads): New Driver options.
22873
22874 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22875
22876         PR target/38118
22877         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
22878         if coming from .tdata.
22879         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
22880
22881 2011-01-06  Jan Hubicka  <jh@suse.cz>
22882
22883         PR lto/47188
22884         * collect2.c (main): Do not enable LTOmode when plugin is active.
22885
22886 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22887
22888         PR other/45915
22889         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
22890         --version output if supported.
22891         * configure: Regenerate.
22892
22893 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
22894
22895         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
22896         Driver options.
22897
22898 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
22899
22900         PR c/47150
22901         * c-convert.c (convert): When converting a complex expression
22902         other than COMPLEX_EXPR to a different complex type, ensure
22903         c_save_expr is called instead of save_expr, unless in_late_binary_op.
22904         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
22905         when converting COMPLEX_TYPE.
22906
22907 2011-01-06  Ira Rosen  <irar@il.ibm.com>
22908
22909         PR tree-optimization/47139
22910         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
22911         only the last reduction value is used outside the loop.  Update
22912         documentation.
22913
22914 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
22915
22916         * config/rtems.opt: New.
22917         * config.gcc (*-*-rtems*): Use rtems.opt.
22918
22919 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
22920
22921         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
22922         processors do not support 3DNow instructions.
22923
22924 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22925
22926         * config/spu/spu.c (spu_option_override): Set parameter
22927         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
22928
22929 2011-01-05  Jan Hubicka  <jh@suse.cz>
22930
22931         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
22932         at the command line.
22933
22934 2011-01-05  Martin Jambor  <mjambor@suse.cz>
22935
22936         PR lto/47162
22937         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
22938         deltas on streamed outgoing edges.
22939         (output_node_opt_summary): Output info for outgoing edges only when
22940         the node is in new parameter set.
22941         (output_cgraph_opt_summary): New parameter set, passed to the two
22942         aforementioned functions.  Update its forward declaration and its
22943         callee too.
22944
22945 2011-01-05  Tom Tromey  <tromey@redhat.com>
22946
22947         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
22948         operator to c_finish_omp_atomic.
22949         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
22950         (build_unary_op): Update.
22951         (build_modify_expr): Update.
22952         (build_asm_expr): Update.
22953
22954 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22955
22956         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
22957         newly inserted insns.
22958         (pad_bb): Likewise.
22959         (spu_emit_branch_hint): Likewise.
22960         (insert_hbrp_for_ilb_runout): Likewise.
22961         (spu_machine_dependent_reorg): Call df_finish_pass after
22962         schedule_insns returns.
22963
22964 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22965
22966         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
22967
22968 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
22969
22970         PR tree-optimization/47005
22971         * tree-sra.c (struct access): Add 'non_addressable' bit.
22972         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
22973         (decide_one_param_reduction): Return 0 if the parameter is passed by
22974         reference and one of the accesses in the group is non_addressable.
22975
22976 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
22977
22978         PR tree-optimization/47056
22979         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
22980         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
22981         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
22982
22983 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
22984
22985         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
22986         initializer.  Skip view conversions from aggregate types.
22987
22988 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
22989
22990         PR bootstrap/47055
22991         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
22992
22993 2011-01-04  Philipp Thomas  <pth@suse.de>
22994
22995         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
22996         obvious typo.
22997
22998 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22999
23000         * function.c (thread_prologue_and_epilogue_insns): Do not crash
23001         on empty epilogue sequences.
23002
23003 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
23004
23005         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
23006         non-static): New Driver options.
23007
23008 2011-01-04  Jie Zhang  <jie@codesourcery.com>
23009
23010         PR driver/47137
23011         * gcc.c (default_compilers[]): Set combinable field to 0
23012         for all assembly languages.
23013
23014 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
23015
23016         * config/mips/loongson3a.md: New file.
23017         * config/mips/mips.md: Include loongson3a.md.
23018         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
23019         TUNE_LOONGSON_3A.
23020
23021 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
23022
23023         PR middle-end/47017
23024         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
23025         instead of convert_memory_address_addr_space on the base expression.
23026
23027 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23028
23029         * config/spu/spu.c (spu_option_override): Update error text
23030         for bad -march= / -mtune= values.
23031
23032 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23033
23034         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
23035         if branch-hint optimization will be performed.
23036
23037 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
23038
23039         PR tree-optimization/47148
23040         * ipa-split.c (split_function): Convert arguments to
23041         DECL_ARG_TYPE if possible.
23042
23043         PR tree-optimization/47155
23044         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
23045         when computing uns.
23046
23047         PR rtl-optimization/47157
23048         * combine.c (try_combine): If undobuf.other_insn becomes
23049         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
23050         and set *new_direct_jump_p too.
23051
23052 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
23053
23054         PR tree-optimization/47021
23055         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
23056
23057 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
23058
23059         * gcc.c (process_command): Update copyright notice dates.
23060         * gcov.c (print_version): Likewise.
23061         * gcov-dump.c (print_version): Likewise.
23062         * mips-tfile.c (main): Likewise.
23063         * mips-tdump.c (main): Likewise.
23064
23065 2011-01-03  Martin Jambor  <mjambor@suse.cz>
23066
23067         PR tree-optimization/46801
23068         * tree-sra.c (type_internals_preclude_sra_p): Check whether
23069         aggregate fields start at byte boundary instead of the bit-field flag.
23070
23071 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
23072
23073         PR driver/47137
23074         * gcc.c (main): Revert revision 168407.
23075
23076 2011-01-03  Martin Jambor  <mjambor@suse.cz>
23077
23078         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
23079
23080 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23081
23082         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
23083         vector optab to expand vector/scalar shift, update gimple to vector.
23084
23085 2011-01-03  Martin Jambor  <mjambor@suse.cz>
23086
23087         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
23088         a thunk.
23089
23090 2011-01-03  Martin Jambor  <mjambor@suse.cz>
23091
23092         PR tree-optimization/46984
23093         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
23094         HOST_WIDE_INT.
23095         (cgraph_create_indirect_edge): Fixed line length.
23096         (cgraph_indirect_call_info): Declare.
23097         (cgraph_make_edge_direct) Update declaration.
23098         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
23099         (cgraph_create_indirect_edge): Use it.
23100         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
23101         callees.
23102         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
23103         the new thunk_delta representation.
23104         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
23105         HOST_WIDE_INT.
23106         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
23107         (ipa_read_indirect_edge_info): Likewise.
23108         * lto-cgraph.c (output_edge_opt_summary): New function.
23109         (output_node_opt_summary): Call it on all outgoing edges.
23110         (input_edge_opt_summary): New function.
23111         (input_node_opt_summary): Call it on all outgoing edges.
23112
23113 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
23114
23115         PR driver/47137
23116         * gcc.c (main): Don't check have_o when settting combine_inputs.
23117
23118 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
23119
23120         * regrename.c: Add general comment describing the pass.
23121         (struct du_head): Remove 'length' field.
23122         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
23123         (regrename_optimize): Do not sort chains.  Rework comments, add others.
23124         Force renaming to the preferred class (if any) in the first pass and do
23125         not consider registers that belong to it in the second pass.
23126         (create_new_chain): Do not set 'length' field.
23127         (scan_rtx_reg): Likewise.
23128
23129 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
23130
23131         PR tree-optimization/47140
23132         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
23133         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
23134         to bit_value_binop.
23135
23136         PR rtl-optimization/47028
23137         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
23138         parm_birth_insn instead of at the beginning of first bb.
23139
23140 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
23141
23142         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
23143         Remove the word "see" before "@pxref".
23144         * doc/rtl.texi: Remove the word "see" before "@pxref".
23145
23146 2011-01-01  Jan Hubicka  <jh@suse.cz>
23147
23148         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
23149         memory.
23150
23151 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
23152
23153         PR target/38662
23154         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
23155
23156 \f
23157 Copyright (C) 2011 Free Software Foundation, Inc.
23158
23159 Copying and distribution of this file, with or without modification,
23160 are permitted in any medium without royalty provided the copyright
23161 notice and this notice are preserved.