Switch SSE and AVX mnemonics.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
2
3         PR target/48612
4         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
5         (*ieee_smax<mode>3): Likewise.
6
7 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8
9         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
10         Replace match_operand with match_dup for the third operand in
11         these expanders.
12
13 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
14
15         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
16         to track processing of conditionals.  Update all callers.
17         (try_combine, simplify_if_then_else): Update.
18
19 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
20
21         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
22         -fsched-pressure.
23
24 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
25         
26         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
27         instead of match_operand for operand 3.
28
29 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
30
31         * recog.h (insn_operand_data): Add an "allows_mem" field.
32         * genoutput.c (output_operand_data): Initialize it.
33         * optabs.c (maybe_legitimize_operand_same_code): New function.
34         (maybe_legitimize_operand): Use it when matching the original
35         op->value.
36
37 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
38
39         * gimplify.c: Fix issues in comments throughout.
40         (voidify_wrapper_expr): Fix long line.
41         (build_stack_save_restore): Likewise.
42         (gimplify_loop_expr): Likewise.
43         (gimplify_compound_lval): Likewise.
44         (gimplify_init_ctor_eval): Likewise.
45         (gimplify_modify_expr_rhs): Likewise.
46         (omp_notice_threadprivate_variable): Likewise.
47
48 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
49
50         * cfgexpand.c (expand_call_stmt): Convert the function type to the
51         original one if this is not a builtin function.
52
53 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
54
55         PR target/48605
56         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
57         offset it as needed based on top 2 bits in operands[3], change
58         MEM mode to SFmode and mask those 2 bits away from operands[3].
59
60 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
61
62         * c-parser.c (c_parser_objc_protocol_definition): Updated for
63         change from objc_declare_protocols() to objc_declare_protocol().
64
65 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
66
67         * config/i386/sse.md (sse4_1): New mode attribute.
68         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
69         avx_blend<ssemodesuffix><avxmodesuffix> and
70         sse4_1_blend<ssemodesuffix> using VF mode iterator.
71         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
72         avx_blendv<ssemodesuffix><avxmodesuffix> and
73         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
74         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
75         avx_dp<ssemodesuffix><avxmodesuffix> and
76         sse4_1_dp<ssemodesuffix> using VF mode iterator.
77         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
78         (sse4_1_packusdw): Merge with *avx_packusdw.
79         (sse4_1_pblendvb): Merge with *avx_pblendvb.
80         (sse4_1_pblendw): Merge with *avx_pblendw.
81         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
82         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
83         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
84         VF mode iterator.
85         (sse4_1_round<ssescalarmodesuffix>): Merge with
86         *avx_round<ssescalarmodesuffix>.
87         (aesenc): Merge with *avx_aesenc.
88         (aesenclast): Merge with *avx_aesenclast.
89         (aesdec): Merge with *avx_aesdec.
90         (aesdeclast): Merge with *avx_aesdeclast.
91         (pclmulqdq): Merge with *pclmulqdq.
92         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
93         New predicate.
94         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
95
96 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
97
98         PR middle-end/48608
99         * cfgexpand.c (get_decl_align_unit): Renamed to ...
100         (align_local_variable): This.  Update DECL_ALIGN.
101         (add_stack_var): Updated.
102         (expand_one_stack_var): Likewise.
103
104 2011-04-14  Richard Guenther  <rguenther@suse.de>
105
106         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
107         Remove.
108         (dse_initialize_block_local_data, dse_leave_block,
109         record_voperand_set, get_stmt_uid): Likewise.
110         (dse_possible_dead_store_p): Allow any kind of killing stmt.
111         (dse_optimize_stmt): Remove voperand set handling code.
112         Simplify and improve to handle any kind of killing stmt.
113         (dse_record_phi): Remove.
114         (dse_enter_block): Simplify.
115         (tree_ssa_dse): Likewise.
116         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
117
118 2011-04-14  Jan Hubicka  <jh@suse.cz>
119
120         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
121         * cgraph.h (struct inline_summary): Move to ipa-inline.h
122         (cgraph_local_info): Remove inline_summary.
123         * ipa-cp.c: Include ipa-inline.h.
124         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
125         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
126         accesor.
127         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
128         (input_overwrite_node): Do not set inline summary.
129         (input_node): Do not stream inline summary.
130         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
131         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
132         growth; we do not have inline parameters computed for that anyway.
133         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
134         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
135         (inline_summary_t): New type and VECtor.
136         (debug_inline_summary, dump_inline_summaries): Declare.
137         (inline_summary): Use VOCtor.
138         (estimate_edge_growth): Kill hack computing call stmt size directly.
139         * lto-section-in.c (lto_section_name): Add inline section.
140         * ipa-inline-analysis.c: Include lto-streamer.h
141         (node_removal_hook_holder, node_duplication_hook_holder): New holders
142         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
143         (inline_summary_vec): Define.
144         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
145         dump_inline_summaries): New functions.
146         (estimate_function_body_sizes): Properly compute size/time of outgoing
147         calls.
148         (compute_inline_parameters): Alloc inline_summary; do not compute
149         size/time of incomming calls.
150         (estimate_edge_time): Avoid missing time summary hack.
151         (inline_read_summary): Read inline summary info.
152         (inline_write_summary): Write inline summary info.
153         (inline_free_summary): Free all hooks and inline summary vector.
154         * lto-streamer.h: Add LTO_section_inline_summary section.
155         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
156         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
157
158 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
159
160         * tree-vectorizer.h (vect_strided_store_supported): Add a
161         HOST_WIDE_INT argument.
162         (vect_strided_load_supported): Likewise.
163         (vect_permute_store_chain): Return void.
164         (vect_transform_strided_load): Likewise.
165         (vect_permute_load_chain): Delete.
166         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
167         count argument.  Check that the count is a power of two.
168         (vect_strided_load_supported): Likewise.
169         (vect_permute_store_chain): Return void.  Update after above changes.
170         Assert that the access is supported.
171         (vect_permute_load_chain): Likewise.
172         (vect_transform_strided_load): Return void.
173         * tree-vect-stmts.c (vectorizable_store): Update calls after
174         above interface changes.
175         (vectorizable_load): Likewise.
176         (vect_analyze_stmt): Don't check for strided powers of two here.
177
178 2011-04-14  Richard Guenther  <rguenther@suse.de>
179
180         PR tree-optimization/48590
181         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
182         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
183         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
184         BUILT_IN_STACK_SAVE.
185         * tree-ssa-dce.c (propagate_necessity): Handle
186         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
187
188 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
189
190         * c-parser.c (c_parser_objc_class_declaration): Updated call to
191         objc_declare_class.
192
193 2011-04-14  Richard Guenther  <rguenther@suse.de>
194
195         * tree.h (get_object_alignment_1): Declare.
196         * builtins.c (get_object_alignment_1): Split out worker from ...
197         (get_object_alignment): ... here.
198         * fold-const.c (get_pointer_modulus_and_residue): Use
199         get_object_alignment_1.
200
201 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
202
203         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
204         type parameter.
205         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
206         parameter.  Generalise code to handle arrays as well as vectors.
207         (vect_setup_realignment): Update accordingly.
208         * tree-vect-stmts.c (vectorizable_store): Likewise.
209         (vectorizable_load): Likewise.
210
211 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
212
213         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
214         within the per-copy loop.
215
216 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
217
218         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
219         in the dump file.
220
221 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
222
223         * doc/options.texi (Negative): Explicitly mention that the
224         Negative chain must be circular.
225
226 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
227
228         * function.h (block_chainon): Declare.
229         * function.c (block_chainon): Define.
230
231 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
232             Eric Weddington  <eric.weddington@atmel.com>
233             Georg-Johann Lay <avr@gjlay.de>
234
235         * config/avr/avr.c: ("insn-codes.h", "optabs.h", "langhooks.h"):
236         New Includes
237         (avr_init_builtins, avr_expand_builtin,
238         avr_expand_delay_cycles, avr_expand_unop_builtin,
239         avr_expand_binop_builtin ): New functions.
240         (avr_builtin_id): New enum
241         (struct avr_builtin_description): New struct
242         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
243         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
244
245         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
246         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
247         UNSPECV_DELAY_CYCLES): new enumeration values
248         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
249         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
250         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
251         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
252         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
253         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
254         "fmulsu"): New insns
255
256         * config/avr/avr-c.c: fix line endings
257         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
258         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
259         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
260         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
261         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
262
263         * doc/extend.texi (AVR Built-in Functions): New node
264         (Target Builtins): Add documentation of AVR
265         built-in functions.
266
267 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
268
269         PR target/44643
270         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
271         alone. Error if non-const data has attribute progmem.
272
273 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
274
275         * tree.h (struct tree_constructor): Include tree_typed instead of
276         tree_common.
277         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
278         TS_TYPED instead of TS_COMMON.
279
280 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
281
282         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
283         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
284         (sse2_psadbw): Merge with *avx_psadbw.
285         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
286         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
287         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
288         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
289         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
290         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
291         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
292         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
293         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
294         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
295         (ssse3_palignrti): Merge with *avx_palignrti.
296
297 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
298
299         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
300         * tree-ssanames.c (fini_ssanames): VEC_free it.
301         (make_ssa_name_fn): Update for VECness of free_ssanames.
302         (release_ssa_name, release_dead_ssa_names): Likewise.
303         * tree.h (struct tree_ssa_name): Include tree_typed instead of
304         tree_common.
305         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
306         TS_TYPED instead of TS_COMMON.
307
308 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
309
310         * postreload-gcse.c (gcse_after_reload_main): Add calls to
311         statistics_counter_event.
312         * tree-ssa-copyrename.c (stats): Define.
313         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
314         statistics_counter_event.
315         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
316         (bswap_stats, widen_mul_stats): Define.
317         (insert_reciprocals): Increment rdivs_inserted.
318         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
319         rfuncs_inserted.  Add calls to statistics_counter_event.
320         (execute_cse_sincos_1): Increment inserted.
321         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
322         statistics_counter_event.
323         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
324         of bswap_stats.  Add calls to statistics_counter_event.
325         (convert_mult_to_widen): Increment widen_mults_inserted.
326         (convert_plusminus_to_widen): Increment maccs_inserted.
327         (convert_mult_to_fma): Increment fmas_inserted.
328         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
329         calls to statistics_counter_event.
330
331 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
332
333         PR rtl-optimization/48455
334         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
335         `temp_costs->mem_cost'.
336
337 2011-04-13  Jan Hubicka  <jh@suse.cz>
338
339         * ipa-inline.h: New file.
340         * ipa-inline-analysis.c: New file. Broken out of ...
341         * ipa-inline.c: ... this file; update toplevel comment;
342         include ipa-inline.h
343         (inline_summary): Move to ipa-inline.h
344         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
345         ipa-inline-analysis.c.
346         (cgraph_estimate_time_after_inlining): Rename to estiamte_time_after_inlining;
347         move to ipa-inline-analysis.c
348         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
349         to estimate_edge_growth.
350         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
351         rename to estimate_size_after_inlining.
352         (cgraph_mark_inline_edge): Update for new naming convention.
353         (cgraph_check_inline_limits): Likewise.
354         (cgraph_edge_badness): Likewise.
355         (cgraph_decide_recursive_inlining): Likewise.
356         (cgraph_decide_inlining_of_small_functions): Likewise.
357         (cgraph_decide_inlining_incrementally): Likewise.
358         (cgraph_estimate_growth): Rename to estimate_growth; move to ipa-inline-analysis.c.
359         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
360         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
361         (compute_inline_parameters): Likewise.
362         (compute_inline_parameters_for_current): Likewise.
363         (pass_inline_parameters): Likewise.
364         (inline_indirect_intraprocedural_analysis): Likewise.
365         (analyze_function): Rename to inline_analyze_function; likewise.
366         (add_new_function): Move to ipa-inline-analysis.c.
367         (inline_generate_summary): Likewise.
368         (inline_read_summary): Likewise.
369         (inline_write_summary): Likewise.
370         * Makefile.in (ipa-inline-analysis.c): New file.
371
372 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
373
374         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
375         * configure: Regenerate.
376
377 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
378
379         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
380         instead of tree_common.
381         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
382         Likewise.
383         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
384         TS_TYPED rather than TS_COMMON.
385         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
386
387 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
388
389         PR target/45263
390         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
391         r20 around calls of __tablejump_elpm__
392
393 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
394
395         PR middle-end/48591
396         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
397         NULL.
398         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
399
400 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
401
402         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
403         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
404         (cfi_vec): New typedef.
405         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
406         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
407         (cie_cfi_vec): New static variable.
408         (cie_cfi_head): Delete.
409         (add_cfi): Accept a cfi_vec * as first argument. All callers and
410         declaration changed. Use vector rather than list operations.
411         (new_cfi): Don't initialize the dw_cfi_next field.
412         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
413         rather than list operations.
414         (lookup_cfa): Use vector rather than list operations.
415         (output_cfis): New argument upto. Accept a cfi_vec rather than
416         a dw_cfi_ref list head as argument. All callers changed.
417         Iterate over the vector using upto as a maximum index.
418         (output_all_cfis): New static function.
419         (output_fde): Use vector rather than list operations. Use the
420         new upto argument for output_cfis rather than manipulating a
421         list.
422         (dwarf2out_begin_prologue): Change initializations to match
423         new struct members.
424         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
425         from the vector length rather than searching for the end of a list.
426         Use output_all_cfis.
427         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
428
429 2011-04-13  Nick Clifton  <nickc@redhat.com>
430
431         * config/rx/rx.md (movmemsi): Do not use this pattern when
432         volatile pointers are involved.
433
434 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
435
436         * config/i386/sse.md (pinsrbits): Remove.
437         (sse2_packsswb): Merge with *avx_packsswb.
438         (sse2_packssdw): Merge with *avx_packssdw.
439         (sse2_packuswb): Merge with *avx_packuswb.
440         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
441         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
442         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
443         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
444         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
445         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
446         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
447         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
448         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
449         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
450         (sse2_loadld): Merge with *avx_loadld.
451         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
452         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
453         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
454         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
455         (vec_concatv2di): Merge with *vec_concatv2di_avx.
456
457 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
458
459         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
460         calling TREE_CHAIN.
461         * print-tree.c (print_node): Likewise.
462         * tree-inline.c (copy_tree_r): Likewise.
463         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
464         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
465         instead of TS_COMMON.
466         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
467         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
468         (copy_node_stat): Zero TREE_CHAIN only if necessary.
469         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
470         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
471         ...and these...
472         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
473         * tree.h: ...here.
474         (TREE_CHAIN): Check for a TS_COMMON structure.
475         (TREE_TYPE): Check for a TS_TYPED structure.
476
477 2011-04-12  Pat Haugen <pthaugen@us.ibm.com>
478
479         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
480         cgraph_get_create_node instead of cgraph_node.
481
482 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
483
484         * c-parser.c (c_parser_initelt): Updated call to
485         objc_build_message_expr.
486         (c_parser_postfix_expression): Likewise.
487
488 2011-04-12  Kai Tietz  <ktietz@redhat.com>
489
490         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
491         MASK_MS_BITFIELD_LAYOUT bit.
492
493 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
494
495         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
496         assert it is always true.
497         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
498         moves.
499
500 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
501
502         * c-parser.c (c_lex_one_token): Rewritten conditional used when
503         compiling Objective-C to be more efficient.
504
505 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
506
507         * opts-common.c (decode_cmdline_options_to_array): Remove variable
508         argv_copied.
509
510 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
511
512         * recog.h, genoutput.c, optabs.c: Revert last patch.
513
514 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
515
516         PR target/48090
517         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
518
519 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
520
521         * recog.h (insn_operand_data): Add an "allows_mem" field.
522         * genoutput.c (output_operand_data): Initialize it.
523         * optabs.c (maybe_legitimize_operand_same_code): New function.
524         (maybe_legitimize_operand): Use it when matching the original
525         op->value.
526
527 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
528
529         * genpreds.c (process_define_predicate): Move most processing
530         to gensupport.c.  Continue to validate the expression.
531         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
532         (process_define_predicate): Move processing to gensupport.c.
533         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
534         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
535         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
536         argument.
537         (valid_predicate_name_p): New function, split out from old
538         genpreds.c:process_define_predicate.
539         (process_define_predicate): New function, combining code from
540         old genpreds.c and genrecog.c functions.
541         (process_rtx): Call it for DEFINE_PREDICATE and
542         DEFINE_SPECIAL_PREDICATE.
543
544 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
545
546         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
547         size of a '%A' memory reference.
548         (T_DREG, T_QREG): New neon_builtin_type_bits.
549         (arm_init_neon_builtins): Assert that the load and store operands
550         are neon_struct_operands.
551         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
552         (NEON_ARG_MEMORY): New builtin_arg.
553         (neon_dereference_pointer): New function.
554         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
555         Handle NEON_ARG_MEMORY.
556         (arm_expand_neon_builtin): Update after above interface changes.
557         Use NEON_ARG_MEMORY for loads and stores.
558         * config/arm/predicates.md (neon_struct_operand): New predicate.
559         * config/arm/iterators.md (V_two_elem): Tweak formatting.
560         (V_three_elem): Use BLKmode for accesses that have no associated mode.
561         (V_four_elem): Tweak formatting.
562         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
563         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
564         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
565         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
566         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
567         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
568         (neon_vst4<mode>): Replace pointer operand with a memory operand.
569         Use %A in the output template.
570         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
571         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
572         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
573         the width of the memory access.  Remove post-increment.
574         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
575
576 2011-04-12  Nick Clifton  <nickc@redhat.com>
577
578         * config/v850/v850.c (expand_prologue): Do not use the CALLT
579         instruction for interrupt handlers if the target is the basic V850
580         architecture.
581         (expand_epilogue): Likewise.
582
583 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
584
585         PR rtl-optimization/48549
586         * combine.c (propagate_for_debug): Also stop after BB_END of
587         this_basic_block.  Process LAST and just stop processing after it.
588         (combine_instructions): If last_combined_insn has been deleted,
589         set last_combined_insn to its PREV_INSN.
590
591 2011-04-12  Richard Guenther  <rguenther@suse.de>
592
593         PR tree-optimization/46076
594         * gimple.h (struct gimple_statement_call): Add fntype field.
595         (gimple_call_fntype): Adjust.
596         (gimple_call_set_fntype): New function.
597         * gimple.c (gimple_build_call_1): Set the call function type.
598         * gimplify.c (gimplify_call_expr): Preserve the function
599         type the frontend used for the call.
600         (gimplify_modify_expr): Likewise.
601         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
602         function type.
603         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
604         function type.
605         * tree-ssa.c (useless_type_conversion_p): Function pointer
606         conversions are useless.
607
608 2011-04-12  Martin Jambor  <mjambor@suse.cz>
609
610         * cgraph.h (cgraph_node): Remove function declaration.
611         (cgraph_create_node): Declare.
612         (cgraph_get_create_node): Likewise.
613         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
614         Updated all callers.
615         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
616         the decl does not already exist.  Call cgraph_get_create_node instead
617         of cgraph_node.
618         (cgraph_get_create_node): New function.
619         (cgraph_same_body_alias): Update comment.
620         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
621         assert it does not return NULL.
622         (cgraph_update_edges_for_call_stmt): Likewise.
623         (cgraph_clone_edge): Likewise.
624         (cgraph_create_virtual_clone): Likewise.
625         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
626         instead of cgraph_node.
627         (cgraph_add_new_function): Call cgraph_create_node or
628         cgraph_get_create_node instead of cgraph_node.
629         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
630         instead of cgraph_node.
631         (record_eh_tables): Likewise.
632         (mark_address): Likewise.
633         (mark_load): Likewise.
634         (build_cgraph_edges): Call cgraph_get_create_node instead
635         of cgraph_node.
636         (rebuild_cgraph_edges): Likewise.
637         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
638         instead of cgraph_node.
639         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
640         cgraph_node.
641         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
642         cgraph_create_node instead of cgraph_node.
643         * c-decl.c (finish_function): Call cgraph_get_create_node instead
644         of cgraph_node.
645         * lto-cgraph.c (input_node): Likewise.
646         * lto-streamer-in.c (input_function): Likewise.
647         * varasm.c (mark_decl_referenced): Likewise.
648         (assemble_alias): Likewise.
649
650 2011-04-12  Martin Jambor  <mjambor@suse.cz>
651
652         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
653         instead of cgraph_node and assert it does not return NULL.
654         * lto-streamer-in.c (lto_read_body): Likewise.
655         * omp-low.c (new_omp_context): Likewise.
656         (create_task_copyfn): Likewise.
657         * tree-emutls.c (lower_emutls_function_body): Likewise.
658         * matrix-reorg.c (transform_allocation_sites): Likewise.
659
660 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
661
662         PR c/48552
663         * c-typeck.c (build_asm_expr): Error out on attempts to use
664         void type outputs or inputs for constraints that allow reg or
665         don't allow memory.
666
667 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
668             Richard Earnshaw  <rearnsha@arm.com>
669
670         PR target/48250
671         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
672         to use sign-magnitude offsets. Reject unsupported unaligned
673         cases. Add detailed description in comments.
674         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
675         condition from TARGET_32BIT to TARGET_ARM.
676
677 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
678
679         * tree.h (struct typed_tree): New.
680         (struct tree_common): Include it instead of tree_base.
681         (TREE_TYPE): Update for new location of type field.
682         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
683         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
684         (union tree_node): Add typed field.
685         * treestruct.def (TS_TYPED): New.
686         * lto-streamer.c (check_handled_ts_structures): Handle it.
687         * tree.c (MARK_TS_TYPED): New macro.
688         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
689
690 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
691
692         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
693         (force_nonfallthru): Do not alter the loop nest if no basic block
694         was created.
695
696 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
697
698         * config/i386/sse.md (VI): New mode iterator.
699         (SSEMODEI): Remove.
700         (AVX256MODEI): Ditto.
701         (AVXMODEF4P): Ditto.
702         (avxvecpsmode): Ditto.
703         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
704         (sse2_andnot<mode>3): New expander.
705         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
706         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
707         (<any_logic:code><mode>3): Use VI mode iterator.
708         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
709         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
710         (*andnottf3): Handle AVX three-operand constraints.
711         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
712
713 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
714             Robert Millan  <rmh@gnu.org>
715
716         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
717         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
718         GNU_USER_DYNAMIC_LINKER64): Define.
719         (REG_NAME): Don't undefine.
720         (MD_UNWIND_SUPPORT): Undefine.
721         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
722         (REG_NAME): Don't undefine.
723         (MD_UNWIND_SUPPORT): Undefine.
724         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
725
726 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
727
728         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
729         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
730
731 2011-04-11  Xinliang David Li  <davidxl@google.com>
732
733         * value-profile.c (check_ic_target): New function.
734         (gimple_ic_transform): Sanity check indirect call target.
735         * gimple-low.c (gimple_check_call_args): Interface change.
736         (gimple_check_call_matching_types): New function.
737         * tree-inline.c (tree_can_inline_p): Call new function.
738
739 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
740
741         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
742         tree-pretty-print.h & realmpfr.h.
743
744 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
745
746         PR middle-end/48464
747         * ira.c (setup_pressure_classes): Fix typo in loop condition.
748         (setup_allocno_and_important_classes): Ditto.
749
750 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
751
752         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
753         GNU_USER_DYNAMIC_LINKER.
754         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
755         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
756         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
757         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
758         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
759         GNU_USER_TARGET_OS_CPP_BUILTINS.
760         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
761         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
762         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
763         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
764         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
765         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
766         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
767         GNU_USER_TARGET_OS_CPP_BUILTINS.
768         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
769         GNU_USER_DYNAMIC_LINKER.
770         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
771         GNU_USER_TARGET_OS_CPP_BUILTINS.
772         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
773         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
774         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
775         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
776         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
777         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
778         GNU_USER_DYNAMIC_LINKER64): Remove.
779         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
780         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
781         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
782         GNU_USER_DYNAMIC_LINKER.
783         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
784         GNU_USER_TARGET_OS_CPP_BUILTINS.
785         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
786         GNU_USER_TARGET_OS_CPP_BUILTINS.
787         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
788         to GNU_USER_TARGET_OS_CPP_BUILTINS.
789         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
790         GNU_USER_TARGET_OS_CPP_BUILTINS.
791         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
792         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
793         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
794         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
795         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
796         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
797         GNU_USER_DYNAMIC_LINKER.
798         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
799         GNU_USER_TARGET_OS_CPP_BUILTINS.
800         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
801         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
802         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
803         GNU_USER_DYNAMIC_LINKER.
804         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
805         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
806         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
807         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
808         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
809         GNU_USER_DYNAMIC_LINKER.
810         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
811         GNU_USER_DYNAMIC_LINKERN32.
812         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
813         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
814         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
815         GNU_USER_DYNAMIC_LINKER32.
816         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
817         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
818         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
819         GNU_USER_DYNAMIC_LINKER.
820         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
821         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
822         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
823         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
824         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
825         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
826         GNU_USER_DYNAMIC_LINKER32.
827         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
828         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
829         GNU_USER_DYNAMIC_LINKER.
830         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
831         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
832         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
833         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
834         GNU_USER_DYNAMIC_LINKER64.
835         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
836         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
837         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
838         GNU_USER_DYNAMIC_LINKER.
839         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
840         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
841         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
842         GNU_USER_DYNAMIC_LINKER.
843         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
844         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
845         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
846         GNU_USER_DYNAMIC_LINKER32.
847         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
848         GNU_USER_DYNAMIC_LINKER64.
849         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
850         GNU_USER_DYNAMIC_LINKER64.
851         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
852         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
853         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
854         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
855         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
856
857 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
858
859         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
860         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
861         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
862         GNU_USER_DYNAMIC_LINKER.
863         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
864         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
865         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
866         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
867         GNU_USER_DYNAMIC_LINKER64.
868         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
869         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
870         GNU_USER_LINK_EMULATION.
871         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
872         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
873         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
874         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
875         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
876         CPP_SPEC, CC1_SPEC): Remove.
877         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
878         (GNU_USER_DYNAMIC_LINKER): Define.
879         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
880         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
881         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
882         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
883         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
884         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
885         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
886         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
887         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
888         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
889         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
890         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
891         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
892         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
893         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
894         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
895         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
896         GNU_USER_DYNAMIC_LINKER.
897         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
898         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
899         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
900         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
901         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
902         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
903         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
904         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
905         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
906         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
907
908 2011-04-11  Kai Tietz  <ktietz@redhat.com>
909
910         PR target/9601
911         PR target/11772
912         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
913         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
914         comment.
915         (ix86_is_msabi_thiscall): Removed.
916         (ix86_is_type_thiscall): Likewise.
917         (ix86_get_callcvt): New function.
918         (ix86_comp_type_attributes): Simplify check.
919         (ix86_function_regparm): Use ix86_get_callcvt for calling
920         convention attribute checks.
921         (ix86_return_pops_args): Likewise.
922         (ix86_static_chain): Likewise.
923         (x86_this_parameter): Likewise.
924         (x86_output_mi_thunk): Likewise.
925         (ix86_function_type_abi): Optimize check for types without attributes.
926         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
927         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
928         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
929         by flag-values.
930         (IX86_BASE_CALLCVT): Helper macro.
931         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
932         Use ix86_get_callcvt for calling convention attribute checks and avoid
933         symbol-decoration for stdcall in TARGET_RTD case.
934         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
935         Likewise.
936         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
937         for declaration.
938
939 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
940
941         * config/i386/sse.md (VI_128): New mode iterator.
942         (VI12_128): Rename from SSEMODE12.
943         (VI14_128): Rename from SSEMODE14.
944         (VI124_128): New mode iterator.
945         (VI24_128): Rename from SSEMODE248.
946         (VI248_128): Rename from SSEMODE248.
947         (SSEMODE124C8): Remove.
948         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
949         (*sse2_<plusminus_insn><mode>3): Merge with
950         *avx_<plusminus_insn><mode>3.
951         (*mulv8hi3): Merge with *avx_mulv8hi3.
952         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
953         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
954         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
955         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
956         (ashr<mode>3): Merge with *avx_ashr<mode>3.
957         (lshr<mode>3): Merge with *avx_lshr<mode>3.
958         (ashl<mode>3): Merge with *avx_ashl<mode>3.
959         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
960         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
961         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
962         (*<smaxmin:code>v8hi3): Ditto.
963         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
964         (*<smaxmin:code>v16qi3): Ditto.
965         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
966         (*sse2_eq<mode>3): Ditto.
967         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
968         (*sse2_gt<mode>3): Ditto.
969         (vcondv2di): Split out of vcond<mode>.
970         (vconduv2di): Split out of vcondu<mode>.
971
972 2011-04-11  Richard Guenther  <rguenther@suse.de>
973
974         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
975         before calling tree_low_cst.
976
977 2011-04-11  Richard Guenther  <rguenther@suse.de>
978
979         * stor-layout.c (layout_type): Compute all array index size operations
980         in the original type.
981         (initialize_sizetypes): Add comment.
982         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
983
984 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
985
986         * common.opt (Tbss=, Tdata=, Ttext=): New options.
987
988 2011-04-11  Martin Jambor  <mjambor@suse.cz>
989
990         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
991         of cgraph_node, handle NULL return value.
992         (cgraph_global_info): Likewise.
993         (cgraph_rtl_info): Likewise.
994         * tree-inline.c (estimate_num_insns): Likewise.
995         * gimplify.c (unshare_body): Likewise.
996         (unvisit_body): Likewise.
997         (gimplify_body): Likewise.
998         * predict.c (optimize_function_for_size_p): Likewise.
999         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
1000         (call_may_clobber_ref_p_1): Likewise.
1001         * varasm.c (function_section_1): Likewise.
1002         (assemble_start_function): Likewise.
1003
1004 2011-04-11  Martin Jambor  <mjambor@suse.cz>
1005
1006         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
1007         of cgraph_node.
1008         * final.c (rest_of_clean_state): Likewise.
1009         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
1010         * passes.c (pass_init_dump_file): Likewise.
1011         (execute_all_ipa_transforms): Likewise.
1012         (function_called_by_processed_nodes_p): Likewise.
1013         * predict.c (maybe_hot_frequency_p): Likewise.
1014         (probably_never_executed_bb_p): Likewise.
1015         (compute_function_frequency): Likewise.
1016         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
1017         (unnest_nesting_tree_1): Likewise.
1018         (lower_nested_functions): Likewise.
1019         * tree-optimize.c (execute_fixup_cfg): Likewise.
1020         (tree_rest_of_compilation): Likewise.
1021         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
1022         * tree-sra.c (ipa_early_sra): Likewise.
1023         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
1024         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
1025         * ipa.c (record_cdtor_fn): Likewise.
1026         * ipa-inline.c (cgraph_early_inlining): Likewise.
1027         (compute_inline_parameters_for_current): Likewise.
1028         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
1029         * ipa-pure-const.c (local_pure_const): Likewise.
1030         * ipa-split.c (split_function): Likewise.
1031         (execute_split_functions): Likewise.
1032         * cgraphbuild.c (build_cgraph_edges): Likewise.
1033         (rebuild_cgraph_edges): Likewise.
1034         (cgraph_rebuild_references): Likewise.
1035         (remove_cgraph_callee_edges): Likewise.
1036         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
1037         (verify_cgraph_node): Likewise.
1038         (cgraph_analyze_functions): Likewise.
1039         (cgraph_preserve_function_body_p): Likewise.
1040         (save_inline_function_body): Likewise.
1041         (save_inline_function_body): Likewise.
1042         * tree-inline.c (copy_bb): Likewise.
1043         (optimize_inline_calls): Likewise.
1044
1045 2011-04-11  Martin Jambor  <mjambor@suse.cz>
1046
1047         PR tree-optimization/48195
1048         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
1049         ipa_check_create_edge_args.
1050         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
1051         ipa_check_create_edge_args.
1052         * ipa-inline.c (inline_generate_summary): Do not call
1053         ipa_check_create_node_params and ipa_check_create_edge_args.
1054         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
1055         ipa_check_create_edge_args.
1056
1057 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
1058
1059         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
1060         instead of loop.
1061         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
1062         * function.c (record_hard_reg_sets): Likewise.
1063         * ira.c (compute_regs_asm_clobbered): Likewise.
1064         * sched-deps.c (sched_analyze_1): Likewise.
1065         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
1066
1067 2011-04-09  Xinliang David Li  <davidxl@google.com>
1068
1069         PR tree-optimization/PR48484
1070         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
1071         has_valid_pred lazily
1072
1073 2011-04-09  Duncan Sands  <baldrick@free.fr>
1074
1075         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
1076
1077 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
1078
1079         * combine.c (combine_validate_cost): Adjust comments.  Set registered
1080         cost of I0 to zero at the end, if any.
1081
1082 2011-04-08  Xinliang David Li  <davidxl@google.com>
1083
1084         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
1085         to insane profile data.
1086
1087 2011-04-08  Xinliang David Li  <davidxl@google.com>
1088
1089         * final.c (dump_basic_block_info): New function.
1090         (final): Dump basic block.
1091         (final_scan_insn): Remove old dump.
1092
1093 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
1094
1095         PR target/47829
1096         * config.gcc (i386-*-freebsd): Disable unwind table generation for
1097         crtbegin/crtend.
1098
1099 2011-04-08  Michael Matz  <matz@suse.de>
1100
1101         PR middle-end/48389
1102         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
1103         functions.
1104         (rebuild_jump_labels): Call rebuild_jump_labels_1.
1105         * rtl.h (rebuild_jump_labels_chain): Declare.
1106         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
1107         insns inserted on edges.
1108
1109 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
1110
1111         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
1112         * config/arm/arm-arches.def: New.
1113         * config/arm/arm-opts.h: New.
1114         * config/arm/genopt.sh: New.
1115         * config/arm/arm-tables.opt: New (generated).
1116         * config/arm/arm.c (arm_handle_option, arm_target_help,
1117         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
1118         (all_architectures): Get most table contents from arm-arches.def.
1119         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
1120         arm_selected_tune here.
1121         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
1122         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
1123         (march=, mcpu=, mtune=): Use Enum and Var.
1124         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
1125         (arm.o): Update dependencies.
1126
1127 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
1128
1129         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
1130         of header_file.
1131         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
1132         (write_typed_alloc_defns): Likewise.
1133         (main): Calls write_typed_alloc_defns with output_header.
1134
1135 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
1136
1137         PR inline-asm/48435
1138         * ira-color.c (setup_profitable_hard_regs): Add comments.
1139         Don't take prohibited hard regs into account.
1140         (setup_conflict_profitable_regs): Rename to
1141         get_conflict_profitable_regs.
1142         (check_hard_reg_p): Check prohibited hard regs.
1143
1144 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
1145
1146         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
1147         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
1148         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
1149
1150 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1151
1152         PR target/48366
1153         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
1154         move from floating point to shift amount register .
1155         (emit_move_sequence): Remove secondary reload support for floating
1156         point to shift amount amount register copies.
1157         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
1158         amount register copies.
1159         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
1160         register, return false if mode isn't a scalar integer mode.
1161         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
1162
1163 2011-04-08  Richard Guenther  <rguenther@suse.de>
1164
1165         * gimple.c (gimple_call_flags): Remove kludge.
1166
1167 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1168
1169         * sel-sched.c (sel_region_init): Move call to
1170         sel_setup_region_sched_flags after setup_current_loop_nest.
1171
1172 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
1173
1174         PR rtl-optimization/48272
1175         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
1176         init_insn_reg_pressure_info.  Adjust a caller.
1177         * sched-int.h (init_insn_reg_pressure_info): Declare.
1178         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
1179         when sched-pressure is enabled.
1180
1181 2011-04-08  Richard Guenther  <rguenther@suse.de>
1182
1183         * gimple.c (gimple_set_modified): Do not queue calls to
1184         MODIFIED_NORETURN_CALLS here ...
1185         * tree-ssa-operands.c (update_stmt_operands): ... but here.
1186
1187 2011-04-08  Richard Guenther  <rguenther@suse.de>
1188
1189         PR lto/48467
1190         * toplev.c (lang_dependent_init): Do not open asm_out_file
1191         in WPA mode, nor perform debug machinery initialization.
1192         (finalize): Do not unlink asm_out_file in WPA mode.
1193
1194 2011-04-08  Richard Guenther  <rguenther@suse.de>
1195
1196         * gimple.h (gimple_call_fntype): New function.
1197         (gimple_call_return_type): Use it.
1198         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
1199         * gimple-low.c (gimple_check_call_args): Likewise.
1200         * gimple.c (gimple_call_flags): Likewise.
1201         (gimple_call_arg_flags): Likewise.
1202         (gimple_call_return_flags): Likewise.
1203         * tree-cfg.c (verify_gimple_call): Likewise.
1204         (do_warn_unused_result): Likewise.
1205         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
1206         * value-prof.c (gimple_ic_transform): Fix fndecl check.
1207
1208 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
1209
1210         PR rtl-optimization/48235
1211         * sel-sched.c (code_motion_process_successors): Recompute the last
1212         insn in basic block if control flow changed.
1213         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
1214         Update condition for ilist_remove.
1215
1216 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1217
1218         PR rtl-optimization/48302
1219         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
1220         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
1221         it to record added preheader blocks.
1222         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
1223         on to sel_add_loop_preheaders.
1224         (sel_region_init): Move call to setup_current_loop_nest after
1225         sel_init_bbs.
1226
1227 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1228
1229         PR target/48273
1230         * cfgloop.h (loop_has_exit_edges): New helper.
1231         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
1232         non-clonable.
1233         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
1234         that have no exit edges.
1235
1236 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1237
1238         PR rtl-optimization/48442
1239         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
1240         all callers.  Adjust assert.
1241
1242 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
1243
1244         PR tree-optimization/48377
1245         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
1246         is_packed to true even for types with smaller TYPE_ALIGN than
1247         TYPE_SIZE.
1248
1249 2011-04-08  Richard Guenther  <rguenther@suse.de>
1250
1251         PR bootstrap/48513
1252         * doc/tm.texi: Re-generate.
1253
1254 2011-04-08  Wei Guozhi  <carrot@google.com>
1255
1256         PR target/47855
1257         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
1258         * config/arm/arm.c (arm_attr_length_push_multi): New function.
1259         * config/arm/arm.md (*push_multi): Change the length computation to
1260         call a C function.
1261
1262 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
1263
1264         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
1265         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
1266         * doc/tm.texi: Regenerate.
1267         * system.h (ASM_OUTPUT_BSS): Poison.
1268         * varasm.c (asm_output_bss): Remove function.
1269         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
1270
1271         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
1272         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
1273         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
1274         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
1275         Likewise.
1276         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
1277         Likewise.
1278         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
1279         Likewise.
1280         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
1281
1282 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
1283
1284         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
1285         EnumValue lines.
1286
1287 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
1288
1289         * config/m68k/m68k.c (m68k_handle_option): Don't handle
1290         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
1291         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
1292         OPT_mcpu32.
1293         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
1294         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
1295         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
1296         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
1297         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
1298         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
1299         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
1300         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
1301         options.  Don't map other m68k options manually.  Don't handle
1302         old-style options as canonical.
1303         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
1304         * doc/install.texi (m68k-*-*): Document binutils version requirement.
1305
1306 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
1307
1308         * basic-block.h (force_nonfallthru): Move to...
1309         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
1310         (force_nonfallthru): ...here.
1311         * cfghooks.c (force_nonfallthru): New function.
1312         * cfgrtl.c (force_nonfallthru): Rename into...
1313         (rtl_force_nonfallthru): ...this.
1314         (commit_one_edge_insertion): Do not set AUX field.
1315         (commit_edge_insertions): Do not discover new basic blocks.
1316         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
1317         (cfg_layout_rtl_cfg_hooks): Likewise.
1318         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
1319         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
1320         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
1321
1322 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
1323
1324         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
1325         Remove macros.
1326
1327 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
1328
1329         * config/i386/sse.md: Update copyright year.
1330         (avxcvtvecmode): Remove.
1331         (sse_movhlps): Merge with *avx_movhlps.
1332         (sse_movlhps): Merge with *avx_movlhps.
1333         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
1334         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
1335         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
1336         (sse_loadhps): Merge with *avx_loadhps.
1337         (sse_storelps): Merge with *avx_storelps.
1338         (sse_loadlps): Merge with *avx_loadlps.
1339         (sse_movss): Merge with *avx_movss.
1340         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
1341         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
1342         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
1343         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
1344         (vec_set<mode>_0): Ditto.
1345         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
1346         (sse4_1_insertps): Merge with *avx_insertps.
1347         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
1348         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
1349         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
1350         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
1351         (sse2_storehpd): Merge with *avx_storehpd.
1352         (sse2_loadhpd): Merge with *avx_loadhpd.
1353         (sse2_loadlpd): Merge with *avx_loadlpd.
1354         (sse2_movsd): Merge with *avx_movsd.
1355         (*vec_concatv2df): Merge with *vec_concatv2df.
1356
1357 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
1358
1359         PR debug/48343
1360         * combine.c (combine_instructions): Add last_combined_insn,
1361         update it if insn is after it, pass it to all try_combine calls.
1362         (try_combine): Add last_combined_insn parameter, pass it instead of
1363         i3 to propagate_for_debug.
1364
1365 2011-04-07  Nick Clifton  <nickc@redhat.com>
1366
1367         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
1368         to handle MDR <-> data register transfers.
1369         (movhi_internal): Likewise.
1370
1371 2011-04-07  Alan Modra  <amodra@gmail.com>
1372
1373         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
1374         previous stack info.
1375
1376 2011-04-07  Tom de Vries  <tom@codesourcery.com>
1377
1378         PR target/43920
1379         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
1380         flow_find_cross_jump.  Swap variables to implement backward replacement.
1381         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
1382
1383 2011-04-07  Tom de Vries  <tom@codesourcery.com>
1384
1385         PR target/43920
1386         * cfgcleanup.c (walk_to_nondebug_insn): New function.
1387         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
1388         and bb2.
1389         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
1390         src1 or src2.  Redirect edges to the last basic block.  Update
1391         frequency and count on multiple basic blocks in case of fallthru.
1392
1393 2011-04-07  Tom de Vries  <tom@codesourcery.com>
1394
1395         PR target/43920
1396         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
1397         function.
1398         (old_insns_match_p): Change return type.  Replace return false/true
1399         with return dir_none/dir_both.  Use can_replace_by.
1400         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
1401         direction from dir_p.  Register replacement direction in dir, last_dir
1402         and afterlast_dir.  Handle new return type of old_insns_match_p using
1403         merge_dir.  Return replacement direction in dir_p.
1404         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
1405         return type of old_insns_match_p.
1406         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
1407         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
1408         flow_find_cross_jump.
1409         * basic-block.h (enum replace_direction): New type.
1410         (flow_find_cross_jump): Add parameter to declaration.
1411
1412 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
1413
1414         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
1415         (AVXMODEDCVTPS2DQ): Ditto.
1416         (VEC_FLOAT_MODE): Ditto.
1417         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
1418         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
1419         (<any_logic:code><mode>3): Use VF mode iterator.
1420         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
1421         Use VF mode iterator.
1422         (copysign<mode>3): Use VF mode iterator.
1423         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
1424         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
1425         (*<any_logic:code><MODEF:mode>3): Merge with
1426         *avx_<any_logic:code><MODEF:mode>3.
1427         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
1428         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
1429         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
1430         (avx_cvtdq2ps<avxmodesuffix>): Remove.
1431         (sse2_cvtdq2ps): Use %v modifier.
1432         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
1433         (avx_cvtps2dq<avxmodesuffix>): Remove.
1434         (sse2_cvtps2dq): Use %v modifier.
1435         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
1436         (avx_cvttps2dq<avxmodesuffix>): Remove.
1437         (sse2_cvttps2dq): Use %v modifier.
1438         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
1439         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
1440         (sse2_cvtsd2siq): Fix insn template.
1441         (sse2_cvtsd2siq_2): Ditto.
1442         (sse2_cvttsd2siq): Ditto.
1443         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
1444         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
1445
1446 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
1447
1448         * gcov-io.c: Use GCC Runtime Library Exception.
1449
1450 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
1451
1452         PR debug/48466
1453         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
1454         as base_reg whatever register reg has been eliminated to, instead
1455         of hardcoding STACK_POINTER_REGNUM.
1456
1457 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
1458
1459         * doc/tm.texi.in: Document C target hooks as separate from general
1460         target hooks.
1461         * doc/tm.texi: Regenerate.
1462         * genhooks.c (struct hook_desc): Add docname field.
1463         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
1464         docname field.
1465         (hook_array): Include c-target.def.
1466         (emit_documentation): Use docname field in output.
1467         (emit_init_macros): Take docname argument.  Only emit definitions
1468         for hooks matching docname.
1469         (main): Expect additional arguments in all cases.  Pass argument
1470         to emit_init_macros.
1471         * target.def: Move initial macro definitions and comments to
1472         target-hooks-macros.h.
1473         (gcc_targetcm): Move to c-family/c-target.def.
1474         * target.h (targetcm): Move declaration to c-family/c-target.h.
1475         * targhooks.c (default_handle_c_option): Move to
1476         c-family/c-opts.c.
1477         * targhooks.h (default_handle_c_option): Move declaration to
1478         c-family/c-common.h.
1479         * target-hooks-macros.h: New file.
1480         * config.gcc (target_has_targetcm): Define and use to add to
1481         c_target_objs and cxx_target_objs.
1482         * config/default-c.c: New file.
1483         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
1484         of target.h and target-def.h.
1485         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
1486         (darwin_objc_construct_string, darwin_cfstring_ref_p,
1487         darwin_check_cfstring_format_arg): Make static.
1488         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
1489         TARGET_STRING_OBJECT_REF_TYPE_P,
1490         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
1491         * config/darwin-protos.h (darwin_objc_construct_string,
1492         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
1493         declare.
1494         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
1495         TARGET_STRING_OBJECT_REF_TYPE_P,
1496         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
1497         * config/t-darwin (darwin-c.o): Update dependencies.
1498         * system.h (TARGET_HAS_TARGETCM): Poison.
1499         * Makefile.in (TARGET_H): Update.
1500         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
1501         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
1502         (default-c.o): New target.
1503         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
1504         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
1505         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
1506         c-target.def.
1507         (build/genhooks.o): Update dependencies.
1508
1509 2011-04-06  Richard Guenther  <rguenther@suse.de>
1510
1511         * ipa-inline.c (enum inlining_mode): Remove.
1512         (cgraph_flatten): Use some other token.
1513         (cgraph_edge_early_inlinable_p): New function, split out from ...
1514         (cgraph_perform_always_inlining): New function, split out from ...
1515         (cgraph_decide_inlining_incrementally): ... here.
1516         (cgraph_mark_inline_edge): Adjust.
1517         (cgraph_early_inlining): Re-structure.
1518         (pass_early_inline): Require SSA form.
1519
1520 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
1521             Julian Brown  <julian@codesourcery.com>
1522             Mark Shinwell  <shinwell@codesourcery.com>
1523
1524         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
1525         LO_REGS only for Thumb-1.
1526         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
1527         be used in short instructions when optimising for size on Thumb-2.
1528
1529 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
1530
1531         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
1532         associated with user returns to be preserved.
1533
1534 2011-04-06  Tristan Gingold  <gingold@adacore.com>
1535
1536         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
1537         symbol_queue_size, DBXOUT_DECR_NESTING,
1538         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
1539         if XCOFF_DEBUGGING_INFO.
1540
1541 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
1542
1543         * config/i386/i386.md (attribute isa): New.
1544         (attribute enabled): New.
1545         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
1546         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
1547         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
1548         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
1549         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
1550         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
1551         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
1552         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
1553
1554         * config/i386/sse.md (VF): New mode iterator.
1555         (VF1): Ditto.
1556         (VF2): Ditto.
1557         (VF_128): Ditto.
1558         (SSEMODEF4): Remove.
1559         (attribute sse): Handle V8SF and V4DF modes.
1560         (<absneg:code><mode>2): Use VF mode iterator.
1561         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
1562         mode iterator.
1563         (<plusminus_insn><mode>3): Use VF mode iterator.
1564         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
1565         Use VF mode iterator.
1566         (<sse>_vm<plusminus_insn><mode>3): Merge with
1567         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
1568         (mul<mode>3): Use VF mode iterator.
1569         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
1570         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
1571         mode iterator.
1572         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
1573         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
1574         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
1575         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
1576         mode iterator.
1577         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
1578         Use VF1 mode iterator.
1579         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
1580         (sqrt<VF2:mode>2): New expander.
1581         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
1582         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
1583         and sqrtv2df2.  Use VF mode iterator.
1584         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
1585         mode iterator.
1586         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
1587         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
1588         Use VF1 mode iterator.
1589         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
1590         (<smaxmin:code><mode>3): Use VF mode iterator.
1591         (*<smaxmin:code><mode>3_finite): Merge with
1592         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
1593         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
1594         (<sse>_vm<smaxmin:code><mode>2): Merge with
1595         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
1596         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
1597         mode iterator.
1598         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
1599         mode iterator.
1600         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
1601         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
1602         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
1603         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
1604         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
1605         VF mode iterator.
1606         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
1607         Use VF_128 mode iterator.
1608         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
1609         mode iterator.
1610         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
1611         VF_128 mode iterator.
1612         (vcond<mode>): Use VF mode iterator.
1613         * config/i386/predicates.md (sse_comparison_operator): Merge with
1614         avx_comparison_float_operator.  Do not declare as special_predicate.
1615         * config/i386/i386.c (struct builtin_description): Update for renamed
1616         compare patterns.
1617         (ix86_expand_args_builtin): Ditto.
1618         (ix86_expand_sse_compare_mask): Ditto.
1619
1620 2011-04-06  Richard Guenther  <rguenther@suse.de>
1621
1622         * tree-inline.c (estimate_num_insns): For calls simply account
1623         for all passed arguments and a used return value.
1624
1625 2011-04-06  Richard Guenther  <rguenther@suse.de>
1626
1627         PR tree-optimization/47663
1628         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
1629         call_stmt_time fields.
1630         (cgraph_edge_inlinable_p): Declare.
1631         (cgraph_edge_recursive_p): New inline function.
1632         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
1633         (cgraph_clone_edge): Copy it.
1634         * ipa-inline.c (cgraph_estimate_edge_time): New function.
1635         Account for call stmt time.
1636         (cgraph_estimate_time_after_inlining): Take edge argument.
1637         (cgraph_estimate_edge_growth): Account call stmt size.
1638         (cgraph_estimate_size_after_inlining): Take edge argument.
1639         (cgraph_mark_inline_edge): Adjust.
1640         (cgraph_check_inline_limits): Likewise.
1641         (cgraph_recursive_inlining_p): Remove.
1642         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
1643         (cgraph_decide_recursive_inlining): Take edge argument and
1644         adjust.
1645         (cgraph_decide_inlining_of_small_functions): Do not avoid
1646         diags for recursive inlining here.
1647         (cgraph_flatten): Adjust.
1648         (cgraph_decide_inlining_incrementally): Likewise.
1649         (estimate_function_body_sizes): Remove call cost handling.
1650         (compute_inline_parameters): Initialize caller edge call costs.
1651         (cgraph_estimate_edge_growth): New function.
1652         (cgraph_estimate_growth): Use it.
1653         (cgraph_edge_badness): Likewise.
1654         (cgraph_check_inline_limits): Take an edge argument.
1655         (cgraph_decide_inlining_of_small_functions): Adjust.
1656         (cgraph_decide_inlining): Likewise.
1657         * tree-inline.c (estimate_num_insns): Only account for call
1658         return value if it is used.
1659         (expand_call_inline): Avoid diagnostics on recursive inline
1660         functions here.
1661         * lto-cgraph.c (lto_output_edge): Output edge call costs.
1662         (input_edge): Input edge call costs.
1663
1664 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1665
1666         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
1667
1668 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
1669
1670         * doc/invoke.texi (Spec Files): Fix typo.
1671
1672 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
1673
1674         * profile.c (branch_prob): Move declaration of local variable.  Remove
1675         obsolete ??? comment.  Expand the location explicitly instead of using
1676         the LOCATION_FILE and LOCATION_LINE macros.
1677
1678 2011-04-06  Wei Guozhi  <carrot@google.com>
1679
1680         PR target/47855
1681         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
1682         (arm_cond_branch): Likewise.
1683         (arm_cond_branch_reversed): Likewise.
1684         (arm_jump): Likewise.
1685         (push_multi): Likewise.
1686         * config/arm/constraints.md (Py): New constraint.
1687
1688 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1689
1690         PR bootstrap/48471
1691         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
1692         Move these...
1693         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
1694         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
1695         #ifdef DBX_DEBUGGING_INFO.
1696
1697 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
1698
1699         PR bootstrap/48403
1700         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1701         if old and new states differ.
1702
1703 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
1704
1705         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
1706         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
1707         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
1708         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
1709         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
1710         mcfv4e): Use Alias.
1711         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
1712         ColdFire options to -mcpu= options.
1713
1714 2011-04-05  Jeff Law  <law@redhat.com>
1715
1716         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
1717         check if BB is a successor of LOOP->header and return
1718         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
1719
1720 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
1721
1722         * cprop.c (struct reg_use): Remove.
1723         (reg_use_table): Make an array of RTX.
1724         (find_used_regs, constprop_register, local_cprop_pass,
1725         bypass_block): Simplify users of reg_use_table.
1726         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
1727         on one of the uses found by find_used_regs.
1728
1729 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1730
1731         PR bootstrap/48469
1732         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
1733         declaration.
1734
1735 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1736
1737         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
1738         as an rtx.
1739         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
1740
1741 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
1742
1743         PR middle-end/48441
1744         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
1745
1746 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1747
1748         * combine.c: Include obstack.h.
1749         (struct insn_link): Define.
1750         (uid_log_links): Adjust type.
1751         (FOR_EACH_LOG_LINK): New macro.
1752         (insn_link_obstack): Declare.
1753         (alloc_insn_link): Define.
1754         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
1755         type of link variables.
1756         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
1757         (try_combine, record_promoted_values, distribute_notes): Likewise.
1758         (distribute_links): Likewise.  Tweak prototype.
1759         (clear_log_links): Delete.
1760         (adjust_for_new_dest): Call alloc_insn_link.
1761         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
1762
1763 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1764
1765         * gcse.c (modify_mem_list): Convert to an array of VECs.
1766         (canon_modify_mem_list, compute_transp): Tweak formatting.
1767         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
1768         (load_killed_in_block_p): Likewise.
1769         (record_last_mem_set_info): Likewise.
1770         (clear_modify_mem_tables): Likewise.
1771
1772 2011-04-05  Tom de Vries  <tom@codesourcery.com>
1773
1774         PR middle-end/48461
1775         * function.c (emit_use_return_register_into_block): Only define if
1776         HAVE_return.
1777
1778 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
1779
1780         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
1781
1782 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
1783
1784         * config/rx/rx-opts.h: New.
1785         * config/rx/rx.c (rx_cpu_type): Remove.
1786         (rx_handle_option): Don't assert that global structures are in
1787         use.  Access variables via opts pointer.  Defer most handling of
1788         OPT_mint_register_.  Use error_at.
1789         (rx_option_override): Handle deferred OPT_mint_register_ here.
1790         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
1791         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
1792         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
1793         (rx_cpu_types): New Enum and EnumValue entries.
1794         (mint-register=): Use Defer and use Var accordingly.
1795
1796 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1797
1798         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
1799         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
1800         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
1801         Move these...
1802         (debug_free_queue, debug_nesting, symbol_queue_index):
1803         ...and these...
1804         * dbxout.c: ...to here.  Make static.
1805
1806 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1807
1808         * gcse.c (modify_pair): Define.  Define a VEC of it.
1809         (canon_modify_mem_list): Convert to an array of VECs.
1810         (free_insn_expr_list_list): Delete.
1811         (clear_modify_mem_tables): Call VEC_free instead.
1812         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
1813         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
1814         (canon_list_insert, compute_transp): Likewise.
1815
1816 2011-04-05  Tom de Vries  <tom@codesourcery.com>
1817
1818         PR target/43920
1819         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
1820         for size.
1821
1822 2011-04-05  Tom de Vries  <tom@codesourcery.com>
1823
1824         PR target/43920
1825         * function.c (emit_use_return_register_into_block): New function.
1826         (thread_prologue_and_epilogue_insns): Use
1827         emit_use_return_register_into_block.
1828
1829 2011-04-05  Tom de Vries  <tom@codesourcery.com>
1830
1831         PR target/43920
1832         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
1833         insn.
1834
1835 2011-04-05  Tom de Vries  <tom@codesourcery.com>
1836
1837         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
1838
1839 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
1840
1841         * config/arm/arm.md (define_constants for unspec): Replace with
1842         define_c_enum.
1843         (define_constants for unspecv): Replace with define_c_enum.
1844         * config/arm/neon.md (define_constants for unspec): Replace with
1845         define_c_enum.
1846
1847 2011-04-04  Richard Henderson  <rth@redhat.com>
1848
1849         PR bootstrap/48400
1850         * dwarf2out.c (output_line_info): Always emit line info from
1851         at least one section.
1852         (dwarf2out_init): Create text_section_line_info here ...
1853         (set_cur_line_info_table): ... not here.
1854
1855 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
1856
1857         PR target/48380
1858         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
1859         not called.
1860
1861         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
1862
1863 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
1864
1865         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
1866         (expr_equiv_p): Remove.
1867         (insert_set_in_table): Look at <dest, src> pair instead of expr.
1868         (hash_scan_set): Update call to insert_set_in_table.
1869         (dump_hash_table): Dump <dest, src> pair.
1870         (lookup_set): Simplify.  Lookup <dest, src> pair.
1871         (compute_transp): Remove, fold heavily simplified code into...
1872         (compute_local_properties): ...here.  Expect COMP and TRANSP
1873         unconditionally.
1874         (find_avail_set): Take set directly from struct expr.
1875         (find_bypass-set): Likewise.
1876         (bypass_block): Likewise.
1877         (cprop_insn): Likewise.  Remove redundant INSN_P test.
1878
1879         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
1880         checks on form of COND from find_implicit_sets to here.
1881         (find_implicit_sets): Cleanup control flow. Split critical edges
1882         if it exposes implicit sets.  Allocate/resize implicit_sets as
1883         necessary.
1884         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
1885         changed something.  Run df_analyze after find_implicit_sets if any
1886         edges were split.  Do not allocate implicit_sets here.
1887
1888         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
1889         (gcse_obstack): Renamed to cprop_obstack.
1890         (GNEW, GNEWVEC, GNEWVAR): Remove.
1891         (gmalloc): Remove.
1892         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
1893         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
1894         (gcse_alloc): Likewise, and rename to cprop_alloc.
1895         (alloc_gcse_men, free_gcse_mem): Remove.
1896         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
1897         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
1898         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
1899
1900         * cprop.c (oprs_not_set_p): Remove.
1901         (mark_set, mark_clobber): Remove.
1902         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
1903         (reg_not_set_p): New function.
1904         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
1905         (cprop_insn): Likewise.
1906         (cprop_jump): Use FOR_EACH_EDGE.
1907
1908 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
1909
1910         PR bootstrap/48403
1911         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
1912         (rank_for_schedule): Use scheduled_insns vector instead of
1913         last_scheduled_insn.
1914         (ok_for_early_queue_removal): Likewise.
1915         (queue_to_ready): Search forward in nonscheduled_insns_begin if
1916         we have a dbg_cnt.
1917         (choose_ready): Likewise.
1918         (commit_schedule): Use VEC_iterate.
1919         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
1920         a dbg_cnt, use it and ensure the first insn is in the ready list.
1921         (haifa_sched_init): Allocate scheduled_insns.
1922         (sched_extend_ready_list): Don't allocate it; reserve space.
1923         (haifa_sched_finish): Free it.
1924
1925 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
1926
1927         * optc-gen.awk: Always remove type from Variable entry before
1928         recording in var_seen.
1929
1930 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
1931
1932         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
1933         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
1934         call to tidy_fallthru_edges.
1935
1936 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
1937
1938         * doc/options.texi (ToLower): Document.
1939         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
1940         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
1941         * opts.h (cl_option): Add cl_tolower field.
1942         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
1943         arguments with lowercase strings.
1944         * config/rx/rx.opt (mcpu=): Add ToLower.
1945         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
1946         argument.
1947
1948 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
1949
1950         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
1951
1952 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
1953
1954         * config/vax/vax.c: Include reload.h.
1955
1956 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
1957
1958         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
1959         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
1960         (sparc_preferred_reload_class): New function.
1961
1962 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
1963
1964         PR debug/48401
1965         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
1966         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
1967
1968 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
1969
1970         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
1971         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
1972
1973 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
1974
1975         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
1976         (ASM_OUTPUT_ALIGNED_BSS): Define.
1977
1978 2011-04-03  Michael Matz  <matz@suse.de>
1979
1980         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
1981         and next_slot members.
1982         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
1983         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
1984         (lto_streamer_cache_append): Declare.
1985         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
1986         unsigned index, remove offset parameter, ensure that we append
1987         or update existing entries.
1988         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
1989         parameter, update next_slot for append.
1990         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
1991         parameter.
1992         (lto_streamer_cache_insert_at): Likewise.
1993         (lto_streamer_cache_append): New function.
1994         (lto_streamer_cache_lookup): Use unsigned index.
1995         (lto_streamer_cache_get): Likewise.
1996         (lto_record_common_node): Don't test tree_node_can_be_shared.
1997         (preload_common_node): Adjust call to lto_streamer_cache_insert.
1998         (lto_streamer_cache_delete): Don't free offsets member.
1999         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
2000         (lto_output_string_with_length): Use lto_output_data_stream.
2001         (lto_output_tree_header): Remove ix parameter, don't write it.
2002         (lto_output_builtin_tree): Likewise.
2003         (lto_write_tree): Adjust callers to above, don't track and write
2004         offset, write unsigned index.
2005         (output_unreferenced_globals): Don't emit all global vars.
2006         (write_global_references): Use unsigned indices.
2007         (lto_output_decl_state_refs): Likewise.
2008         (write_symbol): Likewise.
2009         * lto-streamer-in.c (lto_input_chain): Move earlier.
2010         (input_function): Use unsigned index.
2011         (input_alias_pairs): Don't read and then ignore all global vars.
2012         (lto_materialize_tree): Remove ix_p parameter, don't read index,
2013         don't pass it back, use lto_streamer_cache_append.
2014         (lto_register_var_decl_in_symtab): Use unsigned index.
2015         (lto_register_function_decl_in_symtab): Likewise.
2016         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
2017         index.
2018         (lto_get_builtin_tree): Don't read index, use
2019         lto_streamer_cache_append.
2020         (lto_read_tree): Adjust call to lto_materialize_tree.
2021
2022         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
2023         don't use function calls in arguments to MIN.
2024
2025         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
2026         twice.
2027
2028         * gimple.c (gimple_type_leader_entry): Mark deletable.
2029
2030 2011-04-03  Alan Modra  <amodra@gmail.com>
2031
2032         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
2033
2034 2011-04-03  Michael Matz  <matz@suse.de>
2035
2036         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
2037         an integer.
2038         * tree.h (tree_decl_non_common.vindex): Adjust comment.
2039
2040 2011-04-03  Michael Matz  <matz@suse.de>
2041
2042         * cgraphbuild.c (record_reference): Canonicalize constructor values.
2043         * gimple-fold.c (canonicalize_constructor_val): Accept being called
2044         without function context.
2045         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
2046         current_function_decl and cfun.
2047
2048 2011-04-03  Michael Matz  <matz@suse.de>
2049
2050         * tree.c (decl_init_priority_insert): Don't create entry for
2051         default priority.
2052         (decl_fini_priority_insert): Ditto.
2053         (fields_compatible_p, find_compatible_field): Remove.
2054         * tree.h (fields_compatible_p, find_compatible_field): Remove.
2055         * gimple.c (gimple_compare_field_offset): Adjust block comment.
2056
2057 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
2058
2059         * combine.c (try_combine): Remove useless local variable.
2060
2061 2011-04-03  Richard Guenther  <rguenther@suse.de>
2062             Ira Rosen  <ira.rosen@linaro.org>
2063
2064         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
2065         non-variable offsets and compare the remaining bases of the two
2066         accesses instead of looking for exact same data-ref.
2067
2068 2011-04-02  Kai Tietz  <ktietz@redhat.com>
2069
2070         PR target/48416
2071         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
2072
2073         * i386.c (ix86_is_msabi_thiscall): New helper function.
2074         (ix86_is_type_thiscall): New helper function.
2075         (ix86_comp_type_attributes): Handle thiscall for method-functions
2076         special.
2077         (init_cumulative_args): Likewise.
2078         (find_drap_reg): Likewise.
2079         (ix86_static_chain): Likewise.
2080         (x86_this_parameter): Likewise.
2081         (x86_output_mi_thunk): Likewise.
2082
2083 2011-04-01  Olivier Hainque  <hainque@adacore.com>
2084             Nicolas Setton  <setton@adacore.com>
2085             Eric Botcazou  <ebotcazou@adacore.com>
2086
2087         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
2088         (add_gnat_descriptive_type_attribute): New function.
2089         (gen_array_type_die): Call it.
2090         (gen_enumeration_type_die): Likewise.
2091         (gen_struct_or_union_type_die): Likewise.
2092         (modified_type_die): Likewise.
2093         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
2094         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
2095         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
2096
2097 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
2098
2099         PR bootstrap/48148
2100         * dwarf2out.c (resolve_addr): Don't call force_decl_die
2101         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
2102
2103         Revert:
2104         2011-03-17  Richard Guenther  <rguenther@suse.de>
2105
2106         PR bootstrap/48148
2107         * lto-cgraph.c (input_overwrite_node): Clear the abstract
2108         origin for decls in other ltrans units.
2109         (input_varpool_node): Likewise.
2110
2111 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
2112
2113         PR middle-end/48335
2114         * expr.c (expand_assignment): Handle all possibilities
2115         if TO_RTX is CONCAT.
2116         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
2117         (store_split_bit_field): If SUBREG_REG (op0) or
2118         op0 itself has smaller mode than word, return it
2119         for offset 0 and const0_rtx for out-of-bounds stores.
2120         If word is const0_rtx, skip it.
2121
2122 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
2123
2124         * config/h8300/h8300.c (print_operand_address): Rename to...
2125         (h8300_print_operand_address): ...this. Make static. Adjust comments.
2126         Call h8300_print_operand and h8300_print_operand_address instead of
2127         print_operand and print_operand_address. Declare.
2128         (print_operand): Renake to...
2129         (h8300_print_operand): ...this. Make static. Adjust comments.
2130         Call h8300_print_operand instead of print_operand. Declare.
2131         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
2132         (h8300_register_move_cost): Likewise.
2133         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
2134         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
2135         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
2136         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
2137         * config/h8300/h8300-protos.h (print_operand): Delete.
2138         (print_operand_address): Delete.
2139
2140 2011-04-01  Richard Henderson  <rth@redhat.com>
2141
2142         PR 48400
2143         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
2144         in strict mode before dwarf4.  Re-order tests to early out
2145         before switching sections.
2146
2147 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
2148
2149         * config/h8300/constraints.md: New file.
2150         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
2151         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
2152         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
2153         * config/h8300/predicates.md (bit_operand): Likewise.
2154         (incdec_operand): Use satisfies_constraint_M and
2155         satisfies_constraint_O.  Don't use C code block.
2156         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
2157         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
2158         (compute_mov_length): Use satisfies_constraint_G.
2159         (fix_bit_operand): Use satisfies_constraint_U.
2160         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
2161         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
2162         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
2163         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
2164         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
2165         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
2166         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2167         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
2168         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
2169         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
2170         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
2171         (EXTRA_MEMORY_CONSTRAINT): Delete.
2172
2173 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
2174             Michael Meissner  <meissner@linux.vnet.ibm.com>
2175
2176         PR target/48262
2177         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
2178         operands, as per the specifications.
2179
2180         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
2181         (vec_extract_evenv4sf): Ditto.
2182         (vec_extract_evenv8hi): Ditto.
2183         (vec_extract_evenv16qi): Ditto.
2184         (vec_extract_oddv4si): Ditto.
2185
2186 2011-03-31  Mark Wielaard  <mjw@redhat.com>
2187
2188         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
2189         high_pc attribute if the CU has no associated code. Only output
2190         DW_AT_entry_pc for CU if not generating strict dwarf and
2191         dwarf_version < 4.
2192
2193 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
2194
2195         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
2196         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
2197         out of ...
2198         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
2199         * final.c (final_start_function): Call the new function rather
2200         than using a NULL argument for dwarf2out_frame_debug.
2201
2202         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
2203         that contains the prologue.
2204
2205         * haifa-sched.c (queue_insn): New arg REASON.  All callers
2206         changed.  Print it in debugging output.
2207
2208         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
2209
2210         * sched-ebb.c (begin_schedule_ready): Remove second argument.
2211         Split most of the code into...
2212         (begin_move_insn): ... here.  New function.
2213         (ebb_sched_info): Add a pointer to it.
2214         * haifa-sched.c (scheduled_insns): New static variable.
2215         (sched_extend_ready_list): Allocate it.
2216         (schedule_block): Use it to record the order of scheduled insns.
2217         Perform RTL changes to move insns only after all scheduling
2218         decisions have been made.
2219         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
2220         begin_move_insn field.
2221         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
2222         * sched-int.h (struct haifa_sched_info): Remove second argument
2223         from begin_schedule_ready hook.  Add new member begin_move_insn.
2224         * sched-rgn.c (begin_schedule_ready): Remove second argument.
2225         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
2226
2227         * haifa-sched.c (prune_ready_list): New function, broken out of
2228         schedule_block.
2229         (schedule_block): Use it.
2230
2231 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2232
2233         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
2234
2235 2011-04-01  Kai Tietz  <ktietz@redhat.com>
2236
2237         * config.gcc (*-*-mingw*): Allow as option the
2238         posix threading model.
2239         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
2240         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
2241         definition.
2242         (CPP_SPEC): Add pthread/no-pthread handling.
2243         (LIB_SPEC): Likewise.
2244         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
2245         (LIB_SPEC): Likewise.
2246         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
2247         flag to pass -pthread option for shared libgcc build.
2248         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
2249         for shared libgcc build.
2250         * config/i386/t-mingw-pthread: New file.
2251         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
2252         New define to enable use of library pthread by default.
2253         * config/i386/mingw.opt (pthread): New driver option.
2254         (no-pthread): New driver option.
2255         * config/i386/cygming.opt: Make sure trailing empty line is retained.
2256         * config/i386/mingw-w64.opt: Likewise.
2257
2258 2011-04-01  Gary Funck <gary@intrepid.com>
2259
2260         * c-decl.c (grokdeclarator): Fix formatting.
2261
2262 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
2263
2264         * expr.c (emit_block_move_via_movmem): Use n_generator_args
2265         instead of n_operands.
2266         (set_storage_via_setmem): Likewise.
2267         * optabs.c (maybe_gen_insn): Likewise.
2268         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
2269         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
2270         (mips_expand_builtin_direct): Likewise.
2271         * config/spu/spu.c (expand_builtin_args): Likewise.
2272
2273 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
2274
2275         * recog.h (insn_data_d): Add n_generator_args.
2276         * genoutput.c (data): Likewise.
2277         (output_insn_data): Print it.
2278         (max_opno, num_dups): Delete.
2279         (scan_operands): Just fill in "d->operand[...]".
2280         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
2281
2282 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
2283
2284         * gensupport.h (pattern_stats): New structure.
2285         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
2286         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
2287         (max_operand_1, max_operand_vec): Delete.
2288         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
2289
2290 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
2291
2292         * emit-rtl.c (emit_pattern_after_setloc): New function.
2293         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
2294         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
2295         (emit_pattern_after): New function.
2296         (emit_insn_after, emit_jump_insn_after): Call it.
2297         (emit_call_insn_after, emit_debug_insn_after): Likewise.
2298         (emit_pattern_before_setloc): New function.
2299         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
2300         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
2301         Likewise.
2302         (emit_pattern_before): New function.
2303         (emit_insn_before, emit_jump_insn_before): Call it.
2304         (emit_call_insn_before, emit_debug_insn_before): Likewise.
2305
2306 2011-03-31  Richard Henderson  <rth@redhat.com>
2307
2308         * dwarf2out.c (dw_separate_line_info_ref): Remove.
2309         (dw_separate_line_info_entry): Remove.
2310         (enum dw_line_info_opcode): New.
2311         (dw_line_info_entry): Use it.
2312         (dw_line_info_table, dw_line_info_table_p): New.
2313         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
2314         (line_info_table, line_info_label_num): Remove.
2315         (line_info_table_in_use): Remove.
2316         (separate_line_info_table): Remove.
2317         (separate_line_info_table_allocated): Remove.
2318         (separate_line_info_table_in_use): Remove.
2319         (LINE_INFO_TABLE_INCREMENT): Remove.
2320         (line_info_label_num): New.
2321         (cur_line_info_table): New.
2322         (text_section_line_info, cold_text_section_line_info): New.
2323         (separate_line_info): New.
2324         (SEPARATE_LINE_CODE_LABEL): Remove.
2325         (print_dwarf_line_table): Remove.
2326         (debug_dwarf): Don't dump it.
2327         (output_one_line_info_table): New.
2328         (output_line_info): Use it.
2329         (new_line_info_table): New.
2330         (set_cur_line_info_table): New.
2331         (dwarf2out_switch_text_section): Use it.
2332         (dwarf2out_begin_function): Likewise.
2333         (push_dw_line_info_entry): New.
2334         (dwarf2out_source_line): Rewrite for new line info tables.
2335         (dwarf2out_init): Remove dead initailizations.
2336
2337 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
2338
2339         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
2340         various flags.
2341         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
2342         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
2343         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
2344         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
2345         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
2346         * opt-functions.awk (flag_init, switch_bit_fields): New.
2347         (switch_flags): Don't handle flags moved to bit-fields.  Don't
2348         generate CL_MISSING_OK or CL_SAVE.
2349         * optc-gen.awk: Update to generate bit-field output as well as
2350         flags field.
2351         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
2352         bit-field instead of CL_REJECT_DRIVER flag.
2353         * opts-common.c (generate_canonical_option,
2354         decode_cmdline_option): Use bit-fields instead of CL_* flags.
2355         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
2356         instead of CL_REJECT_NEGATIVE flag.
2357         * toplev.c (print_switch_values): Use cl_report bit-field instead
2358         of CL_REPORT flag.
2359
2360 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
2361
2362         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
2363         a zero minimum index only if it is redundant.
2364
2365 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
2366
2367         PR rtl-optimization/48381
2368         * ira-color.c (assign_hard_reg): Use hard reg set intersection
2369         instead of ira_class_hard_reg_index for calculating conflicting
2370         hard registers.
2371
2372 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
2373
2374         * cprop.c: Clean up hash table building.
2375         (reg_avail_info): Remove.
2376         (oprs_available_p): Remove.
2377         (record_last_reg_set_info): Remove.
2378         (record_last_set_info): Remove.
2379         (reg_available_p): New function.
2380         (gcse_constant_p): Do not treat unfolded conditions as constants.
2381         (make_set_regs_unavailable): New function.
2382         (hash_scan_set): Simplify with new reg_available_p.
2383         (compute_hash_table_work): Traverse insns stream only once.
2384         Do not compute reg_avail_info. Traverse insns in reverse order.
2385         Record implicit sets after recording explicit sets from the block.
2386
2387 2011-03-31  Michael Matz  <matz@suse.de>
2388
2389         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
2390
2391 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
2392
2393         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
2394         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
2395         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
2396         (h8300_mode_dependent_address_p): New function.
2397         (h8300_get_index): Make static.
2398
2399 2011-03-31  Jeff Law  <law@redhat.com>
2400
2401         * reload1.c (elimination_effects): Fix typo in recent change.
2402
2403         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
2404         typo potentially leading to null pointer dereference.
2405
2406         * caller-save.c (new_saved_hard_reg): Eliminate return value.
2407         (setup_save_areas): Corresponding changes to avoid useless
2408         assignments.
2409
2410         * jump.c (reversed_comparison_code_parts): Avoid successive return
2411         statements when REVERSE_CONDITION is defined.
2412
2413         * expr.c (expand_assignment): Avoid useless assignments.
2414         (expand_expr_real_1): Likewise.
2415         (expand_expr_real_2): Avoid useless statements.
2416
2417         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
2418
2419         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
2420
2421         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
2422         statements.
2423
2424         * stmt.c (expand_expr_stmt): Avoid useless assignment.
2425
2426 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
2427
2428         PR target/47109
2429         * doc/tm.texi.in (TARGET_VERSION): Remove.
2430         * doc/tm.texi: Regenerate.
2431         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
2432         * collect2.c (main): Don't use TARGET_VERSION.
2433         * mips-tdump.c (main): Don't use TARGET_VERSION.
2434         * mips-tfile.c (main): Don't use TARGET_VERSION.
2435         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
2436         * config/rs6000/vxworksae.h: Remove.
2437         * config/alpha/alpha.h (TARGET_VERSION): Remove.
2438         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
2439         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
2440         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
2441         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
2442         * config/arm/arm.h (TARGET_VERSION): Remove.
2443         * config/arm/coff.h (TARGET_VERSION): Remove.
2444         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
2445         * config/arm/elf.h (TARGET_VERSION): Remove.
2446         * config/arm/freebsd.h (TARGET_VERSION): Remove.
2447         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
2448         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
2449         * config/arm/pe.h (TARGET_VERSION): Remove.
2450         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
2451         * config/arm/semi.h (TARGET_VERSION): Remove.
2452         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
2453         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
2454         * config/arm/vxworks.h (TARGET_VERSION): Remove.
2455         * config/avr/avr.h (TARGET_VERSION): Remove.
2456         * config/bfin/bfin.h (TARGET_VERSION): Remove.
2457         * config/fr30/fr30.h (TARGET_VERSION): Remove.
2458         * config/frv/frv.h (TARGET_VERSION): Remove.
2459         * config/h8300/h8300.h (TARGET_VERSION): Remove.
2460         * config/i386/cygwin.h (TARGET_VERSION): Remove.
2461         * config/i386/darwin.h (TARGET_VERSION): Remove.
2462         * config/i386/darwin64.h (TARGET_VERSION): Remove.
2463         * config/i386/djgpp.h (TARGET_VERSION): Remove.
2464         * config/i386/freebsd.h (TARGET_VERSION): Remove.
2465         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
2466         * config/i386/gnu.h (TARGET_VERSION): Remove.
2467         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
2468         * config/i386/i386elf.h (TARGET_VERSION): Remove.
2469         * config/i386/linux.h (TARGET_VERSION): Remove.
2470         * config/i386/linux64.h (TARGET_VERSION): Remove.
2471         * config/i386/lynx.h (TARGET_VERSION): Remove.
2472         * config/i386/mingw32.h (TARGET_VERSION): Remove.
2473         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
2474         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
2475         * config/i386/netware.h (TARGET_VERSION): Remove.
2476         * config/i386/nto.h (TARGET_VERSION): Remove.
2477         * config/i386/openbsd.h (TARGET_VERSION): Remove.
2478         * config/i386/vxworks.h (TARGET_VERSION): Remove.
2479         * config/ia64/elf.h (TARGET_VERSION): Remove.
2480         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
2481         * config/ia64/hpux.h (TARGET_VERSION): Remove.
2482         * config/ia64/linux.h (TARGET_VERSION): Remove.
2483         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
2484         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
2485         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
2486         * config/lm32/lm32.h (TARGET_VERSION): Remove.
2487         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
2488         * config/m32c/m32c.h (TARGET_VERSION): Remove.
2489         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
2490         * config/m32r/m32r.h (TARGET_VERSION): Remove.
2491         * config/m68k/linux.h (TARGET_VERSION): Remove.
2492         * config/m68k/m68k.h (TARGET_VERSION): Remove.
2493         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
2494         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
2495         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
2496         * config/mep/mep.h (TARGET_VERSION): Remove.
2497         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
2498         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
2499         * config/mips/iris6.h (MACHINE_TYPE): Remove.
2500         * config/mips/linux.h (TARGET_VERSION): Remove.
2501         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
2502         * config/mips/vxworks.h (TARGET_VERSION): Remove.
2503         * config/mmix/mmix.h (TARGET_VERSION): Remove.
2504         * config/mn10300/linux.h (TARGET_VERSION): Remove.
2505         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
2506         * config/pa/pa.h (TARGET_VERSION): Remove.
2507         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
2508         * config/picochip/picochip.h (TARGET_VERSION): Remove.
2509         * config/rs6000/aix.h (TARGET_VERSION): Remove.
2510         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
2511         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
2512         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
2513         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
2514         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
2515         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
2516         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
2517         * config/rs6000/linux.h (TARGET_VERSION): Remove.
2518         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
2519         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
2520         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
2521         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
2522         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
2523         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
2524         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
2525         * config/s390/linux.h (TARGET_VERSION): Remove.
2526         * config/s390/s390.h (TARGET_VERSION): Remove.
2527         * config/s390/tpf.h (TARGET_VERSION): Remove.
2528         * config/score/score.h (TARGET_VERSION): Remove.
2529         * config/sh/linux.h (TARGET_VERSION): Remove.
2530         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
2531         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
2532         * config/sh/sh.h (TARGET_VERSION): Remove.
2533         * config/sh/sh64.h (TARGET_VERSION): Remove.
2534         * config/sh/superh.h (TARGET_VERSION): Remove.
2535         * config/sh/vxworks.h (TARGET_VERSION): Remove.
2536         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
2537         * config/sparc/linux.h (TARGET_VERSION): Remove.
2538         * config/sparc/linux64.h (TARGET_VERSION): Remove.
2539         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
2540         TARGET_NAME32, TARGET_NAME): Remove.
2541         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
2542         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
2543         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
2544         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
2545         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
2546         * config/spu/spu.h (TARGET_VERSION): Remove.
2547         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
2548         * config/v850/v850.h (TARGET_VERSION): Remove.
2549         * config/vax/linux.h (TARGET_VERSION): Remove.
2550         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
2551         * config/xtensa/elf.h (TARGET_VERSION): Remove.
2552         * config/xtensa/linux.h (TARGET_VERSION): Remove.
2553
2554 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
2555
2556         PR target/48142
2557         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
2558         frame-related from frame-unrelated adjustments to the stack pointer.
2559
2560 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
2561
2562         * common.opt (fdebug-types-section): Move earlier.
2563         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
2564
2565 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
2566
2567         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
2568         var.
2569
2570 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
2571
2572         * tree.h (CASE_CHAIN): Define.
2573         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
2574         (gimple_redirect_edge_and_branch): Likewise.
2575
2576 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2577
2578         PR middle-end/48367
2579         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
2580         calculation.
2581
2582 2011-03-30  Jeff Law  <law@redhat.com>
2583
2584         * PR bootstrap/48371
2585         * reload1.c (reload): Fix botch in last change.
2586
2587         * reload.h (struct reload): Fix typo introduced in last change.
2588
2589 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
2590
2591         * config/arm/arm.opt (mhard-float, msoft-float): Mark
2592         Undocumented.  Remove help text.
2593         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
2594         -mhard-float.
2595
2596 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
2597
2598         * doc/options.texi (NegativeAlias): Document.
2599         (Alias): Mention NegativeAlias.
2600         * opt-functions.awk: Handle NegativeAlias.
2601         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
2602         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
2603         * opts.h (CL_NEGATIVE_ALIAS): Define.
2604         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
2605         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
2606         OPT_mspe_.
2607         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
2608         Alias entries.
2609         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
2610         mno-spe and mno-isel instead of mspe=no and -misel=no.
2611
2612 2011-03-29  Mark Wielaard  <mjw@redhat.com>
2613
2614         * common.opt (fdebug-types-section): New flag.
2615         * doc/invoke.texi: Document new -fno-debug-types-section flag.
2616         * dwarf2out.c (use_debug_types): New define.
2617         (struct die_struct): Mark die_id with GTY desc use_debug_types.
2618         (print_die): Guard output of type unit signatures using
2619         use_debug_types.
2620         (build_abbrev_table): Replace assert of dwarf_version >= 4
2621         with assert on use_debug_types.
2622         (size_of_die): Likewise.
2623         (unmark_dies): Likewise.
2624         (value_format): Decide AT_ref_external form on use_debug_types.
2625         (output_die): Replace dwarf_version version check guard with
2626         use_debug_types where appropriate.
2627         (modified_type_die): Likewise.
2628         (gen_reference_type_die): Likewise.
2629         (dwarf2out_start_source_file): Likewise.
2630         (dwarf2out_end_source_file): Likewise.
2631         (prune_unused_types_walk_attribs): Likewise.
2632         (dwarf2out_finish): Likewise.
2633
2634 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2635
2636         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
2637
2638 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
2639
2640         PR rtl-optimization/48332
2641         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
2642         mode of input operand N and modeN to its actual mode.
2643
2644 2011-03-30  Jeff Law  <law@redhat.com>
2645
2646         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
2647         define accessor macro.
2648         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
2649         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
2650         (reg_equiv_init): Likewise.
2651         (reg_equivs_size): New variable.
2652         (reg_equiv_init_size): Remove.
2653         (allocate_initial_values): Move prototype to here from....
2654         * integrate.h (allocate_initial_values): Remove prototype.
2655         * integrate.c: Include reload.h.
2656         (allocate_initial_values): Corresponding changes.
2657         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
2658         (fix_reg_equiv_init, no_equiv): Corresponding changes.
2659         (update_equiv_regs): Corresponding changes.
2660         (ira): Corresponding changes.
2661         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
2662         (push_secondary_reload): Corresponding changes.
2663         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
2664         (make_memloc, find_reloads_address): Corresponding changes.
2665         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
2666         (find_reloads_address_1): Corresponding changes.
2667         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
2668         (refers_to_regno_for_reload_p): Corresponding changes.
2669         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
2670         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
2671         * reload1.c: Include ggc.h.
2672         (grow_reg_equivs): New function.
2673         (replace_pseudos_in, reload): Corresponding changes.
2674         (calculate_needs_all_insns, alter_regs): Corresponding changes.
2675         (eliminate_regs_1, elimination_effects): Corresponding changes.
2676         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
2677         (delete_output_reload): Likewise.
2678         * caller-save.c (mark_referenced_regs): Corresponding changes.
2679         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
2680         * frv/predicates.md (frv_load_operand): Corresponding changes.
2681         * microblaze/microblaze.c (double_memory_operand): Corresponding
2682         changes.
2683         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
2684         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
2685         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
2686         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
2687         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
2688         changes.
2689         * pa/pa.c (emit_move_sequence): Corresponding changes.
2690         * vax/vax.c (nonindexed_address_p): Corresponding changes.
2691
2692 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
2693
2694         PR target/47551
2695         * config/arm/arm.c (coproc_secondary_reload_class): Handle
2696         structure modes.  Don't check neon_vector_mem_operand for
2697         vector or structure modes.
2698
2699 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
2700             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2701
2702         PR target/43590
2703         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
2704         operand 1 and reshuffle the operands to match.
2705         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
2706
2707 2011-03-30  Christian Schüler  <cschueler@gmx.de>
2708
2709         PR driver/48208
2710         * config/c.opt (F): Added 'Driver' to -F option.
2711
2712         PR driver/48260
2713         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
2714           handler function.
2715         * config/darwin.opt: Added '-arch' option.
2716
2717 2011-03-30  Nick Clifton  <nickc@redhat.com>
2718
2719         * config/rx/rx.md: Add peepholes and patterns to combine
2720         extending loads and simple arithmetic instructions.
2721         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
2722         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
2723         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
2724         modes to use pre-decrement and post-increment addressing.
2725         (rx_is_restricted_memory_address): Add range checking of REG+INT
2726         addresses.
2727         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
2728         (rx_memory_move_cost): Adjust cost of stores.
2729         (rx_adjust_insn_length): New function.
2730
2731 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
2732
2733         PR c/48305
2734         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
2735         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
2736         matching arg00/arg01 types.
2737
2738 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
2739
2740         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
2741         last_location to UNKNOWN_LOCATION.
2742
2743 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
2744
2745         PR target/48349
2746         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
2747         FLOAT_SSE_REGS.
2748
2749 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
2750             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2751
2752         PR bootstrap/48337
2753         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
2754         Init(PROCESSOR_V7).
2755         (sparc_cpu): Likewise.
2756         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
2757         PROCESSOR_V7.
2758
2759 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
2760
2761         PR target/48336
2762         PR middle-end/48342
2763         PR rtl-optimization/48345
2764         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
2765         hard regs for given mode from profitable regs when doing secondary
2766         allocation.
2767
2768 2011-03-29  Jeff Law  <law@redhat.com>
2769
2770         PR bootstrap/48327
2771         * tree-ssa-threadupdate.c (struct redirection_data): Remove
2772         do_not_duplicate field.
2773         (lookup_redirection_data): Corresponding changes.
2774         (create_duplicates): Always create a template block.
2775         (redirect_edges): Remove code which reused the original block
2776         when it was going to become unreachable code.
2777         (thread_block): Don't set do_not_duplicate field.
2778
2779 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
2780
2781         * lto-opts.c (register_user_option_p, lto_register_user_option):
2782         Make type argument unsigned.
2783         * lto-streamer.h (lto_register_user_option): Make type argument
2784         unsigned.
2785         * opth-gen.awk: Make CL_* macros unsigned.
2786         * opts-common.c (find_opt): Make lang_mask argument unsigned.
2787         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
2788         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
2789         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
2790         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
2791         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
2792         (find_opt): Make lang_mask argument unsigned.
2793
2794 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
2795
2796         PR rtl-optimization/48331
2797         PR rtl-optimization/48334
2798         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
2799         for any used algorithm.
2800
2801 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
2802
2803         * ira-conflicts.c (build_object_conflicts): Add unused attribute
2804         to parent_max.
2805
2806 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
2807
2808         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
2809         (alpha_option_override): Don't set alpha_sr_alias_set.
2810         (emit_frame_store_1): Use gen_frame_mem rather than calling
2811         set_mem_alias_set.
2812         (alpha_expand_epilogue): Ditto.
2813
2814 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
2815
2816         PR tree-optimization/48290
2817         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
2818         vectorization, check that relevant phis in the basic block after
2819         the inner loop are really inner loop's exit phis.
2820
2821 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
2822
2823         PR debug/48190
2824         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
2825         (cached_dw_loc_list_def): New structure.
2826         (cached_dw_loc_list): New typedef.
2827         (cached_dw_loc_list_table): New variable.
2828         (cached_dw_loc_list_table_hash): New function.
2829         (cached_dw_loc_list_table_eq): Likewise.
2830         (add_location_or_const_value_attribute): Take a bool cache_p.
2831         Cache the list when the parameter is true.
2832         (gen_formal_parameter_die): Update caller.
2833         (gen_variable_die): Likewise.
2834         (dwarf2out_finish): Likewise.
2835         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
2836         while generating debug info for the decl.
2837         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
2838         (dwarf2out_init): Initialize cached_dw_loc_list_table.
2839         (resolve_addr): Cache the result of resolving a chain of
2840         location lists.
2841
2842 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
2843
2844         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
2845         conflict object hard regset nodes have intersecting hard reg sets.
2846
2847         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
2848         after regstat_init_n_sets_and_refs.
2849
2850         * ira.c: Add more comments at the top.
2851         (setup_stack_reg_pressure_class, setup_pressure_classes):
2852         Add comments how we compute the register pressure classes.
2853         (setup_allocno_and_important_classes): Add more comments.
2854         (setup_class_translate_array, reorder_important_classes)
2855         (setup_reg_class_relations): Add comments.
2856
2857         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
2858         start of the file.
2859
2860         * ira-color.c: Add 2011 to the Copyright line.
2861         (assign_hard_reg):  Add more comments.
2862         (improve_allocation): Ditto.
2863
2864         * ira-costs.c: Add 2011 to the Copyright line.
2865         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
2866         comments.
2867         (setup_regno_cost_classes_by_mode): Ditto.
2868
2869         Initial patches from ira-improv branch:
2870
2871         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
2872
2873         * ira-build.c: (ira_create_object): Remove initialization of
2874         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
2875         (ira_create_allocno): Remove initialization of
2876         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
2877         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
2878         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
2879         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
2880         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
2881         Initialize ALLOCNO_ADD_DATA.
2882         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
2883         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
2884         ALLOCNO_REG.
2885         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
2886         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
2887
2888         * ira.c (ira_reallocate): Remove.
2889         (setup_pressure_classes): Call
2890         ira_init_register_move_cost_if_necessary.  Use
2891         ira_register_move_cost instead of ira_get_register_move_cost.
2892         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
2893         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
2894
2895         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
2896         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
2897         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
2898         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
2899         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
2900         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
2901         Fix formatting.
2902         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
2903         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
2904         (struct allocno_color_data): New.
2905         (allocno_color_data_t): New typedef.
2906         (allocno_color_data): New definition.
2907         (ALLOCNO_COLOR_DATA): New macro.
2908         (struct object_color_data): New.
2909         (object_color_data_t): New typedef.
2910         (object_color_data): New definition.
2911         (OBJECT_COLOR_DATA): New macro.
2912         (update_copy_costs, calculate_allocno_spill_cost): Call
2913         ira_init_register_move_cost_if_necessary.  Use
2914         ira_register_move_cost instead of ira_get_register_move_cost.
2915         (move_spill_restore, update_curr_costs): Ditto.
2916         (allocno_spill_priority): Make it inline.
2917         (color_pass): Allocate and free allocno_color_dat and object_color_data.
2918         (struct coalesce_data, coalesce_data_t): New.
2919         (allocno_coalesce_data): New definition.
2920         (ALLOCNO_COALESCE_DATA): New macro.
2921         (merge_allocnos, coalesced_allocno_conflict_p): Use
2922         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
2923         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
2924         (coalesce_allocnos): Ditto.
2925         (setup_coalesced_allocno_costs_and_nums): Ditto.
2926         (collect_spilled_coalesced_allocnos): Ditto.
2927         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
2928         (setup_slot_coalesced_allocno_live_ranges): Ditto.
2929         (coalesce_spill_slots): Ditto.
2930         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
2931         free allocno_coalesce_data.
2932
2933         * ira-conflicts.c: Fix formatting.
2934         (process_regs_for_copy): Call
2935         ira_init_register_move_cost_if_necessary.  Use
2936         ira_register_move_cost instead of ira_get_register_move_cost.
2937         (build_object_conflicts): Optimize.
2938
2939         * ira-costs.c (record_reg_classes): Optimize.  Call
2940         ira_init_register_move_cost_if_necessary.  Use
2941         ira_register_move_cost, ira_may_move_in_cost, and
2942         ira_may_move_out_cost instead of ira_get_register_move_cost and
2943         ira_get_may_move_cost.
2944         (record_address_regs): Ditto.
2945         (scan_one_insn): Optimize.
2946         (find_costs_and_classes): Optimize.
2947         (process_bb_node_for_hard_reg_moves): Call
2948         ira_init_register_move_cost_if_necessary.  Use
2949         ira_register_move_cost instead of ira_get_register_move_cost.
2950
2951         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
2952         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
2953         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
2954         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
2955         definitions.
2956         (ira_initiate_emit_data, ira_finish_emit_data)
2957         (create_new_allocno): New functions.
2958         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
2959         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
2960         Use ira_register_move_cost instead of ira_get_register_move_cost.
2961
2962         * ira-int.h: Fix some comments.
2963         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
2964         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
2965         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
2966         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
2967         add_data.
2968         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
2969         bitfield after mode.  Make hard_regno a short int.  Make
2970         hard_regno short.  Remove first_coalesced_allocno and
2971         next_coalesced_allocno.  Move mem_optimized_dest_p,
2972         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
2973         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
2974         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
2975         temp, colorable_p.  Add new member add_data.
2976         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
2977         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
2978         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
2979         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
2980         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
2981         (ALLOCNO_ADD_DATA): New macro.
2982         (ira_emit_data_t): New typedef.
2983         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
2984         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
2985         from struct ira_allocno.
2986         (ALLOCNO_EMIT_DATA): New macro.
2987         (ira_allocno_emit_data, allocno_emit_reg): New.
2988         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
2989         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
2990         (OBJECT_ADD_DATA): New macro.
2991         (ira_reallocate): Remove.
2992         (ira_initiate_emit_data, ira_finish_emit_data): New.
2993         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
2994         (ira_init_register_move_cost_if_necessary): New.
2995         (ira_object_conflict_iter_next): Merge into
2996         ira_object_conflict_iter_cond.
2997         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
2998
2999         * ira-live.c: (process_single_reg_class_operands): Call
3000         ira_init_register_move_cost_if_necessary.  Use
3001         ira_register_move_cost instead of ira_get_register_move_cost.
3002
3003         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
3004
3005         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
3006
3007         * ira-costs.c: Fix formatting.
3008         (cost_classes, cost_classes_num): Remove.
3009         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
3010         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
3011         (cost_classes_del, cost_classes_htab): New.
3012         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
3013         (initiate_regno_cost_classes, setup_cost_classes): New.
3014         (setup_regno_cost_classes_by_aclass): New.
3015         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
3016         (record_reg_classes): Use regno_cost_classes instead of
3017         cost_classes.  Move checking opposite operand up.
3018         (record_address_regs): Use regno_cost_classes
3019         instead of cost_classes.
3020         (scan_one_insn): Ditto.  Use always general register.
3021         (print_allocno_costs): Use regno_cost_classes instead of
3022         cost_classes.
3023         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
3024         (find_costs_and_classes): Set up cost classes for each registers.
3025         Use also their mode for this.  Use regno_cost_classes instead of
3026         cost_classes.
3027         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
3028         cost_classes.
3029         (free_ira_costs, ira_init_costs): Don't use cost_classes.
3030         (ira_costs, ira_set_pseudo_classes): Call
3031         initiate_regno_cost_classes and finish_regno_cost_classes.
3032
3033         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
3034
3035         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
3036
3037         * target.def (ira_cover_classes): Remove.
3038
3039         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
3040
3041         * doc/tm.texi.in: Ditto.
3042
3043         * ira-conflicts.c: Remove mentioning cover classes from the file.
3044         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
3045         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
3046
3047         * targhooks.c (default_ira_cover_classes): Remove.
3048
3049         * targhooks.h (default_ira_cover_classes): Ditto.
3050
3051         * haifa-sched.c: Remove mentioning cover classes from the file.
3052         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
3053         ira_pressure_classes and ira_pressure_classes_num instead of
3054         ira_reg_class_cover_size and ira_reg_class_cover.  Use
3055         sched_regno_pressure_class instead of sched_regno_cover_class.
3056         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
3057         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
3058
3059         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
3060         classes from the file.
3061         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
3062         (struct object_hard_regs, struct object_hard_regs_node): New.
3063         (struct ira_object): New members profitable_hard_regs,
3064         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
3065         (struct ira_allocno): Rename cover_class to aclass.  Rename
3066         cover_class_cost and updated_cover_class_cost to class_cost and
3067         updated_class_cost.  Remove splay_removed_p and
3068         left_conflict_size.  Add new members colorable_p.
3069         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
3070         (ALLOCNO_COLORABLE_P): New macro.
3071         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
3072         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
3073         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
3074         (OBJECT_...): Rename parameter C to O.
3075         (OBJECT_PROFITABLE_HARD_REGS): New macro.
3076         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
3077         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
3078         (struct target_ira_int): New members x_ira_max_memory_move_cost,
3079         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
3080         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
3081         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
3082         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
3083         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
3084         x_ira_reg_class_subunion.
3085         (ira_max_memory_move_cost, ira_max_register_move_cost)
3086         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
3087         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
3088         (ira_important_class_nums, ira_reg_class_superunion): New macros.
3089         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
3090         (ira_reg_class_union): Rename to ira_reg_class_subunion.
3091         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
3092         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
3093         (ira_tune_allocno_costs_and_cover_classes): Rename to
3094         ira_tune_allocno_costs.
3095         (ira_debug_hard_regs_forest): New.
3096         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
3097         (ira_object_conflict_iter_next): Fix comments.
3098         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
3099         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
3100         cover_class to aclass.
3101         (ira_allocate_and_accumulate_costs): Ditto.
3102         (ira_allocate_and_set_or_copy_costs): Ditto.
3103
3104         * opts.c (decode_options): Remove ira_cover_class check.
3105
3106         * ira-color.c: Remove mentioning cover classes from the file.  Use
3107         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
3108         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
3109         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
3110         (splay-tree.h): Remove include.
3111         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
3112         before copy_freq_compare_func.
3113         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
3114         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
3115         New definitions.
3116         (hard_regs_roots, hard_regs_node_vec): Ditto.
3117         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
3118         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
3119         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
3120         (create_new_object_hard_regs_node): Ditto.
3121         (add_new_object_hard_regs_node_to_forest): Ditto.
3122         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
3123         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
3124         Ditto.
3125         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
3126         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
3127         (remove_unused_object_hard_regs_nodes): Ditto.
3128         (enumerate_object_hard_regs_nodes): Ditto.
3129         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
3130         (object_hard_regs_subnode_t): Ditto.
3131         (struct object_hard_regs_subnode): Ditto.
3132         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
3133         (setup_object_hard_regs_subnode_index): Ditto.
3134         (get_object_hard_regs_subnodes_num): Ditto.
3135         (form_object_hard_regs_nodes_forest): Ditto.
3136         (finish_object_hard_regs_nodes_tree): Ditto.
3137         (finish_object_hard_regs_nodes_forest): Ditto.
3138         (allocnos_have_intersected_live_ranges_p): Rename to
3139         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
3140         (pseudos_have_intersected_live_ranges_p): Rename to
3141         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
3142         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
3143         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
3144         (update_copy_costs): Remove assert.  Skip cost update if the hard
3145         reg does not belong the class.
3146         (assign_hard_reg): Process only profitable hard regs.
3147         (uncolorable_allocnos_num): Make it scalar.
3148         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
3149         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
3150         and ira_reg_class_max_nregs.
3151         (bucket_allocno_compare_func): Check frequency first.
3152         (sort_bucket): Add compare function as a parameter.
3153         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
3154         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
3155         (push_allocno_to_stack): Rewrite for checking new allocno
3156         colorability.
3157         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
3158         (push_only_colorable): Pass new parameter to sort_bucket.
3159         (push_allocno_to_spill): Remove.
3160         (allocno_spill_priority_compare): Make it inline and rewrite.
3161         (splay_tree_allocate, splay_tree_free): Remove.
3162         (allocno_spill_sort_compare): New function.
3163         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
3164         build and use splay tree.  Choose first allocno in uncolorable
3165         allocno bucket to spill.  Remove setting spill cost.
3166         (all_conflicting_hard_regs): Remove.
3167         (setup_allocno_available_regs_num): Check only profitable hard
3168         regs.  Print info about hard regs nodes.
3169         (setup_allocno_left_conflicts_size): Remove.
3170         (put_allocno_into_bucket): Don't call
3171         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
3172         (improve_allocation): New.
3173         (color_allocnos): Call setup_profitable_hard_regs,
3174         form_object_hard_regs_nodes_forest, improve_allocation,
3175         finish_object_hard_regs_nodes_forest.  Setup spill cost.
3176         (print_loop_title): Use pressure classes.
3177         (color_allocnso): Ditto.
3178         (do_coloring): Remove allocation and freeing splay_tree_node_pool
3179         and allocnos_for_spilling.
3180         (ira_sort_regnos_for_alter_reg): Don't setup members
3181         {first,next}_coalesced_allocno.
3182         (color): Remove allocating and freeing removed_splay_allocno_vec.
3183         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
3184         prohibited_class_mode_regs.
3185
3186         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
3187         formatting.
3188         (update_allocno_pressure_excess_length): Use pressure classes.
3189         (inc_register_pressure, dec_register_pressure): Check for pressure
3190         class.
3191         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
3192         pressure class.  Use ira_reg_class_nregs instead of
3193         ira_reg_class_max_nregs.
3194         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
3195         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
3196         (single_reg_class): Use ira_reg_class_nregs instead of
3197         ira_reg_class_max_nregs.
3198         (process_bb_node_lives): Use pressure classes.
3199
3200         * ira-emit.c: Remove mentioning cover classes from the file.  Use
3201         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
3202         (change_loop): Use pressure classes.
3203         (modify_move_list): Call ira_set_allocno_class instead of
3204         ira_set_allocno_cover_class.
3205
3206         * ira-build.c: Remove mentioning cover classes from the file.  Use
3207         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
3208         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
3209         ALLOCNO_UPDATED_CLASS_COST instead of
3210         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
3211         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
3212         (ira_create_allocno): Remove initialization of
3213         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
3214         ALLOCNO_COLORABLE_P.
3215         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
3216         Update conflict regs for the objects.
3217         (create_cap_allocno): Remove assert.  Don't propagate
3218         ALLOCNO_AVAILABLE_REGS_NUM.
3219         (ira_free_allocno_costs): New function.
3220         (finish_allocno): Change a part of code into call of
3221         ira_free_allocno_costs.
3222         (low_pressure_loop_node_p): Use pressure classes.
3223         (object_range_compare_func): Don't compare classes.
3224         (setup_min_max_conflict_allocno_ids): Ditto.
3225
3226         * loop-invariant.c: Remove mentioning cover classes from the file.
3227         Use ira_pressure_classes and ira_pressure_classes_num instead of
3228         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
3229         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
3230         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
3231         Use reg_allocno_class instead of reg_cover_class.
3232         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
3233         STACK_REG_COVER_CLASS.
3234         (get_regno_cover_class): Rename to get_regno_pressure_class.
3235         (move_loop_invariants): Initialize and finalize regstat.
3236
3237         * ira.c: Remove mentioning cover classes from the file.  Add
3238         comments about coloring without cover classes.  Use ALLOCNO_CLASS
3239         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
3240         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
3241         setup_class_subset_and_memory_move_costs.
3242         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
3243         (setup_cover_and_important_classes): Rename to
3244         setup_allocno_and_important_classes.
3245         (setup_class_translate_array): New.
3246         (setup_class_translate): Call it for allocno and pressure classes.
3247         (cover_class_order): Rename to allocno_class_order.
3248         (comp_reg_classes_func): Use ira_allocno_class_translate instead
3249         of ira_class_translate.
3250         (reorder_important_classes): Set up ira_important_class_nums.
3251         (setup_reg_class_relations): Set up ira_reg_class_superunion.
3252         (print_class_cover): Rename to print_classes.  Add parameter.
3253         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
3254         Print pressure classes too.
3255         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
3256         setup_reg_subclasses.
3257         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
3258         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
3259         (setup_prohibited_class_mode_regs): Use
3260         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
3261         (clarify_prohibited_class_mode_regs): New function.
3262         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
3263         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
3264         (ira_init_once): Initialize them.
3265         (free_register_move_costs): Process them.
3266         (ira_init): Move calls of find_reg_classes and
3267         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
3268         Call clarify_prohibited_class_mode_regs.
3269         (ira_no_alloc_reg): Remove.
3270         (too_high_register_pressure_p): Use pressure classes.
3271
3272         * sched-deps.c: Remove mentioning cover classes from the file.
3273         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
3274         ira_pressure_classes and ira_pressure_classes_num instead of
3275         ira_reg_class_cover_size and ira_reg_class_cover.
3276         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
3277         sched_regno_pressure_class instead of sched_regno_cover_class.
3278         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
3279         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
3280
3281         * ira.h: Add 2010 to Copyright.
3282         (ira_no_alloc_reg): Remove external.
3283         (struct target_ira): Rename x_ira_hard_regno_cover_class,
3284         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
3285         x_ira_class_translate to x_ira_hard_regno_allocno_class,
3286         x_ira_allocno_classes_num, x_ira_allocno_classes, and
3287         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
3288         x_ira_pressure_classes, x_ira_pressure_class_translate, and
3289         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
3290         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
3291         x_ira_no_alloc_regs.
3292         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
3293         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
3294         ira_allocno_classes_num and ira_allocno_classes.
3295         (ira_class_translate): Rename to ira_allocno_class_translate.
3296         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
3297         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
3298         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
3299         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
3300         (ira_no_alloc_regs): New.
3301
3302         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
3303         classes from the file.  Use ALLOCNO_CLASS instead of
3304         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
3305         ALLOCNO_COVER_CLASS_COST.
3306         (regno_cover_class): Rename to regno_aclass.
3307         (record_reg_classes): Use ira_reg_class_subunion instead of
3308         ira_reg_class_union.
3309         (record_address_regs): Check overflow.
3310         (scan_one_insn): Ditto.
3311         (print_allocno_costs): Print total mem cost fore regional allocation.
3312         (print_pseudo_costs): Use REG_N_REFS.
3313         (find_costs_and_classes): Use classes intersected with them on the
3314         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
3315         ira_reg_class_union.  Use ira_allocno_class_translate and
3316         regno_aclass instead of ira_class_translate and regno_cover_class.
3317         Modify code for finding regno_aclass.  Setup preferred classes for
3318         the next pass.
3319         (setup_allocno_cover_class_and_costs): Rename to
3320         setup_allocno_class_and_costs.  Use regno_aclass instead of
3321         regno_cover_class.  Use ira_set_allocno_class instead of
3322         ira_set_allocno_cover_class.
3323         (init_costs, finish_costs): Use regno_aclass instead of
3324         regno_cover_class.
3325         (ira_costs): Use setup_allocno_class_and_costs instead of
3326         setup_allocno_cover_class_and_costs.
3327         (ira_tune_allocno_costs_and_cover_classes): Rename to
3328         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
3329         by processing objects.  Use ira_reg_class_max_nregs instead of
3330         ira_reg_class_nregs.
3331
3332         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
3333
3334         * sched-int.h: Remove mentioning cover classes from the file.
3335         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
3336
3337         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
3338         classes from the file.
3339         (struct reg_pref): Rename coverclass into allocnoclass.
3340         (reg_cover_class): Rename to reg_allocno_class.
3341
3342         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
3343
3344         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
3345
3346         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
3347
3348         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
3349
3350         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
3351
3352         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
3353
3354         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
3355
3356         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
3357
3358         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
3359
3360         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
3361
3362         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
3363         (i386_ira_cover_classes): Ditto.
3364
3365         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
3366
3367         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
3368
3369         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
3370
3371         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
3372
3373         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
3374
3375         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
3376
3377         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
3378         (mips_ira_cover_classes): Ditto.
3379
3380         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
3381
3382         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
3383
3384         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
3385
3386         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
3387
3388         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
3389
3390         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
3391         (IRA_COVER_CLASSES_VSX): Ditto.
3392
3393         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
3394         (rs6000_ira_cover_classes): Ditto.
3395
3396         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
3397
3398         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
3399
3400         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
3401
3402         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
3403
3404         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
3405
3406         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
3407
3408         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
3409
3410         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
3411
3412         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
3413
3414         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
3415
3416 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
3417
3418         PR debug/48253
3419         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
3420         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
3421         dw_fde_unlikely_section_end_label, cold_in_std_section,
3422         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
3423         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
3424         fields.
3425         (output_fde): Use dw_fde_second_{begin,end} if second is
3426         true, otherwise dw_fde_{begin,end}.
3427         (output_call_frame_info): Test dw_fde_second_begin != NULL
3428         instead of dw_fde_switched_sections.
3429         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
3430         fields, initialize new fields.  Initialize in_std_section
3431         unconditionally from the first partition.
3432         (dwarf2out_end_epilogue): Don't override dw_fde_end when
3433         dw_fde_second_begin is non-NULL.
3434         (dwarf2out_switch_text_section): Stop initializing removed
3435         dw_fde_struct fields, initialize new fields, initialize
3436         also dw_fde_end here.  Set dw_fde_switch_cfi even when
3437         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
3438         (struct var_loc_list_def): Add last_before_switch field.
3439         (arange_table, arange_table_allocated, arange_table_in_use,
3440         ARANGE_TABLE_INCREMENT, add_arange): Removed.
3441         (size_of_aranges): Count !in_std_section and !second_in_std_section
3442         hunks in fdes, instead of looking at arange_table_in_use.
3443         (output_aranges): Add aranges_length argument, don't call
3444         size_of_aranges here.  Instead of using aranges_table*
3445         emit ranges for fdes when !in_std_section resp.
3446         !second_in_std_section.
3447         (dw_loc_list): Break ranges crossing section switch.
3448         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
3449         use dw_fde_second_end instead of dw_fde_end as end of last range.
3450         (gen_subprogram_die): Don't call add_arange.  Use
3451         dw_fde_{begin,end} for first partition and if switched
3452         section dw_fde_second_{begin,end} for the second.
3453         (var_location_switch_text_section_1,
3454         var_location_switch_text_section): New functions.
3455         (dwarf2out_begin_function): Initialize cold_text_section even
3456         when function_section () isn't text_section.
3457         (prune_unused_types): Don't walk arange_table.
3458         (dwarf2out_finish): Don't needlessly test
3459         flag_reorder_blocks_and_partition when testing cold_text_section_used.
3460         If info_section_emitted, call size_of_aranges and if it indicates
3461         non-empty .debug_aranges, call output_aranges with the computed
3462         size.  Stop using removed dw_fde_struct fields, use
3463         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
3464         for second.
3465
3466         PR debug/48203
3467         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
3468         create ENTRY_VALUE if incoming or address of incoming's MEM
3469         is a hard REG.
3470         * dwarf2out.c (mem_loc_descriptor): Don't emit
3471         DW_OP_GNU_entry_value of DW_OP_fbreg.
3472         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
3473         on ENTRY_VALUE is able to find the canonical parameter VALUE.
3474         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
3475         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
3476         ENTRY_VALUE_EXPs.
3477         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
3478         is a REG_P or MEM_P with REG_P address, compute hash directly
3479         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
3480         (preserve_only_constants): Don't clear VALUES forwaring
3481         ENTRY_VALUE to some other VALUE.
3482
3483 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
3484
3485         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
3486         instead of GEN_INT.
3487
3488 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
3489
3490         * cfgexpand.c (expand_gimple_cond): Always set the source location and
3491         block before expanding the statement.
3492         (expand_gimple_stmt_1): Likewise.  Set them here...
3493         (expand_gimple_stmt): ...and not here.  Tidy.
3494         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
3495         unknown.
3496
3497 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
3498
3499         * Makefile.in: New rule for cprop.o.
3500         * gcse.c: Move constant/copy propagation to cprop.c.
3501         (compute_local_properties): Only handle expression tables.
3502         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
3503         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
3504         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
3505         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
3506         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
3507         compute_cprop_data, find_used_regs, try_replace_reg,
3508         find_avail_set, cprop_jump, constprop_register, cprop_insn,
3509         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
3510         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
3511         find_bypass_set, reg_killed_on_edge, bypass_block,
3512         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
3513         execute_rtl_cprop, pass_rtl_cprop): Move to...
3514         * cprop.c: ...here.  New file, constant/copy propagation for RTL
3515         moved from gcse.c to here with minor cleanups in duplicated code.
3516
3517 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
3518
3519         * config/i386/i386.c (flag_opts): Fix a typo in
3520         -mavx256-split-unaligned-store.
3521
3522 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
3523
3524         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
3525         LIBCALL_VALUE): Remove macros.
3526         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3527         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3528         (h8300_function_value, h8300_libcall_value,
3529         h8300_function_value_regno_p): New functions.
3530
3531 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
3532
3533         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
3534
3535 2011-03-28  Jeff Law  <law@redhat.com>
3536
3537         * tree-ssa-threadupdate.c (redirect_edges): Call
3538         create_edge_and_update_destination_phis as needed.
3539         (create_edge_and_update_destination_phis): Accept new BB argument.
3540         All callers updated.
3541         (thread_block): Do not update the profile when threading around
3542         intermediate blocks.
3543         (thread_single_edge): Likewise.
3544         (determine_bb_domination_status): If BB is not a successor of the
3545         loop header, return NONDOMINATING.
3546         (register_jump_thread): Note when we register a jump thread around
3547         an intermediate block.
3548         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
3549         (thread_across_edge): Use it.
3550
3551 2011-03-28  Tristan Gingold  <gingold@adacore.com>
3552
3553         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
3554         when for_return is 2.
3555
3556 2011-03-28  Jeff Law  <law@redhat.com>
3557
3558         * var-tracking.c (canonicalize_values_mark): Delete unused
3559         lhs assignment.
3560         (canonicalize_values_star, set_variable_part): Likewise.
3561         (clobber_variable_part, delete_variable_part): Likewise.
3562
3563 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
3564
3565         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
3566
3567 2011-03-28  Martin Jambor  <mjambor@suse.cz>
3568
3569         * tree-inline.c (expand_call_inline): Do not check that destination
3570         node is analyzed.
3571         (optimize_inline_calls): Assert that destination node is analyzed.
3572         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
3573         not call tree_lowering_passes.
3574         * cgraph.h (cgraph_analyze_function): Declare.
3575         * cgraphunit.c (cgraph_analyze_function): Make public.
3576
3577 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
3578
3579         * config/sparc/sparc-opts.h: New.
3580         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
3581         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
3582         (sparc_option_override): Store processor_type enumeration rather
3583         than string in cpu_default.  Remove name and enumeration from
3584         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
3585         without using sparc_select.  Use target_flags_explicit instead of
3586         fpu_option_set.
3587         * config/sparc/sparc.h (enum processor_type): Move to
3588         sparc-opts.h.
3589         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
3590         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
3591         HeaderInclude entry.
3592         (mcpu=, mtune=): Use Var and Enum.
3593         (sparc_processor_type): New Enum and EnumValue entries.
3594
3595 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3596             Iain Sandoe  <iains@gcc.gnu.org>
3597
3598         PR target/48245
3599         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
3600
3601 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
3602
3603         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
3604         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
3605         Insert new statements at it in lieu of STMT.
3606         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
3607         * tree-vect-stmts.c (vectorizable_store): Likewise.
3608         (vectorizable_load): Likewise.
3609
3610 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
3611
3612         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
3613         (divtf3): Ditto.
3614         (multf3): Ditto.
3615         (subtf3): Ditto.
3616
3617 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3618
3619         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
3620         unaligned 256bit load/store.
3621         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
3622         (*avx_movdqu<avxmodesuffix>): Likewise.
3623
3624 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3625
3626         PR target/48288
3627         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
3628         * config/pa/pa.md (iordi3): Use new predicate in expander.
3629         (iorsi3): Likewise.
3630
3631 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
3632
3633         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
3634         FUNCTION_VALUE_REGNO_P): Remove macros.
3635         * config/mips/mips-protos.h (mips_function_value): Remove.
3636         * config/mips/mips.c (mips_function_value): Rename to...
3637         (mips_function_value_1): ... this. Make static.  Handle receiving
3638         the function type in 'fn_decl_or_type' argument.
3639         (mips_function_value, mips_libcall_value,
3640         mips_function_value_regno_p): New function.
3641         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3642         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3643
3644 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3645
3646         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
3647         and -mavx256-split-unaligned-store.
3648         (ix86_option_override_internal): Split 32-byte AVX unaligned
3649         load/store by default.
3650         (ix86_avx256_split_vector_move_misalign): New.
3651         (ix86_expand_vector_move_misalign): Use it.
3652
3653         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
3654         -mavx256-split-unaligned-store.
3655
3656         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
3657         256bit load/store.  Generate unaligned store on misaligned memory
3658         operand.
3659         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
3660         256bit load/store.
3661         (*avx_movdqu<avxmodesuffix>): Likewise.
3662
3663         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
3664         -mavx256-split-unaligned-store.
3665
3666 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
3667
3668         PR target/38598
3669         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
3670         Update commentary.
3671
3672 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
3673
3674         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
3675         opno arguments with an expand_operand.  Use create_input_operand.
3676         (mips_prepare_builtin_target): Delete.
3677         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
3678         functions.
3679         (mips_expand_builtin_direct): Use create_output_operand and
3680         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
3681         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
3682         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
3683
3684 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
3685
3686         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
3687         function.
3688         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
3689
3690 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
3691
3692         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
3693         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
3694         basic blocks and call commit_edge_insertions directly.
3695         (fixup_abnormal_edges): Move from here to...
3696         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
3697         on the edges and return whether some have actually been inserted.
3698         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
3699         compensation code.
3700
3701 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
3702
3703         PR rtl-optimization/48144
3704         * sel-sched-ir.c (merge_history_vect): Factor out from ...
3705         (merge_expr_data): ... here.
3706         (av_set_intersect): Rename to av_set_code_motion_filter.
3707         Update all callers.  Call merge_history_vect when an expression
3708         is found in both sets.
3709         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
3710
3711 2011-03-26  Alan Modra  <amodra@gmail.com>
3712
3713         * config/rs6000/predicates.md (word_offset_memref_op): Handle
3714         cmodel medium addresses.
3715         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
3716         64-bit gpr loads and stores.
3717         (rs6000_secondary_reload_ppc64): New function.
3718         * config/rs6000/rs6000-protos.h: Declare it.
3719         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
3720
3721 2011-03-26  Alan Modra  <amodra@gmail.com>
3722
3723         PR target/47487
3724         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
3725         GNU Go in traceback table.
3726
3727 2011-03-25  Richard Henderson  <rth@redhat.com>
3728
3729         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
3730         if there are exactly 6 operands.
3731         (set_storage_via_setmem): Similarly.
3732
3733 2011-03-25  Kai Tietz  <ktietz@redhat.com>
3734
3735         * collect2.c (write_c_file_stat): Handle backslash
3736         as right-hand directory separator.
3737         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
3738         checking just for slash.
3739         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
3740         instead of checking for trailing slash.
3741         * gcc.c (record_temp_file): Use filename_cmp instead
3742         of strcmp.
3743         (do_spec_1): Likewise.
3744         (replace_outfile_spec_function): Likewise.
3745         (is_directory): Use filename_ncmp instead of strncmp.
3746         (print_multilib_info): Likewise.
3747         * gcov.c (find_source): Use filename_cmp instead
3748         instead of strcmp.
3749         (make_gcov_file_name): Fix order of slash/backslash
3750         checks.
3751         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
3752         (add_standard_paths): Likewise.
3753         * mips-tfile.c (saber_stop): Handle backslash.
3754         * prefix.c (update_path): Use filename_ncmp instead of
3755         strncmp.
3756         * profile.c (output_location): Use filename_cmp instead
3757         of strcmp.
3758         * read-md.c (handle_toplevel_file): Handle backslash.
3759         * tlink.c (frob_extension):  Likewise.
3760         * tree-cfg.c (same_line_p): Use filename_cmp instead of
3761         strcmp.
3762         * tree-dump.c (dequeue_and_dump): Handle backslash.
3763         * tree.c (get_file_function_name): Likewise.
3764         * gengtype.c (read_input_list): Likewise.
3765         (get_file_realbasename): Likewise.
3766         (get_output_file_with_visibility): Use filename_cmp
3767         instead of strcmp.
3768
3769 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
3770
3771         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
3772         case to VFPv1.
3773
3774 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
3775
3776         * fold-const.c (expr_location_or): New function.
3777         (fold_truth_not_expr): Call it.
3778
3779 2011-03-25  Jeff Law  <law@redhat.com>
3780
3781         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
3782         va_end.
3783         * c-family/c-common.c (def_fn_type): Likewise.
3784         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
3785         * emit-rtl.c (gen_rtvec): Likewise.
3786         * lto/lto-lang.c (def_fn_type): Likewise.
3787
3788 2011-03-25  Richard Guenther  <rguenther@suse.de>
3789
3790         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
3791         also generate copies.
3792         (fini_copy_prop): Handle constant values properly.
3793
3794 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
3795
3796         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
3797         mode size instead of bitsize with DWARF2_ADDR_SIZE.
3798         (hash_loc_operands, compare_loc_operands): Handle
3799         DW_OP_GNU_entry_value.
3800
3801 2011-03-25  Kai Tietz  <ktietz@redhat.com>
3802
3803         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
3804         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
3805         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
3806         comment and use macro TARGET_64BIT_MS_ABI instead.
3807         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
3808         and change default behavior for 32-bit MS_ABI.
3809         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
3810         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
3811         32-bit, too.
3812         (ix86_cfun_abi): Likewise.
3813         (ix86_maybe_switch_abi): Adjust comment.
3814         (init_cumulative_args): Check for bit-ness in MS_ABI case.
3815         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
3816         instead of checking for SYSV_ABI.
3817         (ix86_nsaved_sseregs): Likewise.
3818         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
3819         to 16 bytes.
3820         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
3821         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
3822         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
3823         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
3824         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
3825
3826 2011-03-25  Richard Guenther  <rguenther@suse.de>
3827
3828         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
3829         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
3830         (verify_gimple): Remove.
3831         * tree-cfg.c (verify_gimple_call): Merge verification
3832         from verify_stmts.
3833         (verify_gimple_phi): Merge verification from verify_stmts.
3834         (verify_gimple_label): New function.
3835         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
3836         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
3837         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
3838         (verify_stmts): Rename to verify_gimple_in_cfg.
3839         (verify_gimple_in_cfg): New function.
3840         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
3841         * tree-ssa.c (verify_ssa): Likewise.
3842         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
3843
3844 2011-03-25  Richard Guenther  <rguenther@suse.de>
3845
3846         * passes.c (init_optimization_passes): Add FRE pass after
3847         early SRA.
3848
3849 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
3850             Andrew Stubbs  <ams@codesourcery.com>
3851
3852         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
3853         for Cortex-A8.
3854         (arm_movdi_vfp_cortexa8): New pattern.
3855         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
3856         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
3857         instructions when tuning for Cortex-A8.  Set attribute "arch".
3858         * config/arm/arm.md: Move include arm-tune.md up a bit.
3859         (define_attr "arch"): Add "onlya8" and "nota8" values.
3860         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
3861
3862 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
3863
3864         PR bootstrap/48282
3865         Revert:
3866         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
3867
3868         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
3869         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
3870         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
3871         * passes.c (init_optimization_passes): Move
3872         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
3873
3874 2011-03-25  Kai Tietz  <ktietz@redhat.com>
3875
3876         * c-typeck.c (comptypes_internal): Replace target
3877         hook call of comp_type_attributes by version in tree.c file.
3878         * gimple.c (gimple_types_compatible_p_1): Likewise.
3879         * tree-ssa.c (useless_type_conversion_p): Likewise.
3880         * tree.c (build_type_attribute_qual_variant): Likewise.
3881         (attribute_value_equal): New static helper function.
3882         (comp_type_attributes): New function.
3883         (merge_attributes): Use attribute_value_equal for comparison.
3884         (attribute_list_contained): Likewise.
3885         * tree.h (comp_type_attributes): New prototype.
3886
3887 2011-03-25  Richard Guenther  <rguenther@suse.de>
3888
3889         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
3890         of complex types at -O0.
3891         (verify_gimple_assign_binary): Likewise.
3892         (verify_gimple_assign_ternary): Likewise.
3893
3894 2011-03-24  Mark Wielaard  <mjw@redhat.com>
3895
3896         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
3897         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
3898
3899 2011-03-24  Mark Wielaard  <mjw@redhat.com>
3900
3901         PR debug/48041
3902         * dwarf2out.c (output_abbrev_section): Only write table when
3903         abbrev_die_table_in_use > 1.
3904
3905 2011-02-24  Richard Henderson  <rth@redhat.com>
3906
3907         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
3908         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
3909         (alpha_expand_unaligned_load_words): Use extql.
3910         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
3911         (emit_insxl): Handle all modes for consistency.
3912
3913 2011-02-24  Richard Henderson  <rth@redhat.com>
3914
3915         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
3916         (alpha_expand_unaligned_load): Likewise.
3917         (alpha_expand_unaligned_store): Likewise.
3918         (alpha_expand_unaligned_load_words): Likewise.
3919         (alpha_expand_unaligned_store_words): Likewise.
3920         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
3921         (alpha_split_lock_test_and_set_12): Likewise.
3922         (print_operand, alpha_fold_builtin_extxx): Likewise.
3923         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
3924         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
3925         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
3926         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
3927         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
3928         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
3929         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
3930         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
3931         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
3932         (extwl, extll, extql): Similarly.
3933         (inswh, inslh, insqh): Similarly.
3934         (mskbl, mskwl, mskll, mskql): Similarly.
3935         (mskwh, msklh, mskqh): Similarly.
3936
3937 2011-02-24  Richard Henderson  <rth@redhat.com>
3938
3939         * config/alpha/alpha.md (attribute isa): Add er, ner.
3940         (attribute enabled): Handle them.
3941         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
3942
3943 2011-02-24  Richard Henderson  <rth@redhat.com>
3944
3945         * config/alpha/alpha.md (attribute isa): Add vms.
3946         (attribute enabled): Handle it.
3947         (*movsf): Merge *movsf_{nofix,fix,nofp}.
3948         (*movdf): Merge *movdf_{nofix,fix,nofp}.
3949         (*movtf): Rename from *movtf_internal for consistency.
3950         (*movsi): Merge with *movsi_nt_vms.
3951         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
3952         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
3953         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
3954         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
3955
3956 2011-02-24  Richard Henderson  <rth@redhat.com>
3957
3958         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
3959         (extendqisi2, extendhisi2): Likewise.
3960         (extendqidi2): Simplify BWX/non-BWX expansions.
3961         (extendhidi2): Similarly.
3962
3963 2011-02-24  Richard Henderson  <rth@redhat.com>
3964
3965         * config/alpha/alpha.md (attribute isa): New.
3966         (attribute enabled): New.
3967         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
3968         (zero_extendqisi2, zero_extendqidi2): Similarly.
3969         (zero_extendhisi2, zero_extendhidi2): Similarly.
3970         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
3971
3972 2011-02-24  Richard Henderson  <rth@redhat.com>
3973
3974         * config/alpha/predicates.md (input_operand): Revert last change;
3975         update comment to mention 32-bit VMS rather than Windows.
3976
3977 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
3978
3979         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
3980         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
3981         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
3982         * passes.c (init_optimization_passes): Move
3983         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
3984
3985 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
3986
3987         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
3988
3989 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
3990
3991         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
3992         correctly.
3993
3994 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
3995
3996         PR debug/48204
3997         * simplify-rtx.c (simplify_const_unary_operation): Call
3998         real_convert when changing mode class with FLOAT_EXTEND.
3999
4000 2011-03-24  Nick Clifton  <nickc@redhat.com>
4001
4002         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
4003         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
4004         * config/rx/rx.c (rx_option_override): Set align_jumps,
4005         align_loops and align_labels if not set by the user.
4006         (rx_align_for_label): New function.
4007         (rx_max_skip_for_label): New function.
4008         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
4009         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
4010         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
4011         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
4012         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
4013
4014 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
4015
4016         PR rtl-optimization/48263
4017         * optabs.c (expand_binop_directly): Reinstate convert_modes code
4018         and original commutative_p handling.  Use maybe_gen_insn.
4019
4020 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4021
4022         * reload.c (find_reloads_subreg_address): Add address_reloaded
4023         parameter and return true there if the full address has been
4024         reloaded.
4025         (find_reloads_toplev): Pass address_reloaded flag.
4026         (find_reloads_address_1): Don't use address_reloaded parameter.
4027
4028 2011-03-24  Jeff Law  <law@redhat.com>
4029
4030         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
4031         unused variable "ann".
4032         (remove_unused_locals): Likewise.
4033
4034         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
4035         statement.
4036
4037         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
4038         after it is freed.
4039
4040 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4041
4042         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
4043         for invalid symbolic addresses.
4044         (s390_secondary_reload): Don't use s390_check_symref_alignment for
4045         larl operands.
4046
4047 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
4048
4049         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
4050         the argument in calls to fold_truth_not_expr.
4051
4052 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
4053
4054         * tree.c (record_node_allocation_statistics): New function.
4055         (make_node_stat, copy_node_stat, build_string): Call it.
4056         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
4057         (build1_stat, build_omp_clause): Likewise.
4058
4059 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
4060
4061         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
4062         last commit.
4063
4064 2011-03-24  Richard Guenther  <rguenther@suse.de>
4065
4066         PR tree-optimization/48271
4067         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
4068         blocks that still exist.
4069
4070 2011-03-24  Richard Guenther  <rguenther@suse.de>
4071
4072         PR tree-optimization/48270
4073         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
4074         not free datarefs before ddrs.
4075
4076 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
4077
4078         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
4079         from the address built for a reference with variable offset.
4080
4081 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
4082
4083         PR target/48237
4084         * config/i386/i386.md (*movdf_internal_rex64): Do not split
4085         alternatives that can be handled with movq or movabsq insn.
4086         (*movdf_internal): Disable for !TARGET_64BIT.
4087         (*movdf_internal_nointeger): Ditto.
4088         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
4089
4090 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
4091
4092         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
4093         (FUNCTION_ARG_ADVANCE): Likewise.
4094         * tm.texi.in: Change references to them to hook references.
4095         * tm.texi: Regenerate.
4096         * targhooks.c (default_function_arg): Eliminate check for target macro.
4097         (default_function_incoming_arg): Likewise.
4098         (default_function_arg_advance): Likewise.
4099         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
4100         (function_arg_advance): Likewise.
4101         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
4102
4103 2011-03-24  Richard Guenther  <rguenther@suse.de>
4104
4105         PR middle-end/48269
4106         * tree-object-size.c (addr_object_size): Do not double-account
4107         for MEM_REF offsets.
4108
4109 2011-03-24  Diego Novillo  <dnovillo@google.com>
4110
4111         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
4112         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
4113         (lto_input_data_block): Move from lto-opts.c.  Make extern.
4114         Update all users.
4115         (lto_input_string): Rename from input_string.  Make extern.
4116         Update all users.
4117         * lto-streamer-out.c (lto_output_string_with_length): Rename from
4118         output_string_with_length.
4119         Output 0 to indicate a non-NULL string.  Update all callers to
4120         not emit 0.
4121         (lto_output_string): Rename from output_string.  Make extern.
4122         Update all users.
4123         (lto_output_decl_state_streams): Make extern.
4124         (lto_output_decl_state_refs): Make extern.
4125         * lto-streamer.h (lto_input_string): Declare.
4126         (lto_input_data_block): Declare.
4127         (lto_output_string): Declare.
4128         (lto_output_string_with_length): Declare.
4129         (lto_output_decl_state_streams): Declare.
4130         (lto_output_decl_state_refs): Declare.
4131
4132 2011-03-24  Richard Guenther  <rguenther@suse.de>
4133
4134         PR tree-optimization/46562
4135         * tree.c (build_invariant_address): New function.
4136         * tree.h (build_invariant_address): Declare.
4137         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
4138         a renamed function moved ...
4139         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
4140         Take valueization callback parameter.
4141         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
4142         * gimple-fold.h: New file.
4143         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
4144         (ccp_fold, fold_const_aggregate_ref,
4145         fold_ctor_reference, fold_nonarray_ctor_reference,
4146         fold_array_ctor_reference, fold_string_cst_ctor_reference,
4147         get_base_constructor): Move ...
4148         * gimple-fold.c: ... here.
4149         (gimple_fold_stmt_to_constant_1): New function
4150         split out from ccp_fold.  Take a valueization callback parameter.
4151         Valueize all operands.
4152         (gimple_fold_stmt_to_constant): New wrapper function.
4153         (fold_const_aggregate_ref_1): New function split out from
4154         fold_const_aggregate_ref.  Take a valueization callback parameter.
4155         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
4156         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
4157         invariant POINTER_PLUS_EXPRs to invariant form.
4158         (vn_valueize): New function.
4159         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
4160         * tree-vrp.c (vrp_valueize): New function.
4161         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
4162         to fold statements to constants.
4163         * tree-ssa-pre.c (eliminate): Properly guard propagation of
4164         function declarations.
4165         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
4166         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
4167
4168 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
4169
4170         * config/h8300/predicates.md (jump_address_operand): Fix register
4171         mode check.
4172
4173 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
4174
4175         * doc/invoke.texi (max-stores-to-sink): Document.
4176         * params.h (MAX_STORES_TO_SINK): Define.
4177         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
4178         if either vectorization or if-conversion is disabled.
4179         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
4180         tree-vect-data-refs.c vect_equal_offsets.
4181         (dr_equal_offsets_p): New function.
4182         (find_data_references_in_bb): Remove static.
4183         * tree-data-ref.h (find_data_references_in_bb): Declare.
4184         (dr_equal_offsets_p): Likewise.
4185         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
4186         (vect_drs_dependent_in_basic_block): Update calls to
4187         vect_equal_offsets.
4188         (vect_check_interleaving): Likewise.
4189         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
4190         (cond_if_else_store_replacement): Rename to...
4191         (cond_if_else_store_replacement_1): ... this.  Change arguments and
4192         documentation.
4193         (cond_if_else_store_replacement): New function.
4194         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
4195         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
4196
4197 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
4198
4199         PR target/46934
4200         * config/arm/arm.md (casesi): Use the gen_int_mode() function
4201         to subtract lower bound instead of GEN_INT().
4202
4203 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
4204
4205         PR other/48179
4206         PR other/48221
4207         PR other/48234
4208         * doc/extend.texi (Alignment): Move section to match order in TOC.
4209         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
4210         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
4211
4212 2011-03-23  Jeff Law  <law@redhat.com>
4213
4214         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
4215         before removing the edge.
4216
4217         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
4218         it may have been freed by redirect_branch_edge or
4219         redirect_edge_succ_nodup.
4220
4221 2011-03-23  Richard Guenther  <rguenther@suse.de>
4222
4223         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
4224         (check_va_list_escapes): Likewise.
4225         (check_all_va_list_escapes): Likewise.
4226
4227 2011-03-23  Richard Guenther  <rguenther@suse.de>
4228
4229         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
4230         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
4231         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
4232         (alias.o): Likewise.
4233         (ipa-type-escape.o): Remove.
4234         (ipa-struct-reorg.o): Likewise.
4235         (GTFILES): Remove ipa-struct-reorg.c.
4236         * alias.c: Do not include ipa-type-escape.h.
4237         * tree-ssa-alias.c: Likewise.
4238         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
4239         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
4240         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
4241         and ipa-type-escape passes.
4242         * tree-pass.h (pass_ipa_type_escape): Remove.
4243         (pass_ipa_struct_reorg): Likewise.
4244         * ipa-struct-reorg.h: Remove.
4245         * ipa-struct-reorg.c: Likewise.
4246         * ipa-type-escape.h: Likewise.
4247         * ipa-type-escape.c: Likewise.
4248         * doc/invoke.texi (-fipa-struct-reorg): Remove.
4249         (--param struct-reorg-cold-struct-ratio): Likewise.
4250         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
4251         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
4252         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
4253
4254 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4255
4256         * config/s390/2084.md: Enable all insn reservations also for z9_ec
4257         cpu attribute value.
4258         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
4259         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
4260         * config/s390/s390.c (processor_flags_table): New constant array.
4261         (s390_handle_arch_option): Remove.
4262         (s390_handle_option): Remove s390_handle_arch_option invocations
4263         and OPT_mwarn_framesize_ handling.
4264         (s390_option_override): Remove s390_handle_arch_option invocation.
4265         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
4266         warnings.
4267         * config/s390/s390.md (cpu attribute): Add z9_ec value.
4268         * config/s390/s390.opt (s390_tune, s390_arch)
4269         (march=): Replace s390_arch_option enum and values with
4270         processor_type.  Set variable name to s390_arch.  Set
4271         initialization value.
4272         (mtune=): Replace s390_arch_option with processor_type.  Set
4273         variable name to s390_tune.  Set initialization value.
4274
4275 2011-03-23  Julian Brown  <julian@codesourcery.com>
4276
4277         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
4278         accesses which are not naturally aligned.
4279
4280 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
4281
4282         PR target/47553
4283         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
4284
4285 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
4286
4287         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
4288         parameter from "int" to "enum insn_code".
4289         (expand_operand_type): New enum.
4290         (expand_operand): New structure.
4291         (create_expand_operand): New function.
4292         (create_fixed_operand, create_output_operand): Likewise
4293         (create_input_operand, create_convert_operand_to): Likewise.
4294         (create_convert_operand_from, create_address_operand): Likewise.
4295         (create_integer_operand): Likewise.
4296         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
4297         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
4298         (expand_insn, expand_jump_insn): Likewise.
4299         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
4300         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
4301         (expand_movstr, expand_builtin___clear_cache): Likewise.
4302         (expand_builtin_lock_release): Likewise.
4303         * explow.c (allocate_dynamic_stack_space): Likewise.
4304         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
4305         and use the default handling in that case.
4306         * expmed.c (check_predicate_volatile_ok): Delete.
4307         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
4308         (emit_cstore): Likewise.
4309         * expr.c (emit_block_move_via_movmem): Likewise.
4310         (set_storage_via_setmem, expand_assignment): Likewise.
4311         (emit_storent_insn, try_casesi): Likewise.
4312         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
4313         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
4314         (expand_vec_shift_expr, expand_binop_directly): Likewise.
4315         (expand_twoval_unop, expand_twoval_binop): Likewise.
4316         (expand_unop_direct, emit_indirect_jump): Likewise.
4317         (emit_conditional_move, vector_compare_rtx): Likewise.
4318         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
4319         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
4320         (expand_sync_lock_test_and_set): Likewise.
4321         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
4322         (emit_unop_insn): Likewise.
4323         (expand_copysign_absneg): Change icode to an insn_code.
4324         (create_convert_operand_from_type): New function.
4325         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
4326         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
4327         (expand_insn, expand_jump_insn): Likewise.
4328         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
4329         than const_int_operand for operand 2.
4330
4331 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4332
4333         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
4334         if possible.
4335
4336 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
4337
4338         * emit-rtl.c (emit_pattern_before_noloc): New function.
4339         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
4340         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
4341         (emit_pattern_after_noloc): New function.
4342         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
4343         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
4344
4345 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
4346
4347         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
4348         (__ffsDI2): Likewise.
4349
4350 2011-03-22  Richard Henderson  <rth@redhat.com>
4351
4352         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
4353         of !TARGET_ABI_OPEN_VMS.
4354         (alpha_trampoline_init, alpha_start_function): Likewise.
4355         (alpha_expand_epilogue, alpha_file_start): Likewise.
4356         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
4357         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
4358         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
4359         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
4360         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
4361
4362 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4363
4364         * config/s390/s390-opts.h: New.
4365         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
4366         s390_arch_flags, s390_warn_framesize, s390_stack_size,
4367         s390_stack_guard): Remove.
4368         (s390_handle_arch_option): Return void.  Take enum
4369         s390_arch_option value instead of string and searching array.
4370         (s390_handle_option): Don't assert that global structures are in
4371         use.  Access variables via opts pointer.  Use error_at.  Don't use
4372         sscanf for -mstack-guard= or -mstack-size=.  Update call to
4373         s390_handle_arch_option.
4374         (s390_option_override): Update call to s390_handle_arch_option.
4375         (s390_emit_prologue): Use %d format for s390_stack_size in
4376         diagnostic.  Use %wd for HOST_WIDE_INT.
4377         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
4378         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
4379         * config/s390/s390.opt (config/s390/s390-opts.h): New
4380         HeaderInclude entry.
4381         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
4382         s390_arch_flags, s390_warn_framesize): New Variable entries.
4383         (s390_arch_option): New Enum and EnumValue entries.
4384         (march=): Use Enum instead of Var.
4385         (mstack-guard=, mstack-size=): Use UInteger and Var.
4386         (mtune=): Use Enum.
4387
4388 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4389
4390         * config/score/score.c (score_handle_option): Don't assert that
4391         global structures are in use.  Access target_flags via opts
4392         pointer.  Use value of -march= option to determine target_flags
4393         settings.
4394         * config/score/score.opt (march=): Use Enum.
4395         (score_arch): New Enum and EnumValue entries.
4396
4397 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4398
4399         * config/mep/mep.c (option_mtiny_specified): Remove.
4400         (mep_option_override): Move register handling for -mivc2 from
4401         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
4402         instead of option_mtiny_specified.
4403         (mep_handle_option): Access target_flags via opts pointer.  Don't
4404         assert that global structures are in use.  Defer part of -mivc2
4405         handling and move it to mep_option_override.
4406         * config/mep/mep.opt (IVC2): New Mask entry.
4407         (mivc2): Use Var and Defer instead of Mask.
4408
4409 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4410
4411         * config/v850/v850-opts.h: New.
4412         * config/v850/v850.c (small_memory): Replace with
4413         small_memory_physical_max array.  Make that array static const.
4414         (v850_handle_memory_option): Take integer value of argument.  Take
4415         gcc_options pointer, option text and location.  Return void.
4416         Update for changes to small memory structures.
4417         (v850_handle_option): Access target_flags via opts pointer.  Don't
4418         assert that global structures are in use.  Update calls to
4419         v850_handle_memory_option.
4420         (v850_encode_data_area): Update references to small memory settings.
4421         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4422         (enum small_memory_type): Move to v850-opts.h.
4423         * config/v850/v850.opt (config/v850/v850-opts.h): New
4424         HeaderInclude entry.
4425         (small_memory_max): New Variable entry.
4426         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
4427         (mtda, mzda): Likewise.
4428
4429 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4430
4431         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
4432         pointer.  Don't assert that global structures are in use.
4433
4434 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4435
4436         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
4437         via opts pointer.  Don't assert that global structures are in use.
4438
4439 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4440
4441         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
4442         (munix=93): Use Var.
4443         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
4444         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
4445         * config/pa/pa-opts.h: New.
4446         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
4447         (pa_handle_option): Don't assert that global structures are in
4448         use.  Access target_flags via opts pointer.  Don't handle
4449         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
4450         OPT_munix_98 here.
4451         (pa_option_override): Handle deferred OPT_mfixed_range_.
4452
4453 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4454
4455         * config/mn10300/mn10300-opts.h: New.
4456         * config/mn10300/mn10300.c (mn10300_processor,
4457         mn10300_tune_string): Remove.
4458         (mn10300_handle_option): Don't assert that global structures are
4459         in use.  Access mn10300_processor via opts pointer.  Don't handle
4460         OPT_mtune_ here.
4461         * config/mn10300/mn10300.h (enum processor_type): Move to
4462         mn10300-opts.h.
4463         (mn10300_processor): Remove.
4464         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
4465         HeaderInclude entry.
4466         (mn10300_processor): New Variable entry.
4467         (mtune=): Use Var.
4468
4469 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4470
4471         * config/microblaze/microblaze.c: Don't include opts.h.
4472         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
4473         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
4474         (mno-clearbss): Use Var and Warn.
4475
4476 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4477
4478         * config/m32r/m32r-opts.h: New.
4479         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
4480         (m32r_handle_option): Don't assert that global structures are in
4481         use.  Access target_flags and m32r_cache_flush_func via opts
4482         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
4483         OPT_mno_flush_trap here.
4484         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
4485         include of m32r-opts.h.
4486         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
4487         HeaderInclude entry.
4488         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
4489         (mmodel=): Use Enum and Var.
4490         (m32r_model): New Enum and EnumValue entries.
4491         (mno-flush-trap): Use Var.
4492         (msdata=): Use Enum and Var.
4493         (m32r_sdata): New Enum and EnumValue entries.
4494
4495 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4496
4497         * config/m32c/m32c.c: Don't include opts.h.
4498         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
4499         m32c_handle_option): Remove.
4500         (m32c_option_override): Check global_options_set.x_target_memregs
4501         instead of target_memregs_set.
4502         * config/m32c/m32c.h (target_memregs): Remove.
4503         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
4504         variable.
4505
4506 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4507
4508         * config/iq2000/iq2000-opts.h: New.
4509         * config/iq2000/iq2000.c: Don't include opts.h.
4510         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
4511         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
4512         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
4513         HeaderInclude entry.
4514         (iq2000_tune): New Variable entry.
4515         (march=): Add comment.  Use Enum.
4516         (iq2000_arch): New Enum and EnumValue entries.
4517         (mcpu=): Use Enum and Var.
4518         (iq2000_tune): New Enum and EnumValue entries.
4519
4520 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4521
4522         * config/ia64/ia64-opts.h: New.
4523         * config/ia64/ia64.c (ia64_tune): Remove.
4524         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
4525         here.  Use error_at.
4526         (ia64_option_override): Handle deferred OPT_mfixed_range_.
4527         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
4528         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
4529         HeaderInclude entry.
4530         (ia64_tune): New Variable entry.
4531         (mfixed-range=): Use Defer and Var.
4532         (mtune=): Use Enum and Var.
4533         (ia64_tune): New Enum and EnumValue entries.
4534
4535 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4536
4537         * config/frv/frv-opts.h: New.
4538         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
4539         frv-opts.h.
4540         (frv_cpu_type): Remove.
4541         * config/frv/frv.c: Don't include opts.h.
4542         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
4543         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
4544         (frv_cpu_type): New Variable entry.
4545         (frv_cpu): New Enum and EnumValue entries.
4546
4547 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4548
4549         * config/cris/cris.c (cris_handle_option): Access target_flags via
4550         opts pointer.  Don't assert that global structures are in use.
4551         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
4552         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
4553
4554 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4555
4556         * config/bfin/bfin-opts.h: New.
4557         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
4558         bfin_si_revision, bfin_workarounds): Remove.
4559         (bfin_cpus): Make static const.
4560         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
4561         not bfin_lib_id_given.
4562         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
4563         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
4564         pointer. Use error_at.  Don't assert that global structures are in use.
4565         * config/bfin/bfin.h: Include bfin-opts.h.
4566         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
4567         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
4568         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
4569         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
4570         entries.
4571
4572 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4573
4574         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
4575         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
4576         or -msoft-float here.
4577         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
4578         -msoft-float and -mhard-float.
4579         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
4580         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
4581         msoft-float.
4582         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
4583         -msoft-float.
4584         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
4585         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
4586         not mhard-float.
4587         (LIBGCC_SPEC): Don't handle -msoft-float.
4588         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
4589         -mhard-float.
4590         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
4591         msoft-float.
4592         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
4593         -mfloat-abi=*, not -msoft-float and -mhard-float.
4594         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
4595         -msoft-float.
4596         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
4597         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
4598         mhard-float and msoft-float.
4599         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
4600         mfloat-abi=soft in comments, not mhard-float and msoft-float.
4601         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
4602         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
4603         mhard-float.
4604         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
4605         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
4606         msoft-float.
4607         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
4608         not mhard-float.
4609         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
4610         not msoft-float.
4611
4612 2011-03-22  Richard Henderson  <rth@redhat.com>
4613
4614         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
4615         TARGET_ABI_WINDOWS_NT.
4616         (alpha_output_function_end_prologue): Likewise.
4617         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
4618         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
4619         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
4620         (trap, *movsi_nt_vms): Likewise.
4621         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
4622         (*tablejump_osf_nt_internal): Remove.
4623         * config/alpha/predicates.md (input_operand): Only test Pmode.
4624
4625 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4626
4627         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
4628         via opts pointer.  Use error_at.  Don't assert that global
4629         structures are in use.
4630
4631 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4632
4633         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
4634         (ix86_handle_option): Access ix86_isa_flags and
4635         ix86_isa_flags_explicit via opts pointer.  Don't assert that
4636         global structures are in use.
4637         (ix86_function_specific_save, ix86_function_specific_restore):
4638         Update ix86_isa_flags_explicit field name.
4639         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
4640         (ix86_isa_flags_explicit): Rename TargetSave entry to
4641         x_ix86_isa_flags_explicit.
4642
4643 2011-03-22  Richard Henderson  <rth@redhat.com>
4644
4645         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
4646         (alpha_option_override, direct_return): Likewise.
4647         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
4648         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
4649         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
4650         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
4651         (alpha_expand_epilogue, alpha_end_function): Likewise.
4652         (alpha_init_libfuncs): Likewise.
4653         (struct machine_function): Remove unicosmk members.
4654         (print_operand) ['t']: Remove.
4655         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
4656         unicosmk_output_module_name, unicosmk_output_common,
4657         current_section_align, unicosmk_output_text_section_asm_op,
4658         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
4659         unicosmk_section_type_flags, unicosmk_unique_section,
4660         unicosmk_asm_named_section, unicosmk_insert_attributes,
4661         unicosmk_output_align, unicosmk_defer_case_vector,
4662         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
4663         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
4664         unicosmk_output_ssib, unicosmk_add_call_info_word,
4665         unicosmk_extern_head, unicosmk_output_default_externs,
4666         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
4667         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
4668         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
4669         * config/alpha/alpha-protos.h: Update.
4670         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
4671         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
4672         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
4673         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
4674         (*mulsi_se, mulvsi3): Likewise.
4675         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
4676         (*divmodsi_internal, call, call_value, realign): Likewise.
4677         (moddi3, umoddi3): Likewise; remove duplicate expander.
4678         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
4679         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
4680         (*movdi_nofix): Remove r/U alternative.
4681         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
4682         * config/alpha/constraints.md ("U"): Remove.
4683         * config/alpha/predicates.md (call_operand"): Don't test
4684         TARGET_ABI_UNICOSMK.
4685
4686 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4687
4688         * target.def (handle_option): Take gcc_options and
4689         cl_decoded_option pointers and location_t.
4690         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
4691         * doc/tm.texi: Regenerate.
4692         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
4693         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
4694         * lto-opts.c (lto_reissue_options): Generate option structure for
4695         targetm.handle_option call.
4696         * opts.c (target_handle_option): Update call to
4697         targetm.handle_option.  Remove assertions about values now passed
4698         down to hook.
4699         * targhooks.c (default_target_handle_option): New.
4700         * targhooks.h (default_target_handle_option): Declare.
4701         * config/alpha/alpha.c: Include opts.h.
4702         (alpha_handle_option): Update to new hook interface.
4703         * config/arm/arm.c: Include opts.h.
4704         (arm_handle_option): Update to new hook interface.
4705         * config/arm/t-arm (arm.o): Update dependencies.
4706         * config/bfin/bfin.c: Include opts.h.
4707         (bfin_handle_option): Update to new hook interface.
4708         * config/cris/cris.c: Include opts.h.
4709         (cris_handle_option): Update to new hook interface.
4710         * config/frv/frv.c: Include opts.h.
4711         (frv_handle_option): Update to new hook interface.
4712         * config/i386/i386.c: Include opts.h.
4713         (ix86_handle_option): Update to new hook interface.
4714         (ix86_valid_target_attribute_inner_p): Generate option structure
4715         for call to ix86_handle_option.
4716         * config/i386/t-i386 (i386.o): Update dependencies.
4717         * config/ia64/ia64.c: Include opts.h.
4718         (ia64_handle_option): Update to new hook interface.
4719         * config/ia64/t-ia64 (ia64.o): Update dependencies.
4720         * config/iq2000/iq2000.c: Include opts.h.
4721         (iq2000_handle_option): Update to new hook interface.
4722         * config/m32c/m32c.c: Include opts.h.
4723         (m32c_handle_option): Update to new hook interface.
4724         * config/m32r/m32r.c: Include opts.h.
4725         (m32r_handle_option): Update to new hook interface.
4726         * config/m68k/m68k.c: Include opts.h.
4727         (m68k_handle_option): Update to new hook interface.
4728         * config/mep/mep.c: Include opts.h.
4729         (mep_handle_option): Update to new hook interface.
4730         * config/microblaze/microblaze.c: Include opts.h.
4731         (microblaze_handle_option): Update to new hook interface.
4732         * config/mips/mips.c: Include opts.h.
4733         (mips_handle_option): Update to new hook interface.
4734         * config/mn10300/mn10300.c: Include opts.h.
4735         (mn10300_handle_option): Update to new hook interface.
4736         * config/pa/pa.c: Include opts.h.
4737         (pa_handle_option): Update to new hook interface.
4738         * config/pdp11/pdp11.c: Include opts.h.
4739         (pdp11_handle_option): Update to new hook interface.
4740         * config/rs6000/rs6000.c: Include opts.h.
4741         (rs6000_handle_option): Update to new hook interface.
4742         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
4743         * config/rx/rx.c: Include opts.h.
4744         (rx_handle_option): Update to new hook interface.
4745         * config/s390/s390.c: Include opts.h.
4746         (s390_handle_option): Update to new hook interface.
4747         * config/score/score.c: Include opts.h.
4748         (score_handle_option): Update to new hook interface.
4749         * config/sh/sh.c: Include opts.h.
4750         (sh_handle_option): Update to new hook interface.
4751         * config/sparc/sparc.c: Include opts.h.
4752         (sparc_handle_option): Update to new hook interface.
4753         * config/v850/v850.c: Include opts.h.
4754         (v850_handle_option): Update to new hook interface.
4755
4756 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4757
4758         * gcc.c (driver_unknown_option_callback): Only permit and save
4759         unknown -Wno- options.
4760         (driver_wrong_lang_callback): Save options directly instead of via
4761         driver_unknown_option_callback.
4762
4763 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
4764
4765         * combine.c (simplify_set): Try harder to find the best CC mode when
4766         simplifying a nested COMPARE on the RHS.
4767
4768 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4769
4770         * config/alpha/gnu.h: Remove.
4771         * config/arc: Remove directory.
4772         * config/arm/netbsd.h: Remove.
4773         * config/arm/t-pe: Remove.
4774         * config/crx: Remove directory.
4775         * config/i386/netbsd.h: Remove.
4776         * config/m68hc11: Remove directory.
4777         * config/m68k/uclinux-oldabi.h: Remove.
4778         * config/mcore/mcore-pe.h: Remove.
4779         * config/mcore/t-mcore-pe: Remove.
4780         * config/netbsd-aout.h: Remove.
4781         * config/rs6000/gnu.h: Remove.
4782         * config/sh/sh-symbian.h: Remove.
4783         * config/sh/symbian-base.c: Remove.
4784         * config/sh/symbian-c.c: Remove.
4785         * config/sh/symbian-cxx.c: Remove.
4786         * config/sh/symbian-post.h: Remove.
4787         * config/sh/symbian-pre.h: Remove.
4788         * config/sh/t-symbian: Remove.
4789         * config/svr3.h: Remove.
4790         * config/vax/netbsd.h: Remove.
4791         * config.build: Don't handle i[34567]86-*-pe.
4792         * config.gcc: Remove handling of deprecations for most deprecated
4793         targets.
4794         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
4795         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
4796         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
4797         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
4798         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
4799         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
4800         Remove cases.
4801         * config.host: Don't handle i[34567]86-*-pe.
4802         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
4803         (ASM_SPEC32): Don't handle -mcall-gnu.
4804         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
4805         -mcall-gnu.
4806         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
4807         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
4808         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
4809         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
4810         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
4811         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
4812         conditional on SYMBIAN.
4813         * configure.ac: Don't handle powerpc*-*-gnu*.
4814         * configure: Regenerate.
4815         * doc/extend.texi (interrupt attribute): Don't mention CRX.
4816         * doc/install-old.texi (m6811, m6812): Don't mention.
4817         * doc/install.texi (arc-*-elf*): Don't document multilib option.
4818         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
4819         (m68k-uclinuxoldabi): Don't mention.
4820         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
4821         Remove.
4822         (-mcall-gnu): Remove.
4823         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
4824         families): Remove constraint documentation.
4825
4826 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
4827
4828         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
4829         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
4830         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
4831
4832 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
4833
4834         * config/avr/avr-protos.h (expand_epilogue): Change prototype
4835         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
4836         * config/avr/avr.c (init_cumulative_args)
4837         (avr_function_arg_advance): Use it.
4838         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
4839         sibcall epilogues.
4840         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
4841         (avr_function_ok_for_sibcall): ...this new function.
4842         (avr_lookup_function_attribute1): New static Function.
4843         (avr_naked_function_p, interrupt_function_p)
4844         (signal_function_p, avr_OS_task_function_p)
4845         (avr_OS_main_function_p): Use it.
4846         * config/avr/avr.md ("sibcall", "sibcall_value")
4847         ("sibcall_epilogue"): New expander.
4848         ("*call_insn", "*call_value_insn"): New insn.
4849         ("call_insn", "call_value_insn"): Remove
4850         ("call", "call_value", "epilogue"): Change expander to handle
4851         sibling calls.
4852
4853 2011-03-21  Nick Clifton  <nickc@redhat.com>
4854
4855         * doc/invoke.texi (Overall Options): Move closing brace to end of
4856         options list.
4857         (Optimization Options): Add missing @gol.
4858         (Directory Options): Likewise.
4859         (i386 and x86-64 Options): Likewise.
4860         (RS6000 and PowerPC Options): Likewise.
4861         (i386 and x86-64 Windows Options): Likewise.
4862         (V850 Options): Add text missing from descriptions.
4863
4864 2011-03-22  Richard Henderson  <rth@redhat.com>
4865
4866         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
4867         (avr_incoming_return_addr_rtx): New.
4868         (emit_push_byte): New.
4869         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
4870         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
4871         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
4872         (emit_pop_byte): New.
4873         (expand_epilogue): Use it.  Pop frame pointer by bytes.
4874         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
4875         (INCOMING_RETURN_ADDR_RTX): New.
4876         (INCOMING_FRAME_SP_OFFSET): New.
4877         (ARG_POINTER_CFA_OFFSET): New.
4878         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
4879         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
4880         (pophi): Remove.
4881
4882         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
4883
4884 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
4885
4886         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
4887         (FUNCTION_ARG_ADVANCE): Likewise.
4888         * tm.texi.in: Change references to them to hook references.
4889         * tm.texi: Regenerate.
4890         * targhooks.c (default_function_arg): Eliminate check for target
4891         macro.
4892         (default_function_incoming_arg): Likewise.
4893         (default_function_arg_advance): Likewise.
4894         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
4895         (function_arg_advance): Likewise.
4896         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
4897
4898 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
4899
4900         * tree.c (build_call_1): New function.
4901         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
4902
4903 2011-03-22  Richard Guenther  <rguenther@suse.de>
4904
4905         PR tree-optimization/48228
4906         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
4907         for single-arg PHIs.
4908
4909 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
4910
4911         PR rtl-optimization/48143
4912         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
4913         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
4914         sse2_cvtps2pd): Likewise.
4915
4916 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4917
4918         * recog.c (canonicalize_change_group): Use validate_unshare_change.
4919
4920 2011-03-22  Richard Guenther  <rguenther@suse.de>
4921
4922         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
4923         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
4924         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
4925         and REALIGN_LOAD_EXPR.
4926         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
4927         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
4928         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
4929         DOT_PROD_EXPR case ...
4930         (expand_expr_real_2): ... here.
4931         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
4932         and REALIGN_LOAD_EXPR.
4933         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
4934         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
4935         (vect_create_epilog_for_reduction): Likewise.
4936         (vectorizable_reduction): Likewise.
4937         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
4938         * tree-vect-stmts.c (vectorizable_load): Likewise.
4939
4940 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
4941
4942         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
4943
4944 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4945
4946         * config/s390/s390.c (s390_delegitimize_address): Fix offset
4947         handling for PLTOFF/GOTOFF.
4948
4949 2011-03-22  Nick Clifton  <nickc@redhat.com>
4950
4951         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
4952         trailing backslash from the end of the macro definition.
4953
4954 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4955
4956         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
4957         and PLT unspecs.
4958
4959 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
4960
4961         * expr.h (prepare_operand): Move to...
4962         * optabs.h (prepare_operand): ...here and change the insn code
4963         parameter from "int" to "enum insn_code".
4964         (insn_operand_matches): Declare.
4965         * expr.c (init_expr_target): Use insn_operand_matches.
4966         (compress_float_constant): Likewise.
4967         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
4968         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
4969         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
4970         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
4971         Likewise.
4972         (gen_cond_trap): Likewise.
4973         (prepare_operand): Likewise.  Change icode to an insn_code.
4974         (insn_operand_matches): New function.
4975         * reload.c (find_reloads_address_1): Use insn_operand_matches.
4976         * reload1.c (gen_reload): Likewise.
4977         * targhooks.c (default_secondary_reload): Likewise.
4978
4979 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
4980
4981         * config/alpha/alpha.md (unspec): New define_c_enum.
4982         (unspecv): Ditto.
4983
4984 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
4985
4986         PR debug/48214
4987         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
4988         between a call and its CALL_ARG_LOCATION note.
4989
4990 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
4991
4992         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
4993
4994 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
4995
4996         PR c/42544
4997         PR c/48197
4998         * c-common.c (shorten_compare): If primopN is first sign-extended
4999         to opN and then zero-extended to result type, set primopN to opN.
5000
5001 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
5002
5003         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
5004         for barrier handlers.
5005
5006 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
5007
5008         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
5009         UNSPEC constants to be in the unspec enumeration, and redefine
5010         all UNSPECV constants to be in the unspecv enumeration, so that
5011         dumps print which unspec/unspec_volatile this is.
5012         * config/rs6000/vector.md (UNSPEC_*): Ditto.
5013         * config/rs6000/paired.md (UNSPEC_*): Ditto.
5014         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
5015         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
5016         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
5017
5018         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
5019         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
5020         UNSPECV_LWSYNC, since these are used as unspec_volatile.
5021         * config/rs6000/sync.md (isync, lwsync): Ditto.
5022
5023 2011-03-21  Richard Guenther  <rguenther@suse.de>
5024
5025         * params.def (lto-min-partition): Fix typo.
5026
5027 2011-03-21  Richard Guenther  <rguenther@suse.de>
5028
5029         PR c/47939
5030         * c-decl.c (grokdeclarator): Drop to the main variant only
5031         for array types.  Drop flag_gen_aux_info check.
5032
5033 2011-03-21  Richard Guenther  <rguenther@suse.de>
5034
5035         PR translation/47911
5036         * params.def (lto-partitions): Fix typo.
5037         (lto-min-partition): Fix wording.
5038
5039 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
5040
5041         * config/rs6000/t-freebsd: Remove duplication from file.
5042
5043 2011-03-21  Richard Guenther  <rguenther@suse.de>
5044
5045         PR middle-end/47661
5046         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
5047
5048 2011-03-21  Richard Guenther  <rguenther@suse.de>
5049
5050         PR lto/48210
5051         * params.def (lto-partitions): Require at least 1 partition.
5052
5053 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5054
5055         * gthr-solaris.h: Remove.
5056         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
5057         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
5058         (LIB_SPEC): Likewise.
5059         * config/sol2.opt (threads): Remove.
5060         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
5061         (sparc*-*-solaris2*): Likewise.
5062         * configure.ac (enable_threads): Enable solaris support.
5063         * configure: Regenerate.
5064         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
5065         * doc/install.texi (Configuration, --enable-threads=lib): Remove
5066         solaris.
5067
5068 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5069
5070         * config.gcc: Obsolete *-*-solaris2.8*.
5071         * doc/install.texi (Specific, *-*-solaris2*): Document it.
5072
5073 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5074
5075         PR bootstrap/48135
5076         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
5077         reference.  Solaris 8 perl works.
5078
5079 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5080
5081         PR bootstrap/48135
5082         * doc/install.texi (Prerequisites): Move jar etc. up.
5083         Explain support library version requirements.
5084
5085 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5086
5087         PR bootstrap/48135
5088         * doc/install.texi (Prerequisites): Move Perl to build
5089         requirements.  Always necessary on Solaris 2 with Sun ld.
5090
5091 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5092
5093         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
5094         binutils 2.21.
5095         (Specific, i?86-*-solaris2.[89]): Likewise.
5096         (Specific, i?86-*-solaris2.10): Likewise.
5097         (Specific, mips-sgi-irix6): Likewise.
5098         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
5099         Update for binutils 2.21.
5100
5101 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5102
5103         * configure.ac (gcc_cv_lto_plugin): Fix typo.
5104         Allow -fuse-linker-plugin for non-default plugin linker.
5105         * configure: Regenerate.
5106
5107 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
5108
5109         PR bootstrap/48167
5110         * gengtype.c (files_rules): Added rule for cp/parser.h.
5111
5112 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
5113
5114         PR target/48213
5115         * config/s390/s390.c (s390_delegitimize_address): Don't call
5116         lowpart_subreg if orig_x has BLKmode.
5117
5118 2011-03-21  Kai Tietz  <ktietz@redhat.com>
5119
5120         PR target/12171
5121         * doc/plugins.texi: Adjust documentation for plugin register_callback.
5122         * tree.h (attribute_spec): Add new member affects_type_identity.
5123         * attribs.c (empty_attribute_table): Adjust attribute_spec
5124         initializers.
5125         * config/alpha/alpha.c: Likewise.
5126         * config/arc/arc.c: Likewise.
5127         * config/arm/arm.c: Likewise.
5128         * config/avr/avr.c: Likewise.
5129         * config/bfin/bfin.c: Likewise.
5130         * config/crx/crx.c: Likewise.
5131         * config/darwin.h: Likewise.
5132         * config/h8300/h8300.c: Likewise.
5133         * config/i386/cygming.h: Likewise.
5134         * config/i386/i386.c: Likewise.
5135         * config/ia64/ia64.c: Likewise.
5136         * config/m32c/m32c.c: Likewise.
5137         * config/m32r/m32r.c: Likewise.
5138         * config/m68hc11/m68hc11.c: Likewise.
5139         * config/m68k/m68k.c: Likewise.
5140         * config/mcore/mcore.c: Likewise.
5141         * config/mep/mep.c: Likewise.
5142         * config/microblaze/microblaze.c: Likewise.
5143         * config/mips/mips.c: Likewise.
5144         * config/rs6000/rs6000.c: Likewise.
5145         * config/rx/rx.c: Likewise.
5146         * config/sh/sh.c: Likewise.
5147         * config/sol2.h: Likewise.
5148         * config/sparc/sparc.c: Likewise.
5149         * config/spu/spu.c: Likewise.
5150         * config/stormy16/stormy16.c: Likewise.
5151         * config/v850/v850.c: Likewise.
5152
5153 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
5154
5155         * simplify-rtx.c (simplify_binary_operation_1): Handle
5156         (xor (and A B) C) case when B and C are both constants.
5157
5158 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
5159
5160         * tree-dfa.c (add_referenced_var): Fix typo in comment.
5161
5162 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
5163
5164         PR bootstrap/48168
5165         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
5166
5167 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
5168
5169         PR rtl-optimization/48156
5170         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
5171         assume df and df_lr are not NULL.
5172
5173 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5174
5175         PR debug/48023
5176         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
5177         between a call and its CALL_ARG_LOCATION note.
5178
5179 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
5180
5181         PR debug/48178
5182         * config/sh/sh.c (find_barrier): Don't emit a constant pool
5183         between a call and its corresponding CALL_ARG_LOCATION note.
5184
5185 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
5186
5187         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
5188         instead of loop. Use HARD_REGISTER_NUM_P predicate.
5189         * haifa-sched.c (setup_ref_regs): Ditto.
5190         * caller-save.c (add_used_regs_1): Ditto.
5191         * dse.c (look_for_hardregs): Ditto.
5192         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
5193         * sched-rgn.c (check_live_1): Ditto.
5194
5195 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
5196
5197         * c-decl.c (diagnose_mismatched_decls): Give an error for
5198         redefining a typedef with variably modified type.
5199
5200 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
5201
5202         * c-decl.c (grokfield): Don't allow typedefs for structures or
5203         unions with no tag by default.
5204         * doc/extend.texi (Unnamed Fields): Update.
5205
5206 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
5207
5208         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
5209         Rewrite using indirect functions.
5210         (lwp_slwpcb): Ditto.
5211         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
5212         (avx_vinsertf128<mode>): Ditto.
5213
5214 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5215
5216         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
5217         unspecs.
5218
5219 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5220
5221         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
5222         splitting between a call and its corresponding CALL_ARG_LOCATION note.
5223
5224 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
5225
5226         PR rtl-optimization/48170
5227         * gcse.c (hoist_code): Remove bogus asserts.
5228
5229 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
5230
5231         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
5232         computation for prologue/epilogue.
5233
5234 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5235
5236         * Makefile.in (check-consistency): Remove.
5237
5238 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
5239
5240         PR debug/48176
5241         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
5242         arange_table_in_use is 0, but either text_section_used or
5243         cold_text_section_used is true.  Don't call it if
5244         !info_section_emitted.
5245
5246 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
5247
5248         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
5249         FUNCTION_VALUE_REGNO_P): Remove.
5250         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
5251         Remove.
5252         * config/avr/avr.c (avr_ret_register): Make static inline.
5253         (avr_function_value_regno_p): New function.
5254         (avr_libcall_value): Make static. Add 'func' argument.
5255         (avr_function_value): Make static. Rename 'func' argument to
5256         'fn_decl_or_type', forward it to avr_libcall_value. Call
5257         avr_ret_register function instead of RET_REGISTER macro.
5258         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
5259
5260 2011-03-18  Jason Merrill  <jason@redhat.com>
5261
5262         PR c++/23372
5263         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
5264
5265 2011-03-18  Richard Guenther  <rguenther@suse.de>
5266
5267         * doc/install.texi (--enable-gold): Remove.
5268         (--with-plugin-ld): Document.
5269         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
5270
5271 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
5272
5273         PR middle-end/47790
5274         * expr.c (optimize_bitfield_assignment_op): Revamp to work
5275         again after expansion changes.
5276
5277 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
5278
5279         * combine.c (try_combine): Do simplification only call of
5280         subst() on i2 even when i1 is present. Update comments.
5281
5282 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
5283
5284         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
5285         and UNSPEC_PCREL_SYMOFF.
5286
5287 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5288
5289         * config/s390/s390.md: Use define_c_enum for the unspec constant
5290         definitions.
5291
5292 2011-03-18  Richard Henderson  <rth@redhat.com>
5293             Jakub Jelinek  <jakub@redhat.com>
5294
5295         PR bootstrap/48161
5296         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
5297         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
5298
5299 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5300
5301         PR middle-end/47725
5302         * combine.c (cant_combine_insn_p): Don't check zero/sign
5303         extended hard registers.
5304
5305 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5306
5307         PR middle-end/47725
5308         * combine.c (cant_combine_insn_p): Check zero/sign extended
5309         hard registers.
5310
5311 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
5312
5313         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
5314         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
5315         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
5316         Change return type to bool.
5317         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
5318
5319 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
5320
5321         PR debug/48163
5322         * var-tracking.c (prepare_call_arguments): If CALL target
5323         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
5324         pc instead of looking it up using cselib_lookup and use
5325         Pmode for it if x has VOIDmode.
5326         * dwarf2out.c (gen_subprogram_die): If also both first and
5327         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
5328
5329         PR debug/48163
5330         * function.c (assign_parms): For data.passed_pointer parms
5331         use MEM of data.entry_parm instead of data.entry_parm itself
5332         as DECL_INCOMING_RTL.
5333         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
5334         also when passed and declared mode is the same, DECL_RTL
5335         is a MEM with pseudo as address and DECL_INCOMING_RTL is
5336         a MEM too.
5337
5338 2011-03-16  Jeff Law  <law@redhat.com>
5339
5340         PR rtl-optimization/37273
5341         * ira-costs.c (scan_one_insn): Detect constants living in memory and
5342         handle them like argument loads from stack slots.  Do not double
5343         count memory for memory constants and argument loads from stack slots.
5344
5345 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5346
5347         PR debug/48160
5348         * var-tracking.c (prepare_call_arguments): Check SUBREG.
5349
5350 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5351
5352         PR target/48171
5353         * config/i386/i386.opt: Add Save to -mavx and -mfma.
5354
5355 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
5356
5357         PR bootstrap/48153
5358         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
5359         if dwarf_strict.
5360         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
5361         Clear call_arg_locations and call_arg_loc_last always.
5362
5363         PR middle-end/48152
5364         * var-tracking.c (prepare_call_arguments): If argument needs to be
5365         passed by reference, adjust argtype and mode.
5366
5367 2011-03-17  Richard Guenther  <rguenther@suse.de>
5368
5369         PR middle-end/48134
5370         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
5371         a value make sure to fold the statement.
5372
5373 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
5374
5375         PR target/43872
5376         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
5377         return condition with !cfun->calls_alloca.
5378
5379 2011-03-17  Richard Guenther  <rguenther@suse.de>
5380
5381         PR bootstrap/48148
5382         * lto-cgraph.c (input_overwrite_node): Clear the abstract
5383         origin for decls in other ltrans units.
5384         (input_varpool_node): Likewise.
5385
5386 2011-03-17  Richard Guenther  <rguenther@suse.de>
5387
5388         PR middle-end/48165
5389         * tree-object-size.c (compute_object_offset): Properly return
5390         the offset operand of MEM_REFs as sizetype.
5391
5392 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
5393
5394         PR rtl-optimization/48141
5395         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
5396         * dse.c: Include params.h.
5397         (active_local_stores_len): New variable.
5398         (add_wild_read, dse_step1): Clear it when setting active_local_stores
5399         to NULL.
5400         (record_store, check_mem_read_rtx): Decrease it when removing
5401         from the chain.
5402         (scan_insn): Likewise.  Increase it when adding to chain, if it
5403         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
5404         set active_local_stores to NULL before the addition.
5405         * Makefile.in (dse.o): Depend on $(PARAMS_H).
5406
5407         PR rtl-optimization/48141
5408         * dse.c (record_store): If no positions are needed in an insn
5409         that cannot be deleted, at least unchain it from active_local_stores.
5410
5411 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
5412
5413         PR debug/47510
5414         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
5415         (lookup_type_die_strip_naming_typedef): ... here.
5416         (get_context_die): Use it.
5417         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
5418         the anonymous struct named by the naming typedef.
5419
5420 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
5421
5422         PR target/48154
5423         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
5424         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
5425
5426 2011-03-16  Jeff Law  <law@redhat.com>
5427
5428         * tree-vrp.c (identify_jump_threads): Slightly simplify type
5429         check for operands of conditional.  Allow type to be a pointer.
5430
5431 2011-03-16  Richard Guenther  <rguenther@suse.de>
5432
5433         PR tree-optimization/48149
5434         * fold-const.c (fold_binary_loc): Fold
5435         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
5436
5437 2011-03-16  Richard Guenther  <rguenther@suse.de>
5438
5439         PR tree-optimization/26134
5440         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
5441         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
5442         (non_rewritable_mem_ref_base): Handle complex type component
5443         accesses, constrain offsets for vector and complex extracts
5444         more properly.
5445
5446 2011-03-16  Richard Guenther  <rguenther@suse.de>
5447
5448         PR tree-optimization/48146
5449         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
5450         operands avoiding the need for renaming.
5451
5452 2011-03-16  Richard Guenther  <rguenther@suse.de>
5453
5454         * gimple-fold.c (maybe_fold_reference): Open-code relevant
5455         constant folding.  Move MEM_REF canonicalization first.
5456         Rely on fold_const_aggregate_ref for initializer folding.
5457         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
5458
5459 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
5460
5461         PR middle-end/48136
5462         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
5463         arg0/arg1 or their arguments are always fold converted to matching
5464         types.
5465
5466         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
5467         to nargs.
5468
5469 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5470
5471         PR lto/46944
5472         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
5473         Handle in-tree gold.
5474         (ld_vers): Extract binutils version for gold.
5475         (gcc_cv_ld_hidden): Handle gold here.
5476         (gcc_cv_lto_plugin): Determine level of linker plugin support.
5477         * configure: Regenerate.
5478         * config.in: Regenerate.
5479         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
5480         -fuse-linker-plugin otherwise.
5481         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
5482         (LINK_COMMAND_SPEC): Use it.
5483         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
5484
5485 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
5486
5487         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
5488         * calls.c: Remove debug.h include.
5489         (emit_call_1): Don't call virtual_call_token debug hook.
5490         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
5491         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
5492         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
5493         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
5494         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
5495         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
5496         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
5497         dwarf2out_virtual_call): Remove.
5498         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
5499         copy_call_info and virtual_call hooks.
5500         (dwarf2out_init): Don't initialize vcall_insn_table,
5501         debug_dcall_section and debug_vcall_section.
5502         (prune_unused_types): Don't mark nodes from dcall_table.
5503         (dwarf2out_finish): Don't output dcall or vcall tables.
5504         * final.c (final_scan_insn): Don't call direct_call or
5505         virtual_call debug hooks.
5506         * debug.h (struct gcc_debug_hooks): Remove direct_call,
5507         virtual_call_token, copy_call_info and virtual_call hooks.
5508         (debug_nothing_uid): Remove prototype.
5509         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
5510         copy_call_info and virtual_call hooks.
5511         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5512         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
5513         * debug.c (do_nothing_debug_hooks): Likewise.
5514         (debug_nothing_uid): Remove.
5515         * doc/invoke.texi (-fenable-icf-debug): Remove.
5516         * common.opt (-fenable-icf-debug): Likewise.
5517
5518         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
5519         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
5520         call's MEM.  Handle functions returning aggregate through a hidden
5521         first pointer.  For virtual calls add clobbered pc to call arguments
5522         chain.
5523         * dwarf2out.c (gen_subprogram_die): Emit
5524         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
5525         can't be emitted.
5526
5527         PR debug/45882
5528         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
5529         * rtl.h (ENTRY_VALUE_EXP): Define.
5530         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
5531         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
5532         * print-rtl.c (print_rtx): Likewise.
5533         * gengtype.c (adjust_field_rtx_def): Likewise.
5534         * var-tracking.c (vt_add_function_parameter): Adjust
5535         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
5536         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
5537         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
5538         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
5539         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
5540
5541         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
5542         Call var_location debug hook even on CALL_INSNs.
5543         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
5544         * rtl.def (ENTRY_VALUE): New.
5545         * dwarf2out.c: Include cfglayout.h.
5546         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
5547         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
5548         (struct call_arg_loc_node): New type.
5549         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
5550         tail_call_site_count): New variables.
5551         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
5552         DW_TAG_GNU_call_site_parameter.
5553         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
5554         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
5555         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
5556         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
5557         and DW_AT_GNU_all_source_call_sites.
5558         (mem_loc_descriptor): Handle ENTRY_VALUE.
5559         (add_src_coords_attributes): Don't add enything if
5560         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
5561         (dwarf2out_abstract_function): Save and clear call_arg_location,
5562         call_site_count and tail_call_site_count around dwarf2out_decl call.
5563         (gen_call_site_die): New function.
5564         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
5565         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
5566         (dwarf2out_function_decl): Clear call_arg_locations,
5567         call_arg_loc_last, set call_site_count and tail_call_site_count
5568         to -1 and free block_map.
5569         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
5570         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
5571         followed by any real instructions.
5572         (dwarf2out_begin_function): Set call_site_count and
5573         tail_call_site_count to 0.
5574         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
5575         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
5576         attempt to force a DIE for it and worst case remove the attribute.
5577         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
5578         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
5579         the decl itself.
5580         * var-tracking.c: Include tm_p.h.
5581         (vt_stack_adjustments): For calls call note_register_arguments.
5582         (argument_reg_set): New variable.
5583         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
5584         ensure the VALUE is resolved.
5585         (call_arguments): New variable.
5586         (prepare_call_arguments): New function.
5587         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
5588         (struct expand_loc_callback_data): Add ignore_cur_loc field.
5589         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
5590         always use the best expression.
5591         (vt_expand_loc): Add ignore_cur_loc argument.
5592         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
5593         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
5594         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
5595         note for all calls.
5596         (vt_add_function_parameter): Use cselib_lookup_from_insn.
5597         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
5598         argument.  Don't call cselib_preserve_only_values and
5599         cselib_reset_table.
5600         (note_register_arguments): New function.
5601         (vt_initialize): Compute argument_reg_set.  Call
5602         vt_add_function_parameters before processing basic blocks instead of
5603         afterwards.  For calls call prepare_call_arguments before calling
5604         cselib_process_insn.
5605         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
5606         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
5607         (var-tracking.o): Depend on $(TM_P_H).
5608         * cfglayout.h (insn_scope): New prototype.
5609         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
5610         * cfglayout.c (insn_scope): No longer static.
5611         * insn-notes.def (CALL_ARG_LOCATION): New.
5612         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
5613         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
5614         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
5615         nothing for DECL_EXTERNAL BLOCK_VARS.
5616
5617 2011-03-16  Alan Modra  <amodra@gmail.com>
5618
5619         PR target/45844
5620         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
5621         create invalid offset address for vsx splat insn.
5622         * config/rs6000/predicates.md (splat_input_operand): New.
5623         * config/rs6000/vsx.md (vsx_splat_*): Use it.
5624
5625 2011-03-15  Xinliang David Li  <davidxl@google.com>
5626
5627         PR c/47837
5628         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
5629         (normalize_preds): New function.
5630         (is_use_properly_guarded): Normalize def predicates.
5631
5632 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5633
5634         PR target/46788
5635         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
5636         in the output template.
5637
5638 2011-03-15  Richard Guenther  <rguenther@suse.de>
5639
5640         PR middle-end/47650
5641         * tree-pretty-print.c (dump_function_declaration): Properly
5642         dump unprototyped and varargs function types.
5643
5644 2011-03-15  Richard Guenther  <rguenther@suse.de>
5645
5646         PR tree-optimization/13954
5647         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
5648         and friends.
5649
5650 2011-03-15  Richard Guenther  <rguenther@suse.de>
5651
5652         PR tree-optimization/48037
5653         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
5654         selects into BIT_FIELD_REFs.
5655         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
5656         vector select.
5657
5658 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
5659
5660         PR tree-optimization/48129
5661         * builtins.c (fold_builtin_snprintf): Convert to type of
5662         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
5663         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
5664
5665 2011-03-15  Richard Guenther  <rguenther@suse.de>
5666
5667         PR tree-optimization/41490
5668         * tree-ssa-dce.c (propagate_necessity): Handle returns without
5669         value but with VUSE.
5670         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
5671         return statements.
5672         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
5673         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
5674         * tree-tailcall.c (find_tail_calls): Ignore returns.
5675
5676 2011-03-15  Richard Guenther  <rguenther@suse.de>
5677
5678         PR middle-end/48031
5679         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
5680         or variable-indexed array accesses when in gimple form.
5681
5682 2011-03-15  Richard Guenther  <rguenther@suse.de>
5683
5684         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
5685
5686 2011-03-15  Alan Modra  <amodra@gmail.com>
5687
5688         PR target/48032
5689         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
5690         presume symbol_refs without a symbol_ref_decl are suitably
5691         aligned, nor other trees we may see here.  Handle anchor symbols.
5692         (legitimate_constant_pool_address_p): Comment.  Add mode param.
5693         Check cmodel=medium addresses.  Adjust all calls.
5694         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
5695         creating cmodel=medium optimized access to locals.
5696         * config/rs6000/constraints.md (R): Pass QImode to
5697         legitimate_constant_pool_address_p.
5698         * config/rs6000/predicates.md (input_operand): Pass mode to
5699         legitimate_constant_pool_address_p.
5700         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
5701         Update prototype.
5702
5703 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5704
5705         PR target/48053
5706         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
5707         64-bit constants being loaded into registers other than GPRs such
5708         as loading 0 into a VSX register.
5709
5710 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5711
5712         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
5713
5714 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
5715
5716         PR middle-end/47917
5717         * builtins.c (fold_builtin_snprintf): New function.
5718         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
5719         (fold_builtin_4): Likewise.
5720
5721         PR middle-end/38878
5722         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
5723         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
5724         and C - X == X also strip nops from +/-/p+ operand.
5725         When optimizing -X == C, fold C to arg0's type.
5726
5727         PR debug/47946
5728         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
5729         emit it as add_AT_int instead of add_AT_unsigned.
5730
5731 2011-03-14  Tom Tromey  <tromey@redhat.com>
5732
5733         * unwind-dw2.c: Include sys/sdt.h if it exists.
5734         (_Unwind_DebugHook): Use STAP_PROBE2.
5735         * config.in, configure: Rebuild.
5736         * configure.ac: Check for sys/sdt.h.
5737
5738 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
5739
5740         * config/i386/i386.md (ROUND_FLOOR): New constant.
5741         (ROUND_CEIL): Ditto.
5742         (ROUND_TRUNC): Ditto.
5743         (ROUND_MXCSR): Ditto.
5744         (ROUND_NO_EXC): Ditto.
5745         (rint<mode>2): Use new defines instead of numerical constants.
5746         (floor<mode>2): Ditto.
5747         (ceil<mode>2): Ditto.
5748         (btrunc<mode>2): Ditto.
5749         * config/i386/i386-builtin-types.def: Define ROUND function type
5750         aliases.
5751         * config/i386/i386.c (enum ix86_builtins): Add
5752         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
5753         (struct builtin_description): Add
5754         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
5755         (ix86_expand_sse_round): New static function.
5756         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
5757         function types.
5758         (ix86_builtin_vectorized_function): Handle
5759         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
5760
5761 2011-03-14  Tom Tromey  <tromey@redhat.com>
5762
5763         * c-parser.c (c_parser_asm_string_literal): Clear
5764         warn_overlength_strings.
5765
5766 2011-03-14  Tom Tromey  <tromey@redhat.com>
5767
5768         * c-parser.c (disable_extension_diagnostics): Save
5769         warn_overlength_strings.
5770         (restore_extension_diagnostics): Restore warn_overlength_strings.
5771
5772 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
5773
5774         * BASE-VER: Change to 4.7.0.
5775
5776 2011-03-14  Richard Guenther  <rguenther@suse.de>
5777
5778         PR middle-end/48098
5779         * tree.c (build_vector_from_val): Adjust assert to requirements
5780         and reality.
5781
5782 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
5783
5784         PR bootstrap/48102
5785         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
5786
5787 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
5788
5789         * config/rs6000/freebsd.h: (RELOCATABLE_NEEDS_FIXUP): Define in
5790         terms of target_flags_explicit. Adjust copyright year.
5791
5792         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
5793         * config/rs6000/t-freebsd: New file. Add override for
5794         LIB2FUNCS_EXTRA.
5795
5796 2011-03-13  Chris Demetriou  <cgd@google.com>
5797
5798         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
5799         (-fno-diagnostics-show-option): this, to reflect current default.
5800         (-Werror=): Update text about -fno-diagnostics-show-option.
5801
5802 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
5803
5804         PR target/48053
5805         * config/rs6000/predicates.md (easy_vector_constant_add_self,
5806         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
5807         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
5808         mode is not V2DImode or V2DFmode.
5809         (vspltis_constant): Do not handle V2DImode and V2DFmode.
5810         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
5811         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
5812         registers to 0.
5813         (movdi_internal64): Likewise.
5814
5815 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
5816
5817         PR tree-optimization/47127
5818         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
5819         parameter.
5820         (set_cloog_options): Same.
5821         (scop_to_clast): Same.
5822         (print_clast_stmt): Do not call cloog_state_malloc and
5823         cloog_state_free.
5824         (print_generated_program): Same.
5825         (gloog): Same.
5826         * graphite-clast-to-gimple.h (cloog_state): Declared.
5827         (scop_to_clast): Adjust declaration.
5828         * graphite.c (cloog_state): Defined here.
5829         (graphite_initialize): Call cloog_state_malloc.
5830         (graphite_finalize): Call cloog_state_free.
5831
5832 2011-03-11  Jason Merrill  <jason@redhat.com>
5833
5834         * attribs.c (lookup_attribute_spec): Take const_tree.
5835         * tree.h: Adjust.
5836
5837 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
5838
5839         * config/sparc/sparc.c (sparc_option_override): Use
5840         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
5841
5842 2011-03-11  Richard Guenther  <rguenther@suse.de>
5843
5844         PR tree-optimization/48067
5845         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
5846         multiplication result will be only used once on the target
5847         stmt.
5848
5849 2011-03-11  Richard Guenther  <rguenther@suse.de>
5850
5851         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
5852
5853 2011-03-11  Richard Guenther  <rguenther@suse.de>
5854
5855         PR lto/48073
5856         * tree.c (find_decls_types_r): Do not walk types only reachable
5857         from IDENTIFIER_NODEs.
5858
5859 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
5860
5861         PR middle-end/48044
5862         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
5863         all vnode->force_output nodes as needed.
5864
5865 2011-03-11  Jason Merrill  <jason@redhat.com>
5866
5867         PR c++/48069
5868         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
5869         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
5870
5871 2011-03-11  Martin Jambor  <mjambor@suse.cz>
5872
5873         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
5874         cgraph_node.
5875
5876 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
5877
5878         PR tree-optimization/48063
5879         * ipa-inline.c (cgraph_decide_inlining): Don't try to
5880         inline functions called once if !tree_can_inline_p (node->callers).
5881
5882 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
5883
5884         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
5885         extra_objs.
5886         * config/score/score3.c: Delete.
5887         * config/score/score3.h: Delete.
5888         * config/score/mul-div.S: Delete.
5889         * config/score/sfp-machine.h: Add new file.
5890         * config/score/constraints.md: Add new file.
5891         * config/score/t-score-softfp: Add new file.
5892         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
5893         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
5894         (score7_extra_constraint): Delete.
5895         (score7_option_override): Remove unused code.
5896         * config/score/score.c: Remove score3 and score5 define and code.
5897         * config/score/score.h: Remove score3 and score5 define and code.
5898         * config/score/score.md: Remove score3 template and unusual insn.
5899         * config/score/score.opt: Remove score3 and score5 options.
5900
5901 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5902
5903         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
5904         when _HPUX_SOURCE is defined.
5905         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
5906
5907 2011-03-10  Jason Merrill  <jason@redhat.com>
5908
5909         PR c++/48029
5910         * stor-layout.c (layout_type): Don't set structural equality
5911         on arrays of incomplete type.
5912         * tree.c (type_hash_eq): Handle comparing them properly.
5913
5914 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
5915
5916         PR debug/48043
5917         * config/s390/s390.c (s390_delegitimize_address): Make sure the
5918         result mode matches original rtl mode.
5919
5920 2011-03-10  Nick Clifton  <nickc@redhat.com>
5921
5922         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
5923         (andsi3, andsi3_flags): Fix timings for three operand alternative.
5924
5925 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
5926
5927         PR rtl-optimization/47866
5928         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
5929         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
5930         if target wasn't scalar.
5931         * function.c (assign_stack_temp_for_type): Assert that neither
5932         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
5933         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
5934         macro.
5935         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
5936
5937 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5938
5939         * config/s390/s390-protos.h (s390_label_align): New prototype.
5940         * config/s390/s390.c (s390_label_align): New function.
5941         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
5942
5943 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
5944
5945         PR target/47755
5946         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
5947         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
5948         (output_vec_const_move): Ditto.
5949
5950 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
5951
5952         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
5953         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
5954         * config/mips/mips.c (mips_preferred_reload_class): Make static.
5955         Change 'rclass' argument and result type to reg_class_t.
5956         (TARGET_PREFERRED_RELOAD_CLASS): Define.
5957
5958 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
5959
5960         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
5961         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
5962         (TARGET_MEMORY_MOVE_COST): Define.
5963         (avr_register_move_cost, avr_memory_move_cost): New Functions.
5964
5965 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
5966
5967         PR debug/47881
5968         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
5969         removed anything.
5970
5971         PR tree-optimization/48022
5972         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
5973         for EQ/NE_EXPR.
5974
5975 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
5976
5977         PR debug/47991
5978         * var-tracking.c (find_use_val): Return NULL for
5979         cui->sets && cui->store_p BLKmode MEMs.
5980
5981 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
5982
5983         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
5984         Remove.
5985         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
5986         xstormy16_print_operand_address): Remove.
5987         * config/stormy16/stormy16.c (xstormy16_print_operand,
5988         xstormy16_print_operand_address): Make static.
5989         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
5990
5991 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
5992
5993         PR target/47862
5994         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
5995         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
5996         before definition.
5997
5998 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
5999
6000         PR bootstrap/48000
6001         * cfgloopmanip.c (fix_bb_placements): Return immediately
6002         if FROM is BASE_LOOP's header.
6003
6004 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
6005
6006         * gimplify.c (gimplify_function_tree): Fix building calls
6007         to __builtin_return_address.
6008
6009 2011-03-07  Alan Modra  <amodra@gmail.com>
6010
6011         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
6012         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
6013         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
6014         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
6015         return_mode args.
6016         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
6017         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
6018         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
6019         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
6020         * config/rs6000/rs6000.c
6021         (rs6000_elf_end_indicate_exec_stack): Rename to..
6022         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
6023         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
6024         (rs6000_file_start): ..here.
6025         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
6026         file scope variables.
6027         (call_ABI_of_interest): New function.
6028         (init_cumulative_args): Set above vars when function return value
6029         is a float, vector, or small struct.
6030         (rs6000_function_arg_advance_1): Likewise for function args.
6031         (rs6000_va_start): Set rs6000_passes_float if variable arg function
6032         references float args.
6033
6034 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
6035
6036         * doc/cfg.texi: Remove "See" before @ref.
6037         * doc/invoke.texi: Likewise.
6038
6039 2011-03-05  Jason Merrill  <jason@redhat.com>
6040
6041         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
6042
6043 2011-03-05  Anthony Green  <green@moxielogic.com>
6044
6045         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
6046
6047 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
6048
6049         PR rtl-optimization/47899
6050         * cfgloopmanip.c (fix_bb_placements): Fix first argument
6051         to flow_loop_nested_p when moving the loop upward.
6052
6053 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
6054
6055         PR target/47719
6056         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
6057
6058 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
6059
6060         PR tree-optimization/47967
6061         * ipa-cp.c (build_const_val): Return NULL instead of creating
6062         VIEW_CONVERT_EXPR for mismatching sizes.
6063         (ipcp_create_replace_map): Return NULL if build_const_val failed.
6064         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
6065         give up on versioning.
6066
6067 2011-03-05  Alan Modra  <amodra@gmail.com>
6068
6069         PR target/47986
6070         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
6071         full cmodel medium/large lo_sum + high addresses.
6072
6073 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6074
6075         * config/s390/s390.c (s390_decompose_address): Reject non-literal
6076         pool references in UNSPEC_LTREL_OFFSET.
6077
6078 2011-03-04  Jan Hubicka  <jh@suse.cz>
6079
6080         PR lto/47497
6081         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
6082         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
6083         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
6084         Add node pointers.
6085         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
6086         cgraph_add_thunk): Add node pointers.
6087         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
6088         associated to right node.
6089         (input_node): Update use of cgraph_same_body_alias
6090         and cgraph_add_thunk.
6091
6092 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
6093
6094         * config/i386/i386.opt (mprefer-avx128): New flag.
6095         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
6096         modes when the flag -mprefer-avx128 is on.
6097
6098 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
6099
6100         * dwarf2out.c (compare_loc_operands): Fix address handling.
6101
6102 2011-03-04  Alan Modra  <amodra@gmail.com>
6103
6104         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
6105
6106 2011-03-04  Richard Guenther  <rguenther@suse.de>
6107
6108         PR middle-end/47968
6109         * expmed.c (extract_bit_field_1): Prefer vector modes that
6110         vec_extract patterns can handle.
6111
6112 2011-03-04  Richard Guenther  <rguenther@suse.de>
6113
6114         PR middle-end/47975
6115         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
6116
6117 2011-03-04  Richard Henderson  <rth@redhat.com>
6118
6119         * explow.c (emit_stack_save): Remove 'after' parameter.
6120         (emit_stack_restore): Likewise.
6121         * expr.h: Update to match.
6122         * builtins.c, calls.c, stmt.c: Likewise.
6123         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
6124         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
6125         * function.c (expand_function_end): Insert the emit_stack_save
6126         sequence before parm_birth_insn instead of after.
6127
6128 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
6129
6130         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
6131         (ssse3_pmaddubsw128): Ditto.
6132         (ssse3_pmaddubsw): Ditto.
6133
6134 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
6135
6136         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
6137
6138 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
6139
6140         PR c/47963
6141         * gimplify.c (omp_add_variable): Only call omp_notice_variable
6142         on TYPE_SIZE_UNIT if it is a DECL.
6143
6144         PR debug/47283
6145         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
6146         first operand is not is_gimple_mem_ref_addr, try to fold it.
6147         If the operand still isn't is_gimple_mem_ref_addr, clear
6148         MEM_EXPR on op0.
6149
6150 2011-03-03  Richard Guenther  <rguenther@suse.de>
6151
6152         PR middle-end/47283
6153         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
6154         match comment.
6155         (refs_may_alias_p_1): For release branches return true if
6156         we are confused by our input.
6157
6158 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6159
6160         * config/s390/s390.c (s390_function_value): Rename to ...
6161         (s390_function_and_libcall_value): ... this.
6162         (s390_function_value): New function.
6163         (s390_libcall_value): New function.
6164         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
6165         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
6166         target macro definitions.
6167         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
6168
6169 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
6170
6171         * config/i386/freebsd64.h (CC1_SPEC): Define.
6172         * config/i386/linux64.h (CC1_SPEC): Define.
6173         * config/i386/x86-64.h (CC1_SPEC): Don't define.
6174
6175 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
6176
6177         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
6178         Remove.
6179         * config/stormy16/stormy16.c: Include reload.h.
6180         (xstormy16_memory_move_cost): New function.
6181         (TARGET_MEMORY_MOVE_COST): Define.
6182
6183 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
6184
6185         PR rtl-optimization/47925
6186         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
6187         with side effects.  Remove the more-specific check for volatile asms.
6188
6189 2011-03-02  Alan Modra  <amodra@gmail.com>
6190
6191         PR target/47935
6192         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
6193         toc relative addresses for valid offsets.
6194
6195 2011-03-01  Richard Guenther  <rguenther@suse.de>
6196
6197         PR tree-optimization/47890
6198         * tree-vect-loop.c (get_initial_def_for_induction): Set
6199         related stmt properly.
6200
6201 2011-03-01  Richard Guenther  <rguenther@suse.de>
6202
6203         PR lto/47924
6204         * lto-streamer.c (lto_record_common_node): Also register
6205         the canonical type.
6206
6207 2011-03-01  Richard Guenther  <rguenther@suse.de>
6208
6209         PR lto/46911
6210         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
6211         Do not stream DECL_ABSTRACT_ORIGIN.
6212         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
6213         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
6214         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
6215         Do not stream DECL_ABSTRACT_ORIGIN.
6216         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
6217         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
6218
6219 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
6220
6221         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
6222         FUNCTION_VALUE_REGNO_P): Remove.
6223         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
6224         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
6225         Add 'outgoing' argument.
6226         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
6227         function.
6228         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6229         TARGET_FUNCTION_VALUE_REGNO_P): Define.
6230
6231 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
6232
6233         PR debug/28047
6234         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
6235         (lookup_filename): Likewise.
6236         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
6237
6238 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
6239             Jakub Jelinek  <jakub@redhat.com>
6240
6241         PR middle-end/47893
6242         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
6243         (assign_stack_local_1): Change last argument type to int.
6244         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
6245         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
6246         don't record padding space into frame_space_list nor use those areas.
6247         (assign_stack_local): Adjust caller.
6248         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
6249         of assign_stack_local, pass 0 as last argument.
6250         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
6251         callers.
6252
6253 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
6254
6255         PR debug/47283
6256         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
6257         Use target address_mode and pointer_mode hooks instead of hardcoded
6258         Pmode and ptr_mode.  Handle some simple cases of extending if
6259         POINTERS_EXTEND_UNSIGNED < 0.
6260         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
6261         Call convert_debug_memory_address.
6262         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
6263         convert_debug_memory_address.
6264
6265         PR middle-end/46790
6266         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
6267         * configure: Regenerated.
6268         * config.in: Regenerated.
6269         * varasm.c (default_function_section): Return NULL
6270         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
6271
6272 2011-02-28  Martin Jambor  <mjambor@suse.cz>
6273
6274         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
6275         the description to match the printed values.
6276
6277 2011-02-28  Richard Guenther  <rguenther@suse.de>
6278
6279         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
6280         of the copied scope tree.
6281
6282 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6283
6284         * doc/extend.texi (Function Attributes): Avoid deeply (and
6285         wrongly) nested tables.
6286
6287 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
6288
6289         PR middle-end/47903
6290         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
6291         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
6292         r isn't op0 nor op1.
6293
6294 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
6295
6296         * config/avr/avr.md: Remove magic comment for emacs.
6297
6298 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
6299
6300         PR target/45261
6301         * config/avr/avr.c (avr_option_override): Use error on bad options.
6302         (avr_help): New function.
6303         (TARGET_HELP): Define.
6304
6305 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
6306
6307         PR target/42240
6308         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
6309         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
6310
6311 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
6312
6313         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
6314         (ARM Options): Ditto.
6315         (i386 and x86-64 Options): Ditto.
6316         (RX Options): Ditto.
6317         (SPARC Options): Ditto.
6318
6319 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
6320
6321         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
6322         FreeBSD 6 and later.  Generally use cpu generic.
6323
6324 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
6325
6326         * doc/cpp.texi: Update copyright years.
6327
6328 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
6329
6330         PR target/46898
6331         * config/lm32/lm32.md (ashrsi3): Added needed variable.
6332
6333 2011-02-25  Jon Beniston  <jon@beniston.com>
6334
6335         PR target/46898
6336         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
6337         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
6338         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
6339         (lm32_block_move_inline): Add type cast to remove warning.
6340         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
6341         (gen_int_relational): Move declarations to start of function.
6342
6343 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
6344
6345         PR tree-optimization/45470
6346         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
6347         can throw internally only.
6348         * tree-vect-stmts.c (vectorizable_call): Likewise.
6349
6350 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
6351
6352         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
6353         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
6354         * config/stormy16/stormy16-protos.h
6355         (xstormy16_preferred_reload_class): Remove.
6356         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
6357         static. Change 'rclass' argument and return type to reg_class_t.
6358         (TARGET_PREFERRED_RELOAD_CLASS,
6359         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6360
6361 2011-02-24  Richard Guenther  <rguenther@suse.de>
6362
6363         * lto-streamer-in.c (input_bb): Do not find referenced vars
6364         in debug statements.
6365
6366 2011-02-23  Jason Merrill  <jason@redhat.com>
6367
6368         * common.opt (fabi-version): Document v5 and v6.
6369
6370 2011-02-23  Richard Guenther  <rguenther@suse.de>
6371
6372         PR tree-optimization/47849
6373         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
6374
6375 2011-02-23  Jie Zhang  <jie@codesourcery.com>
6376
6377         * opts-common.c (decode_cmdline_option): Print empty string
6378         argument as "" in decoded->orig_option_with_args_text.
6379         * gcc.c (execute): Print empty string argument as ""
6380         in the verbose output.
6381         (do_spec_1): Keep empty string argument.
6382
6383 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
6384
6385         * config.gcc: Declare score-* and crx-* obsolete.
6386
6387 2011-02-23  Jie Zhang  <jie@codesourcery.com>
6388
6389         PR rtl-optimization/47763
6390         * web.c (web_main): Ignore naked clobber when replacing register.
6391
6392 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
6393
6394         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
6395         Remove.
6396
6397 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
6398
6399         PR doc/47848
6400         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
6401
6402 2011-02-22  Mike Stump  <mikestump@comcast.net>
6403
6404         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
6405         assembler.
6406         * configure: Regenerate.
6407
6408 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
6409
6410         PR rtl-optimization/46002
6411         * ira-color.c (update_copy_costs): Change class intersection
6412         test to reg_class_contents[] test of 'hard_regno'.
6413
6414 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
6415
6416         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
6417         than Driver option.
6418         * config/hpux11.opt (mt): Likewise.
6419         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
6420         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
6421         * config/vax/elf.opt (mno-asm-pic): Likewise.
6422         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
6423
6424 2011-02-21  Mike Stump  <mikestump@comcast.net>
6425
6426         PR target/47822
6427         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
6428         tree so we can get save the type.
6429         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
6430         for CFString instead of trying to use past the end of the builtins.
6431         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
6432         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
6433         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
6434         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
6435         Rename to darwin_builtin_cfstring.
6436         (darwin_init_cfstring_builtins): Return the built type.
6437
6438 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
6439
6440         PR target/47840
6441         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
6442         (_mm256_insert_epi64): Use _mm_insert_epi64.
6443
6444 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
6445
6446         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
6447         * config/stormy16/stormy16-protos.h
6448         (xstormy16_mode_dependent_address_p): Remove.
6449         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
6450         Make static. Change return type to bool. Change argument type to
6451         const_rtx. Remove dead code.
6452         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6453
6454 2011-02-21  Richard Guenther  <rguenther@suse.de>
6455
6456         PR lto/47820
6457         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
6458         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
6459         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
6460         TUs context.
6461         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
6462         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
6463
6464 2011-02-20  Richard Guenther  <rguenther@suse.de>
6465
6466         PR lto/47822
6467         * tree.c (free_lang_data_in_decl): Clean builtins from
6468         the TU decl BLOCK_VARS.
6469
6470 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
6471
6472         PR debug/47620
6473         PR debug/47630
6474         * haifa-sched.c (fix_tick_ready): Skip tick computation
6475         for debug insns.
6476
6477 2011-02-19  Richard Guenther  <rguenther@suse.de>
6478
6479         PR lto/47647
6480         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
6481         Remove lazy BLOCK_VARS streaming.
6482         (lto_input_ts_block_tree_pointers): Likewise.
6483         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
6484
6485 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
6486
6487         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
6488
6489 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
6490
6491         * config/i386/biarch32.h, config/i386/mach.h,
6492         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
6493
6494 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
6495
6496         PR target/47800
6497         * config/i386/i386.md (peephole2 for shift and plus): Use
6498         operands[1] original mode in the first insn.
6499
6500 2011-02-18  Mike Stump  <mikestump@comcast.net>
6501
6502         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
6503
6504 2011-02-18  Jan Hubicka  <jh@suse.cz>
6505
6506         PR middle-end/47788
6507         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
6508         to zero when the function is not inlinable at all.
6509
6510 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6511
6512         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
6513         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
6514         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
6515         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
6516         * config/pa/t-pa64: Likewise.
6517         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
6518
6519 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
6520
6521         PR driver/47787
6522         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
6523
6524 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6525
6526         PR target/47792
6527         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
6528
6529 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
6530
6531         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
6532         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
6533         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
6534         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
6535         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
6536         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
6537         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
6538         m32r_load_postinc_p, m32r_store_preinc_predec_p,
6539         m32r_legitimate_address_p): New functions.
6540         * config/m32r/constraints.md (constraint "S"): Don't use
6541         STORE_PREINC_PREDEC_P.
6542         (constraint "U"): Don't use LOAD_POSTINC_P.
6543
6544 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
6545
6546         PR rtl-optimization/46178
6547         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
6548         compute ira_hard_regno_cover_class[].
6549
6550 2011-02-18  Richard Guenther  <rguenther@suse.de>
6551
6552         PR lto/47798
6553         * lto-streamer.h (lto_global_var_decls): Declare.
6554         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
6555         statics for global var processing.
6556
6557 2011-02-18  Richard Guenther  <rguenther@suse.de>
6558
6559         PR tree-optimization/47737
6560         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
6561         edge dominance check.
6562
6563 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
6564
6565         PR debug/47780
6566         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
6567         avoid invalid rtx sharing.
6568
6569 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
6570
6571         * doc/cpp.texi (Obsolete Features): Add background on the
6572         origin of assertions.
6573
6574 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
6575
6576         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
6577         objc_abi == 2.
6578         * config/darwin.c (output_objc_section_asm_op): Added support for
6579         ABI v1 and v2.
6580         (is_objc_metadata): New.
6581         (darwin_objc2_section): New.
6582         (darwin_objc1_section): New.
6583         (machopic_select_section): Added support for ABI v1 and v2.
6584         (darwin_emit_objc_zeroed): New.
6585         (darwin_output_aligned_bss): Detect objc metadata and treat it
6586         appropriately.
6587         (darwin_asm_output_aligned_decl_common): Same.
6588         (darwin_asm_output_aligned_decl_local): Same.
6589         * config/darwin-sections.def: Updated for ABI v1 and v2.
6590         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
6591         compiling Objective-C code for the NeXT runtime, default to using
6592         ABI version 0 for 32-bit, and version 2 for 64-bit.
6593
6594 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6595
6596         * common.opt (optimize_fast): New Variable.
6597         * opts.c (default_options_optimization): Use opts->x_optimize_fast
6598         instead of local variable ofast.
6599
6600 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
6601
6602         * doc/invoke.texi (fobjc-abi-version): Documented.
6603         (fobjc-nilcheck): Documented.
6604         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
6605         version.
6606
6607 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6608
6609         PR driver/47390
6610         * common.opt (export-dynamic): New Driver option.
6611         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
6612
6613 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6614
6615         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
6616
6617 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
6618             Jan Hubicka  <jh@suse.cz>
6619
6620         PR debug/47106
6621         PR debug/47402
6622         * cfgexpand.c (account_used_vars_for_block): Remove.
6623         (estimated_stack_frame_size): Use referenced vars.
6624         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
6625         that were referenced in the original function.  Test src_fn
6626         rather than cfun.  Drop redundant get_var_ann.
6627         (setup_one_parameter): Drop redundant get_var_ann.
6628         (declare_return_variable): Likewise.
6629         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
6630         (copy_arguments_for_versioning): Drop redundant get_var_ann.
6631         * ipa-inline.c (compute_inline_parameters): Do not compute
6632         disregard_inline_limits here.
6633         (compute_inlinable_for_current, pass_inlinable): New.
6634         (pass_inline_parameters): Require PROP_referenced_vars.
6635         * cgraphunit.c (cgraph_process_new_functions): Don't run
6636         compute_inline_parameters explicitly unless function is in SSA form.
6637         (cgraph_analyze_function): Set .disregard_inline_limits.
6638         * tree-sra.c (convert_callers): Compute inliner parameters
6639         only for functions already in SSA form.
6640
6641 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6642
6643         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
6644         -mlittle-endian-data.
6645
6646 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6647
6648         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
6649         -mno-fpu, not -fpu and -no-fpu.
6650         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
6651         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
6652
6653 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
6654
6655         PR target/43653
6656         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
6657         input reload with PLUS RTX.
6658
6659 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6660
6661         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
6662         of InverseVar(MDMX).
6663
6664 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6665
6666         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
6667         --m4-340.
6668
6669 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6670
6671         * config/mn10300/mn10300.opt (mno-crt0): New.
6672
6673 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6674
6675         * config/m68k/uclinux.opt (static-libc): New Driver option.
6676
6677 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6678
6679         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
6680
6681 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6682
6683         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
6684         %{muser-extend-enabled}.
6685
6686 2011-02-16  Richard Guenther  <rguenther@suse.de>
6687
6688         PR tree-optimization/47738
6689         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
6690         the TODO from tree_predictive_commoning.
6691
6692 2011-02-15  Jeff Law  <law@redhat.com>
6693
6694         Revert
6695         2011-01-25  Jeff Law  <law@redhat.com>
6696
6697         PR rtl-optimization/37273
6698         * ira-costs.c (scan_one_insn): Detect constants living in memory and
6699         handle them like argument loads from stack slots.  Do not double
6700         count memory for memory constants and argument loads from stack slots.
6701
6702 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
6703
6704         PR middle-end/47725
6705         * combine.c (cant_combine_insn_p): Revert the last change.
6706
6707 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
6708
6709         PR target/47755
6710         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
6711         mode for vector constants.  Remove code that checks for TImode.
6712
6713 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
6714
6715         PR debug/47106
6716         PR debug/47402
6717         * cgraph.h (compute_inline_parameters): Return void.
6718         * ipa-inline.c (compute_inline_parameters): Adjust.
6719
6720 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
6721
6722         PR debug/47106
6723         PR debug/47402
6724         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
6725         rather than decl.
6726         * cfgexpand.c (estimated_stack_frame_size): Likewise.
6727         * ipa-inline.c (compute_inline_parameters): Adjust.
6728
6729 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
6730
6731         PR debug/47106
6732         PR debug/47402
6733         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
6734         Adjust all users.  Pass FN to...
6735         * tree-flow-inline.h (first_referenced_var): ... this.  Add
6736         fn argument.
6737         * ipa-struct-reorg.c: Adjust.
6738         * tree-dfa.c: Adjust.
6739         * tree-into-ssa.c: Adjust.
6740         * tree-sra.c: Adjust.
6741         * tree-ssa-alias.c: Adjust.
6742         * tree-ssa-live.c: Adjust.
6743         * tree-ssa.c: Adjust.
6744         * tree-ssanames.c: Adjust.
6745         * tree-tailcall.c: Adjust.
6746
6747 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
6748
6749         PR debug/47106
6750         PR debug/47402
6751         * tree-flow.h (referenced_var_lookup): Add fn parameter.
6752         Adjust all callers.
6753         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
6754         * tree-flow-inline.h: Adjust.
6755         * gimple-pretty-print.c: Adjust.
6756         * tree-into-ssa.c: Adjust.
6757         * tree-ssa.c: Adjust.
6758         * cfgexpand.c: Adjust.
6759
6760 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
6761
6762         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
6763         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6764         (EXTRA_CONSTRAINT): Delete.
6765         * config/iq2000/constraints.md: New file.
6766         * config/iq2000/iq2000.md: Include it.
6767         (define_insn ""): Delete.
6768         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
6769         unsupported constraint letters from patterns.
6770         (call_value, call_value_internal1): Likewise.
6771         (call_value_multiple_internal1): Likewise.
6772
6773 2011-02-15  Nick Clifton  <nickc@redhat.com>
6774
6775         * config/mn10300/mn10300.c: Include tm-constrs.h.
6776         (struct liw_data): New data structure describing an LIW candidate
6777         instruction.
6778         (extract_bundle): Use struct liw_data.  Allow small integer
6779         operands for some instructions.
6780         (check_liw_constraints): Use struct liw_data.  Remove swapped
6781         parameter.  Add comments describing the checks.  Fix bug when
6782         assigning the source of liw1 to the source of liw2.
6783         (liw_candidate): Delete.  Code moved into extract_bundle.
6784         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
6785         before swapping.
6786         * config/mn10300/predicates.md (liw_operand): New predicate.
6787         Allows registers and small integer constants.
6788         * config/mn10300/constraints.md (O): New constraint.  Accetps
6789         integers in the range -8 to +7 inclusive.
6790         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
6791         for moving a small integer into a register.  Give this alternative
6792         LIW attributes.
6793         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
6794         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
6795         using the J,K,L and M constraints,
6796         (liw): Remove SI mode on second operands to allow for HI and QI
6797         mode values.
6798         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
6799         instruction.
6800
6801 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
6802
6803         PR middle-end/47725
6804         * combine.c (cant_combine_insn_p): Check zero/sign extended
6805         hard registers.
6806
6807 2011-02-15  Richard Guenther  <rguenther@suse.de>
6808
6809         PR tree-optimization/47743
6810         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
6811         for a non-type-compatible VN lookup bail out.
6812
6813 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
6814
6815         * config/fr30/constraints.md: New file.
6816         * config/fr30/fr30.md: Include it.
6817         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
6818         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6819         (EXTRA_CONSTRAINT): Delete.
6820
6821 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
6822
6823         * config/frv/constraints.md: New file.
6824         * config/frv/predicates.md: Include it.
6825         * config/frv/frv.c (reg_class_from_letter): Delete.
6826         (frv_option_override): Don't initialize it.
6827         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
6828         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
6829         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
6830         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
6831         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
6832         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6833         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
6834         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
6835         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
6836         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
6837         (REG_CLASS_FROM_CONSTRAINT): Delete.
6838
6839 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
6840
6841         PR middle-end/47581
6842         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
6843         if frame size is 0 in a leaf function.
6844
6845 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6846
6847         PR pch/14940
6848         * config/alpha/host-osf.c: New file.
6849         * config/alpha/x-osf: New file.
6850         * config.host (alpha*-dec-osf*): Use it.
6851
6852 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
6853
6854         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
6855         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
6856         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
6857         (rx_mode_dependent_address_p): ...this. Make static. Change argument
6858         type to const_rtx.
6859         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6860
6861 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
6862
6863         * config/stormy16/constraints.md: New file.
6864         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
6865         Use satisfies_constraint_Q and satisfies_constraint_R.
6866         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
6867         Delete.
6868         (xstormy16_legitiamte_address_p): Declare.
6869         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
6870         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6871         (EXTRA_CONSTRAINT): Delete.
6872         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
6873         Un-staticize.
6874         (xstormy16_extra_constraint_p): Delete.
6875
6876 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
6877
6878         PR tree-optimization/46494
6879         * loop-unroll.c (split_edge_and_insert): Adjust comment.
6880         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
6881         (pass_rtl_loop_done): Add TODO_verify_flow.
6882         * fwprop.c (pass_rtl_fwprop): Likewise.
6883         * modulo-sched.c (pass_sms): Likewise.
6884         * tree-ssa-dom.c (pass_dominator): Likewise.
6885         * tree-ssa-loop-ch.c (pass_ch): Likewise.
6886         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
6887         (pass_tree_loop_done): Likewise.
6888         * tree-ssa-pre.c (execute_pre): Likewise.
6889         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
6890         * tree-ssa-sink.c (pass_sink_code): Likewise.
6891         * tree-vrp.c (pass_vrp): Likewise.
6892
6893 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
6894
6895         * config/v850/constraints.md: New file.
6896         * config/v850/v850.md: Include it.
6897         * config/v850/predicates.md (reg_or_0_operand): Use
6898         satisfies_constraint_G.
6899         (special_symbolref_operand): Use satisfies_constraint_K.
6900         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
6901         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
6902         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
6903         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
6904         (EXTRA_CONSTRAINT): Delete.
6905         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
6906         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
6907         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
6908
6909 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
6910
6911         PR target/47696
6912         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
6913         description.
6914
6915 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
6916
6917         * config/mcore/constraints.md: New file.
6918         * config/mcore/mcore.md: Include it.
6919         * config/mcore/mcore.c (reg_class_from_letter): Delete.
6920         * config/mcore/mcore.h (reg_class_from_letter): Delete.
6921         (REG_CLASS_FROM_LETTER): Delete.
6922         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
6923         insn_const_int_ok_for_constraint.
6924         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
6925         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
6926         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6927         (EXTRA_CONSTRAINT): Delete.
6928
6929 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6930
6931         PR ada/41929
6932         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
6933         (IS_SIGHANDLER): Define.
6934         (sparc64_is_sighandler): New function, split off from
6935         sparc64_fallback_frame_state.
6936         (sparc_is_sighandler): New function, split off from
6937         sparc_fallback_frame_state.
6938         (sparc64_fallback_frame_state): Merge with ...
6939         (sparc_fallback_frame_state): ... this into ...
6940         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
6941         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
6942         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
6943         stack instead of hardcoded offsets.
6944
6945 2011-02-14  Andriy Gapon  <avg@freebsd.org>
6946
6947         PR target/45808
6948         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
6949
6950 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6951
6952         * configure: Regenerate.
6953
6954 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
6955
6956         PR driver/45731
6957         * gcc.c (asm_options): Correct spec matching --target-help.
6958
6959 2011-02-12  Martin Jambor  <mjambor@suse.cz>
6960
6961         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
6962         to gimple call error.
6963
6964 2011-02-12  Mike Stump  <mikestump@comcast.net>
6965
6966         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
6967         comments in backslash regions.
6968
6969 2011-02-12  Mike Stump  <mikestump@comcast.net>
6970             Jakub Jelinek  <jakub@redhat.com>
6971             Iain Sandoe  <iains@gcc.gnu.org>
6972
6973         PR target/47324
6974         * dwarf2out.c (output_cfa_loc): When required, apply the
6975         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
6976         (output_loc_sequence): Likewise.
6977         (output_loc_operands_raw): Likewise.
6978         (output_loc_sequence_raw): Likewise.
6979         (output_cfa_loc): Likewise.
6980         (output_loc_list): Suppress register number adjustment when
6981         calling output_loc_sequence()
6982         (output_die): Likewise.
6983
6984 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
6985
6986         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
6987         Remove macros.
6988         * config/xtensa/xtensa.c (xtensa_register_move_cost,
6989         xtensa_memory_move_cost): New functions.
6990         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
6991
6992 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
6993
6994         PR lto/47225
6995         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
6996         in the current directory.
6997         * configure: Rebuilt.
6998
6999 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
7000
7001         * config/darwin.c (darwin_override_options): Add a hunk missed
7002         from the commit of r168571.  Trim comment line lengths and
7003         correct indents of the preceding block.
7004
7005 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
7006
7007         * gcc.c (driver_handle_option): Concatenate the argument to -F with
7008         the switch.
7009
7010 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
7011
7012         * common.opt (nostartfiles): New Driver option.
7013
7014 2011-02-11  Xinliang David Li  <davidxl@google.com>
7015
7016         PR tree-optimization/47707
7017         * tree-chrec.c (convert_affine_scev): Keep type precision.
7018
7019 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
7020
7021         PR tree-optimization/47420
7022         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
7023
7024 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
7025
7026         PR rtl-optimization/47614
7027         * rtl.h (check_for_inc_dec): Declare.
7028         * dse.c (check_for_inc_dec): Externalize...
7029         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
7030         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
7031
7032 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
7033
7034         PR driver/47678
7035         * gcc.c (main): Do not compile inputs if there were errors in
7036         option handling.
7037         * opts-common.c (read_cmdline_option): Check for wrong language
7038         after other error checks.
7039
7040 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
7041
7042         * cgraph.c: Fix comment typos.
7043         * cgraph.h: Likewise.
7044         * cgraphunit.c: Likewise.
7045         * ipa-cp.c: Likewise.
7046         * ipa-inline.c: Likewise.
7047         * ipa-prop.c: Likewise.
7048         * ipa-pure-const.c: Likewise.
7049         * ipa-ref.c: Likewise.
7050         * ipa-reference.c: Likewise.
7051
7052 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
7053
7054         PR debug/47684
7055         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
7056
7057 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7058
7059         PR testsuite/47400
7060         * doc/sourcebuild.texi (Require Support): Document
7061         dg-require-ascii-locale.
7062
7063 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
7064
7065         * doc/lto.texi (Write summary): Fix missing parentheses.
7066
7067 2011-02-10  DJ Delorie  <dj@redhat.com>
7068
7069         * config/m32c/m32c.c (m32c_option_override): Disable
7070         -fcombine-stack-adjustments until flag value tracking and compare
7071         optimization can be rewritten.
7072
7073 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
7074
7075         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
7076         PROCESSOR_POWER7.
7077         (PROCESSOR_DEFAULT64): Likewise.
7078
7079 2011-02-10  Richard Henderson  <rth@redhat.com>
7080
7081         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
7082         change from 2011-02-03.
7083         * config/rx/rx.c (flags_from_code): Likewise.
7084         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
7085         is valid, n/pz otherwise.
7086         (rx_select_cc_mode): Return CCmode if Y is not zero.
7087
7088 2011-02-10  Richard Guenther  <rguenther@suse.de>
7089
7090         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
7091
7092 2011-02-10  Richard Guenther  <rguenther@suse.de>
7093
7094         PR tree-optimization/47677
7095         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
7096
7097 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
7098
7099         PR target/47665
7100         * combine.c (make_compound_operation): Only change shifts into
7101         multiplication for SCALAR_INT_MODE_P.
7102
7103 2011-02-10  Jie Zhang  <jie@codesourcery.com>
7104
7105         PR testsuite/47622
7106         Revert
7107         2011-02-05  Jie Zhang  <jie@codesourcery.com>
7108         PR debug/42631
7109         * web.c (entry_register): Don't clobber the number of the
7110         first uninitialized reference in used[].
7111
7112 2011-02-09  Richard Guenther  <rguenther@suse.de>
7113
7114         PR tree-optimization/47664
7115         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
7116         all edges again.
7117
7118 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
7119
7120         PR target/46481
7121         PR target/47032
7122         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
7123         PROCESSOR_POWER7.
7124         (PROCESSOR_DEFAULT64): Same.
7125         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
7126
7127 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7128
7129         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
7130
7131 2011-02-09  Martin Jambor  <mjambor@suse.cz>
7132
7133         PR middle-end/45505
7134         * tree-sra.c (struct access): New flags grp_scalar_read and
7135         grp_scalar_write.  Changed description of assignment read and write
7136         flags.
7137         (dump_access): Dump new flags, reorder all of them.
7138         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
7139         to detect multiple scalar reads.
7140         (analyze_access_subtree): Use the new scalar read write flags instead
7141         of the old flags.  Adjusted comments.
7142
7143 2011-02-08  DJ Delorie  <dj@redhat.com>
7144
7145         PR target/47548
7146         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
7147         patterns.
7148
7149 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7150
7151         * config/m68k/uclinux.opt: New.
7152         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
7153
7154 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7155
7156         * config/cris/elf.opt (sim): New Driver option.
7157
7158 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7159
7160         * config/xtensa/elf.opt: New.
7161         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
7162
7163 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7164
7165         * config/vax/elf.opt: New.
7166         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
7167
7168 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7169
7170         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
7171
7172 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7173
7174         * config/gnu-user.opt: New.
7175         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
7176         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
7177         *-*-uclinux*): Use gnu-user.opt.
7178
7179 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
7180
7181         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
7182         * config/i386/gnu.h (CPP_SPEC): Likewise.
7183
7184 2011-02-08  Ian Lance Taylor  <iant@google.com>
7185
7186         * common.opt (fcx-limited-range): Add SetByCombined flag.
7187         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
7188         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
7189         (fassociative-math, freciprocal-math): Likewise.
7190         (funsafe-math-optimizations): Likewise.
7191         * opth-gen.awk: Handle SetByCombined.
7192         * optc-gen.awk: Likewise.
7193         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
7194         (set_unsafe_math_optimizations_flags): Likewise.
7195         * doc/options.texi (Option properties): Document SetByCombined.
7196
7197 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7198
7199         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
7200         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
7201         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
7202         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
7203         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
7204
7205 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
7206
7207         PR tree-optimization/46834
7208         PR tree-optimization/46994
7209         PR tree-optimization/46995
7210         * graphite-sese-to-poly.c (used_outside_reduction): New.
7211         (detect_commutative_reduction): Call used_outside_reduction.
7212         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
7213         translate_scalar_reduction_to_array only when at least one
7214         loop-phi/close-phi tuple has been detected.
7215
7216 2011-02-08  Richard Guenther  <rguenther@suse.de>
7217
7218         PR middle-end/47639
7219         * tree-vect-generic.c (expand_vector_operations_1): Update
7220         stmts here ...
7221         (expand_vector_operations): ... not here.  Cleanup EH info
7222         and the CFG if required.
7223
7224 2011-02-08  Richard Guenther  <rguenther@suse.de>
7225
7226         PR tree-optimization/47641
7227         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
7228         require type compatibility.
7229
7230 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7231
7232         * gimple-low.c (lower_function_body): Don't remove the location of
7233         the return statement here.
7234         (lower_gimple_return): Do it here instead but only if the return
7235         statement is actually used twice.
7236
7237 2011-02-08  Richard Guenther  <rguenther@suse.de>
7238
7239         PR tree-optimization/47632
7240         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
7241         unused up_to_stmt parameter, return whether cfg-cleanup is
7242         necessary, remove EH info properly.
7243         (forward_propagate_into_gimple_cond): Adjust caller.
7244         (forward_propagate_into_cond): Likewise.
7245         (forward_propagate_comparison): Likewise.
7246         (tree_ssa_forward_propagate_single_use_vars): Make
7247         forward_propagate_comparison case similar to the two others.
7248
7249 2011-02-08  Nick Clifton  <nickc@redhat.com>
7250
7251         * config/mn10300/mn10300.opt (mliw): New command line option.
7252         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
7253         (liw_bundling): New automaton.
7254         (liw): New attribute.
7255         (liw_op): New attribute.
7256         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
7257         (movsi_internal): Add LIW attributes.
7258         (andsi3): Likewise.
7259         (iorsi3): Likewise.
7260         (xorsi3): Likewise.
7261         (addsi3): Separate register and immediate alternatives.
7262         Add LIW attributes.
7263         (subsi3): Likewise.
7264         (cmpsi): Likewise.
7265         (aslsi3): Likewise.
7266         (lshrsi3): Likewise.
7267         (ashrsi3): Likewise.
7268         (liw): New pattern.
7269         * config/mn10300/mn10300.c (liw_op_names): New
7270         (mn10300_print_operand): Handle 'W' operand descriptor.
7271         (extract_bundle): New function.
7272         (check_liw_constraints): New function.
7273         (liw_candidate): New function.
7274         (mn10300_bundle_liw): New function.
7275         (mn10300_reorg): New function.
7276         (TARGET_MACHINE_DEPENDENT_REORG): Define.
7277         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
7278         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
7279         __LIW__ or __NO_LIW__.
7280         * doc/invoke.texi: Describe the -mliw command line option.
7281
7282 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7283
7284         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
7285         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
7286         pthread_mutex_unlock): Remove.
7287         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
7288         * config/pa/t-pa64: Likewise.
7289         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
7290         shared libc if not linking against libpthread.
7291         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
7292
7293 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
7294
7295         PR target/47558
7296         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
7297         on 10.6 and later to ensure that we always use the unwinder from
7298         the system.  Only add -no_compact_unwind when tarteting darwin
7299         10.6 or later.
7300
7301 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
7302
7303         PR target/46997
7304         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
7305         (vec_interleave_lowv2sf): Ditto.
7306         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
7307         (vec_extract_oddv2sf): Ditto.
7308
7309 2011-02-07  Mike Stump  <mikestump@comcast.net>
7310
7311         PR target/42333
7312         Add __ieee_divdc3 entry point.
7313         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
7314         entry point.
7315         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
7316         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
7317         * config/darwin.c (darwin_rename_builtins): Add.
7318         * config/darwin-protos.h (darwin_rename_builtins): Add.
7319
7320 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
7321
7322         PR target/47636
7323         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
7324         for the condition.
7325
7326 2011-02-07  Mike Stump  <mikestump@comcast.net>
7327
7328         * config/darwin.opt (mmacosx-version-min): Update default OS version.
7329
7330 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
7331
7332         PR target/47534
7333         * config/avr/libgcc.S (exit): Move .endfunc
7334
7335 2011-02-07  Richard Guenther  <rguenther@suse.de>
7336
7337         PR tree-optimization/47615
7338         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
7339         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
7340         (run_scc_vn): Initialize it.
7341         (visit_reference_op_load): Use it.
7342         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
7343
7344 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7345
7346         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
7347         DImode trapping arithmetic libfuncs.
7348
7349 2011-02-07  Richard Guenther  <rguenther@suse.de>
7350
7351         PR tree-optimization/47621
7352         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
7353         two duplicates ...
7354         (execute_update_addresses_taken): ... here.  Make it more
7355         conservative in what we accept.
7356
7357 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
7358
7359         * config/sparc/freebsd.h (ASM_SPEC): Define.
7360         * config/sparc/vxworks.h (ASM_SPEC): Define.
7361
7362 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
7363
7364         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
7365
7366 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
7367
7368         * doc/invoke.texi: Remove reference to compiler internals from
7369         user documentation.
7370
7371         * reg-notes.def: Remove REG_VALUE_PROFILE.
7372         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
7373
7374 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
7375
7376         PR middle-end/47610
7377         * varasm.c (default_section_type_flags): If decl is NULL,
7378         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
7379
7380 2011-02-05  Jie Zhang  <jie@codesourcery.com>
7381
7382         PR debug/42631
7383         * web.c (entry_register): Don't clobber the number of the
7384         first uninitialized reference in used[].
7385
7386 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
7387
7388         PR tree-optimization/46194
7389         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
7390         (build_classic_dist_vector_1): Do not represent classic distance
7391         vectors when the access functions are variating in different loops.
7392
7393 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
7394
7395         * config/mips/iris6.opt: New.
7396         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
7397
7398 2011-02-04  Richard Henderson  <rth@redhat.com>
7399             Steve Ellcey  <sje@cup.hp.com>
7400
7401         PR target/46997
7402         * config/ia64/predicates.md (mux1_brcst_element): New.
7403         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
7404         * config/ia64/ia64.c (ia64_unpack_assemble): New.
7405         (ia64_unpack_sign): New.
7406         (ia64_expand_unpack): Rewrite using new routines.
7407         (ia64_expand_widen_sum): Ditto.
7408         (ia64_expand_dot_prod_v8qi): Ditto.
7409         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
7410         routines, add endian check.
7411         (pmpy2_even): Rename from pmpy2_r, add endian check.
7412         (pmpy2_odd): Rename from pmpy2_l, add endian check.
7413         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
7414         (vec_widen_smult_hi_v4hi): Ditto.
7415         (vec_widen_umult_lo_v4hi): Ditto.
7416         (vec_widen_umult_hi_v4hi): Ditto.
7417         (mulv2si3): Change endian checks.
7418         (sdot_prodv4hi): Rewrite with new calls.
7419         (udot_prodv4hi): New.
7420         (vec_pack_ssat_v4hi): Add endian check.
7421         (vec_pack_usat_v4hi): Ditto.
7422         (vec_pack_ssat_v2si): Ditto.
7423         (max1_even): Rename from max1_r, add endian check.
7424         (max1_odd): Rename from max1_l, add endian check.
7425         (*mux1_rev): Format change.
7426         (*mux1_mix): Ditto.
7427         (*mux1_shuf): Ditto.
7428         (*mux1_alt): Ditto.
7429         (*mux1_brcst_v8qi): Use new predicate.
7430         (vec_extract_evenv8qi): Remove endian check.
7431         (vec_extract_oddv8qi): Ditto.
7432         (vec_interleave_lowv4hi): Format change.
7433         (vec_interleave_highv4hi): Ditto.
7434         (mix2_even): Rename from mix2_r, add endian check.
7435         (mix2_odd): Rename from mux2_l, add endian check.
7436         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
7437         (vec_extract_evenodd_helper): Format change.
7438         (vec_extract_evenv4hi): Remove endian check.
7439         (vec_extract_oddv4hi): Remove endian check.
7440         (vec_interleave_lowv2si): Format change.
7441         (vec_interleave_highv2si): Format change.
7442         (vec_initv2si): Remove endian check.
7443         (vecinit_v2si): Add endian check.
7444         (reduc_splus_v2sf): Add endian check.
7445         (reduc_smax_v2sf): Ditto.
7446         (reduc_smin_v2sf): Ditto.
7447         (vec_initv2sf): Remove endian check.
7448         (fpack): Add endian check.
7449         (fswap): Add endian check.
7450         (vec_interleave_highv2sf): Add endian check.
7451         (vec_interleave_lowv2sf): Add endian check.
7452         (fmix_lr): Add endian check.
7453         (vec_setv2sf): Format change.
7454         (*vec_extractv2sf_0_be): Use shift to extract operand.
7455         (*vec_extractv2sf_1_be): New.
7456         (vec_pack_trunc_v4hi): Add endian check.
7457         (vec_pack_trunc_v2si): Format change.
7458
7459 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
7460
7461         PR inline-asm/23200
7462         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
7463         do bb, locus and block comparison and disallow loads if it is not set.
7464         (stmt_is_replaceable_p): New function.
7465         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
7466         callers.
7467         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
7468         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
7469         SSA_NAME_DEF_STMT.
7470         * tree-flow.h (stmt_is_replaceable_p): New prototype.
7471
7472 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
7473
7474         * config/rs6000/xilinx.opt: New.
7475         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
7476
7477 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
7478
7479         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
7480
7481 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
7482
7483         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
7484         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
7485         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
7486         secondary_reload_info, xtensa_secondary_reload): Remove.
7487         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
7488         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7489         (xtensa_preferred_reload_class): Make static. Change return and
7490         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
7491         Use CONST_DOUBLE_P predicate.
7492         (xtensa_preferred_output_reload_class): New function.
7493         (xtensa_secondary_reload): Make static.
7494
7495 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
7496
7497         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
7498         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
7499         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
7500
7501 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
7502
7503         PR middle-end/31490
7504         * output.h (SECTION_RELRO): Define.
7505         (SECTION_MACH_DEP): Adjust.
7506         (get_variable_section): New prototype.
7507         * varpool.c (varpool_finalize_named_section_flags): New function.
7508         (varpool_assemble_pending_decls): Call it.
7509         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
7510         * cgraphunit.c (cgraph_output_in_order): Call
7511         varpool_finalize_named_section_flags.
7512         * varasm.c (get_section): Allow section flags conflicts between
7513         relro and read-only sections if the section hasn't been declared yet.
7514         Set SECTION_OVERRIDE after diagnosing section type conflict.
7515         (get_variable_section): No longer static.
7516         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
7517         readonly sections that need relocations.
7518         (decl_readonly_section_1): New function.
7519         (decl_readonly_section): Use it.
7520
7521         Revert:
7522         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
7523                     Steve Ellcey  <sje@cup.hp.com>
7524
7525         PR middle-end/31490
7526         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
7527         if section attribute used.
7528
7529 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
7530
7531         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
7532         * config/darwin.c (SECTION_NO_ANCHOR): Define.
7533         (darwin_init_sections): Remove assertion.
7534
7535 2011-02-03  Nick Clifton  <nickc@redhat.com>
7536
7537         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
7538         lt and ge.
7539         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
7540         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
7541         instead of "n" and "pz".
7542         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
7543         CC_FLAG_S.
7544
7545 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
7546
7547         PR target/47312
7548         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
7549         fma, expand FMA_EXPR as fma{,f,l} call.
7550
7551         PR lto/47274
7552         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
7553         copy them into a unsigned char variable and pass address of it to
7554         lto_output_data_stream.
7555
7556         PR target/47564
7557         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
7558         around backend_init_target and lang_dependent_init_target calls.
7559         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
7560         (verify_cgraph_node): Don't call set_cfun here.  Use
7561         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
7562         Set error_found for incorrectly represented calls to thunks.
7563
7564 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
7565
7566         PR debug/43092
7567         PR rtl-optimization/43494
7568         * rtl.h (for_each_inc_dec_fn): New type.
7569         (for_each_inc_dec): Declare.
7570         * rtlanal.c (struct for_each_inc_dec_ops): New type.
7571         (for_each_inc_dec_find_inc_dec): New fn.
7572         (for_each_inc_dec_find_mem): New fn.
7573         (for_each_inc_dec): New fn.
7574         * dse.c (struct insn_size): Remove.
7575         (replace_inc_dec, replace_inc_dec_mem): Remove.
7576         (emit_inc_dec_insn_before): New fn.
7577         (check_for_inc_dec): Use it, along with for_each_inc_dec.
7578         (canon_address): Pass mem modes to cselib_lookup.
7579         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
7580         (cselib_lookup_from_insn): Likewise.
7581         (cselib_subst_to_values): Likewise.
7582         * cselib.c (find_slot_memmode): New var.
7583         (cselib_find_slot): New fn.  Use it instead of
7584         htab_find_slot_with_hash everywhere.
7585         (entry_and_rtx_equal_p): Use find_slot_memmode.
7586         (autoinc_split): New fn.
7587         (rtx_equal_for_cselib_p): Rename and implement in terms of...
7588         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
7589         Deal with autoinc.  Special-case recursion into MEMs.
7590         (cselib_hash_rtx): Likewise.
7591         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
7592         address and MEM modes.
7593         (cselib_subst_to_values): Add memmode, pass it on.
7594         Deal with autoinc.
7595         (cselib_lookup): Add memmode argument, pass it on.
7596         (cselib_lookup_from_insn): Add memmode.
7597         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
7598         (struct cselib_record_autoinc_data): New.
7599         (cselib_record_autoinc_cb): New fn.
7600         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
7601         mode to cselib_lookup.  Reset autoinced REGs here instead of...
7602         (cselib_process_insn): ... here.
7603         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
7604         to cselib_lookup.
7605         (add_uses): Likewise, also to cselib_subst_to_values.
7606         (add_stores): Likewise.
7607         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
7608         cselib_subst_to_values.
7609         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
7610         * gcse.c (do_local_cprop): Adjusted.
7611         * postreload.c (reload_cse_simplify_set): Adjusted.
7612         (reload_cse_simplify_operands): Adjusted.
7613         * sel-sched-dump (debug_mem_addr_value): Pass mode.
7614
7615 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
7616
7617         PR tree-optimization/45122
7618         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
7619         unsafe assumptions when there's more than one loop exit.
7620
7621 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7622
7623         PR target/47272
7624         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
7625         Document using vector double with the load/store builtins, and
7626         that the load/store builtins always use Altivec instructions.
7627
7628         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
7629         to use altivec memory instructions, even on VSX.
7630         (vector_altivec_store_<mode>): Ditto.
7631
7632         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
7633         function.
7634
7635         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7636         V2DF, V2DI support to load/store overloaded builtins.
7637
7638         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
7639         altivec load/store builtins for V2DF/V2DI types.
7640
7641         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
7642         set avoid indexed addresses on power6 if -maltivec.
7643         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
7644         vector_altivec_load/vector_altivec_store builtins.
7645         (altivec_expand_st_builtin): Ditto.
7646         (altivec_expand_builtin): Add VSX memory builtins.
7647         (rs6000_init_builtins): Add V2DI types to internal types.
7648         (altivec_init_builtins): Add support for V2DF/V2DI altivec
7649         load/store builtins.
7650         (rs6000_address_for_altivec): Insure memory address is appropriate
7651         for Altivec.
7652
7653         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
7654         vec_vsx_ld and vec_vsx_st.
7655         (vsx_store_<mode>): Ditto.
7656
7657         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
7658         variables to hold long long types for VSX vector memory builtins.
7659         (RS6000_BTI_unsigned_long_long): Ditto.
7660         (long_long_integer_type_internal_node): Ditti.
7661         (long_long_unsigned_type_internal_node): Ditti.
7662
7663         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
7664         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
7665         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
7666
7667         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
7668         short cuts.
7669         (vec_vsx_st): Ditto.
7670
7671 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
7672
7673         * config/pa/pa-hpux10.opt: New.
7674         * config/hpux11.opt (pthread): New Driver option.
7675         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
7676         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
7677
7678 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
7679
7680         * config/ia64/vms.opt: New.
7681         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
7682
7683 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
7684
7685         PR target/47580
7686         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
7687         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
7688         generator functions.
7689         (vsx_floatuns<VSi><mode>2): Ditto.
7690         (vsx_fix_trunc<mode><VSi>2): Ditto.
7691         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
7692
7693 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
7694
7695         * config/i386/djgpp.opt (posix): New Driver option.
7696
7697 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
7698
7699         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
7700         Move to the unsupported targets list.
7701
7702 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
7703
7704         PR rtl-optimization/47525
7705         * df-scan.c: Update copyright years.
7706         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
7707         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
7708
7709 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7710
7711         * config/i386/sysv4.h (TARGET_VERSION): Remove.
7712         (SUBTARGET_RETURN_IN_MEMORY): Remove.
7713         (ASM_OUTPUT_ASCII): Remove.
7714         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
7715
7716 2011-02-02  Jeff Law  <law@redhat.com>
7717
7718         PR middle-end/47543
7719         * reload.c (find_reloads_address): Handle reg+d address where both
7720         components are invalid by reloading the entire address.
7721
7722 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
7723             Richard Guenther  <rguenther@suse.de>
7724
7725         PR tree-optimization/40979
7726         PR bootstrap/47044
7727         * passes.c (init_optimization_passes): After LIM call copy_prop
7728         and DCE to clean up.
7729         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
7730
7731 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
7732
7733         PR tree-optimization/47576
7734         PR tree-optimization/47555
7735         * doc/invoke.texi (scev-max-expr-complexity): Documented.
7736         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
7737         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
7738         * tree-scalar-evolution.c (follow_ssa_edge): Use
7739         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
7740
7741 2011-02-02  Richard Guenther  <rguenther@suse.de>
7742
7743         PR tree-optimization/47566
7744         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
7745
7746 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
7747
7748         PR debug/47106
7749         PR debug/47402
7750         * tree-inline.c (declare_return_variable): Remove unused caller
7751         variable.
7752
7753         PR debug/47106
7754         PR debug/47402
7755         * tree-flow-inline.h (clear_is_used, is_used_p): New.
7756         * cfgexpand.c (account_used_vars_for_block): Use them.
7757         * tree-nrv.c (tree_nrv): Likewise.
7758         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
7759         (dump_scope_block): Likewise.
7760         (remove_unused_locals): Likewise.
7761
7762         PR debug/47106
7763         PR debug/47402
7764         * tree-inline.c (declare_return_variable): Add result decl to
7765         local decls only once.
7766         * gimple-low.c (record_vars_into): Mark newly-created variables
7767         as referenced.
7768
7769 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
7770
7771         PR debug/47498
7772         PR debug/47501
7773         PR debug/45136
7774         PR debug/45130
7775         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
7776         debug insns.
7777         (no_real_insns_p, schedule_block, set_priorities): Drop special
7778         treatment of boundary debug insns.
7779         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
7780         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
7781         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
7782         (BOUNDARY_DEBUG_INSN_P): Likewise.
7783         (SCHEDULE_DEBUG_INSN_P): Likewise.
7784         * sched-rgn.c (init_ready_list): Drop special treatment of
7785         boundary debug insns.
7786         * final.c (rest_of_clean_state): Clear notes' BB.
7787
7788 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7789
7790         * config/openbsd.opt (assert=): New Driver option.
7791
7792 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7793
7794         * config/i386/nto.opt: New.
7795         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
7796
7797 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7798
7799         * config/i386/netware.opt: New.
7800         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
7801
7802 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7803
7804         * config/interix.opt (posix): New Driver option.
7805
7806 2011-02-01  DJ Delorie  <dj@redhat.com>
7807
7808         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
7809
7810         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
7811         class for A0/A1.
7812
7813 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
7814
7815         PR tree-optimization/47561
7816         * toplev.c (process_options): Print the Graphite flags.  Add
7817         flag_loop_flatten to the list of options requiring Graphite.
7818
7819 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7820
7821         * config/i386/cygming.opt (posix): New Driver option.
7822
7823 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7824
7825         * config/arm/vxworks.opt: New.
7826         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
7827
7828 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7829
7830         * config/alpha/elf.opt: New.
7831         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
7832         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
7833
7834 2011-02-01  Richard Guenther  <rguenther@suse.de>
7835
7836         PR tree-optimization/47559
7837         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
7838         store-motion on references that can throw.
7839
7840 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
7841
7842         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
7843         * tree-pass.h (TDF_CSELIB): New macro.
7844         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
7845         cselib_lookup): Check for it rather than for TDF_DETAILS.
7846
7847 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
7848
7849         PR driver/47547
7850         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
7851         is HOST_BIT_BUCKET.
7852
7853         * opts.c (finish_options): Don't add x_aux_base_name if it is
7854         HOST_BIT_BUCKET.
7855
7856 2011-02-01  Richard Guenther  <rguenther@suse.de>
7857
7858         PR tree-optimization/47555
7859         Revert
7860         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
7861
7862         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
7863
7864 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
7865
7866         PR gcc/46692
7867         * config/lm32/t-lm32: Add multilib for all CPU options.
7868
7869 2011-02-01  Richard Guenther  <rguenther@suse.de>
7870
7871         PR tree-optimization/47541
7872         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
7873         sure to have a field at offset zero.
7874
7875 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
7876
7877         * config/arc/arc.opt (EB, EL): New Driver options.
7878
7879 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
7880
7881         * config/alpha/osf5.opt: New.
7882         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
7883
7884 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
7885
7886         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
7887
7888 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
7889
7890         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
7891         -floop-interchange.
7892         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
7893         is an alias of -floop-interchange and that it requires the
7894         Graphite infrastructure.
7895         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
7896         flag_loop_interchange based on the value of flag_tree_loop_linear.
7897
7898 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
7899             Richard Guenther  <rguenther@suse.de>
7900
7901         PR tree-optimization/47538
7902         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
7903         type instead of r1type, except for comparisons.  For right
7904         shifts and comparisons punt if there are mismatches in
7905         sizetype vs. non-sizetype types.
7906
7907 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7908
7909         * doc/sourcebuild.texi (Effective-Target Keywords): Document
7910         avx_runtime.
7911
7912 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7913
7914         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
7915         version number.
7916         * configure: Regenerate.
7917
7918 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7919
7920         * configure.ac (gcc_cv_ld_static_option): Define.
7921         (gcc_cv_ld_dynamic_option): Define.
7922         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
7923         instead.
7924         (HAVE_LD_STATIC_DYNAMIC): Update message.
7925         (LD_STATIC_OPTION): Define.
7926         (LD_DYNAMIC_OPTION): Define.
7927         * configure: Regenerate.
7928         * config.in: Regenerate.
7929         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
7930         HAVE_LD_STATIC_DYNAMIC]: Use them.
7931
7932 2011-01-31  Nick Clifton  <nickc@redhat.com>
7933
7934         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
7935         registers inside interrupt handlers if the handler is not a leaf
7936         function.
7937
7938 2011-01-31  Nick Clifton  <nickc@redhat.com>
7939
7940         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
7941         reg_renumber returning an INVALID_REGNUM.
7942
7943 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
7944
7945         PR libgcj/44341
7946         * doc/install.texi: Document host options discarded when cross
7947         configuring target libraries.
7948
7949 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
7950
7951         Reverted:
7952         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
7953         PR debug/45136
7954         PR debug/45130
7955         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
7956         debug insns.
7957         (no_real_insns_p, schedule_block, set_priorities): Drop special
7958         treatment of boundary debug insns.
7959         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
7960         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
7961         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
7962         (BOUNDARY_DEBUG_INSN_P): Likewise.
7963         (SCHEDULE_DEBUG_INSN_P): Likewise.
7964         * sched-rgn.c (init_ready_list): Drop special treatment of
7965         boundary debug insns.
7966         * final.c (rest_of_clean-state): Clear notes' BB.
7967
7968 2011-01-31  Alan Modra  <amodra@gmail.com>
7969
7970         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
7971         toc relative expressions as we do in print_operand_address.
7972
7973 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
7974
7975         * doc/extend.texi: Follow spelling conventions.
7976         * doc/invoke.texi: Fix a typo.
7977
7978 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
7979
7980         * config/hpux11.opt: New.
7981         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
7982         ia64*-*-hpux*): Use hpux11.opt.
7983
7984 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
7985
7986         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
7987         to tmake_file.
7988
7989 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
7990
7991         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
7992         support sites.
7993
7994 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
7995
7996         * doc/install.texi (Binaries): Remove outdated reference for
7997         Motorola 68HC11/68HC12 downloads.
7998
7999 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
8000
8001         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
8002         Drepper's paper.
8003
8004 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
8005
8006         PR bootstrap/47147
8007         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
8008         used by NetBSD.
8009
8010 2011-01-28  Ahmad Sharif  <asharif@google.com>
8011
8012         * value-prof.c (check_counter): Corrected error message.
8013
8014 2011-01-29  Jie Zhang  <jie@codesourcery.com>
8015
8016         * config/arm/arm.c (arm_legitimize_reload_address): New.
8017         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
8018         arm_legitimize_reload_address.
8019         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
8020
8021 2011-01-28  Ian Lance Taylor  <iant@google.com>
8022
8023         * godump.c (go_define): Ignore macros whose definitions include
8024         two adjacent operands.
8025
8026 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
8027
8028         PR target/42894
8029         * varasm.c (force_const_mem): Store copy of x in desc->constant
8030         instead of x itself.
8031         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
8032         itself into REG_EQUAL note.
8033
8034 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
8035
8036         * config/freebsd.opt (posix, rdynamic): New Driver options.
8037
8038 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8039
8040         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
8041         -Bstatic/-Bdynamic.
8042         * configure: Regenerate.
8043
8044 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
8045
8046         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
8047         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
8048
8049 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
8050
8051         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
8052         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
8053         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
8054         (s390_preferred_reload_class): Make static. Change return and
8055         'rclass' argument type to reg_class_t.
8056
8057 2011-01-27  Jan Hubicka  <jh@suse.cz>
8058
8059         PR middle-end/46949
8060         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
8061         (process_function_and_variable_attributes): Check defined weakrefs.
8062
8063 2011-01-27  Martin Jambor  <mjambor@suse.cz>
8064
8065         PR tree-optimization/47228
8066         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
8067         build_ref_for_offset.
8068
8069 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8070
8071         * config/spu/spu-elf.h (ASM_SPEC): Remove.
8072
8073 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
8074
8075         PR rtl-optimization/46856
8076         * postreload.c (reload_combine_recognize_const_pattern): Do not
8077         separate cc0 setter and user on cc0 targets.
8078
8079 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
8080
8081         PR c/43082
8082         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
8083         passed a VOID_TYPE expression, immediately emit an error and
8084         return error_mark_node.
8085
8086 2011-01-26  Jeff Law  <law@redhat.com>
8087
8088         PR rtl-optimization/47464
8089         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
8090         rather than may_trap_p as needed.
8091
8092 2011-01-26  DJ Delorie  <dj@redhat.com>
8093
8094         PR rtl-optimization/46878
8095         * combine.c (insn_a_feeds_b): Check for the implicit cc0
8096         setter/user dependency as well.
8097
8098 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
8099
8100         PR rtl-optimization/44469
8101         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
8102         after removing trivially dead basic blocks.
8103
8104 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
8105
8106         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
8107         * config/frv/frv.h (LINK_SPEC): Likewise.
8108         * config/i386/netware.h (LINK_SPEC): Likewise.
8109         * config/m68k/linux.h (ASM_SPEC): Likewise.
8110         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
8111         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
8112         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8113         * config/sparc/linux.h (ASM_SPEC): Likewise.
8114         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8115         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8116
8117 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
8118
8119         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
8120         * config/frv/frv.h (ASM_SPEC): Likewise.
8121         * config/m68k/linux.h (ASM_SPEC): Likewise.
8122         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
8123         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
8124         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8125         * config/sparc/linux.h (ASM_SPEC): Likewise.
8126         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8127         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8128
8129 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
8130
8131         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
8132         * config/frv/frv.h (LINK_SPEC): Likewise.
8133         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
8134
8135 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
8136
8137         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
8138         * config/frv/frv.h (ASM_SPEC): Likewise.
8139         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
8140         * config/m68k/linux.h (ASM_SPEC): Likewise.
8141         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
8142         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
8143         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8144         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
8145         * config/sparc/linux.h (ASM_SPEC): Likewise.
8146         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8147         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8148         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
8149
8150 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
8151
8152         PR target/46997
8153         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
8154         (*mux2): Ditto.
8155         (vec_extract_evenodd_help): Ditto.
8156         (vec_extract_evenv4hi): Ditto.
8157         (vec_extract_oddv4hi): Ditto.
8158         (vec_interleave_lowv2si): Ditto.
8159         (vec_interleave_highv2si): Ditto.
8160         (vec_extract_evenv2si): Ditto.
8161         (vec_extract_oddv2si: Ditto.
8162         (vec_pack_trunc_v2si): Ditto.
8163
8164 2011-01-22  Jan Hubicka  <jh@suse.cz>
8165
8166         PR target/47237
8167         * cgraph.h (cgraph_local_info): New field can_change_signature.
8168         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
8169         signature can change.
8170         (ipcp_estimate_growth): Call sequence simplify only if calle signature
8171         can change.
8172         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
8173         (cgraph_function_versioning): We can not change signature of functions
8174         that don't allow that.
8175         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
8176         (lto_input_node): Likewise.
8177         * ipa-inline.c (compute_inline_parameters): Compute
8178         local.can_change_signature.
8179         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
8180         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
8181         functions that can not change signature.
8182         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
8183         init_cumulative_args): Do not use local calling conventions
8184         for functions that can not change signature.
8185
8186 2011-01-22  Jan Hubicka  <jh@suse.cz>
8187
8188         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
8189
8190 2011-01-26  Richard Guenther  <rguenther@suse.de>
8191
8192         PR tree-optimization/47190
8193         * cgraphunit.c (process_common_attributes): New function.
8194         (process_function_and_variable_attributes): Use it.
8195
8196 2011-01-26  Richard Guenther  <rguenther@suse.de>
8197
8198         PR lto/47423
8199         * cgraphbuild.c (record_eh_tables): Record reference to personality
8200         function.
8201
8202 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
8203
8204         PR debug/45454
8205         * sel-sched.c (moveup_expr): Don't let debug insns prevent
8206         non-debug insns from moving up.
8207
8208 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
8209
8210         PR target/40125
8211         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
8212         t-dlldir{,-x} fragment for build and add it to tmake_file.
8213         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
8214         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
8215         * config/i386/t-dlldir: New file.
8216         (SHLIB_DLLDIR): Define.
8217         * config/i386/t-dlldir-x: New file.
8218         (SHLIB_DLLDIR): Define.
8219         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
8220         (SHLIB_INSTALL): Use it.
8221
8222 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
8223
8224         PR target/47246
8225         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
8226         lower bound of the allowed Thumb-2 coprocessor load/store
8227         index range to -256. Add explaining comment.
8228
8229 2011-01-25  Ian Lance Taylor  <iant@google.com>
8230
8231         * godump.c (go_define): Improve lexing of macro expansion to only
8232         accept expressions which match Go spec.
8233
8234 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
8235
8236         PR c++/43601
8237         * tree.c (handle_dll_attribute): Handle it.
8238         * doc/extend.texi (@item dllexport): Mention it.
8239         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
8240
8241 2011-01-25  Ian Lance Taylor  <iant@google.com>
8242
8243         PR tree-optimization/26854
8244         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
8245         (decl_jump_unsafe): Move higher in file, with no other change.
8246         (bind): Set has_jump_unsafe_decl if appropriate.
8247         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
8248         (check_earlier_gotos): Likewise.
8249         (c_check_switch_jump_warnings): Likewise.
8250
8251 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
8252
8253         * doc/invoke.texi (Warning Options): Add missing hyphen.
8254         (-fprofile-dir): Minor grammatical fixes.
8255         (-fbranch-probabilities): Likewise.
8256
8257 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
8258
8259         PR debug/45136
8260         PR debug/45130
8261         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
8262         debug insns.
8263         (no_real_insns_p, schedule_block, set_priorities): Drop special
8264         treatment of boundary debug insns.
8265         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
8266         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
8267         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
8268         (BOUNDARY_DEBUG_INSN_P): Likewise.
8269         (SCHEDULE_DEBUG_INSN_P): Likewise.
8270         * sched-rgn.c (init_ready_list): Drop special treatment of
8271         boundary debug insns.
8272         * final.c (rest_of_clean-state): Clear notes' BB.
8273
8274 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8275
8276         * Makefile.in (LAMBDA_H): Removed.
8277         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
8278         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
8279         lambda-trans.o, and tree-loop-linear.o.
8280         (lto-symtab.o): Remove dependence on LAMBDA_H.
8281         (tree-loop-linear.o): Remove rule.
8282         (lambda-mat.o): Same.
8283         (lambda-trans.o): Same.
8284         (lambda-code.o): Same.
8285         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
8286         (tree-vect-slp.o): Same.
8287         * hwint.h (gcd): Moved here.
8288         (least_common_multiple): Same.
8289         * lambda-code.c: Removed.
8290         * lambda-mat.c: Removed.
8291         * lambda-trans.c: Removed.
8292         * lambda.h: Removed.
8293         * tree-loop-linear.c: Removed.
8294         * lto-symtab.c: Do not include lambda.h.
8295         * omega.c (gcd): Removed.
8296         * passes.c (init_optimization_passes): Remove pass_linear_transform.
8297         * tree-data-ref.c (print_lambda_vector): Moved here.
8298         (lambda_vector_copy): Same.
8299         (lambda_matrix_copy): Same.
8300         (lambda_matrix_id): Same.
8301         (lambda_vector_first_nz): Same.
8302         (lambda_matrix_row_add): Same.
8303         (lambda_matrix_row_exchange): Same.
8304         (lambda_vector_mult_const): Same.
8305         (lambda_vector_negate): Same.
8306         (lambda_matrix_row_negate): Same.
8307         (lambda_vector_equal): Same.
8308         (lambda_matrix_right_hermite): Same.
8309         * tree-data-ref.h: Do not include lambda.h.
8310         (lambda_vector): Moved here.
8311         (lambda_matrix): Same.
8312         (dependence_level): Same.
8313         (lambda_transform_legal_p): Removed declaration.
8314         (lambda_collect_parameters): Same.
8315         (lambda_compute_access_matrices): Same.
8316         (lambda_vector_gcd): Same.
8317         (lambda_vector_new): Same.
8318         (lambda_vector_clear): Same.
8319         (lambda_vector_lexico_pos): Same.
8320         (lambda_vector_zerop): Same.
8321         (lambda_matrix_new): Same.
8322         * tree-flow.h (least_common_multiple): Removed declaration.
8323         * tree-parloops.c (lambda_trans_matrix): Moved here.
8324         (LTM_MATRIX): Same.
8325         (LTM_ROWSIZE): Same.
8326         (LTM_COLSIZE): Same.
8327         (LTM_DENOMINATOR): Same.
8328         (lambda_trans_matrix_new): Same.
8329         (lambda_matrix_vector_mult): Same.
8330         (lambda_transform_legal_p): Same.
8331         * tree-pass.h (pass_linear_transform): Removed declaration.
8332         * tree-ssa-loop.c (tree_linear_transform): Removed.
8333         (gate_tree_linear_transform): Removed.
8334         (pass_linear_transform): Removed.
8335         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
8336         flag_loop_interchange.
8337
8338 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
8339
8340         PR tree-optimization/47265
8341         PR tree-optimization/47443
8342         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
8343         if name still has some uses.
8344
8345 2011-01-25  Martin Jambor  <mjambor@suse.cz>
8346
8347         PR tree-optimization/47382
8348         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
8349         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
8350
8351 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
8352
8353         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
8354         sjlj_except_unwind_info.
8355
8356 2011-01-25  Richard Guenther  <rguenther@suse.de>
8357
8358         PR tree-optimization/47426
8359         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
8360         visible functions results escape.
8361
8362 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
8363
8364         PR target/45701
8365         * config/arm/arm.c (any_sibcall_uses_r3): New function.
8366         (arm_get_frame_offsets): Use it.
8367
8368 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8369             Jakub Jelinek  <jakub@redhat.com>
8370
8371         PR tree-optimization/47271
8372         * tree-if-conv.c (bb_postdominates_preds): New.
8373         (if_convertible_bb_p): Call bb_postdominates_preds.
8374         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
8375         (predicate_scalar_phi): Call bb_postdominates_preds.
8376
8377 2011-01-25  Nick Clifton  <nickc@redhat.com>
8378
8379         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
8380         * config/rx/rx.c (rx_function_value): Likewise.
8381         (rx_promote_function_mode): Likewise.
8382         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
8383         in order to make it legitimate.
8384         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
8385         make sure that the first operand is the same as the result register.
8386         (addsi3_unspec): Delete.
8387         (subdi3): Do not accept immediate operands.
8388         (subdi3_internal): Likewise.
8389
8390 2011-01-25  Jeff Law  <law@redhat.com>
8391
8392         PR rtl-optimization/37273
8393         * ira-costs.c (scan_one_insn): Detect constants living in memory and
8394         handle them like argument loads from stack slots.  Do not double
8395         count memory for memory constants and argument loads from stack slots.
8396
8397 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
8398
8399         PR tree-optimization/47427
8400         PR tree-optimization/47428
8401         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
8402         coalesce if the new root var would be TREE_READONLY.
8403
8404 2011-01-25  Richard Guenther  <rguenther@suse.de>
8405
8406         PR middle-end/47414
8407         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
8408         correct type for TBAA.
8409
8410 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8411
8412         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
8413         (close_phi_written_to_memory): Call for_each_index with
8414         dr_indices_valid_in_loop.
8415
8416 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8417
8418         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
8419         when it is initialized.
8420
8421 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8422
8423         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
8424         call to graphite_find_data_references_in_stmt.
8425         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
8426         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
8427         call to graphite_find_data_references_in_stmt.
8428         (analyze_drs_in_stmts): Same.
8429         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
8430         in which the scalar analysis of indices is performed.
8431         (create_data_ref): Same.  Update call to dr_analyze_indices.
8432         (find_data_references_in_stmt): Update call to create_data_ref.
8433         (graphite_find_data_references_in_stmt): Same.
8434         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
8435         declaration.
8436         (create_data_ref): Same.
8437         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
8438         call to create_data_ref.
8439
8440 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8441
8442         * graphite-sese-to-poly.c (build_poly_scop): Move
8443         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
8444
8445 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8446
8447         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
8448         VAR_DECL, PARM_DECL, and RESULT_DECL.
8449
8450 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8451
8452         * graphite-dependences.c (reduction_dr_1): Allow several reductions
8453         in a reduction PBB.
8454         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
8455         that have already been marked as PBB_IS_REDUCTION.
8456
8457 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8458
8459         * graphite-scop-detection.c (same_close_phi_node): New.
8460         (remove_duplicate_close_phi): New.
8461         (make_close_phi_nodes_unique): New.
8462         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
8463
8464 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8465
8466         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
8467         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
8468         of both data references to be the same.
8469
8470 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8471
8472         * graphite-dependences.c (build_lexicographical_constraint): Remove
8473         the gdim parameter.
8474         (build_lexicographical_constraint): Adjust call to
8475         ppl_powerset_is_empty.
8476         (dependence_polyhedron): Same.
8477         (graphite_legal_transform_dr): Same.
8478         (graphite_carried_dependence_level_k): Same.
8479         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
8480         parameter.
8481         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
8482
8483 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8484
8485         * graphite-sese-to-poly.c
8486         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
8487         (close_phi_written_to_memory): New.
8488         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
8489         and unshare_expr.
8490
8491 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8492
8493         * doc/install.texi: Update the expected version number of PPL to 0.11.
8494         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
8495         #if PPL_VERSION_MINOR < 11.
8496
8497 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8498
8499         * graphite-dependences.c: Include graphite-cloog-util.h.
8500         (new_poly_ddr): Inlined into dependence_polyhedron.
8501         (free_poly_ddr): Moved close by new_poly_ddr.
8502         (dependence_polyhedron_1): Renamed dependence_polyhedron.
8503         Early return NULL when ppl_powerset_is_empty returns true.
8504         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
8505         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
8506         (graphite_legal_transform_dr): Call new_poly_ddr.
8507         (graphite_carried_dependence_level_k): Same.
8508         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
8509         (dot_transformed_deps_stmt_1): Removed.
8510         (dot_deps_stmt_1): Call dot_deps_stmt_2.
8511         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
8512         (dot_deps_1): Call dot_deps_2.
8513         * Makefile.in (graphite-dependences.o): Add missing dependence on
8514         graphite-cloog-util.h.
8515
8516 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8517
8518         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
8519         (build_lexicographical_constraint): Same.
8520         (dependence_polyhedron_1): Same.
8521         (graphite_legal_transform_dr): Same.
8522         (graphite_carried_dependence_level_k): Same.
8523         * graphite-ppl.c (ppl_powerset_is_empty): New.
8524         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
8525         * tree-data-ref.c (dump_data_reference): Print the basic block index.
8526
8527 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8528
8529         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
8530         the "a followed by b" relation and document it.
8531
8532 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8533
8534         * graphite-dependences.c (build_lexicographical_constraint): Stop the
8535         iteration when the bag of constraints is empty.
8536
8537 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8538
8539         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
8540
8541 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8542
8543         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
8544         nest and two loop depths as parameters.
8545         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
8546         lst_perfect_nestify.
8547
8548 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8549
8550         * graphite-dependences.c (print_pddr): Call
8551         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
8552
8553 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8554
8555         * graphite-ppl.c (debug_gmp_value): New.
8556         * graphite-ppl.h (debug_gmp_value): Declared.
8557
8558 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
8559
8560         * doc/install.texi: Document availability of cloog-0.16.
8561
8562 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
8563
8564         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
8565         invalid postdominance info.
8566
8567 2011-01-24  Jan Hubicka  <jh@suse.cz>
8568
8569         PR c/21659
8570         * doc/extend.texi (weak pragma): Drop claim that it must
8571         appear before definition.
8572         * varasm.c (merge_weak, declare_weak): Only sanity check
8573         that DECL is not output at a time it is declared weak.
8574
8575 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
8576
8577         * machmode.def: Fixed comments.
8578
8579 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
8580
8581         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
8582
8583 2011-01-24  Paul Koning  <ni1d@arrl.net>
8584
8585         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
8586         WORDS_BIG_ENDIAN.
8587
8588 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
8589
8590         PR target/46519
8591         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
8592         (block_info): Add scanned and prev.
8593         (move_or_delete_vzeroupper_2): Return if the basic block
8594         has been scanned and the upper 128bit state is unchanged
8595         from the last scan.
8596         (move_or_delete_vzeroupper_1): Return true if the exit
8597         state is changed.
8598         (move_or_delete_vzeroupper): Visit basic blocks using the
8599         work-list based algorithm based on vt_find_locations in
8600         var-tracking.c.
8601
8602         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
8603
8604 2011-01-24  Nick Clifton  <nickc@redhat.com>
8605
8606         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
8607         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
8608         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
8609         then define __v850e1__.
8610         * doc/invoke.texi: Document -mv850es.
8611
8612 2011-01-24  Richard Henderson  <rth@redhat.com>
8613
8614         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
8615         compound unordered comparisons.
8616         * config/rx/rx.c (rx_split_fp_compare): Remove.
8617         * config/rx/rx-protos.h: Update.
8618         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
8619         (cbranchsf4): Don't call rx_split_fp_compare.
8620         (*cbranchsf4): Use rx_split_cbranch.
8621         (*cmpsf): Don't accept "i" constraint.
8622         (*conditional_branch): Only valid after reload.
8623         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
8624
8625 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
8626
8627         PR target/47385
8628         * config/rs6000/altivec.md (vector constant splitters): Add
8629         support for creating vector single precision constants if -mvsx is
8630         used and we would create the constant using Altivec primitives.
8631
8632 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
8633             Richard Sandiford  <rdsandiford@googlemail.com>
8634
8635         PR rtl-optimization/47166
8636         * reload1.c (emit_reload_insns): Disable the spill_reg_store
8637         mechanism for PRE_MODIFY and POST_MODIFY.
8638         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
8639         reloadreg.
8640
8641 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
8642
8643         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
8644
8645 2011-01-22  Jan Hubicka  <jh@suse.cz>
8646
8647         PR lto/47333
8648         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
8649
8650 2011-01-22  Jan Hubicka  <jh@suse.cz>
8651
8652         PR tree-optimization/43884
8653         PR lto/44334
8654         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
8655         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
8656
8657 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
8658
8659         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
8660         * config/s390/s390.c (s390_register_move_cost,
8661         s390_memory_move_cost): New.
8662         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
8663
8664 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8665
8666         PR middle-end/47401
8667         * except.c (sjlj_assign_call_site_values): Move setting the
8668         crtl->uses_eh_lsda flag to ...
8669         (sjlj_mark_call_sites): ... here.
8670         (sjlj_emit_function_enter): Support NULL dispatch label.
8671         (sjlj_build_landing_pads): In a function with no landing pads
8672         that still has must-not-throw regions, generate code to register
8673         a personality function with empty LSDA.
8674
8675 2011-01-21  Richard Henderson  <rth@redhat.com>
8676
8677         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
8678
8679         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
8680
8681         * compare-elim.c: New file.
8682         * Makefile.in (OBJS-common): Add it.
8683         (compare-elim.o): New.
8684         * common.opt (fcompare-elim): New.
8685         * opts.c (default_options_table): Add OPT_fcompare_elim.
8686         * tree-pass.h (pass_compare_elim_after_reload): New.
8687         * passes.c (init_optimization_passes): Add it.
8688         * recog.h: Protect against re-inclusion.
8689         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
8690         * doc/invoke.texi (-fcompare-elim): Document it.
8691         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
8692         * doc/tm.texi: Rebuild.
8693
8694 2011-01-22  Nick Clifton  <nickc@redhat.com>
8695
8696         * config/rx/rx.md (cstoresf4): Pass comparison operator to
8697         rx_split_fp_compare.
8698
8699 2011-01-22  Nick Clifton  <nickc@redhat.com>
8700
8701         * config/rx/rx.md (UNSPEC_CONST): New.
8702         (deallocate_and_return): Wrap the amount popped off the stack in
8703         an UNSPEC_CONST in order to stop it being rejected by
8704         -mmax-constant-size.
8705         (pop_and_return): Add a "(return)" rtx.
8706         (call): Drop the immediate operand.
8707         (call_internal): Likewise.
8708         (call_value): Likewise.
8709         (call_value_internal): Likewise.
8710         (sibcall_internal): Likewise.
8711         (sibcall_value_internal): Likewise.
8712         (sibcall): Likewise.  Generate an explicit call using
8713         sibcall_internal.
8714         (sibcall_value): Likewise.
8715         (mov<>): FAIL if a constant operand is not legitimate.
8716         (addsi3_unpsec): New pattern.
8717
8718         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
8719         (ok_for_max_constant): New function.
8720         (gen_safe_add): New function.
8721         (rx_expand_prologue): Use gen_safe_add.
8722         (rx_expand_epilogue): Likewise.
8723         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
8724         UNSPEC CONSTs.
8725
8726 2011-01-21  Jeff Law  <law@redhat.com>
8727
8728         PR tree-optimization/47053
8729         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
8730         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
8731         statements are deleted.
8732         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
8733         is nonempty, then purge dead edges and cleanup the CFG.
8734
8735 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
8736
8737         PR debug/47402
8738         Temporarily revert:
8739         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
8740         PR debug/47106
8741         * tree-dfa.c (create_var_ann): Mark variable as used.
8742
8743 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
8744
8745         PR middle-end/45566
8746         * except.c (convert_to_eh_region_ranges): Emit queued no-region
8747         notes from other section in hot/cold partitioning even if
8748         last_action is -3.  Increment call_site_base.
8749
8750         PR rtl-optimization/47366
8751         * fwprop.c (forward_propagate_into): Return bool.  If
8752         any changes are made, -fnon-call-exceptions is used and
8753         REG_EH_REGION note is present, call purge_dead_edges
8754         and return true if it purged anything.
8755         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
8756         any EH edges were purged.
8757
8758 2011-01-21  Jeff Law  <law@redhat.com>
8759
8760         PR rtl-optimization/41619
8761         * caller-save.c (setup_save_areas): Break out code to determine
8762         which hard regs are live across calls by examining the reload chains
8763         so that it is always used.
8764         Eliminate code which checked REG_N_CALLS_CROSSED.
8765
8766 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
8767
8768         PR tree-optimization/47355
8769         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
8770         NOP has non-debug uses beyond PHIs in new_bb.
8771
8772 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
8773
8774         PR debug/47106
8775         * cfgexpand.c (account_used_vars_for_block): Only account vars
8776         that are annotated as used.
8777         (estimated_stack_frame_size): Don't set TREE_USED.
8778         * tree-dfa.c (create_var_ann): Mark variable as used.
8779
8780 2011-01-21  Richard Guenther  <rguenther@suse.de>
8781
8782         PR middle-end/47395
8783         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
8784
8785 2011-01-21  Richard Guenther  <rguenther@suse.de>
8786
8787         PR tree-optimization/47365
8788         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
8789         (vn_reference_lookup_pieces): Adjust.
8790         (vn_reference_lookup): Likewise.
8791         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
8792         (vn_reference_lookup_3): Only look through kills if in
8793         VN_WALKREWRITE mode.
8794         (vn_reference_lookup_pieces): Adjust.
8795         (vn_reference_lookup): Likewise.
8796         (visit_reference_op_load): Likewise.
8797         (visit_reference_op_store): Likewise.
8798         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
8799         (compute_avail): Likewise.
8800         (eliminate): Likewise.
8801
8802 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
8803
8804         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
8805         DECL_IGNORED_P non-reg vars if they are used.
8806
8807         PR tree-optimization/47391
8808         * varpool.c (const_value_known_p): Return false if
8809         decl is volatile.
8810
8811 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
8812
8813         PR bootstrap/47215
8814         * config/i386/i386.c (ix86_local_alignment): Handle
8815         case for va_list_type_node is nil.
8816         (ix86_canonical_va_list_type): Likewise.
8817
8818 2011-01-21  Alan Modra  <amodra@gmail.com>
8819
8820         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
8821         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
8822
8823 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8824
8825         * config/arm/arm.md (define_attr type): Rename f_load
8826         and f_store to f_fpa_load and f_fpa_store. Update.
8827         (write_conflict): Deal with rename fallout.
8828         (*push_fp_multi): Likewise.
8829         * config/arm/fpa.md (f_load): Use f_fpa_load.
8830         (f_store): Use f_fpa_store.
8831         (*movsf_fpa): Likewise.
8832         (*movdf_fpa): Likewise.
8833         (*movxf_fpa): Likewise.
8834         (*thumb2_movsf_fpa): Likewise.
8835         (*thumb2_movdf_fpa): Likewise.
8836         (*thumb2_movxf_fpa): Likewise.
8837         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
8838         f_loadd and f_stored.
8839         (*thumb2_movdi_vfp): Likewise.
8840         (*thumb2_movsf_vfp): Fix attribute to f_loads.
8841         (*thumb2_movsi_vfp): Likewise.
8842         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
8843         Use f_loads instead of f_load.
8844         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
8845
8846 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
8847
8848         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
8849         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
8850         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8851         (xtensa_mode_dependent_address_p): New function.
8852         (constantpool_address_p): Make static. Change return type to bool.
8853         Change argument type to const_rtx. Use CONST_INT_P predicate.
8854
8855 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
8856
8857         PR debug/46583
8858         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
8859
8860 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
8861
8862         PR debug/47283
8863         * cfgexpand.c (expand_debug_expr): Instead of generating
8864         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
8865         etc. handling.
8866
8867 2011-01-20  Richard Guenther  <rguenther@suse.de>
8868
8869         PR middle-end/47370
8870         * tree-inline.c (remap_gimple_op_r): Recurse manually for
8871         the pointer operand of MEM_REFs.
8872
8873 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
8874
8875         PR tree-optimization/46130
8876         * ipa-split.c (consider_split): If return_bb contains non-virtual
8877         PHIs other than for retval or if split_function would not adjust it,
8878         refuse to split.
8879
8880 2011-01-20  Richard Guenther  <rguenther@suse.de>
8881
8882         PR tree-optimization/47167
8883         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
8884         Revert previous change, only avoid enumeral type changes.
8885
8886 2011-01-19  Mike Stump  <mikestump@comcast.net>
8887
8888         * doc/tm.texi.in (BRANCH_COST): Englishify.
8889         * doc/tm.texi (BRANCH_COST): Likewise.
8890
8891 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
8892
8893         PR c++/47291
8894         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
8895         (gen_scheduled_generic_parms_dies): New functions.
8896         (gen_struct_or_union_type_die): Schedule template parameters DIEs
8897         generation for the end of CU compilation.
8898         (dwarf2out_finish): Generate template parameters DIEs here.
8899
8900 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
8901
8902         PR debug/46240
8903         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
8904         debug bind stmt on merge edges.
8905
8906 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
8907
8908         PR debug/47079
8909         PR debug/46724
8910         * function.c (instantiate_expr): Instantiate incoming rtl of
8911         implicit arguments, and recurse on VALUE_EXPRs.
8912         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
8913         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
8914
8915 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
8916
8917         * c-parser.c (c_parser_for_statement): Initialize
8918         collection_expression.
8919
8920 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
8921
8922         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
8923
8924 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
8925
8926         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
8927         (LINK_SHLIB_SPEC): Don't use %(link_path).
8928         (SUBTARGET_EXTRA_SPECS): Remove link_path.
8929
8930 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
8931
8932         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
8933         (NO_SHARED_LIB_SUPPORT): Remove.
8934         (LINK_SHLIB_SPEC): Remove one conditional definition.
8935
8936 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
8937
8938         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
8939         %{call_shared}.
8940         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
8941         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
8942         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
8943         %{call_shared} and conditionals on these options not being passed.
8944         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
8945         %{call_shared}.
8946
8947 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
8948
8949         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
8950         simplify.
8951
8952         * ipa-split.c: Spelling fixes.
8953
8954 2011-01-19  Richard Henderson  <rth@redhat.com>
8955
8956         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
8957         (*mulsi3): Likewise.
8958
8959         * longlong.h [__mn10300__] (count_leading_zeros): New.
8960         [__mn10300__] (umul_ppmm, smul_ppmm): New.
8961         [__mn10300__] (add_ssaaaa, subddmmss): New.
8962         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
8963         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
8964
8965 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8966
8967         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
8968
8969 2011-01-19  Richard Henderson  <rth@redhat.com>
8970
8971         * config/mn10300/mn10300.md (addsi3_flags): New.
8972         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
8973         (subsi3_flags, subc_internal, subdi3): New.
8974         (subdi3_internal, *subdi3_degenerate): New.
8975         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
8976
8977         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
8978         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
8979         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
8980         * config/mn10300/mn10300-protos.h: Update.
8981         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
8982         (return_ret): Likewise.  Rename from return_internal_regs.
8983         (return_internal): Remove.
8984
8985         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
8986         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
8987         (mn10300_legitimate_constant_p): Likewise.
8988         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
8989         (mn10300_frame_size): New.
8990         (mn10300_expand_prologue): Use it.
8991         (mn10300_expand_epilogue): Likewise.
8992         (mn10300_initial_offset): Likewise.
8993         * config/mn10300/mn10300-protos.h: Update.
8994         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
8995         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
8996         (prologue, epilogue, return_internal): Tidy output code.
8997         (mn10300_store_multiple_operation, return): Likewise.
8998         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
8999         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
9000         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
9001         (load_pic, am33_load_pic): New.
9002         (mn10300_load_pic0, mn10300_load_pic1): New.
9003
9004         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
9005         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
9006         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
9007         (cc_flags_for_mode, cc_flags_for_code): New.
9008         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
9009         overflow flag is not valid.  Validate that the flags we need
9010         for the comparison are valid.
9011         (mn10300_output_cmp): Remove.
9012         (mn10300_output_add): New.
9013         (mn10300_select_cc_mode): Use cc_flags_for_code.
9014         (mn10300_split_cbranch): New.
9015         (mn10300_match_ccmode): New.
9016         (mn10300_split_and_operand_count): New.
9017         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
9018         to the function.
9019         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
9020         (addsi3): ... here.  Use mn10300_output_add.
9021         (*addsi3_flags): New.
9022         (*am33_subsi3, *mn10300_subsi3): Merge...
9023         (subsi3): ... here.  Use attribute isa.
9024         (*subsi3_flags): New.
9025         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
9026         when possible.
9027         (*am33_andsi3, *mn10300_andsi3): Merge...
9028         (andsi3): ... here.
9029         (*andsi3_flags): New.
9030         (andsi3 splitters): New.
9031         (*am33_iorsi3, *mn10300_iorsi3): Merge...
9032         (iorsi3): ... here.
9033         (*iorsi3_flags): New.
9034         (*am33_xorsi3, *mn10300_xorsi3): Merge...
9035         (xorsi3): ... here.
9036         (*xorsi3_flags): New.
9037         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
9038         (one_cmplsi2): ... here.
9039         (*one_cmplsi2_flags): New.
9040         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
9041         instead of "dax" in constraints.  Use mn10300_split_cbranch.
9042         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
9043         use matching constraints to eliminate a self-comparison.
9044         (*integer_conditional_branch): Rename from integer_conditional_branch.
9045         Use int_mode_flags to match CC_REG.
9046         (*cbranchsi4_btst, *btstsi): New.
9047         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
9048         mn10300_split_cbranch.
9049         (*am33_cmpsf): Rename from am33_cmpsf.
9050         (*float_conditional_branch): Rename from float_conditional_branch.
9051         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
9052         (zero_extendqisi2): ... here.
9053         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
9054         (zero_extendhisi2): ... here.
9055         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
9056         (extendqisi2): ... here.
9057         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
9058         (extendhisi2): ... here.
9059         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
9060         (ashlsi3): ... here.
9061         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
9062         (lshrsi3): ... here.
9063         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
9064         (ashrsi3): ... here.
9065         (consecutive add peephole): Remove.
9066         * config/mn10300/predicates.md (label_ref_operand): New.
9067         (int_mode_flags): New.
9068         (CCZN_comparison_operator): New.
9069
9070         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
9071         (throughput_42_latency_43): New reservation.
9072         (mulsidi3, umulsidi3): New expanders.
9073         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
9074         the MDR register to allocation; separately allocate the low and
9075         high parts of the DImode result.
9076         (umulsidi3_internal): Similarly.
9077         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
9078         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
9079         (udivsi3, umodsi3): Remove.
9080         (udivmodsi4, divmodsi4): New expanders.
9081         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
9082         (*divmodsi4): Simiarly.
9083         (ext_internal): New.
9084
9085         * config/mn10300/constraints.md ("z"): New constraint.
9086         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
9087         (FIXED_REGISTERS): Don't fix MDR.
9088         (CALL_USED_REGSITERS): Reformat nicely.
9089         (REG_ALLOC_ORDER): Add MDR.
9090         (enum regclass): Add MDR_REGS.
9091         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
9092         (IRA_COVER_CLASSES): Add MDR_REGS.
9093         (REGNO_REG_CLASS): Handle MDR_REG.
9094         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
9095         (mn10300_register_move_cost): Likewise.
9096         * config/mn10300/mn10300.md (MDR_REG): New.
9097         (*movsi_internal): Handle moves to/from MDR_REGS.
9098
9099         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
9100         POST_MODIFY.
9101         (mn10300_secondary_reload): Tidy combination reload classes.
9102         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
9103         addresses for AM33.  Allow symbolic offsets for reg+imm.
9104         (mn10300_regno_in_class_p): New.
9105         (mn10300_legitimize_reload_address): New.
9106         * config/mn10300/mn10300.h (enum reg_class): Remove
9107         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
9108         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
9109         SP_OR_GENERAL_REGS.
9110         (REG_CLASS_NAMES): Update to match.
9111         (REG_CLASS_CONTENTS): Likewise.
9112         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
9113         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
9114         (REGNO_IN_RANGE_P): Remove.
9115         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
9116         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
9117         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
9118         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
9119         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
9120         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
9121         (REGNO_GENERAL_P): New.
9122         (HAVE_POST_MODIFY_DISP): New.
9123         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
9124         (LEGITIMIZE_RELOAD_ADDRESS): New.
9125         * config/mn10300/mn10300-protos.h: Update.
9126
9127         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
9128         DATA_REGS for AM33 stack-pointer destination.
9129         (mn10300_preferred_output_reload_class): Likewise.
9130         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
9131         into a form appropriate for ...
9132         (TARGET_SECONDARY_RELOAD): New.
9133         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
9134         * config/mn10300/mn10300-protos.h: Update.
9135         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
9136         reload_insi; use the "A" constraint for the scratch; handle AM33
9137         moves of sp to non-address registers.
9138
9139         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
9140         (*movqi_internal): ... here.
9141         (*am33_movhi, *mn10300_movhi): Merge into...
9142         (*movhi_internal): ... here.
9143         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
9144         as the source/destination of moves from/to SP.
9145         (movsf): Only allow for AM33-2.
9146         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
9147         any integer constant constraint.  Only allow for AM33-2.  Tidy
9148         all of the alternative outputs.
9149         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
9150         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
9151         for MN103.
9152         (udivsi3, umodsi3): New patterns for MN103 only.
9153
9154 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
9155
9156         * doc/tm.texi.in: Spell out that a lack of register class unions
9157         can lead to ICEs.
9158         * doc/tm.texi: Regenerate.
9159
9160 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
9161
9162         PR rtl-optimization/47337
9163         * dce.c (check_argument_store): New function.
9164         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
9165
9166         PR tree-optimization/47290
9167         * tree-eh.c (infinite_empty_loop_p): New function.
9168         (cleanup_empty_eh): Use it.
9169
9170 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
9171
9172         PR target/46997
9173         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
9174         (a64_expand_widen_sum): Ditto.
9175         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
9176         (vec_extract_evenodd_help): Ditto.
9177         (vec_extract_evenv4hi): Ditto.
9178         (vec_extract_oddv4hi): Ditto.
9179         (vec_extract_evenv2si): Ditto.
9180         (vec_extract_oddv2si): Ditto.
9181         (vec_extract_evenv2sf): Ditto.
9182         (vec_extract_oddv2sf): Ditto.
9183         (vec_pack_trunc_v4hi: Ditto.
9184         (vec_pack_trunc_v2si): Ditto.
9185         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
9186         (vec_interleave_highv8qi): Ditto.
9187         (mix1_r): Ditto.
9188         (vec_extract_oddv8qi): Ditto.
9189         (vec_interleave_lowv4hi): Ditto.
9190         (vec_interleave_highv4hi): Ditto.
9191         (vec_interleave_lowv2si): Ditto.
9192         (vec_interleave_highv2si): Ditto.
9193
9194 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9195
9196         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
9197         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
9198         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
9199         (pa_c_mode_for_suffix): New.
9200         (TARGET_EXPAND_BUILTIN): Define.
9201         (TARGET_C_MODE_FOR_SUFFIX): Define.
9202         (pa_builtins): Define.
9203         (pa_init_builtins): Register __float128 type and init new support
9204         builtins.
9205         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
9206         * config/pa/quadlib.c (_U_Qfcopysign): New.
9207
9208 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
9209
9210         PR middle-end/46894
9211         * explow.c (allocate_dynamic_stack_space): Do not assume more than
9212         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
9213         are defined.
9214
9215 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9216
9217         PR tree-optimization/47179
9218         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
9219         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
9220
9221 2011-01-18  Richard Guenther  <rguenther@suse.de>
9222
9223         PR rtl-optimization/47216
9224         * emit-rtl.c: Include tree-flow.h.
9225         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
9226         of replicating it with different semantics.
9227         * Makefile.in (emit-rtl.o): Adjust.
9228
9229 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9230
9231         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
9232         (cortex_a9_dp): Handle neon types correctly.
9233
9234 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
9235
9236         PR rtl-optimization/47299
9237         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
9238         subtarget.  Use normal multiplication if both operands are constants.
9239         * expmed.c (expand_widening_mult): Don't try to optimize constant
9240         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
9241         before using it.
9242
9243 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9244
9245         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
9246         spacing after 'e.g.', typos, comma, hyphenation.
9247
9248 2011-01-17  Richard Henderson  <rth@redhat.com>
9249
9250         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
9251         (rx_restricted_mem_operand): New.
9252         (rx_shift_operand): Use register_operand.
9253         (rx_source_operand, rx_compare_operand): Likewise.
9254         * config/rx/rx.md (addsi3_flags): New expander.
9255         (adddi3): Rewrite as expander.
9256         (adc_internal, *adc_flags, adddi3_internal): New patterns.
9257         (subsi3_flags): New expander.
9258         (subdi3): Rewrite as expander.
9259         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
9260
9261         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
9262         (rx_init_builtins): Remove sat builtin.
9263         (rx_expand_builtin): Likewise.
9264         * config/rx/rx.md (ssaddsi3): New.
9265         (*sat): Rename from sat.  Represent the CC_REG input.
9266
9267         * config/rx/predicates.md (rshift_operator): New.
9268         * config/rx/rx.c (rx_expand_insv): Remove.
9269         * config/rx/rx-protos.h: Update.
9270         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
9271         operand to the canonical position.
9272         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
9273         (*bitclr, *bitclr_in_memory): Similarly.
9274         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
9275         (insv): Retain the zero_extract in the expansion.
9276
9277         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
9278         (bswaphi2, bitinvert, revw): Likewise.
9279
9280         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
9281         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
9282         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
9283         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
9284         (bitset, bitset_in_memory): Likewise.
9285         (bitinvert, bitinvert_in_memory): Likewise.
9286         (bitclr, bitclr_in_memory): Likewise.
9287         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
9288         (rx_strend, rx_cmpstrn): Likewise.
9289         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
9290         (bitop peep2 patterns): Remove.
9291
9292         * config/rx/rx.c (rx_match_ccmode): New.
9293         * config/rx/rx-protos.h: Update.
9294         * config/rx/rx.md (abssi2): Clobber, don't set flags.
9295         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
9296         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
9297         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
9298         (fix_truncsfsi2, floatsisf2): Likewise.
9299         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
9300         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
9301         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
9302         (*subsi3_flags, *xorsi3_flags): New.
9303
9304         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
9305
9306         * config/rx/rx.c (rx_print_operand): Remove workaround for
9307         unsplit comparison operations.
9308
9309         * config/rx/rx.md (movsicc): Split after reload.
9310         (*movsicc): Merge *movsieq and *movsine via match_operator.
9311         (*stcc): New pattern.
9312
9313         * config/rx/rx.c (rx_float_compare_mode): Remove.
9314         * config/rx/rx.h (rx_float_compare_mode): Remove.
9315         * config/rx/rx.md (cstoresi4): Split after reload.
9316         (*sccc): New pattern.
9317
9318         * config/rx/predicates.md (label_ref_operand): New.
9319         (rx_z_comparison_operator): New.
9320         (rx_zs_comparison_operator): New.
9321         (rx_fp_comparison_operator): New.
9322         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
9323         Validate that the flags are set properly for the comparison.
9324         (rx_gen_cond_branch_template): Remove.
9325         (rx_cc_modes_compatible): Remove.
9326         (mode_from_flags): New.
9327         (flags_from_code): Rename from flags_needed_for_conditional.
9328         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
9329         (rx_select_cc_mode): Likewise.
9330         (rx_split_fp_compare): New.
9331         (rx_split_cbranch): New.
9332         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
9333         (*cbranchsi4): Use match_operator and rx_split_cbranch.
9334         (*cbranchsf4): Similarly.
9335         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
9336         match_operator and rx_split_cbranch.
9337         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
9338         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
9339         (*cmpsi): Rename from cmpsi.
9340         (*tstsi): Rename from tstsi.
9341         (*cmpsf): Rename from cmpsf; use CC_Fmode.
9342         (*conditional_branch): Rename from conditional_branch.
9343         (*reveresed_conditional_branch): Remove.
9344         (b<code>): Remove expander.
9345         * config/rx/rx-protos.h: Update.
9346
9347         * config/rx/rx.c (rx_compare_redundant): Remove.
9348         * config/rx/rx.md (cmpsi): Don't use it.
9349         * config/rx/rx-protos.h: Update.
9350
9351         * config/rx/rx-modes.def (CC_F): New mode.
9352         * config/rx/rx.c (rx_select_cc_mode): New.
9353         * config/rx/rx.h (SELECT_CC_MODE): Use it.
9354         * config/rx/rx-protos.h: Update.
9355
9356 2011-01-17  Richard Henderson  <rth@redhat.com>
9357
9358         * except.c (dump_eh_tree): Fix stray ; after for statement.
9359
9360 2011-01-17  Richard Guenther  <rguenther@suse.de>
9361
9362         PR tree-optimization/47313
9363         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
9364         handling before copying the body.  Properly deal with
9365         by-reference result in SSA form.
9366
9367 2011-01-17  Ian Lance Taylor  <iant@google.com>
9368
9369         PR target/47219
9370         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
9371         (struct_value_alias_set): Don't define.
9372         (sparc_option_override): Don't set sparc_sr_alias_set and
9373         struct_value_alias_set.
9374         (save_or_restore_regs): Use gen_frame_mem rather than calling
9375         set_mem_alias_set.
9376         (sparc_struct_value_rtx): Likewise.
9377
9378 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
9379
9380         PR target/47318
9381         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
9382         (_mm_maskstore_pd): Likewise.
9383         (_mm_maskload_ps): Likewise.
9384         (_mm_maskstore_ps): Likewise.
9385         (_mm256_maskload_pd): Change mask to __m256i.
9386         (_mm256_maskstore_pd): Likewise.
9387         (_mm256_maskload_ps): Likewise.
9388         (_mm256_maskstore_ps): Likewise.
9389
9390         * config/i386/i386-builtin-types.def: Updated.
9391         (ix86_expand_special_args_builtin): Likewise.
9392
9393         * config/i386/i386.c (bdesc_special_args): Update
9394         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
9395         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
9396         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
9397         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
9398
9399         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
9400         Use <avxpermvecmode> on mask register.
9401         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
9402
9403 2011-01-17  Olivier Hainque  <hainque@adacore.com>
9404             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
9405             Eric Botcazou  <ebotcazou@adacore.com>
9406
9407         PR target/46655
9408         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
9409         if <= USHRT_MAX in 32-bit mode.
9410
9411 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9412
9413         * doc/install.texi (Configuration, Specific): Wrap long
9414         lines in examples.  Allow line wrapping in long options
9415         and URLs where beneficial for PDF output.
9416
9417 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
9418
9419         * config/mips/mips.c (mips_classify_symbol): Don't return
9420         SYMBOL_PC_RELATIVE for nonlocal labels.
9421
9422 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
9423
9424         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
9425
9426 2011-01-15  Jan Hubicka  <jh@suse.cz>
9427
9428         PR tree-optimization/47276
9429         * ipa.c (function_and_variable_visibility): Do not try to mark alias
9430         declarations as needed.
9431
9432 2011-01-15  Martin Jambor  <mjambor@suse.cz>
9433
9434         * common.opt (fdevirtualize): New flag.
9435         * doc/invoke.texi (Option Summary): Document it.
9436         * opts.c (default_options_table): Add devirtualize flag.
9437         * ipa-prop.c (detect_type_change): Return immediately if
9438         devirtualize flag is not set.
9439         (detect_type_change_ssa): Likewise.
9440         (compute_known_type_jump_func): Likewise.
9441         (ipa_analyze_virtual_call_uses): Likewise.
9442
9443 2011-01-14  Martin Jambor  <mjambor@suse.cz>
9444
9445         PR tree-optimization/45934
9446         PR tree-optimization/46302
9447         * ipa-prop.c (type_change_info): New type.
9448         (stmt_may_be_vtbl_ptr_store): New function.
9449         (check_stmt_for_type_change): Likewise.
9450         (detect_type_change): Likewise.
9451         (detect_type_change_ssa): Likewise.
9452         (compute_complex_assign_jump_func): Check for dynamic type change.
9453         (compute_complex_ancestor_jump_func): Likewise.
9454         (compute_known_type_jump_func): Likewise.
9455         (compute_scalar_jump_functions): Likewise.
9456         (ipa_analyze_virtual_call_uses): Likewise.
9457         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
9458
9459 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9460
9461         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
9462         * config/i386/i386.opt (msse5): New Alias.
9463
9464 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9465
9466         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
9467         * config/sparc/linux64.h (CC1_SPEC): Likewise.
9468         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
9469         * config/sparc/sparc.h (CC1_SPEC): Likewise.
9470
9471 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9472
9473         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
9474         -mcpu options.
9475         * config/sparc/linux64.h (CC1_SPEC): Likewise.
9476         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
9477         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
9478         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
9479         Likewise.
9480         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
9481
9482 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9483
9484         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
9485
9486 2011-01-14  Mike Stump  <mikestump@comcast.net>
9487
9488         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
9489         * config/fr30/fr30.md: Likweise
9490         (movsi_push): Likewise.
9491         (movsi_pop): Likewise.
9492         (enter_func): Likewise.
9493         * config/moxie/moxie.md (movsi_push): Likewise.
9494         (movsi_pop): Likewise.
9495
9496 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9497
9498         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
9499         %{no_archive} %{exact_version}.
9500         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
9501         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
9502         %{no_archive} %{exact_version}.
9503         * config/mips/openbsd.h (LINK_SPEC): Likewise.
9504         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
9505         * config/mips/vxworks.h: Likewise.
9506
9507 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9508
9509         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
9510
9511 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9512
9513         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
9514         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
9515
9516 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9517
9518         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
9519         -nodefaultlib.
9520
9521 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9522
9523         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
9524         for mcpu not cpu.
9525         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
9526         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
9527         not cpu.
9528         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
9529         Don't handle -shlib.
9530
9531 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9532
9533         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
9534         (CC1_SPEC): Don't handle -profile.
9535
9536 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9537
9538         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
9539         * config/mips/mips.h (CC1_SPEC): Likewise.
9540
9541 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9542
9543         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
9544         * config/mips/mips.h (CC1_SPEC): Likewise.
9545
9546 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9547
9548         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
9549         * config/m32r/linux.h (LINK_SPEC): Likewise.
9550         * config/mips/linux.h (LINK_SPEC): Likewise.
9551         * config/mips/linux64.h (LINK_SPEC): Likewise.
9552         * config/sparc/linux.h (LINK_SPEC): Likewise.
9553         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
9554         LINK_SPEC): Likewise.
9555         * config/xtensa/linux.h (LINK_SPEC): Likewise.
9556
9557 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9558
9559         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
9560         %{version:-v}.
9561         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
9562
9563 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9564
9565         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
9566         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
9567
9568 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9569
9570         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
9571
9572 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9573
9574         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
9575         supports -Bstatic/-Bdynamic.
9576         * configure: Regenerate.
9577
9578 2011-01-14  Jan Hubicka  <jh@suse.cz>
9579             Jack Howarth  <howarth@bromo.med.uc.edu>
9580
9581         PR target/46037
9582         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
9583         when checking debug_info_level. Test write_symbols instead of
9584         debug_hooks->var_location when setting flag_var_tracking_uninit.
9585
9586 2011-01-14  Richard Guenther  <rguenther@suse.de>
9587
9588         PR tree-optimization/47179
9589         * target.def (ref_may_alias_errno): New target hook.
9590         * targhooks.h (default_ref_may_alias_errno): Declare.
9591         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
9592         (default_ref_may_alias_errno): New function.
9593         * target.h (struct ao_ref_s): Declare.
9594         * tree-ssa-alias.c: Include target.h.
9595         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
9596         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
9597         (targhooks.o): Likewise.
9598         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
9599         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
9600
9601 2011-01-14  Richard Guenther  <rguenther@suse.de>
9602
9603         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
9604
9605 2011-01-14  Richard Guenther  <rguenther@suse.de>
9606
9607         PR tree-optimization/47280
9608         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
9609         return CFG changes.
9610         (tree_ssa_forward_propagate_single_use_vars): Deal with
9611         CFG changes from associate_plusminus.
9612
9613 2011-01-14  Richard Guenther  <rguenther@suse.de>
9614
9615         PR middle-end/47281
9616         Revert
9617         2011-01-11  Richard Guenther  <rguenther@suse.de>
9618
9619         PR tree-optimization/46076
9620         * tree-ssa.c (useless_type_conversion_p): Conversions from
9621         unprototyped to empty argument list function types are useless.
9622
9623 2011-01-14  Richard Guenther  <rguenther@suse.de>
9624
9625         PR tree-optimization/47286
9626         * tree-ssa-structalias.c (new_var_info): Register variables are global.
9627
9628 2011-01-14  Martin Jambor  <mjambor@suse.cz>
9629
9630         PR middle-end/46823
9631         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
9632
9633 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
9634
9635         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
9636         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
9637         * config/xtensa/xtensa.c (xtensa_libcall_value,
9638         xtensa_function_value_regno_p): New functions.
9639         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
9640
9641 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
9642
9643         PR c++/47213
9644         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
9645         PE specific hook.
9646         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
9647         New function prototype.
9648         * config/i386/winnt.c (i386_pe_assemble_visibility):
9649         Warn only if attribute was specified by user.
9650
9651 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
9652
9653         PR target/47251
9654         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
9655         floating point.
9656         (floatunsdidf2_fcfidu): Ditto.
9657
9658 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9659
9660         * config/s390/s390.c (print_operand_address): Replace 'error' with
9661         'output_operand_lossage'.
9662         (print_operand): Likewise.
9663
9664 2011-01-13  Jeff Law  <law@redhat.com>
9665
9666         PR rtl-optimization/39077
9667         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
9668         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
9669         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
9670         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
9671         * gcse.c (prune_insertions_deletions): New function.
9672         (compute_pre_data): Use it.
9673
9674 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
9675
9676         PR debug/PR46973
9677         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
9678         static function.
9679         (prune_unused_types_mark): Use it.
9680
9681 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
9682
9683         PR rtl-optimization/45352
9684         * sel-sched.c: Update copyright years.
9685         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
9686         in the advancing loop when we have issued issue_rate insns.
9687
9688 2011-01-12  Richard Henderson  <rth@redhat.com>
9689
9690         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
9691         (TARGET_MD_ASM_CLOBBERS): New.
9692
9693         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
9694         (TARGET_DELEGITIMIZE_ADDRESS): New.
9695
9696         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
9697         (clzsi2, *bsch): New patterns.
9698
9699         * config/mn10300/mn10300.md (INT): New mode iterator.
9700         (*mov<INT>_clr): New pattern, and peep2 to generate it.
9701
9702         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
9703         flag_split_wide_types.
9704
9705         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
9706         (mn10300_trampoline_init): Rewrite without a template, an immediate
9707         load and a direct branch.
9708         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
9709
9710 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
9711
9712         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9713         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
9714         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
9715         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9716
9717 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
9718
9719         PR debug/47209
9720         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
9721         of type.
9722
9723 2011-01-12  Jan Hubicka  <jh@suse.cz>
9724
9725         PR driver/47244
9726         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
9727         (PLUGIN_COND_CLOSE): New macro.
9728         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
9729
9730 2011-01-12  Richard Guenther  <rguenther@suse.de>
9731
9732         PR lto/47259
9733         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
9734         register variables in a MEM_REF.
9735
9736 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
9737
9738         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
9739         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
9740         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
9741         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
9742         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
9743         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
9744         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
9745         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
9746         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
9747         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
9748         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
9749         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
9750         * config/gnu-user.h: New.  Copied from linux.h.
9751         (LINUX_TARGET_STARTFILE_SPEC): Rename to
9752         GNU_USER_TARGET_STARTFILE_SPEC.
9753         (LINUX_TARGET_ENDFILE_SPEC): Rename to
9754         GNU_USER_TARGET_ENDFILE_SPEC.
9755         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
9756         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
9757         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
9758         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
9759         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
9760         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
9761         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
9762         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
9763         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
9764         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
9765         * config/arm/linux-eabi.h (CC1_SPEC): Use
9766         GNU_USER_TARGET_CC1_SPEC.
9767         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
9768         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
9769         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
9770         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
9771         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
9772         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
9773         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
9774         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
9775
9776 2011-01-12  Richard Guenther  <rguenther@suse.de>
9777
9778         PR other/46946
9779         * doc/invoke.texi (ffast-math): Document it is turned on
9780         with -Ofast.
9781
9782 2011-01-12  Jan Hubicka  <jh@suse.cz>
9783
9784         PR tree-optimization/47233
9785         * opts.c (common_handle_option): Disable ipa-reference with profile
9786         feedback.
9787
9788 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
9789
9790         * c-parser.c (c_parser_objc_at_property_declaration): Improved
9791         error message.
9792
9793 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
9794
9795         * c-parser.c (c_lex_one_token): Updated and reindented some
9796         comments.  No changes in code.
9797
9798 2011-01-11  Ian Lance Taylor  <iant@google.com>
9799
9800         * godump.c (go_output_var): Don't output the variable if there is
9801         already a type with the same name.
9802
9803 2011-01-11  Ian Lance Taylor  <iant@google.com>
9804
9805         * godump.c (go_format_type): Don't generate float80.
9806
9807 2011-01-11  Richard Henderson  <rth@redhat.com>
9808
9809         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
9810         declaration.  Rewrite for both speed and size.
9811         (mn10300_address_cost_1): Remove.
9812         (mn10300_register_move_cost): New.
9813         (mn10300_memory_move_cost): New.
9814         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
9815         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
9816         extensions, shifts, BSWAP, CLZ.
9817         (mn10300_wide_const_load_uses_clr): Remove.
9818         (TARGET_REGISTER_MOVE_COST): New.
9819         (TARGET_MEMORY_MOVE_COST): New.
9820         * config/mn10300/mn10300-protos.h: Update.
9821         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
9822
9823         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
9824         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
9825         * config/mn10300/mn10300-protos.h: Update.
9826         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
9827         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
9828         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
9829         (*test_int_bitfield, *test_byte_bitfield): Remove.
9830         (*bit_test, *subreg_bit_test): Remove.
9831         * config/mn10300/predicates.md (const_8bit_operand): Remove.
9832
9833         * config/mn10300/constraints.md ("c"): Rename from "A".
9834         ("A", "D"): New constraint letters.
9835         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
9836         (fmssf4, fnmasf4, fnmssf4): Likewise.
9837
9838         * config/mn10300/mn10300.md (isa): New attribute.
9839         (enabled): New attribute.
9840
9841         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
9842         (abssf2, negsf2): Define only for hardware fp.
9843         (sqrtsf2): Reformat.
9844         (addsf3, subsf3, mulsf3): Merge expander and insn.
9845
9846         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
9847         (DEBUGGER_AUTO_OFFSET): Remove.
9848         (DEBUGGER_ARG_OFFSET): Remove.
9849
9850         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
9851         Emit register stores with the same offsets as the hardware.
9852         (mn10300_store_multiple_operation): Don't check that the register
9853         save offsets are monotonic.
9854         * config/mn10300/mn10300-protos.h: Update.
9855
9856         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
9857
9858         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
9859         in terms of the value on the stack, not the MDR register.
9860
9861 2011-01-11  Jan Hubicka  <jh@suse.cz>
9862
9863         PR lto/45721
9864         PR lto/45375
9865         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
9866         (symbol_alias_set_destroy, symbol_alias_set_contains,
9867         propagate_aliases_backward): Declare.
9868         * lto-streamer-out.c (struct sets): New sturcture.
9869         (trivally_defined_alias): New function.
9870         (output_alias_pair_p): Rewrite.
9871         (output_unreferenced_globals): Fix output of alias pairs.
9872         (produce_symtab): Likewise.
9873         * ipa.c (function_and_variable_visibility): Set weak alias destination
9874         as needed in lto.
9875         * varasm.c (symbol_alias_set_t): Remove.
9876         (symbol_alias_set_destroy): Export.
9877         (propagate_aliases_forward, propagate_aliases_backward): New functions
9878         based on ...
9879         (compute_visible_aliases): ... this one; remove.
9880         (trivially_visible_alias): New
9881         (trivially_defined_alias): New.
9882         (remove_unreachable_alias_pairs): Rewrite.
9883         (finish_aliases_1): Reorganize code checking if alias is defined.
9884         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
9885         in LTO mode.
9886
9887 2011-01-11  Richard Guenther  <rguenther@suse.de>
9888
9889         PR tree-optimization/46076
9890         * tree-ssa.c (useless_type_conversion_p): Conversions from
9891         unprototyped to empty argument list function types are useless.
9892
9893 2011-01-11  Richard Guenther  <rguenther@suse.de>
9894
9895         PR middle-end/45235
9896         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
9897         volatile MEMs as MEM_READONLY_P.
9898
9899 2011-01-11  Richard Guenther  <rguenther@suse.de>
9900
9901         PR tree-optimization/47239
9902         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
9903
9904 2011-01-11  Jeff Law  <law@redhat.com>
9905
9906         PR tree-optimization/47086
9907         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
9908         IVs from statements that might throw.
9909
9910 2011-01-10  Jan Hubicka  <jh@suse.cz>
9911
9912         PR lto/45375
9913         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
9914
9915 2011-01-10  Jan Hubicka  <jh@suse.cz>
9916
9917         PR lto/45375
9918         * profile.c (read_profile_edge_counts): Ignore profile inconistency
9919         when correcting profile.
9920
9921 2011-01-10  Jan Hubicka  <jh@suse.cz>
9922
9923         PR lto/46083
9924         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
9925         DECL_FINI_PRIORITY.
9926         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
9927         Restore DECL_FINI_PRIORITY.
9928
9929 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9930
9931         * doc/gimple.texi: Fix quoting of multi-word return values in
9932         @deftypefn statements.  Ensure presence of return value.  Wrap
9933         overlong @deftypefn lines.
9934         (is_gimple_operand, is_gimple_min_invariant_address): Remove
9935         descriptions of removed functions.
9936         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
9937         of multi-word return value in @deftypefn statement.
9938
9939 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9940
9941         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
9942         (Conditional Expressions, Logical Operators)
9943         (Statement and operand traversals): Do not indent smallexample
9944         code.  Fix duplicate function argument in example.
9945
9946 2011-01-10  Jeff Law  <law@redhat.com>
9947
9948         PR tree-optimization/47141
9949         * ipa-split.c (split_function): Handle case where we are
9950         returning a value and the return block has a virtual operand phi.
9951
9952 2011-01-10  Jan Hubicka  <jh@suse.cz>
9953
9954         PR tree-optimization/47234
9955         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
9956         (pass_feedback_split_functions): Declare.
9957         * passes.c (init_optimization_passes): Add ipa-split as subpass of
9958         tree-profile.
9959         * ipa-split.c (gate_split_functions): Update comments; disable
9960         split-functions for profile_arc_flag and branch_probabilities.
9961         (gate_feedback_split_functions): New function.
9962         (execute_feedback_split_functions): New function.
9963         (pass_feedback_split_functions): New global var.
9964
9965 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
9966
9967         PR lto/46760
9968         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
9969         calling gimple_call_set_cannot_inline.
9970
9971 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
9972
9973         * config/darwin-sections.def: Remove unused section.
9974
9975 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
9976
9977         PR c++/47218
9978         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
9979
9980 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
9981
9982         PR objc/47232
9983         * c-parser.c (c_parser_declaration_or_fndef): Improved
9984         error message.
9985
9986 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
9987
9988         * config/i386/winnt.c (i386_pe_start_function): Make sure
9989         to switch back to function's section.
9990
9991 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
9992
9993         PR gcc/46902
9994         PR testsuite/46912
9995         * plugin.c: Move include of dlfcn.h from here...
9996         * system.h: ... to here.
9997
9998 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9999
10000         * doc/cpp.texi (C++ Named Operators): Fix markup for header
10001         file name.
10002         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
10003         two extra empty pages in PDF output.
10004
10005 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
10006
10007         PR objc/47078
10008         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
10009         for error recovery purposes behave as if it was not specified so
10010         that the default type is usd.
10011
10012 2011-01-07  Jan Hubicka  <jh@suse.cz>
10013
10014         PR tree-optmization/46469
10015         * ipa.c (function_and_variable_visibility): Clear needed flags on
10016         nodes with external decls; handle weakrefs merging correctly.
10017
10018 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
10019
10020         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
10021         not false.
10022
10023 2011-01-07  Jan Hubicka  <jh@suse.cz>
10024
10025         * doc/invoke.texi: (-flto, -fuse-linker-plugin): Update defaults
10026         and no longer claim that gold is required for linker plugin.
10027         * configure: Regenerate.
10028         * gcc.c (PLUGIN_COND): New macro.
10029         (LINK_COMMAND_SPEC): Use it.
10030         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
10031         * config.in (HAVE_LTO_PLUGIN): New.
10032         * configure.ac (--with-lto-plugin): New parameter; autodetect
10033         HAVE_LTO_PLUGIN.
10034
10035 2011-01-07  Jan Hubicka  <jh@suse.cz>
10036
10037         PR tree-optimization/46367
10038         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
10039         when we can update original.
10040         (cgraph_mark_inline_edge): Sanity check.
10041         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
10042
10043 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10044
10045         * config/spu/spu.h (ASM_COMMENT_START): Define.
10046
10047 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
10048
10049         PR driver/42445
10050         * gcc.c (%>S): New.
10051         (SWITCH_KEEP_FOR_GCC): Likewise.
10052         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
10053         (do_spec_1): Handle "%>".
10054
10055         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
10056
10057 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
10058
10059         PR target/47201
10060         * config/i386/i386.c (ix86_delegitimize_address): If
10061         simplify_gen_subreg fails, return orig_x.
10062
10063         PR bootstrap/47187
10064         * value-prof.c (gimple_stringop_fixed_value): Handle
10065         lhs of the call properly.
10066
10067 2011-01-07  Jan Hubicka  <jh@suse.cz>
10068
10069         PR lto/45375
10070         * lto-opt.c (lto_reissue_options): Set flag_shlib.
10071
10072 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
10073
10074         * target.def (function_switched_text_sections): New hook.
10075         * doc/tm.texi: Regenerated.
10076         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
10077         * final.c (default_function_switched_text_sections): New.
10078         (final_scan_insn): Call function_switched_text_sections when a
10079         mid-function section change occurs.
10080         * output.h (default_function_switched_text_sections): Declare.
10081         * config/darwin-protos.h (darwin_function_switched_text_sections):
10082         Likewise.
10083         * config/darwin.c (darwin_function_switched_text_sections): New.
10084         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
10085
10086 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
10087
10088         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
10089         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
10090         the secondary code fragment when outputting for DWARF == 2.
10091
10092 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
10093
10094         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10095         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
10096         Remove.
10097         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
10098         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10099
10100 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
10101
10102         PR debug/46704
10103         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
10104         when it is not empty.
10105
10106 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
10107
10108         Bobcat Enablement
10109         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
10110         (case ${target}): Add btver1.
10111         * config/i386/driver-i386.c (host_detect_local_cpu): Let
10112         -march=native recognize btver1 processors.
10113         * config/i386/i386-c.c (ix86_target_macros_internal): Add
10114         btver1 def_and_undef
10115         * config/i386/i386.c (struct processor_costs btver1_cost): New
10116         btver1 cost table.
10117         (m_BTVER1): New definition.
10118         (m_AMD_MULTIPLE): Includes m_BTVER1.
10119         (initial_ix86_tune_features): Add btver1 tune.
10120         (processor_target_table): Add btver1 entry.
10121         (static const char *const cpu_names): Add btver1 entry.
10122         (software_prefetching_beneficial_p): Add btver1.
10123         (ix86_option_override_internal): Add btver1 instruction sets.
10124         (ix86_issue_rate): Add btver1.
10125         (ix86_adjust_cost): Add btver1.
10126         * config/i386/i386.h (TARGET_BTVER1): New definition.
10127         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
10128         (enum processor_type): Add PROCESSOR_BTVER1.
10129         * config/i386/i386.md (define_attr "cpu"): Add btver1.
10130
10131 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10132
10133         PR target/43309
10134         * config/i386/i386.c (legitimize_tls_address)
10135         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
10136         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
10137         (tls_initial_exec_64_sun): New pattern.
10138
10139 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
10140
10141         * doc/invoke.texi (Overall Options): Improve wording and markup
10142         of the description of -wrapper.
10143
10144 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
10145
10146         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
10147         rdynamic, threads): New Driver options.
10148
10149 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10150
10151         PR target/38118
10152         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
10153         if coming from .tdata.
10154         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
10155
10156 2011-01-06  Jan Hubicka  <jh@suse.cz>
10157
10158         PR lto/47188
10159         * collect2.c (main): Do not enable LTOmode when plugin is active.
10160
10161 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10162
10163         PR other/45915
10164         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
10165         --version output if supported.
10166         * configure: Regenerate.
10167
10168 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
10169
10170         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
10171         Driver options.
10172
10173 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
10174
10175         PR c/47150
10176         * c-convert.c (convert): When converting a complex expression
10177         other than COMPLEX_EXPR to a different complex type, ensure
10178         c_save_expr is called instead of save_expr, unless in_late_binary_op.
10179         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
10180         when converting COMPLEX_TYPE.
10181
10182 2011-01-06  Ira Rosen  <irar@il.ibm.com>
10183
10184         PR tree-optimization/47139
10185         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
10186         only the last reduction value is used outside the loop.  Update
10187         documentation.
10188
10189 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
10190
10191         * config/rtems.opt: New.
10192         * config.gcc (*-*-rtems*): Use rtems.opt.
10193
10194 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
10195
10196         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
10197         processors do not support 3DNow instructions.
10198
10199 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10200
10201         * config/spu/spu.c (spu_option_override): Set parameter
10202         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
10203
10204 2011-01-05  Jan Hubicka  <jh@suse.cz>
10205
10206         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
10207         at the command line.
10208
10209 2011-01-05  Martin Jambor  <mjambor@suse.cz>
10210
10211         PR lto/47162
10212         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
10213         deltas on streamed outgoing edges.
10214         (output_node_opt_summary): Output info for outgoing edges only when
10215         the node is in new parameter set.
10216         (output_cgraph_opt_summary): New parameter set, passed to the two
10217         aforementioned functions.  Update its forward declaration and its
10218         callee too.
10219
10220 2011-01-05  Tom Tromey  <tromey@redhat.com>
10221
10222         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
10223         operator to c_finish_omp_atomic.
10224         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
10225         (build_unary_op): Update.
10226         (build_modify_expr): Update.
10227         (build_asm_expr): Update.
10228
10229 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10230
10231         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
10232         newly inserted insns.
10233         (pad_bb): Likewise.
10234         (spu_emit_branch_hint): Likewise.
10235         (insert_hbrp_for_ilb_runout): Likewise.
10236         (spu_machine_dependent_reorg): Call df_finish_pass after
10237         schedule_insns returns.
10238
10239 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10240
10241         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
10242
10243 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
10244
10245         PR tree-optimization/47005
10246         * tree-sra.c (struct access): Add 'non_addressable' bit.
10247         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
10248         (decide_one_param_reduction): Return 0 if the parameter is passed by
10249         reference and one of the accesses in the group is non_addressable.
10250
10251 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
10252
10253         PR tree-optimization/47056
10254         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
10255         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
10256         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
10257
10258 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
10259
10260         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
10261         initializer.  Skip view conversions from aggregate types.
10262
10263 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
10264
10265         PR bootstrap/47055
10266         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
10267
10268 2011-01-04  Philipp Thomas  <pth@suse.de>
10269
10270         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
10271         obvious typo.
10272
10273 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10274
10275         * function.c (thread_prologue_and_epilogue_insns): Do not crash
10276         on empty epilogue sequences.
10277
10278 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
10279
10280         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
10281         non-static): New Driver options.
10282
10283 2011-01-04  Jie Zhang  <jie@codesourcery.com>
10284
10285         PR driver/47137
10286         * gcc.c (default_compilers[]): Set combinable field to 0
10287         for all assembly languages.
10288
10289 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
10290
10291         * config/mips/loongson3a.md: New file.
10292         * config/mips/mips.md: Include loongson3a.md.
10293         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
10294         TUNE_LOONGSON_3A.
10295
10296 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
10297
10298         PR middle-end/47017
10299         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
10300         instead of convert_memory_address_addr_space on the base expression.
10301
10302 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10303
10304         * config/spu/spu.c (spu_option_override): Update error text
10305         for bad -march= / -mtune= values.
10306
10307 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10308
10309         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
10310         if branch-hint optimization will be performed.
10311
10312 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
10313
10314         PR tree-optimization/47148
10315         * ipa-split.c (split_function): Convert arguments to
10316         DECL_ARG_TYPE if possible.
10317
10318         PR tree-optimization/47155
10319         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
10320         when computing uns.
10321
10322         PR rtl-optimization/47157
10323         * combine.c (try_combine): If undobuf.other_insn becomes
10324         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
10325         and set *new_direct_jump_p too.
10326
10327 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
10328
10329         PR tree-optimization/47021
10330         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
10331
10332 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
10333
10334         * gcc.c (process_command): Update copyright notice dates.
10335         * gcov.c (print_version): Likewise.
10336         * gcov-dump.c (print_version): Likewise.
10337         * mips-tfile.c (main): Likewise.
10338         * mips-tdump.c (main): Likewise.
10339
10340 2011-01-03  Martin Jambor  <mjambor@suse.cz>
10341
10342         PR tree-optimization/46801
10343         * tree-sra.c (type_internals_preclude_sra_p): Check whether
10344         aggregate fields start at byte boundary instead of the bit-field flag.
10345
10346 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
10347
10348         PR driver/47137
10349         * gcc.c (main): Revert revision 168407.
10350
10351 2011-01-03  Martin Jambor  <mjambor@suse.cz>
10352
10353         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
10354
10355 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10356
10357         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
10358         vector optab to expand vector/scalar shift, update gimple to vector.
10359
10360 2011-01-03  Martin Jambor  <mjambor@suse.cz>
10361
10362         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
10363         a thunk.
10364
10365 2011-01-03  Martin Jambor  <mjambor@suse.cz>
10366
10367         PR tree-optimization/46984
10368         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
10369         HOST_WIDE_INT.
10370         (cgraph_create_indirect_edge): Fixed line length.
10371         (cgraph_indirect_call_info): Declare.
10372         (cgraph_make_edge_direct) Update declaration.
10373         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
10374         (cgraph_create_indirect_edge): Use it.
10375         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
10376         callees.
10377         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
10378         the new thunk_delta representation.
10379         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
10380         HOST_WIDE_INT.
10381         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
10382         (ipa_read_indirect_edge_info): Likewise.
10383         * lto-cgraph.c (output_edge_opt_summary): New function.
10384         (output_node_opt_summary): Call it on all outgoing edges.
10385         (input_edge_opt_summary): New function.
10386         (input_node_opt_summary): Call it on all outgoing edges.
10387
10388 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
10389
10390         PR driver/47137
10391         * gcc.c (main): Don't check have_o when settting combine_inputs.
10392
10393 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
10394
10395         * regrename.c: Add general comment describing the pass.
10396         (struct du_head): Remove 'length' field.
10397         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
10398         (regrename_optimize): Do not sort chains.  Rework comments, add others.
10399         Force renaming to the preferred class (if any) in the first pass and do
10400         not consider registers that belong to it in the second pass.
10401         (create_new_chain): Do not set 'length' field.
10402         (scan_rtx_reg): Likewise.
10403
10404 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
10405
10406         PR tree-optimization/47140
10407         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
10408         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
10409         to bit_value_binop.
10410
10411         PR rtl-optimization/47028
10412         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
10413         parm_birth_insn instead of at the beginning of first bb.
10414
10415 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
10416
10417         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
10418         Remove the word "see" before "@pxref".
10419         * doc/rtl.texi: Remove the word "see" before "@pxref".
10420
10421 2011-01-01  Jan Hubicka  <jh@suse.cz>
10422
10423         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
10424         memory.
10425
10426 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
10427
10428         PR target/38662
10429         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
10430
10431 \f
10432 Copyright (C) 2011 Free Software Foundation, Inc.
10433
10434 Copying and distribution of this file, with or without modification,
10435 are permitted in any medium without royalty provided the copyright
10436 notice and this notice are preserved.