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