mips.c (mips_cfun_call_saved_reg_p): Handle global registers.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
2
3         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
4         registers.
5
6 2011-04-17  Jan Hubicka  <jh@suse.cz>
7
8         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
9         * cgrpahunit.c (cgraph_finalize_function): Do not set finalized_by_frontend.
10         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
11         finalized_by_frontend.
12
13 2011-04-17  Jan Hubicka  <jh@suse.cz>
14
15         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
16         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
17         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
18         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable method.
19         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
20         gimple-fold.c
21         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
22
23 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
24
25         PR lto/48538
26         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
27         is non-null before accessing it.
28         (input_cgraph): Remove trailing spaces.
29
30 2011-04-17  Revital Eres  <revital.eres@linaro.org>
31
32         * params.def (sms-min-sc): New param flag.
33         * modulo-sched.c (sms_schedule): Use it.
34         * doc/invoke.texi (sms-min-sc): Document it.
35
36 2011-04-17  Jan Hubicka  <jh@suse.cz>
37
38         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
39         present, also set gimple_call_set_cannot_inline.
40         * ipa-inline.c: Update toplevel comment.
41         (MAX_TIME): Remove.
42         (cgraph_clone_inlined_nodes): Fix linebreaks.
43         (cgraph_check_inline_limits): Restructure to ...
44         (caller_growth_limits): ... this one; be more tolerant
45         on growth in nested inline chains; add explanatory comment;
46         fix stack accounting thinko introduced by previous patch.
47         (cgraph_default_inline_p): Remove.
48         (report_inline_failed_reason): New function.
49         (can_inline_edge_p): New function.
50         (can_early_inline_edge_p): New function.
51         (leaf_node_p): Move upwards in file.
52         (want_early_inline_function_p): New function.
53         (want_inline_small_function_p): New function.
54         (want_inline_self_recursive_call_p): New function.
55         (cgraph_edge_badness): Rename to ...
56         (edge_badness) ... this one; fix linebreaks.
57         (update_edge_key): Update call of edge_baddness; add
58         detailed dump about queue updates.
59         (update_caller_keys): Use can_inline_edge_p and
60         want_inline_small_function_p.
61         (cgraph_decide_recursive_inlining): Rename to...
62         (recursive_inlining): Use can_inline_edge_p and
63         want_inline_self_recursive_call_p; simplify and
64         remove no longer valid FIXME.
65         (cgraph_set_inline_failed): Remove.
66         (add_new_edges_to_heap): Use can_inline_edge_p and
67         want_inline_small_function_p.
68         (cgraph_decide_inlining_of_small_functions): Rename to ...
69         (inline_small_functions): ... this one; cleanup; use
70         can/want predicates; cleanup debug ouput; work edges
71         till fibheap is exhausted and do not stop once unit
72         growth is reached; remove later loop processing remaining
73         edges.
74         (cgraph_flatten): Rename to ...
75         (flatten_function): ... this one; use can_inline_edge_p
76         and can_early_inline_edge_p predicates.
77         (cgraph_decide_inlining): Rename to ...
78         (ipa_inline): ... this one; remove unreachable nodes before
79         inlining functions called once; simplify the pass.
80         (cgraph_perform_always_inlining): Rename to ...
81         (inline_always_inline_functions): ... this one; use
82         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p
83         predicate
84         (cgraph_decide_inlining_incrementally): Rename to ...
85         (early_inline_small_functions): ... this one; simplify
86         using new predicates; cleanup; make dumps prettier.
87         (cgraph_early_inlining): Rename to ...
88         (early_inliner): newer inline regular functions into always-inlines;
89         fix updating of call stmt summaries.
90         (pass_early_inline): Update for new names.
91         (inline_transform): Fix formating.
92         (gate_cgraph_decide_inlining): Rename to ...
93         (pass_ipa_inline): ... this one.
94         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
95         * ipa-inline-analysis.c (dump_inline_summary): Update.
96         (compute_inline_parameters): Do not compute disregard_inline_limits;
97         look for mismatching arguments.
98         (estimate_growth): Fix handlig of non-trivial self recursion.
99         (inline_read_summary): Do not read info->disregard_inline_limits.
100         (inline_write_summary): Do not write info->disregard_inline_limits.
101         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
102         and move all checks into can_inline_edge_p predicate; re-enable code
103         comparing optimization levels.
104         (expand_call_inline): Do not test inline_forbidden_into_p.
105         * Makefile.in (ipa-inline.o): Update arguments.
106
107 2011-04-17  Revital Eres  <revital.eres@linaro.org>
108
109         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
110
111 2011-04-17  Revital Eres  <revital.eres@linaro.org>
112
113         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
114
115 2011-04-17  Michael Matz  <matz@suse.de>
116
117         PR tree-optimization/48622
118         PR lto/48645
119         * ipa-inline-analysis.c (inline_read_summary): Read size/time
120         in same order as they're written.
121
122 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
123
124         * config/i386/sse.md (sseunpackmode): New mode attribute.
125         (ssepackmode): Ditto.
126         (vec_pack_trunc_<mode>): Macroize expander from
127         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
128         (vec_unpacks_lo_<mode>): Macroize expander from
129         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
130         (vec_unpacks_hi_<mode>): Macroize expander from
131         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
132         (vec_unpacku_lo_<mode>): Macroize expander from
133         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
134         (vec_unpacku_hi_<mode>): Macroize expander from
135         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
136         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
137         ix86_expand_sse4_unpack.
138         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
139
140 2011-04-16  Jan Hubicka  <jh@suse.cz>
141
142         * cgraphbuild.c: Include ipa-inline.h.
143         (reset_inline_failed): Use initialize_inline_failed.
144         * cgraph.c: Include ipa-inline.h.
145         (cgraph_create_node_1): Do not initialize estimated_growth.
146         (initialize_inline_failed): More to ipa-inline-analysis.c
147         (dump_cgraph_node): Do not dump inline flags.
148         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
149         and disregard_inline_limits flags.
150         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
151         time, size, estimated_growth.
152         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
153         Update.
154         * cgraphunit.c (cgraph_decide_is_function_needed): Use
155         DECL_DISREGARD_INLINE_LIMITS.
156         (cgraph_analyze_function): Do not initialize
157         node->local.disregard_inline_limits.
158         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
159         inlinable, versionable and disregard_inline_limits.
160         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
161         cgraph_check_inline_limits, cgraph_default_inline_p,
162         cgraph_edge_badness, update_caller_keys, update_callee_keys,
163         add_new_edges_to_heap): Update.
164         (cgraph_decide_inlining_of_small_function): Update; set
165         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
166         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
167         cgraph_decide_inlining_incrementally): Update.
168         * ipa-inline.h (inline_summary): Add inlinable, versionable,
169         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
170         time, size and estimated_growth parameters.
171         (estimate_edge_growth): Update.
172         (initialize_inline_failed): Declare.
173         * ipa-split.c: Include ipa-inline.h
174         (execute_split_functions): Update.
175         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
176         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
177         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
178         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
179         estimated_growth to INT_MIN.
180         (inline_node_duplication_hook): Likewise.
181         (dump_inline_summary): Dump new fields.
182         (compute_inline_parameters): Update.
183         (estimate_edge_time, estimate_time_after_inlining,
184         estimate_size_after_inlining, estimate_growth, inline_read_summary,
185         inline_write_summary):
186         (initialize_inline_failed): Move here from cgraph.c.
187         * tree-sra.c: Include ipa-inline.h.
188         (ipa_sra_preliminary_function_checks): Update.
189         * Makefile.in: (cgraph.o, cgraphbuild.o): Add dependency on
190         ipa-inline.h
191
192 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
193
194         * config/i386/sse.md (V16): New mode iterator.
195         (VI1, VI8): Ditto.
196         (AVXMODEQI, AVXMODEDI): Remove.
197         (sse2, sse3): New mode attribute.
198         (mov<mode>): Use V16 mode iterator.
199         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
200         (push<mode>1): Use V16 mode iterator.
201         (movmisalign<mode>): Ditto.
202         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
203         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
204         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
205         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
206         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
207         avx_movdqu<avxmodesuffix>.
208         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
209         *avx_movdqu<avxmodesuffix>.
210         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
211         avx_lddqu<avxmodesuffix>.
212         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
213         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
214         avx_movnt<AVXMODEDI:mode>.
215         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
216         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
217
218 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
219
220         PR target/48629
221         * haifa-sched.c (prune_ready_list, schedule_block): Use
222         sched_pressure_p rather than flag_sched_pressure.
223
224 2011-04-15  Pat Haugen <pthaugen@us.ibm.com>
225
226         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
227         cgraph_get_node instead of cgraph_get_create_node.
228
229 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
230
231         * cfgexpand.c (expand_debug_expr): Use
232         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
233
234 2011-04-15  Michael Matz  <matz@suse.de>
235
236         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
237         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
238         * function.c (gimplify_parameters): Ditto.
239         * gimplify.c (gimplify_vla_decl): Ditto.
240
241         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
242         (gimple_call_set_alloca_for_var): New inline function.
243         (gimple_call_alloca_for_var_p): Ditto.
244         * gimple.c (gimple_build_call_from_tree): Remember
245         CALL_ALLOCA_FOR_VAR_P state.
246         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
247
248         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
249         calls if they were for VLA objects.
250
251 2011-04-15  Martin Jambor  <mjambor@suse.cz>
252
253         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
254         of ADR_EXPRs.
255
256 2011-04-15  Martin Jambor  <mjambor@suse.cz>
257
258         PR middle-end/48601
259         * tree-emutls.c (lower_emutls_function_body): Call
260         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
261         result is non-NULL.
262
263 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
264
265         * c-decl.c (detect_field_duplicates): Call
266         objc_detect_field_duplicates instead of objc_get_interface_ivars.
267
268 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
269
270         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
271         * gimple.c (gimple_asm_clobbers_memory_p): Define.
272         * ipa-pure-const.c (check_stmt): Call it.
273         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
274
275 2011-04-15  Richard Guenther  <rguenther@suse.de>
276
277         PR tree-optimization/48290
278         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
279         Properly decide inhibiting propagation based on the valueized
280         operand.  Do loop-closed SSA form preserving here ...
281         (init_copy_prop): ... not here.
282
283 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
284
285         PR target/48612
286         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
287         (*ieee_smax<mode>3): Likewise.
288
289 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
290
291         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
292         Replace match_operand with match_dup for the third operand in
293         these expanders.
294
295 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
296
297         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
298         to track processing of conditionals.  Update all callers.
299         (try_combine, simplify_if_then_else): Update.
300
301 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
302
303         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
304         -fsched-pressure.
305
306 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
307
308         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
309         instead of match_operand for operand 3.
310
311 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
312
313         * recog.h (insn_operand_data): Add an "allows_mem" field.
314         * genoutput.c (output_operand_data): Initialize it.
315         * optabs.c (maybe_legitimize_operand_same_code): New function.
316         (maybe_legitimize_operand): Use it when matching the original
317         op->value.
318
319 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
320
321         * gimplify.c: Fix issues in comments throughout.
322         (voidify_wrapper_expr): Fix long line.
323         (build_stack_save_restore): Likewise.
324         (gimplify_loop_expr): Likewise.
325         (gimplify_compound_lval): Likewise.
326         (gimplify_init_ctor_eval): Likewise.
327         (gimplify_modify_expr_rhs): Likewise.
328         (omp_notice_threadprivate_variable): Likewise.
329
330 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
331
332         * cfgexpand.c (expand_call_stmt): Convert the function type to the
333         original one if this is not a builtin function.
334
335 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
336
337         PR target/48605
338         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
339         offset it as needed based on top 2 bits in operands[3], change
340         MEM mode to SFmode and mask those 2 bits away from operands[3].
341
342 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
343
344         * c-parser.c (c_parser_objc_protocol_definition): Updated for
345         change from objc_declare_protocols() to objc_declare_protocol().
346
347 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
348
349         * config/i386/sse.md (sse4_1): New mode attribute.
350         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
351         avx_blend<ssemodesuffix><avxmodesuffix> and
352         sse4_1_blend<ssemodesuffix> using VF mode iterator.
353         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
354         avx_blendv<ssemodesuffix><avxmodesuffix> and
355         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
356         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
357         avx_dp<ssemodesuffix><avxmodesuffix> and
358         sse4_1_dp<ssemodesuffix> using VF mode iterator.
359         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
360         (sse4_1_packusdw): Merge with *avx_packusdw.
361         (sse4_1_pblendvb): Merge with *avx_pblendvb.
362         (sse4_1_pblendw): Merge with *avx_pblendw.
363         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
364         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
365         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
366         VF mode iterator.
367         (sse4_1_round<ssescalarmodesuffix>): Merge with
368         *avx_round<ssescalarmodesuffix>.
369         (aesenc): Merge with *avx_aesenc.
370         (aesenclast): Merge with *avx_aesenclast.
371         (aesdec): Merge with *avx_aesdec.
372         (aesdeclast): Merge with *avx_aesdeclast.
373         (pclmulqdq): Merge with *pclmulqdq.
374         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
375         New predicate.
376         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
377
378 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
379
380         PR middle-end/48608
381         * cfgexpand.c (get_decl_align_unit): Renamed to ...
382         (align_local_variable): This.  Update DECL_ALIGN.
383         (add_stack_var): Updated.
384         (expand_one_stack_var): Likewise.
385
386 2011-04-14  Richard Guenther  <rguenther@suse.de>
387
388         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
389         Remove.
390         (dse_initialize_block_local_data, dse_leave_block,
391         record_voperand_set, get_stmt_uid): Likewise.
392         (dse_possible_dead_store_p): Allow any kind of killing stmt.
393         (dse_optimize_stmt): Remove voperand set handling code.
394         Simplify and improve to handle any kind of killing stmt.
395         (dse_record_phi): Remove.
396         (dse_enter_block): Simplify.
397         (tree_ssa_dse): Likewise.
398         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
399
400 2011-04-14  Jan Hubicka  <jh@suse.cz>
401
402         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
403         * cgraph.h (struct inline_summary): Move to ipa-inline.h
404         (cgraph_local_info): Remove inline_summary.
405         * ipa-cp.c: Include ipa-inline.h.
406         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
407         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
408         accesor.
409         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
410         (input_overwrite_node): Do not set inline summary.
411         (input_node): Do not stream inline summary.
412         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
413         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
414         growth; we do not have inline parameters computed for that anyway.
415         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
416         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
417         (inline_summary_t): New type and VECtor.
418         (debug_inline_summary, dump_inline_summaries): Declare.
419         (inline_summary): Use VOCtor.
420         (estimate_edge_growth): Kill hack computing call stmt size directly.
421         * lto-section-in.c (lto_section_name): Add inline section.
422         * ipa-inline-analysis.c: Include lto-streamer.h
423         (node_removal_hook_holder, node_duplication_hook_holder): New holders
424         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
425         (inline_summary_vec): Define.
426         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
427         dump_inline_summaries): New functions.
428         (estimate_function_body_sizes): Properly compute size/time of outgoing
429         calls.
430         (compute_inline_parameters): Alloc inline_summary; do not compute
431         size/time of incomming calls.
432         (estimate_edge_time): Avoid missing time summary hack.
433         (inline_read_summary): Read inline summary info.
434         (inline_write_summary): Write inline summary info.
435         (inline_free_summary): Free all hooks and inline summary vector.
436         * lto-streamer.h: Add LTO_section_inline_summary section.
437         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
438         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
439
440 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
441
442         * tree-vectorizer.h (vect_strided_store_supported): Add a
443         HOST_WIDE_INT argument.
444         (vect_strided_load_supported): Likewise.
445         (vect_permute_store_chain): Return void.
446         (vect_transform_strided_load): Likewise.
447         (vect_permute_load_chain): Delete.
448         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
449         count argument.  Check that the count is a power of two.
450         (vect_strided_load_supported): Likewise.
451         (vect_permute_store_chain): Return void.  Update after above changes.
452         Assert that the access is supported.
453         (vect_permute_load_chain): Likewise.
454         (vect_transform_strided_load): Return void.
455         * tree-vect-stmts.c (vectorizable_store): Update calls after
456         above interface changes.
457         (vectorizable_load): Likewise.
458         (vect_analyze_stmt): Don't check for strided powers of two here.
459
460 2011-04-14  Richard Guenther  <rguenther@suse.de>
461
462         PR tree-optimization/48590
463         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
464         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
465         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
466         BUILT_IN_STACK_SAVE.
467         * tree-ssa-dce.c (propagate_necessity): Handle
468         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
469
470 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
471
472         * c-parser.c (c_parser_objc_class_declaration): Updated call to
473         objc_declare_class.
474
475 2011-04-14  Richard Guenther  <rguenther@suse.de>
476
477         * tree.h (get_object_alignment_1): Declare.
478         * builtins.c (get_object_alignment_1): Split out worker from ...
479         (get_object_alignment): ... here.
480         * fold-const.c (get_pointer_modulus_and_residue): Use
481         get_object_alignment_1.
482
483 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
484
485         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
486         type parameter.
487         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
488         parameter.  Generalise code to handle arrays as well as vectors.
489         (vect_setup_realignment): Update accordingly.
490         * tree-vect-stmts.c (vectorizable_store): Likewise.
491         (vectorizable_load): Likewise.
492
493 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
494
495         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
496         within the per-copy loop.
497
498 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
499
500         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
501         in the dump file.
502
503 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
504
505         * doc/options.texi (Negative): Explicitly mention that the
506         Negative chain must be circular.
507
508 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
509
510         * function.h (block_chainon): Declare.
511         * function.c (block_chainon): Define.
512
513 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
514             Eric Weddington  <eric.weddington@atmel.com>
515             Georg-Johann Lay <avr@gjlay.de>
516
517         * config/avr/avr.c: ("insn-codes.h", "optabs.h", "langhooks.h"):
518         New Includes
519         (avr_init_builtins, avr_expand_builtin,
520         avr_expand_delay_cycles, avr_expand_unop_builtin,
521         avr_expand_binop_builtin ): New functions.
522         (avr_builtin_id): New enum
523         (struct avr_builtin_description): New struct
524         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
525         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
526
527         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
528         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
529         UNSPECV_DELAY_CYCLES): new enumeration values
530         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
531         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
532         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
533         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
534         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
535         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
536         "fmulsu"): New insns
537
538         * config/avr/avr-c.c: fix line endings
539         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
540         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
541         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
542         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
543         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
544
545         * doc/extend.texi (AVR Built-in Functions): New node
546         (Target Builtins): Add documentation of AVR
547         built-in functions.
548
549 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
550
551         PR target/44643
552         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
553         alone. Error if non-const data has attribute progmem.
554
555 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
556
557         * tree.h (struct tree_constructor): Include tree_typed instead of
558         tree_common.
559         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
560         TS_TYPED instead of TS_COMMON.
561
562 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
563
564         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
565         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
566         (sse2_psadbw): Merge with *avx_psadbw.
567         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
568         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
569         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
570         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
571         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
572         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
573         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
574         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
575         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
576         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
577         (ssse3_palignrti): Merge with *avx_palignrti.
578
579 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
580
581         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
582         * tree-ssanames.c (fini_ssanames): VEC_free it.
583         (make_ssa_name_fn): Update for VECness of free_ssanames.
584         (release_ssa_name, release_dead_ssa_names): Likewise.
585         * tree.h (struct tree_ssa_name): Include tree_typed instead of
586         tree_common.
587         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
588         TS_TYPED instead of TS_COMMON.
589
590 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
591
592         * postreload-gcse.c (gcse_after_reload_main): Add calls to
593         statistics_counter_event.
594         * tree-ssa-copyrename.c (stats): Define.
595         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
596         statistics_counter_event.
597         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
598         (bswap_stats, widen_mul_stats): Define.
599         (insert_reciprocals): Increment rdivs_inserted.
600         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
601         rfuncs_inserted.  Add calls to statistics_counter_event.
602         (execute_cse_sincos_1): Increment inserted.
603         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
604         statistics_counter_event.
605         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
606         of bswap_stats.  Add calls to statistics_counter_event.
607         (convert_mult_to_widen): Increment widen_mults_inserted.
608         (convert_plusminus_to_widen): Increment maccs_inserted.
609         (convert_mult_to_fma): Increment fmas_inserted.
610         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
611         calls to statistics_counter_event.
612
613 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
614
615         PR rtl-optimization/48455
616         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
617         `temp_costs->mem_cost'.
618
619 2011-04-13  Jan Hubicka  <jh@suse.cz>
620
621         * ipa-inline.h: New file.
622         * ipa-inline-analysis.c: New file. Broken out of ...
623         * ipa-inline.c: ... this file; update toplevel comment;
624         include ipa-inline.h
625         (inline_summary): Move to ipa-inline.h
626         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
627         ipa-inline-analysis.c.
628         (cgraph_estimate_time_after_inlining): Rename to estiamte_time_after_inlining;
629         move to ipa-inline-analysis.c
630         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
631         to estimate_edge_growth.
632         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
633         rename to estimate_size_after_inlining.
634         (cgraph_mark_inline_edge): Update for new naming convention.
635         (cgraph_check_inline_limits): Likewise.
636         (cgraph_edge_badness): Likewise.
637         (cgraph_decide_recursive_inlining): Likewise.
638         (cgraph_decide_inlining_of_small_functions): Likewise.
639         (cgraph_decide_inlining_incrementally): Likewise.
640         (cgraph_estimate_growth): Rename to estimate_growth; move to ipa-inline-analysis.c.
641         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
642         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
643         (compute_inline_parameters): Likewise.
644         (compute_inline_parameters_for_current): Likewise.
645         (pass_inline_parameters): Likewise.
646         (inline_indirect_intraprocedural_analysis): Likewise.
647         (analyze_function): Rename to inline_analyze_function; likewise.
648         (add_new_function): Move to ipa-inline-analysis.c.
649         (inline_generate_summary): Likewise.
650         (inline_read_summary): Likewise.
651         (inline_write_summary): Likewise.
652         * Makefile.in (ipa-inline-analysis.c): New file.
653
654 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
655
656         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
657         * configure: Regenerate.
658
659 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
660
661         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
662         instead of tree_common.
663         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
664         Likewise.
665         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
666         TS_TYPED rather than TS_COMMON.
667         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
668
669 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
670
671         PR target/45263
672         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
673         r20 around calls of __tablejump_elpm__
674
675 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
676
677         PR middle-end/48591
678         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
679         NULL.
680         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
681
682 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
683
684         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
685         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
686         (cfi_vec): New typedef.
687         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
688         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
689         (cie_cfi_vec): New static variable.
690         (cie_cfi_head): Delete.
691         (add_cfi): Accept a cfi_vec * as first argument. All callers and
692         declaration changed. Use vector rather than list operations.
693         (new_cfi): Don't initialize the dw_cfi_next field.
694         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
695         rather than list operations.
696         (lookup_cfa): Use vector rather than list operations.
697         (output_cfis): New argument upto. Accept a cfi_vec rather than
698         a dw_cfi_ref list head as argument. All callers changed.
699         Iterate over the vector using upto as a maximum index.
700         (output_all_cfis): New static function.
701         (output_fde): Use vector rather than list operations. Use the
702         new upto argument for output_cfis rather than manipulating a
703         list.
704         (dwarf2out_begin_prologue): Change initializations to match
705         new struct members.
706         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
707         from the vector length rather than searching for the end of a list.
708         Use output_all_cfis.
709         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
710
711 2011-04-13  Nick Clifton  <nickc@redhat.com>
712
713         * config/rx/rx.md (movmemsi): Do not use this pattern when
714         volatile pointers are involved.
715
716 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
717
718         * config/i386/sse.md (pinsrbits): Remove.
719         (sse2_packsswb): Merge with *avx_packsswb.
720         (sse2_packssdw): Merge with *avx_packssdw.
721         (sse2_packuswb): Merge with *avx_packuswb.
722         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
723         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
724         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
725         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
726         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
727         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
728         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
729         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
730         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
731         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
732         (sse2_loadld): Merge with *avx_loadld.
733         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
734         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
735         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
736         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
737         (vec_concatv2di): Merge with *vec_concatv2di_avx.
738
739 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
740
741         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
742         calling TREE_CHAIN.
743         * print-tree.c (print_node): Likewise.
744         * tree-inline.c (copy_tree_r): Likewise.
745         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
746         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
747         instead of TS_COMMON.
748         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
749         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
750         (copy_node_stat): Zero TREE_CHAIN only if necessary.
751         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
752         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
753         ...and these...
754         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
755         * tree.h: ...here.
756         (TREE_CHAIN): Check for a TS_COMMON structure.
757         (TREE_TYPE): Check for a TS_TYPED structure.
758
759 2011-04-12  Pat Haugen <pthaugen@us.ibm.com>
760
761         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
762         cgraph_get_create_node instead of cgraph_node.
763
764 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
765
766         * c-parser.c (c_parser_initelt): Updated call to
767         objc_build_message_expr.
768         (c_parser_postfix_expression): Likewise.
769
770 2011-04-12  Kai Tietz  <ktietz@redhat.com>
771
772         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
773         MASK_MS_BITFIELD_LAYOUT bit.
774
775 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
776
777         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
778         assert it is always true.
779         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
780         moves.
781
782 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
783
784         * c-parser.c (c_lex_one_token): Rewritten conditional used when
785         compiling Objective-C to be more efficient.
786
787 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
788
789         * opts-common.c (decode_cmdline_options_to_array): Remove variable
790         argv_copied.
791
792 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
793
794         * recog.h, genoutput.c, optabs.c: Revert last patch.
795
796 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
797
798         PR target/48090
799         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
800
801 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
802
803         * recog.h (insn_operand_data): Add an "allows_mem" field.
804         * genoutput.c (output_operand_data): Initialize it.
805         * optabs.c (maybe_legitimize_operand_same_code): New function.
806         (maybe_legitimize_operand): Use it when matching the original
807         op->value.
808
809 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
810
811         * genpreds.c (process_define_predicate): Move most processing
812         to gensupport.c.  Continue to validate the expression.
813         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
814         (process_define_predicate): Move processing to gensupport.c.
815         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
816         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
817         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
818         argument.
819         (valid_predicate_name_p): New function, split out from old
820         genpreds.c:process_define_predicate.
821         (process_define_predicate): New function, combining code from
822         old genpreds.c and genrecog.c functions.
823         (process_rtx): Call it for DEFINE_PREDICATE and
824         DEFINE_SPECIAL_PREDICATE.
825
826 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
827
828         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
829         size of a '%A' memory reference.
830         (T_DREG, T_QREG): New neon_builtin_type_bits.
831         (arm_init_neon_builtins): Assert that the load and store operands
832         are neon_struct_operands.
833         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
834         (NEON_ARG_MEMORY): New builtin_arg.
835         (neon_dereference_pointer): New function.
836         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
837         Handle NEON_ARG_MEMORY.
838         (arm_expand_neon_builtin): Update after above interface changes.
839         Use NEON_ARG_MEMORY for loads and stores.
840         * config/arm/predicates.md (neon_struct_operand): New predicate.
841         * config/arm/iterators.md (V_two_elem): Tweak formatting.
842         (V_three_elem): Use BLKmode for accesses that have no associated mode.
843         (V_four_elem): Tweak formatting.
844         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
845         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
846         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
847         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
848         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
849         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
850         (neon_vst4<mode>): Replace pointer operand with a memory operand.
851         Use %A in the output template.
852         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
853         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
854         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
855         the width of the memory access.  Remove post-increment.
856         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
857
858 2011-04-12  Nick Clifton  <nickc@redhat.com>
859
860         * config/v850/v850.c (expand_prologue): Do not use the CALLT
861         instruction for interrupt handlers if the target is the basic V850
862         architecture.
863         (expand_epilogue): Likewise.
864
865 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
866
867         PR rtl-optimization/48549
868         * combine.c (propagate_for_debug): Also stop after BB_END of
869         this_basic_block.  Process LAST and just stop processing after it.
870         (combine_instructions): If last_combined_insn has been deleted,
871         set last_combined_insn to its PREV_INSN.
872
873 2011-04-12  Richard Guenther  <rguenther@suse.de>
874
875         PR tree-optimization/46076
876         * gimple.h (struct gimple_statement_call): Add fntype field.
877         (gimple_call_fntype): Adjust.
878         (gimple_call_set_fntype): New function.
879         * gimple.c (gimple_build_call_1): Set the call function type.
880         * gimplify.c (gimplify_call_expr): Preserve the function
881         type the frontend used for the call.
882         (gimplify_modify_expr): Likewise.
883         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
884         function type.
885         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
886         function type.
887         * tree-ssa.c (useless_type_conversion_p): Function pointer
888         conversions are useless.
889
890 2011-04-12  Martin Jambor  <mjambor@suse.cz>
891
892         * cgraph.h (cgraph_node): Remove function declaration.
893         (cgraph_create_node): Declare.
894         (cgraph_get_create_node): Likewise.
895         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
896         Updated all callers.
897         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
898         the decl does not already exist.  Call cgraph_get_create_node instead
899         of cgraph_node.
900         (cgraph_get_create_node): New function.
901         (cgraph_same_body_alias): Update comment.
902         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
903         assert it does not return NULL.
904         (cgraph_update_edges_for_call_stmt): Likewise.
905         (cgraph_clone_edge): Likewise.
906         (cgraph_create_virtual_clone): Likewise.
907         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
908         instead of cgraph_node.
909         (cgraph_add_new_function): Call cgraph_create_node or
910         cgraph_get_create_node instead of cgraph_node.
911         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
912         instead of cgraph_node.
913         (record_eh_tables): Likewise.
914         (mark_address): Likewise.
915         (mark_load): Likewise.
916         (build_cgraph_edges): Call cgraph_get_create_node instead
917         of cgraph_node.
918         (rebuild_cgraph_edges): Likewise.
919         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
920         instead of cgraph_node.
921         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
922         cgraph_node.
923         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
924         cgraph_create_node instead of cgraph_node.
925         * c-decl.c (finish_function): Call cgraph_get_create_node instead
926         of cgraph_node.
927         * lto-cgraph.c (input_node): Likewise.
928         * lto-streamer-in.c (input_function): Likewise.
929         * varasm.c (mark_decl_referenced): Likewise.
930         (assemble_alias): Likewise.
931
932 2011-04-12  Martin Jambor  <mjambor@suse.cz>
933
934         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
935         instead of cgraph_node and assert it does not return NULL.
936         * lto-streamer-in.c (lto_read_body): Likewise.
937         * omp-low.c (new_omp_context): Likewise.
938         (create_task_copyfn): Likewise.
939         * tree-emutls.c (lower_emutls_function_body): Likewise.
940         * matrix-reorg.c (transform_allocation_sites): Likewise.
941
942 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
943
944         PR c/48552
945         * c-typeck.c (build_asm_expr): Error out on attempts to use
946         void type outputs or inputs for constraints that allow reg or
947         don't allow memory.
948
949 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
950             Richard Earnshaw  <rearnsha@arm.com>
951
952         PR target/48250
953         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
954         to use sign-magnitude offsets. Reject unsupported unaligned
955         cases. Add detailed description in comments.
956         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
957         condition from TARGET_32BIT to TARGET_ARM.
958
959 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
960
961         * tree.h (struct typed_tree): New.
962         (struct tree_common): Include it instead of tree_base.
963         (TREE_TYPE): Update for new location of type field.
964         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
965         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
966         (union tree_node): Add typed field.
967         * treestruct.def (TS_TYPED): New.
968         * lto-streamer.c (check_handled_ts_structures): Handle it.
969         * tree.c (MARK_TS_TYPED): New macro.
970         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
971
972 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
973
974         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
975         (force_nonfallthru): Do not alter the loop nest if no basic block
976         was created.
977
978 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
979
980         * config/i386/sse.md (VI): New mode iterator.
981         (SSEMODEI): Remove.
982         (AVX256MODEI): Ditto.
983         (AVXMODEF4P): Ditto.
984         (avxvecpsmode): Ditto.
985         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
986         (sse2_andnot<mode>3): New expander.
987         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
988         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
989         (<any_logic:code><mode>3): Use VI mode iterator.
990         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
991         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
992         (*andnottf3): Handle AVX three-operand constraints.
993         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
994
995 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
996             Robert Millan  <rmh@gnu.org>
997
998         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
999         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
1000         GNU_USER_DYNAMIC_LINKER64): Define.
1001         (REG_NAME): Don't undefine.
1002         (MD_UNWIND_SUPPORT): Undefine.
1003         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
1004         (REG_NAME): Don't undefine.
1005         (MD_UNWIND_SUPPORT): Undefine.
1006         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
1007
1008 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
1009
1010         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
1011         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
1012
1013 2011-04-11  Xinliang David Li  <davidxl@google.com>
1014
1015         * value-profile.c (check_ic_target): New function.
1016         (gimple_ic_transform): Sanity check indirect call target.
1017         * gimple-low.c (gimple_check_call_args): Interface change.
1018         (gimple_check_call_matching_types): New function.
1019         * tree-inline.c (tree_can_inline_p): Call new function.
1020
1021 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
1022
1023         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
1024         tree-pretty-print.h & realmpfr.h.
1025
1026 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
1027
1028         PR middle-end/48464
1029         * ira.c (setup_pressure_classes): Fix typo in loop condition.
1030         (setup_allocno_and_important_classes): Ditto.
1031
1032 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
1033
1034         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
1035         GNU_USER_DYNAMIC_LINKER.
1036         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
1037         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1038         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
1039         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1040         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
1041         GNU_USER_TARGET_OS_CPP_BUILTINS.
1042         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
1043         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1044         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
1045         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1046         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
1047         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1048         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
1049         GNU_USER_TARGET_OS_CPP_BUILTINS.
1050         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1051         GNU_USER_DYNAMIC_LINKER.
1052         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1053         GNU_USER_TARGET_OS_CPP_BUILTINS.
1054         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
1055         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1056         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
1057         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1058         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
1059         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
1060         GNU_USER_DYNAMIC_LINKER64): Remove.
1061         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
1062         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1063         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1064         GNU_USER_DYNAMIC_LINKER.
1065         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1066         GNU_USER_TARGET_OS_CPP_BUILTINS.
1067         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1068         GNU_USER_TARGET_OS_CPP_BUILTINS.
1069         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
1070         to GNU_USER_TARGET_OS_CPP_BUILTINS.
1071         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1072         GNU_USER_TARGET_OS_CPP_BUILTINS.
1073         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
1074         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
1075         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
1076         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
1077         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1078         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1079         GNU_USER_DYNAMIC_LINKER.
1080         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
1081         GNU_USER_TARGET_OS_CPP_BUILTINS.
1082         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
1083         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1084         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1085         GNU_USER_DYNAMIC_LINKER.
1086         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
1087         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1088         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
1089         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1090         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1091         GNU_USER_DYNAMIC_LINKER.
1092         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
1093         GNU_USER_DYNAMIC_LINKERN32.
1094         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
1095         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
1096         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
1097         GNU_USER_DYNAMIC_LINKER32.
1098         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
1099         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1100         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1101         GNU_USER_DYNAMIC_LINKER.
1102         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
1103         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1104         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
1105         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1106         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1107         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
1108         GNU_USER_DYNAMIC_LINKER32.
1109         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
1110         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
1111         GNU_USER_DYNAMIC_LINKER.
1112         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
1113         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1114         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
1115         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
1116         GNU_USER_DYNAMIC_LINKER64.
1117         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
1118         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1119         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1120         GNU_USER_DYNAMIC_LINKER.
1121         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
1122         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1123         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1124         GNU_USER_DYNAMIC_LINKER.
1125         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
1126         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1127         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
1128         GNU_USER_DYNAMIC_LINKER32.
1129         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
1130         GNU_USER_DYNAMIC_LINKER64.
1131         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
1132         GNU_USER_DYNAMIC_LINKER64.
1133         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
1134         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1135         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
1136         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1137         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1138
1139 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
1140
1141         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
1142         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
1143         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
1144         GNU_USER_DYNAMIC_LINKER.
1145         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
1146         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
1147         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
1148         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
1149         GNU_USER_DYNAMIC_LINKER64.
1150         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
1151         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
1152         GNU_USER_LINK_EMULATION.
1153         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
1154         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
1155         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
1156         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
1157         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
1158         CPP_SPEC, CC1_SPEC): Remove.
1159         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
1160         (GNU_USER_DYNAMIC_LINKER): Define.
1161         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
1162         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
1163         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
1164         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
1165         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
1166         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
1167         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
1168         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
1169         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
1170         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
1171         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
1172         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
1173         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
1174         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
1175         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
1176         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
1177         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1178         GNU_USER_DYNAMIC_LINKER.
1179         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1180         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
1181         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1182         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
1183         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1184         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
1185         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
1186         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
1187         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
1188         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
1189
1190 2011-04-11  Kai Tietz  <ktietz@redhat.com>
1191
1192         PR target/9601
1193         PR target/11772
1194         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
1195         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
1196         comment.
1197         (ix86_is_msabi_thiscall): Removed.
1198         (ix86_is_type_thiscall): Likewise.
1199         (ix86_get_callcvt): New function.
1200         (ix86_comp_type_attributes): Simplify check.
1201         (ix86_function_regparm): Use ix86_get_callcvt for calling
1202         convention attribute checks.
1203         (ix86_return_pops_args): Likewise.
1204         (ix86_static_chain): Likewise.
1205         (x86_this_parameter): Likewise.
1206         (x86_output_mi_thunk): Likewise.
1207         (ix86_function_type_abi): Optimize check for types without attributes.
1208         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
1209         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
1210         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
1211         by flag-values.
1212         (IX86_BASE_CALLCVT): Helper macro.
1213         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
1214         Use ix86_get_callcvt for calling convention attribute checks and avoid
1215         symbol-decoration for stdcall in TARGET_RTD case.
1216         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
1217         Likewise.
1218         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
1219         for declaration.
1220
1221 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
1222
1223         * config/i386/sse.md (VI_128): New mode iterator.
1224         (VI12_128): Rename from SSEMODE12.
1225         (VI14_128): Rename from SSEMODE14.
1226         (VI124_128): New mode iterator.
1227         (VI24_128): Rename from SSEMODE248.
1228         (VI248_128): Rename from SSEMODE248.
1229         (SSEMODE124C8): Remove.
1230         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
1231         (*sse2_<plusminus_insn><mode>3): Merge with
1232         *avx_<plusminus_insn><mode>3.
1233         (*mulv8hi3): Merge with *avx_mulv8hi3.
1234         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
1235         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
1236         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
1237         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
1238         (ashr<mode>3): Merge with *avx_ashr<mode>3.
1239         (lshr<mode>3): Merge with *avx_lshr<mode>3.
1240         (ashl<mode>3): Merge with *avx_ashl<mode>3.
1241         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
1242         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
1243         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
1244         (*<smaxmin:code>v8hi3): Ditto.
1245         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
1246         (*<smaxmin:code>v16qi3): Ditto.
1247         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
1248         (*sse2_eq<mode>3): Ditto.
1249         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
1250         (*sse2_gt<mode>3): Ditto.
1251         (vcondv2di): Split out of vcond<mode>.
1252         (vconduv2di): Split out of vcondu<mode>.
1253
1254 2011-04-11  Richard Guenther  <rguenther@suse.de>
1255
1256         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
1257         before calling tree_low_cst.
1258
1259 2011-04-11  Richard Guenther  <rguenther@suse.de>
1260
1261         * stor-layout.c (layout_type): Compute all array index size operations
1262         in the original type.
1263         (initialize_sizetypes): Add comment.
1264         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
1265
1266 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
1267
1268         * common.opt (Tbss=, Tdata=, Ttext=): New options.
1269
1270 2011-04-11  Martin Jambor  <mjambor@suse.cz>
1271
1272         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
1273         of cgraph_node, handle NULL return value.
1274         (cgraph_global_info): Likewise.
1275         (cgraph_rtl_info): Likewise.
1276         * tree-inline.c (estimate_num_insns): Likewise.
1277         * gimplify.c (unshare_body): Likewise.
1278         (unvisit_body): Likewise.
1279         (gimplify_body): Likewise.
1280         * predict.c (optimize_function_for_size_p): Likewise.
1281         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
1282         (call_may_clobber_ref_p_1): Likewise.
1283         * varasm.c (function_section_1): Likewise.
1284         (assemble_start_function): Likewise.
1285
1286 2011-04-11  Martin Jambor  <mjambor@suse.cz>
1287
1288         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
1289         of cgraph_node.
1290         * final.c (rest_of_clean_state): Likewise.
1291         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
1292         * passes.c (pass_init_dump_file): Likewise.
1293         (execute_all_ipa_transforms): Likewise.
1294         (function_called_by_processed_nodes_p): Likewise.
1295         * predict.c (maybe_hot_frequency_p): Likewise.
1296         (probably_never_executed_bb_p): Likewise.
1297         (compute_function_frequency): Likewise.
1298         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
1299         (unnest_nesting_tree_1): Likewise.
1300         (lower_nested_functions): Likewise.
1301         * tree-optimize.c (execute_fixup_cfg): Likewise.
1302         (tree_rest_of_compilation): Likewise.
1303         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
1304         * tree-sra.c (ipa_early_sra): Likewise.
1305         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
1306         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
1307         * ipa.c (record_cdtor_fn): Likewise.
1308         * ipa-inline.c (cgraph_early_inlining): Likewise.
1309         (compute_inline_parameters_for_current): Likewise.
1310         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
1311         * ipa-pure-const.c (local_pure_const): Likewise.
1312         * ipa-split.c (split_function): Likewise.
1313         (execute_split_functions): Likewise.
1314         * cgraphbuild.c (build_cgraph_edges): Likewise.
1315         (rebuild_cgraph_edges): Likewise.
1316         (cgraph_rebuild_references): Likewise.
1317         (remove_cgraph_callee_edges): Likewise.
1318         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
1319         (verify_cgraph_node): Likewise.
1320         (cgraph_analyze_functions): Likewise.
1321         (cgraph_preserve_function_body_p): Likewise.
1322         (save_inline_function_body): Likewise.
1323         (save_inline_function_body): Likewise.
1324         * tree-inline.c (copy_bb): Likewise.
1325         (optimize_inline_calls): Likewise.
1326
1327 2011-04-11  Martin Jambor  <mjambor@suse.cz>
1328
1329         PR tree-optimization/48195
1330         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
1331         ipa_check_create_edge_args.
1332         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
1333         ipa_check_create_edge_args.
1334         * ipa-inline.c (inline_generate_summary): Do not call
1335         ipa_check_create_node_params and ipa_check_create_edge_args.
1336         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
1337         ipa_check_create_edge_args.
1338
1339 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
1340
1341         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
1342         instead of loop.
1343         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
1344         * function.c (record_hard_reg_sets): Likewise.
1345         * ira.c (compute_regs_asm_clobbered): Likewise.
1346         * sched-deps.c (sched_analyze_1): Likewise.
1347         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
1348
1349 2011-04-09  Xinliang David Li  <davidxl@google.com>
1350
1351         PR tree-optimization/PR48484
1352         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
1353         has_valid_pred lazily
1354
1355 2011-04-09  Duncan Sands  <baldrick@free.fr>
1356
1357         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
1358
1359 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
1360
1361         * combine.c (combine_validate_cost): Adjust comments.  Set registered
1362         cost of I0 to zero at the end, if any.
1363
1364 2011-04-08  Xinliang David Li  <davidxl@google.com>
1365
1366         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
1367         to insane profile data.
1368
1369 2011-04-08  Xinliang David Li  <davidxl@google.com>
1370
1371         * final.c (dump_basic_block_info): New function.
1372         (final): Dump basic block.
1373         (final_scan_insn): Remove old dump.
1374
1375 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
1376
1377         PR target/47829
1378         * config.gcc (i386-*-freebsd): Disable unwind table generation for
1379         crtbegin/crtend.
1380
1381 2011-04-08  Michael Matz  <matz@suse.de>
1382
1383         PR middle-end/48389
1384         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
1385         functions.
1386         (rebuild_jump_labels): Call rebuild_jump_labels_1.
1387         * rtl.h (rebuild_jump_labels_chain): Declare.
1388         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
1389         insns inserted on edges.
1390
1391 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
1392
1393         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
1394         * config/arm/arm-arches.def: New.
1395         * config/arm/arm-opts.h: New.
1396         * config/arm/genopt.sh: New.
1397         * config/arm/arm-tables.opt: New (generated).
1398         * config/arm/arm.c (arm_handle_option, arm_target_help,
1399         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
1400         (all_architectures): Get most table contents from arm-arches.def.
1401         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
1402         arm_selected_tune here.
1403         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
1404         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
1405         (march=, mcpu=, mtune=): Use Enum and Var.
1406         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
1407         (arm.o): Update dependencies.
1408
1409 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
1410
1411         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
1412         of header_file.
1413         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
1414         (write_typed_alloc_defns): Likewise.
1415         (main): Calls write_typed_alloc_defns with output_header.
1416
1417 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
1418
1419         PR inline-asm/48435
1420         * ira-color.c (setup_profitable_hard_regs): Add comments.
1421         Don't take prohibited hard regs into account.
1422         (setup_conflict_profitable_regs): Rename to
1423         get_conflict_profitable_regs.
1424         (check_hard_reg_p): Check prohibited hard regs.
1425
1426 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
1427
1428         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
1429         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
1430         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
1431
1432 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1433
1434         PR target/48366
1435         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
1436         move from floating point to shift amount register .
1437         (emit_move_sequence): Remove secondary reload support for floating
1438         point to shift amount amount register copies.
1439         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
1440         amount register copies.
1441         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
1442         register, return false if mode isn't a scalar integer mode.
1443         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
1444
1445 2011-04-08  Richard Guenther  <rguenther@suse.de>
1446
1447         * gimple.c (gimple_call_flags): Remove kludge.
1448
1449 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1450
1451         * sel-sched.c (sel_region_init): Move call to
1452         sel_setup_region_sched_flags after setup_current_loop_nest.
1453
1454 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
1455
1456         PR rtl-optimization/48272
1457         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
1458         init_insn_reg_pressure_info.  Adjust a caller.
1459         * sched-int.h (init_insn_reg_pressure_info): Declare.
1460         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
1461         when sched-pressure is enabled.
1462
1463 2011-04-08  Richard Guenther  <rguenther@suse.de>
1464
1465         * gimple.c (gimple_set_modified): Do not queue calls to
1466         MODIFIED_NORETURN_CALLS here ...
1467         * tree-ssa-operands.c (update_stmt_operands): ... but here.
1468
1469 2011-04-08  Richard Guenther  <rguenther@suse.de>
1470
1471         PR lto/48467
1472         * toplev.c (lang_dependent_init): Do not open asm_out_file
1473         in WPA mode, nor perform debug machinery initialization.
1474         (finalize): Do not unlink asm_out_file in WPA mode.
1475
1476 2011-04-08  Richard Guenther  <rguenther@suse.de>
1477
1478         * gimple.h (gimple_call_fntype): New function.
1479         (gimple_call_return_type): Use it.
1480         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
1481         * gimple-low.c (gimple_check_call_args): Likewise.
1482         * gimple.c (gimple_call_flags): Likewise.
1483         (gimple_call_arg_flags): Likewise.
1484         (gimple_call_return_flags): Likewise.
1485         * tree-cfg.c (verify_gimple_call): Likewise.
1486         (do_warn_unused_result): Likewise.
1487         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
1488         * value-prof.c (gimple_ic_transform): Fix fndecl check.
1489
1490 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
1491
1492         PR rtl-optimization/48235
1493         * sel-sched.c (code_motion_process_successors): Recompute the last
1494         insn in basic block if control flow changed.
1495         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
1496         Update condition for ilist_remove.
1497
1498 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1499
1500         PR rtl-optimization/48302
1501         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
1502         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
1503         it to record added preheader blocks.
1504         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
1505         on to sel_add_loop_preheaders.
1506         (sel_region_init): Move call to setup_current_loop_nest after
1507         sel_init_bbs.
1508
1509 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1510
1511         PR target/48273
1512         * cfgloop.h (loop_has_exit_edges): New helper.
1513         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
1514         non-clonable.
1515         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
1516         that have no exit edges.
1517
1518 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1519
1520         PR rtl-optimization/48442
1521         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
1522         all callers.  Adjust assert.
1523
1524 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
1525
1526         PR tree-optimization/48377
1527         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
1528         is_packed to true even for types with smaller TYPE_ALIGN than
1529         TYPE_SIZE.
1530
1531 2011-04-08  Richard Guenther  <rguenther@suse.de>
1532
1533         PR bootstrap/48513
1534         * doc/tm.texi: Re-generate.
1535
1536 2011-04-08  Wei Guozhi  <carrot@google.com>
1537
1538         PR target/47855
1539         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
1540         * config/arm/arm.c (arm_attr_length_push_multi): New function.
1541         * config/arm/arm.md (*push_multi): Change the length computation to
1542         call a C function.
1543
1544 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
1545
1546         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
1547         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
1548         * doc/tm.texi: Regenerate.
1549         * system.h (ASM_OUTPUT_BSS): Poison.
1550         * varasm.c (asm_output_bss): Remove function.
1551         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
1552
1553         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
1554         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
1555         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
1556         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
1557         Likewise.
1558         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
1559         Likewise.
1560         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
1561         Likewise.
1562         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
1563
1564 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
1565
1566         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
1567         EnumValue lines.
1568
1569 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
1570
1571         * config/m68k/m68k.c (m68k_handle_option): Don't handle
1572         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
1573         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
1574         OPT_mcpu32.
1575         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
1576         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
1577         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
1578         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
1579         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
1580         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
1581         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
1582         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
1583         options.  Don't map other m68k options manually.  Don't handle
1584         old-style options as canonical.
1585         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
1586         * doc/install.texi (m68k-*-*): Document binutils version requirement.
1587
1588 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
1589
1590         * basic-block.h (force_nonfallthru): Move to...
1591         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
1592         (force_nonfallthru): ...here.
1593         * cfghooks.c (force_nonfallthru): New function.
1594         * cfgrtl.c (force_nonfallthru): Rename into...
1595         (rtl_force_nonfallthru): ...this.
1596         (commit_one_edge_insertion): Do not set AUX field.
1597         (commit_edge_insertions): Do not discover new basic blocks.
1598         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
1599         (cfg_layout_rtl_cfg_hooks): Likewise.
1600         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
1601         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
1602         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
1603
1604 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
1605
1606         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
1607         Remove macros.
1608
1609 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
1610
1611         * config/i386/sse.md: Update copyright year.
1612         (avxcvtvecmode): Remove.
1613         (sse_movhlps): Merge with *avx_movhlps.
1614         (sse_movlhps): Merge with *avx_movlhps.
1615         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
1616         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
1617         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
1618         (sse_loadhps): Merge with *avx_loadhps.
1619         (sse_storelps): Merge with *avx_storelps.
1620         (sse_loadlps): Merge with *avx_loadlps.
1621         (sse_movss): Merge with *avx_movss.
1622         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
1623         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
1624         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
1625         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
1626         (vec_set<mode>_0): Ditto.
1627         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
1628         (sse4_1_insertps): Merge with *avx_insertps.
1629         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
1630         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
1631         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
1632         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
1633         (sse2_storehpd): Merge with *avx_storehpd.
1634         (sse2_loadhpd): Merge with *avx_loadhpd.
1635         (sse2_loadlpd): Merge with *avx_loadlpd.
1636         (sse2_movsd): Merge with *avx_movsd.
1637         (*vec_concatv2df): Merge with *vec_concatv2df.
1638
1639 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
1640
1641         PR debug/48343
1642         * combine.c (combine_instructions): Add last_combined_insn,
1643         update it if insn is after it, pass it to all try_combine calls.
1644         (try_combine): Add last_combined_insn parameter, pass it instead of
1645         i3 to propagate_for_debug.
1646
1647 2011-04-07  Nick Clifton  <nickc@redhat.com>
1648
1649         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
1650         to handle MDR <-> data register transfers.
1651         (movhi_internal): Likewise.
1652
1653 2011-04-07  Alan Modra  <amodra@gmail.com>
1654
1655         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
1656         previous stack info.
1657
1658 2011-04-07  Tom de Vries  <tom@codesourcery.com>
1659
1660         PR target/43920
1661         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
1662         flow_find_cross_jump.  Swap variables to implement backward replacement.
1663         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
1664
1665 2011-04-07  Tom de Vries  <tom@codesourcery.com>
1666
1667         PR target/43920
1668         * cfgcleanup.c (walk_to_nondebug_insn): New function.
1669         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
1670         and bb2.
1671         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
1672         src1 or src2.  Redirect edges to the last basic block.  Update
1673         frequency and count on multiple basic blocks in case of fallthru.
1674
1675 2011-04-07  Tom de Vries  <tom@codesourcery.com>
1676
1677         PR target/43920
1678         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
1679         function.
1680         (old_insns_match_p): Change return type.  Replace return false/true
1681         with return dir_none/dir_both.  Use can_replace_by.
1682         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
1683         direction from dir_p.  Register replacement direction in dir, last_dir
1684         and afterlast_dir.  Handle new return type of old_insns_match_p using
1685         merge_dir.  Return replacement direction in dir_p.
1686         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
1687         return type of old_insns_match_p.
1688         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
1689         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
1690         flow_find_cross_jump.
1691         * basic-block.h (enum replace_direction): New type.
1692         (flow_find_cross_jump): Add parameter to declaration.
1693
1694 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
1695
1696         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
1697         (AVXMODEDCVTPS2DQ): Ditto.
1698         (VEC_FLOAT_MODE): Ditto.
1699         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
1700         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
1701         (<any_logic:code><mode>3): Use VF mode iterator.
1702         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
1703         Use VF mode iterator.
1704         (copysign<mode>3): Use VF mode iterator.
1705         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
1706         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
1707         (*<any_logic:code><MODEF:mode>3): Merge with
1708         *avx_<any_logic:code><MODEF:mode>3.
1709         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
1710         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
1711         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
1712         (avx_cvtdq2ps<avxmodesuffix>): Remove.
1713         (sse2_cvtdq2ps): Use %v modifier.
1714         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
1715         (avx_cvtps2dq<avxmodesuffix>): Remove.
1716         (sse2_cvtps2dq): Use %v modifier.
1717         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
1718         (avx_cvttps2dq<avxmodesuffix>): Remove.
1719         (sse2_cvttps2dq): Use %v modifier.
1720         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
1721         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
1722         (sse2_cvtsd2siq): Fix insn template.
1723         (sse2_cvtsd2siq_2): Ditto.
1724         (sse2_cvttsd2siq): Ditto.
1725         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
1726         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
1727
1728 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
1729
1730         * gcov-io.c: Use GCC Runtime Library Exception.
1731
1732 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
1733
1734         PR debug/48466
1735         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
1736         as base_reg whatever register reg has been eliminated to, instead
1737         of hardcoding STACK_POINTER_REGNUM.
1738
1739 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
1740
1741         * doc/tm.texi.in: Document C target hooks as separate from general
1742         target hooks.
1743         * doc/tm.texi: Regenerate.
1744         * genhooks.c (struct hook_desc): Add docname field.
1745         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
1746         docname field.
1747         (hook_array): Include c-target.def.
1748         (emit_documentation): Use docname field in output.
1749         (emit_init_macros): Take docname argument.  Only emit definitions
1750         for hooks matching docname.
1751         (main): Expect additional arguments in all cases.  Pass argument
1752         to emit_init_macros.
1753         * target.def: Move initial macro definitions and comments to
1754         target-hooks-macros.h.
1755         (gcc_targetcm): Move to c-family/c-target.def.
1756         * target.h (targetcm): Move declaration to c-family/c-target.h.
1757         * targhooks.c (default_handle_c_option): Move to
1758         c-family/c-opts.c.
1759         * targhooks.h (default_handle_c_option): Move declaration to
1760         c-family/c-common.h.
1761         * target-hooks-macros.h: New file.
1762         * config.gcc (target_has_targetcm): Define and use to add to
1763         c_target_objs and cxx_target_objs.
1764         * config/default-c.c: New file.
1765         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
1766         of target.h and target-def.h.
1767         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
1768         (darwin_objc_construct_string, darwin_cfstring_ref_p,
1769         darwin_check_cfstring_format_arg): Make static.
1770         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
1771         TARGET_STRING_OBJECT_REF_TYPE_P,
1772         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
1773         * config/darwin-protos.h (darwin_objc_construct_string,
1774         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
1775         declare.
1776         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
1777         TARGET_STRING_OBJECT_REF_TYPE_P,
1778         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
1779         * config/t-darwin (darwin-c.o): Update dependencies.
1780         * system.h (TARGET_HAS_TARGETCM): Poison.
1781         * Makefile.in (TARGET_H): Update.
1782         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
1783         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
1784         (default-c.o): New target.
1785         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
1786         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
1787         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
1788         c-target.def.
1789         (build/genhooks.o): Update dependencies.
1790
1791 2011-04-06  Richard Guenther  <rguenther@suse.de>
1792
1793         * ipa-inline.c (enum inlining_mode): Remove.
1794         (cgraph_flatten): Use some other token.
1795         (cgraph_edge_early_inlinable_p): New function, split out from ...
1796         (cgraph_perform_always_inlining): New function, split out from ...
1797         (cgraph_decide_inlining_incrementally): ... here.
1798         (cgraph_mark_inline_edge): Adjust.
1799         (cgraph_early_inlining): Re-structure.
1800         (pass_early_inline): Require SSA form.
1801
1802 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
1803             Julian Brown  <julian@codesourcery.com>
1804             Mark Shinwell  <shinwell@codesourcery.com>
1805
1806         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
1807         LO_REGS only for Thumb-1.
1808         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
1809         be used in short instructions when optimising for size on Thumb-2.
1810
1811 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
1812
1813         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
1814         associated with user returns to be preserved.
1815
1816 2011-04-06  Tristan Gingold  <gingold@adacore.com>
1817
1818         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
1819         symbol_queue_size, DBXOUT_DECR_NESTING,
1820         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
1821         if XCOFF_DEBUGGING_INFO.
1822
1823 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
1824
1825         * config/i386/i386.md (attribute isa): New.
1826         (attribute enabled): New.
1827         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
1828         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
1829         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
1830         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
1831         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
1832         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
1833         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
1834         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
1835
1836         * config/i386/sse.md (VF): New mode iterator.
1837         (VF1): Ditto.
1838         (VF2): Ditto.
1839         (VF_128): Ditto.
1840         (SSEMODEF4): Remove.
1841         (attribute sse): Handle V8SF and V4DF modes.
1842         (<absneg:code><mode>2): Use VF mode iterator.
1843         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
1844         mode iterator.
1845         (<plusminus_insn><mode>3): Use VF mode iterator.
1846         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
1847         Use VF mode iterator.
1848         (<sse>_vm<plusminus_insn><mode>3): Merge with
1849         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
1850         (mul<mode>3): Use VF mode iterator.
1851         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
1852         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
1853         mode iterator.
1854         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
1855         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
1856         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
1857         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
1858         mode iterator.
1859         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
1860         Use VF1 mode iterator.
1861         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
1862         (sqrt<VF2:mode>2): New expander.
1863         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
1864         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
1865         and sqrtv2df2.  Use VF mode iterator.
1866         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
1867         mode iterator.
1868         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
1869         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
1870         Use VF1 mode iterator.
1871         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
1872         (<smaxmin:code><mode>3): Use VF mode iterator.
1873         (*<smaxmin:code><mode>3_finite): Merge with
1874         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
1875         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
1876         (<sse>_vm<smaxmin:code><mode>2): Merge with
1877         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
1878         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
1879         mode iterator.
1880         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
1881         mode iterator.
1882         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
1883         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
1884         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
1885         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
1886         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
1887         VF mode iterator.
1888         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
1889         Use VF_128 mode iterator.
1890         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
1891         mode iterator.
1892         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
1893         VF_128 mode iterator.
1894         (vcond<mode>): Use VF mode iterator.
1895         * config/i386/predicates.md (sse_comparison_operator): Merge with
1896         avx_comparison_float_operator.  Do not declare as special_predicate.
1897         * config/i386/i386.c (struct builtin_description): Update for renamed
1898         compare patterns.
1899         (ix86_expand_args_builtin): Ditto.
1900         (ix86_expand_sse_compare_mask): Ditto.
1901
1902 2011-04-06  Richard Guenther  <rguenther@suse.de>
1903
1904         * tree-inline.c (estimate_num_insns): For calls simply account
1905         for all passed arguments and a used return value.
1906
1907 2011-04-06  Richard Guenther  <rguenther@suse.de>
1908
1909         PR tree-optimization/47663
1910         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
1911         call_stmt_time fields.
1912         (cgraph_edge_inlinable_p): Declare.
1913         (cgraph_edge_recursive_p): New inline function.
1914         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
1915         (cgraph_clone_edge): Copy it.
1916         * ipa-inline.c (cgraph_estimate_edge_time): New function.
1917         Account for call stmt time.
1918         (cgraph_estimate_time_after_inlining): Take edge argument.
1919         (cgraph_estimate_edge_growth): Account call stmt size.
1920         (cgraph_estimate_size_after_inlining): Take edge argument.
1921         (cgraph_mark_inline_edge): Adjust.
1922         (cgraph_check_inline_limits): Likewise.
1923         (cgraph_recursive_inlining_p): Remove.
1924         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
1925         (cgraph_decide_recursive_inlining): Take edge argument and
1926         adjust.
1927         (cgraph_decide_inlining_of_small_functions): Do not avoid
1928         diags for recursive inlining here.
1929         (cgraph_flatten): Adjust.
1930         (cgraph_decide_inlining_incrementally): Likewise.
1931         (estimate_function_body_sizes): Remove call cost handling.
1932         (compute_inline_parameters): Initialize caller edge call costs.
1933         (cgraph_estimate_edge_growth): New function.
1934         (cgraph_estimate_growth): Use it.
1935         (cgraph_edge_badness): Likewise.
1936         (cgraph_check_inline_limits): Take an edge argument.
1937         (cgraph_decide_inlining_of_small_functions): Adjust.
1938         (cgraph_decide_inlining): Likewise.
1939         * tree-inline.c (estimate_num_insns): Only account for call
1940         return value if it is used.
1941         (expand_call_inline): Avoid diagnostics on recursive inline
1942         functions here.
1943         * lto-cgraph.c (lto_output_edge): Output edge call costs.
1944         (input_edge): Input edge call costs.
1945
1946 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1947
1948         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
1949
1950 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
1951
1952         * doc/invoke.texi (Spec Files): Fix typo.
1953
1954 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
1955
1956         * profile.c (branch_prob): Move declaration of local variable.  Remove
1957         obsolete ??? comment.  Expand the location explicitly instead of using
1958         the LOCATION_FILE and LOCATION_LINE macros.
1959
1960 2011-04-06  Wei Guozhi  <carrot@google.com>
1961
1962         PR target/47855
1963         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
1964         (arm_cond_branch): Likewise.
1965         (arm_cond_branch_reversed): Likewise.
1966         (arm_jump): Likewise.
1967         (push_multi): Likewise.
1968         * config/arm/constraints.md (Py): New constraint.
1969
1970 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1971
1972         PR bootstrap/48471
1973         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
1974         Move these...
1975         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
1976         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
1977         #ifdef DBX_DEBUGGING_INFO.
1978
1979 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
1980
1981         PR bootstrap/48403
1982         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1983         if old and new states differ.
1984
1985 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
1986
1987         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
1988         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
1989         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
1990         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
1991         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
1992         mcfv4e): Use Alias.
1993         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
1994         ColdFire options to -mcpu= options.
1995
1996 2011-04-05  Jeff Law  <law@redhat.com>
1997
1998         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
1999         check if BB is a successor of LOOP->header and return
2000         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
2001
2002 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
2003
2004         * cprop.c (struct reg_use): Remove.
2005         (reg_use_table): Make an array of RTX.
2006         (find_used_regs, constprop_register, local_cprop_pass,
2007         bypass_block): Simplify users of reg_use_table.
2008         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
2009         on one of the uses found by find_used_regs.
2010
2011 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2012
2013         PR bootstrap/48469
2014         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
2015         declaration.
2016
2017 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2018
2019         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
2020         as an rtx.
2021         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
2022
2023 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
2024
2025         PR middle-end/48441
2026         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
2027
2028 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2029
2030         * combine.c: Include obstack.h.
2031         (struct insn_link): Define.
2032         (uid_log_links): Adjust type.
2033         (FOR_EACH_LOG_LINK): New macro.
2034         (insn_link_obstack): Declare.
2035         (alloc_insn_link): Define.
2036         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
2037         type of link variables.
2038         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
2039         (try_combine, record_promoted_values, distribute_notes): Likewise.
2040         (distribute_links): Likewise.  Tweak prototype.
2041         (clear_log_links): Delete.
2042         (adjust_for_new_dest): Call alloc_insn_link.
2043         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
2044
2045 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2046
2047         * gcse.c (modify_mem_list): Convert to an array of VECs.
2048         (canon_modify_mem_list, compute_transp): Tweak formatting.
2049         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
2050         (load_killed_in_block_p): Likewise.
2051         (record_last_mem_set_info): Likewise.
2052         (clear_modify_mem_tables): Likewise.
2053
2054 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2055
2056         PR middle-end/48461
2057         * function.c (emit_use_return_register_into_block): Only define if
2058         HAVE_return.
2059
2060 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
2061
2062         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
2063
2064 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
2065
2066         * config/rx/rx-opts.h: New.
2067         * config/rx/rx.c (rx_cpu_type): Remove.
2068         (rx_handle_option): Don't assert that global structures are in
2069         use.  Access variables via opts pointer.  Defer most handling of
2070         OPT_mint_register_.  Use error_at.
2071         (rx_option_override): Handle deferred OPT_mint_register_ here.
2072         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
2073         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
2074         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
2075         (rx_cpu_types): New Enum and EnumValue entries.
2076         (mint-register=): Use Defer and use Var accordingly.
2077
2078 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2079
2080         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
2081         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
2082         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
2083         Move these...
2084         (debug_free_queue, debug_nesting, symbol_queue_index):
2085         ...and these...
2086         * dbxout.c: ...to here.  Make static.
2087
2088 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2089
2090         * gcse.c (modify_pair): Define.  Define a VEC of it.
2091         (canon_modify_mem_list): Convert to an array of VECs.
2092         (free_insn_expr_list_list): Delete.
2093         (clear_modify_mem_tables): Call VEC_free instead.
2094         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
2095         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
2096         (canon_list_insert, compute_transp): Likewise.
2097
2098 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2099
2100         PR target/43920
2101         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
2102         for size.
2103
2104 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2105
2106         PR target/43920
2107         * function.c (emit_use_return_register_into_block): New function.
2108         (thread_prologue_and_epilogue_insns): Use
2109         emit_use_return_register_into_block.
2110
2111 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2112
2113         PR target/43920
2114         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
2115         insn.
2116
2117 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2118
2119         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
2120
2121 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
2122
2123         * config/arm/arm.md (define_constants for unspec): Replace with
2124         define_c_enum.
2125         (define_constants for unspecv): Replace with define_c_enum.
2126         * config/arm/neon.md (define_constants for unspec): Replace with
2127         define_c_enum.
2128
2129 2011-04-04  Richard Henderson  <rth@redhat.com>
2130
2131         PR bootstrap/48400
2132         * dwarf2out.c (output_line_info): Always emit line info from
2133         at least one section.
2134         (dwarf2out_init): Create text_section_line_info here ...
2135         (set_cur_line_info_table): ... not here.
2136
2137 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
2138
2139         PR target/48380
2140         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
2141         not called.
2142
2143         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
2144
2145 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
2146
2147         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
2148         (expr_equiv_p): Remove.
2149         (insert_set_in_table): Look at <dest, src> pair instead of expr.
2150         (hash_scan_set): Update call to insert_set_in_table.
2151         (dump_hash_table): Dump <dest, src> pair.
2152         (lookup_set): Simplify.  Lookup <dest, src> pair.
2153         (compute_transp): Remove, fold heavily simplified code into...
2154         (compute_local_properties): ...here.  Expect COMP and TRANSP
2155         unconditionally.
2156         (find_avail_set): Take set directly from struct expr.
2157         (find_bypass-set): Likewise.
2158         (bypass_block): Likewise.
2159         (cprop_insn): Likewise.  Remove redundant INSN_P test.
2160
2161         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
2162         checks on form of COND from find_implicit_sets to here.
2163         (find_implicit_sets): Cleanup control flow. Split critical edges
2164         if it exposes implicit sets.  Allocate/resize implicit_sets as
2165         necessary.
2166         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
2167         changed something.  Run df_analyze after find_implicit_sets if any
2168         edges were split.  Do not allocate implicit_sets here.
2169
2170         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
2171         (gcse_obstack): Renamed to cprop_obstack.
2172         (GNEW, GNEWVEC, GNEWVAR): Remove.
2173         (gmalloc): Remove.
2174         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
2175         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
2176         (gcse_alloc): Likewise, and rename to cprop_alloc.
2177         (alloc_gcse_men, free_gcse_mem): Remove.
2178         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
2179         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
2180         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
2181
2182         * cprop.c (oprs_not_set_p): Remove.
2183         (mark_set, mark_clobber): Remove.
2184         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
2185         (reg_not_set_p): New function.
2186         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
2187         (cprop_insn): Likewise.
2188         (cprop_jump): Use FOR_EACH_EDGE.
2189
2190 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
2191
2192         PR bootstrap/48403
2193         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
2194         (rank_for_schedule): Use scheduled_insns vector instead of
2195         last_scheduled_insn.
2196         (ok_for_early_queue_removal): Likewise.
2197         (queue_to_ready): Search forward in nonscheduled_insns_begin if
2198         we have a dbg_cnt.
2199         (choose_ready): Likewise.
2200         (commit_schedule): Use VEC_iterate.
2201         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
2202         a dbg_cnt, use it and ensure the first insn is in the ready list.
2203         (haifa_sched_init): Allocate scheduled_insns.
2204         (sched_extend_ready_list): Don't allocate it; reserve space.
2205         (haifa_sched_finish): Free it.
2206
2207 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
2208
2209         * optc-gen.awk: Always remove type from Variable entry before
2210         recording in var_seen.
2211
2212 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
2213
2214         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
2215         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
2216         call to tidy_fallthru_edges.
2217
2218 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
2219
2220         * doc/options.texi (ToLower): Document.
2221         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
2222         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
2223         * opts.h (cl_option): Add cl_tolower field.
2224         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
2225         arguments with lowercase strings.
2226         * config/rx/rx.opt (mcpu=): Add ToLower.
2227         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
2228         argument.
2229
2230 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
2231
2232         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
2233
2234 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
2235
2236         * config/vax/vax.c: Include reload.h.
2237
2238 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
2239
2240         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
2241         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
2242         (sparc_preferred_reload_class): New function.
2243
2244 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
2245
2246         PR debug/48401
2247         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
2248         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
2249
2250 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
2251
2252         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
2253         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
2254
2255 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
2256
2257         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
2258         (ASM_OUTPUT_ALIGNED_BSS): Define.
2259
2260 2011-04-03  Michael Matz  <matz@suse.de>
2261
2262         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
2263         and next_slot members.
2264         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
2265         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
2266         (lto_streamer_cache_append): Declare.
2267         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
2268         unsigned index, remove offset parameter, ensure that we append
2269         or update existing entries.
2270         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
2271         parameter, update next_slot for append.
2272         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
2273         parameter.
2274         (lto_streamer_cache_insert_at): Likewise.
2275         (lto_streamer_cache_append): New function.
2276         (lto_streamer_cache_lookup): Use unsigned index.
2277         (lto_streamer_cache_get): Likewise.
2278         (lto_record_common_node): Don't test tree_node_can_be_shared.
2279         (preload_common_node): Adjust call to lto_streamer_cache_insert.
2280         (lto_streamer_cache_delete): Don't free offsets member.
2281         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
2282         (lto_output_string_with_length): Use lto_output_data_stream.
2283         (lto_output_tree_header): Remove ix parameter, don't write it.
2284         (lto_output_builtin_tree): Likewise.
2285         (lto_write_tree): Adjust callers to above, don't track and write
2286         offset, write unsigned index.
2287         (output_unreferenced_globals): Don't emit all global vars.
2288         (write_global_references): Use unsigned indices.
2289         (lto_output_decl_state_refs): Likewise.
2290         (write_symbol): Likewise.
2291         * lto-streamer-in.c (lto_input_chain): Move earlier.
2292         (input_function): Use unsigned index.
2293         (input_alias_pairs): Don't read and then ignore all global vars.
2294         (lto_materialize_tree): Remove ix_p parameter, don't read index,
2295         don't pass it back, use lto_streamer_cache_append.
2296         (lto_register_var_decl_in_symtab): Use unsigned index.
2297         (lto_register_function_decl_in_symtab): Likewise.
2298         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
2299         index.
2300         (lto_get_builtin_tree): Don't read index, use
2301         lto_streamer_cache_append.
2302         (lto_read_tree): Adjust call to lto_materialize_tree.
2303
2304         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
2305         don't use function calls in arguments to MIN.
2306
2307         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
2308         twice.
2309
2310         * gimple.c (gimple_type_leader_entry): Mark deletable.
2311
2312 2011-04-03  Alan Modra  <amodra@gmail.com>
2313
2314         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
2315
2316 2011-04-03  Michael Matz  <matz@suse.de>
2317
2318         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
2319         an integer.
2320         * tree.h (tree_decl_non_common.vindex): Adjust comment.
2321
2322 2011-04-03  Michael Matz  <matz@suse.de>
2323
2324         * cgraphbuild.c (record_reference): Canonicalize constructor values.
2325         * gimple-fold.c (canonicalize_constructor_val): Accept being called
2326         without function context.
2327         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
2328         current_function_decl and cfun.
2329
2330 2011-04-03  Michael Matz  <matz@suse.de>
2331
2332         * tree.c (decl_init_priority_insert): Don't create entry for
2333         default priority.
2334         (decl_fini_priority_insert): Ditto.
2335         (fields_compatible_p, find_compatible_field): Remove.
2336         * tree.h (fields_compatible_p, find_compatible_field): Remove.
2337         * gimple.c (gimple_compare_field_offset): Adjust block comment.
2338
2339 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
2340
2341         * combine.c (try_combine): Remove useless local variable.
2342
2343 2011-04-03  Richard Guenther  <rguenther@suse.de>
2344             Ira Rosen  <ira.rosen@linaro.org>
2345
2346         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
2347         non-variable offsets and compare the remaining bases of the two
2348         accesses instead of looking for exact same data-ref.
2349
2350 2011-04-02  Kai Tietz  <ktietz@redhat.com>
2351
2352         PR target/48416
2353         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
2354
2355         * i386.c (ix86_is_msabi_thiscall): New helper function.
2356         (ix86_is_type_thiscall): New helper function.
2357         (ix86_comp_type_attributes): Handle thiscall for method-functions
2358         special.
2359         (init_cumulative_args): Likewise.
2360         (find_drap_reg): Likewise.
2361         (ix86_static_chain): Likewise.
2362         (x86_this_parameter): Likewise.
2363         (x86_output_mi_thunk): Likewise.
2364
2365 2011-04-01  Olivier Hainque  <hainque@adacore.com>
2366             Nicolas Setton  <setton@adacore.com>
2367             Eric Botcazou  <ebotcazou@adacore.com>
2368
2369         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
2370         (add_gnat_descriptive_type_attribute): New function.
2371         (gen_array_type_die): Call it.
2372         (gen_enumeration_type_die): Likewise.
2373         (gen_struct_or_union_type_die): Likewise.
2374         (modified_type_die): Likewise.
2375         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
2376         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
2377         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
2378
2379 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
2380
2381         PR bootstrap/48148
2382         * dwarf2out.c (resolve_addr): Don't call force_decl_die
2383         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
2384
2385         Revert:
2386         2011-03-17  Richard Guenther  <rguenther@suse.de>
2387
2388         PR bootstrap/48148
2389         * lto-cgraph.c (input_overwrite_node): Clear the abstract
2390         origin for decls in other ltrans units.
2391         (input_varpool_node): Likewise.
2392
2393 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
2394
2395         PR middle-end/48335
2396         * expr.c (expand_assignment): Handle all possibilities
2397         if TO_RTX is CONCAT.
2398         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
2399         (store_split_bit_field): If SUBREG_REG (op0) or
2400         op0 itself has smaller mode than word, return it
2401         for offset 0 and const0_rtx for out-of-bounds stores.
2402         If word is const0_rtx, skip it.
2403
2404 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
2405
2406         * config/h8300/h8300.c (print_operand_address): Rename to...
2407         (h8300_print_operand_address): ...this. Make static. Adjust comments.
2408         Call h8300_print_operand and h8300_print_operand_address instead of
2409         print_operand and print_operand_address. Declare.
2410         (print_operand): Renake to...
2411         (h8300_print_operand): ...this. Make static. Adjust comments.
2412         Call h8300_print_operand instead of print_operand. Declare.
2413         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
2414         (h8300_register_move_cost): Likewise.
2415         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
2416         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
2417         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
2418         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
2419         * config/h8300/h8300-protos.h (print_operand): Delete.
2420         (print_operand_address): Delete.
2421
2422 2011-04-01  Richard Henderson  <rth@redhat.com>
2423
2424         PR 48400
2425         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
2426         in strict mode before dwarf4.  Re-order tests to early out
2427         before switching sections.
2428
2429 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
2430
2431         * config/h8300/constraints.md: New file.
2432         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
2433         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
2434         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
2435         * config/h8300/predicates.md (bit_operand): Likewise.
2436         (incdec_operand): Use satisfies_constraint_M and
2437         satisfies_constraint_O.  Don't use C code block.
2438         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
2439         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
2440         (compute_mov_length): Use satisfies_constraint_G.
2441         (fix_bit_operand): Use satisfies_constraint_U.
2442         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
2443         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
2444         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
2445         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
2446         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
2447         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
2448         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2449         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
2450         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
2451         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
2452         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
2453         (EXTRA_MEMORY_CONSTRAINT): Delete.
2454
2455 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
2456             Michael Meissner  <meissner@linux.vnet.ibm.com>
2457
2458         PR target/48262
2459         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
2460         operands, as per the specifications.
2461
2462         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
2463         (vec_extract_evenv4sf): Ditto.
2464         (vec_extract_evenv8hi): Ditto.
2465         (vec_extract_evenv16qi): Ditto.
2466         (vec_extract_oddv4si): Ditto.
2467
2468 2011-03-31  Mark Wielaard  <mjw@redhat.com>
2469
2470         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
2471         high_pc attribute if the CU has no associated code. Only output
2472         DW_AT_entry_pc for CU if not generating strict dwarf and
2473         dwarf_version < 4.
2474
2475 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
2476
2477         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
2478         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
2479         out of ...
2480         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
2481         * final.c (final_start_function): Call the new function rather
2482         than using a NULL argument for dwarf2out_frame_debug.
2483
2484         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
2485         that contains the prologue.
2486
2487         * haifa-sched.c (queue_insn): New arg REASON.  All callers
2488         changed.  Print it in debugging output.
2489
2490         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
2491
2492         * sched-ebb.c (begin_schedule_ready): Remove second argument.
2493         Split most of the code into...
2494         (begin_move_insn): ... here.  New function.
2495         (ebb_sched_info): Add a pointer to it.
2496         * haifa-sched.c (scheduled_insns): New static variable.
2497         (sched_extend_ready_list): Allocate it.
2498         (schedule_block): Use it to record the order of scheduled insns.
2499         Perform RTL changes to move insns only after all scheduling
2500         decisions have been made.
2501         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
2502         begin_move_insn field.
2503         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
2504         * sched-int.h (struct haifa_sched_info): Remove second argument
2505         from begin_schedule_ready hook.  Add new member begin_move_insn.
2506         * sched-rgn.c (begin_schedule_ready): Remove second argument.
2507         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
2508
2509         * haifa-sched.c (prune_ready_list): New function, broken out of
2510         schedule_block.
2511         (schedule_block): Use it.
2512
2513 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2514
2515         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
2516
2517 2011-04-01  Kai Tietz  <ktietz@redhat.com>
2518
2519         * config.gcc (*-*-mingw*): Allow as option the
2520         posix threading model.
2521         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
2522         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
2523         definition.
2524         (CPP_SPEC): Add pthread/no-pthread handling.
2525         (LIB_SPEC): Likewise.
2526         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
2527         (LIB_SPEC): Likewise.
2528         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
2529         flag to pass -pthread option for shared libgcc build.
2530         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
2531         for shared libgcc build.
2532         * config/i386/t-mingw-pthread: New file.
2533         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
2534         New define to enable use of library pthread by default.
2535         * config/i386/mingw.opt (pthread): New driver option.
2536         (no-pthread): New driver option.
2537         * config/i386/cygming.opt: Make sure trailing empty line is retained.
2538         * config/i386/mingw-w64.opt: Likewise.
2539
2540 2011-04-01  Gary Funck <gary@intrepid.com>
2541
2542         * c-decl.c (grokdeclarator): Fix formatting.
2543
2544 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
2545
2546         * expr.c (emit_block_move_via_movmem): Use n_generator_args
2547         instead of n_operands.
2548         (set_storage_via_setmem): Likewise.
2549         * optabs.c (maybe_gen_insn): Likewise.
2550         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
2551         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
2552         (mips_expand_builtin_direct): Likewise.
2553         * config/spu/spu.c (expand_builtin_args): Likewise.
2554
2555 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
2556
2557         * recog.h (insn_data_d): Add n_generator_args.
2558         * genoutput.c (data): Likewise.
2559         (output_insn_data): Print it.
2560         (max_opno, num_dups): Delete.
2561         (scan_operands): Just fill in "d->operand[...]".
2562         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
2563
2564 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
2565
2566         * gensupport.h (pattern_stats): New structure.
2567         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
2568         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
2569         (max_operand_1, max_operand_vec): Delete.
2570         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
2571
2572 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
2573
2574         * emit-rtl.c (emit_pattern_after_setloc): New function.
2575         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
2576         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
2577         (emit_pattern_after): New function.
2578         (emit_insn_after, emit_jump_insn_after): Call it.
2579         (emit_call_insn_after, emit_debug_insn_after): Likewise.
2580         (emit_pattern_before_setloc): New function.
2581         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
2582         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
2583         Likewise.
2584         (emit_pattern_before): New function.
2585         (emit_insn_before, emit_jump_insn_before): Call it.
2586         (emit_call_insn_before, emit_debug_insn_before): Likewise.
2587
2588 2011-03-31  Richard Henderson  <rth@redhat.com>
2589
2590         * dwarf2out.c (dw_separate_line_info_ref): Remove.
2591         (dw_separate_line_info_entry): Remove.
2592         (enum dw_line_info_opcode): New.
2593         (dw_line_info_entry): Use it.
2594         (dw_line_info_table, dw_line_info_table_p): New.
2595         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
2596         (line_info_table, line_info_label_num): Remove.
2597         (line_info_table_in_use): Remove.
2598         (separate_line_info_table): Remove.
2599         (separate_line_info_table_allocated): Remove.
2600         (separate_line_info_table_in_use): Remove.
2601         (LINE_INFO_TABLE_INCREMENT): Remove.
2602         (line_info_label_num): New.
2603         (cur_line_info_table): New.
2604         (text_section_line_info, cold_text_section_line_info): New.
2605         (separate_line_info): New.
2606         (SEPARATE_LINE_CODE_LABEL): Remove.
2607         (print_dwarf_line_table): Remove.
2608         (debug_dwarf): Don't dump it.
2609         (output_one_line_info_table): New.
2610         (output_line_info): Use it.
2611         (new_line_info_table): New.
2612         (set_cur_line_info_table): New.
2613         (dwarf2out_switch_text_section): Use it.
2614         (dwarf2out_begin_function): Likewise.
2615         (push_dw_line_info_entry): New.
2616         (dwarf2out_source_line): Rewrite for new line info tables.
2617         (dwarf2out_init): Remove dead initailizations.
2618
2619 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
2620
2621         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
2622         various flags.
2623         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
2624         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
2625         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
2626         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
2627         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
2628         * opt-functions.awk (flag_init, switch_bit_fields): New.
2629         (switch_flags): Don't handle flags moved to bit-fields.  Don't
2630         generate CL_MISSING_OK or CL_SAVE.
2631         * optc-gen.awk: Update to generate bit-field output as well as
2632         flags field.
2633         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
2634         bit-field instead of CL_REJECT_DRIVER flag.
2635         * opts-common.c (generate_canonical_option,
2636         decode_cmdline_option): Use bit-fields instead of CL_* flags.
2637         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
2638         instead of CL_REJECT_NEGATIVE flag.
2639         * toplev.c (print_switch_values): Use cl_report bit-field instead
2640         of CL_REPORT flag.
2641
2642 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
2643
2644         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
2645         a zero minimum index only if it is redundant.
2646
2647 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
2648
2649         PR rtl-optimization/48381
2650         * ira-color.c (assign_hard_reg): Use hard reg set intersection
2651         instead of ira_class_hard_reg_index for calculating conflicting
2652         hard registers.
2653
2654 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
2655
2656         * cprop.c: Clean up hash table building.
2657         (reg_avail_info): Remove.
2658         (oprs_available_p): Remove.
2659         (record_last_reg_set_info): Remove.
2660         (record_last_set_info): Remove.
2661         (reg_available_p): New function.
2662         (gcse_constant_p): Do not treat unfolded conditions as constants.
2663         (make_set_regs_unavailable): New function.
2664         (hash_scan_set): Simplify with new reg_available_p.
2665         (compute_hash_table_work): Traverse insns stream only once.
2666         Do not compute reg_avail_info. Traverse insns in reverse order.
2667         Record implicit sets after recording explicit sets from the block.
2668
2669 2011-03-31  Michael Matz  <matz@suse.de>
2670
2671         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
2672
2673 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
2674
2675         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
2676         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
2677         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
2678         (h8300_mode_dependent_address_p): New function.
2679         (h8300_get_index): Make static.
2680
2681 2011-03-31  Jeff Law  <law@redhat.com>
2682
2683         * reload1.c (elimination_effects): Fix typo in recent change.
2684
2685         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
2686         typo potentially leading to null pointer dereference.
2687
2688         * caller-save.c (new_saved_hard_reg): Eliminate return value.
2689         (setup_save_areas): Corresponding changes to avoid useless
2690         assignments.
2691
2692         * jump.c (reversed_comparison_code_parts): Avoid successive return
2693         statements when REVERSE_CONDITION is defined.
2694
2695         * expr.c (expand_assignment): Avoid useless assignments.
2696         (expand_expr_real_1): Likewise.
2697         (expand_expr_real_2): Avoid useless statements.
2698
2699         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
2700
2701         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
2702
2703         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
2704         statements.
2705
2706         * stmt.c (expand_expr_stmt): Avoid useless assignment.
2707
2708 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
2709
2710         PR target/47109
2711         * doc/tm.texi.in (TARGET_VERSION): Remove.
2712         * doc/tm.texi: Regenerate.
2713         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
2714         * collect2.c (main): Don't use TARGET_VERSION.
2715         * mips-tdump.c (main): Don't use TARGET_VERSION.
2716         * mips-tfile.c (main): Don't use TARGET_VERSION.
2717         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
2718         * config/rs6000/vxworksae.h: Remove.
2719         * config/alpha/alpha.h (TARGET_VERSION): Remove.
2720         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
2721         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
2722         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
2723         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
2724         * config/arm/arm.h (TARGET_VERSION): Remove.
2725         * config/arm/coff.h (TARGET_VERSION): Remove.
2726         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
2727         * config/arm/elf.h (TARGET_VERSION): Remove.
2728         * config/arm/freebsd.h (TARGET_VERSION): Remove.
2729         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
2730         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
2731         * config/arm/pe.h (TARGET_VERSION): Remove.
2732         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
2733         * config/arm/semi.h (TARGET_VERSION): Remove.
2734         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
2735         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
2736         * config/arm/vxworks.h (TARGET_VERSION): Remove.
2737         * config/avr/avr.h (TARGET_VERSION): Remove.
2738         * config/bfin/bfin.h (TARGET_VERSION): Remove.
2739         * config/fr30/fr30.h (TARGET_VERSION): Remove.
2740         * config/frv/frv.h (TARGET_VERSION): Remove.
2741         * config/h8300/h8300.h (TARGET_VERSION): Remove.
2742         * config/i386/cygwin.h (TARGET_VERSION): Remove.
2743         * config/i386/darwin.h (TARGET_VERSION): Remove.
2744         * config/i386/darwin64.h (TARGET_VERSION): Remove.
2745         * config/i386/djgpp.h (TARGET_VERSION): Remove.
2746         * config/i386/freebsd.h (TARGET_VERSION): Remove.
2747         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
2748         * config/i386/gnu.h (TARGET_VERSION): Remove.
2749         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
2750         * config/i386/i386elf.h (TARGET_VERSION): Remove.
2751         * config/i386/linux.h (TARGET_VERSION): Remove.
2752         * config/i386/linux64.h (TARGET_VERSION): Remove.
2753         * config/i386/lynx.h (TARGET_VERSION): Remove.
2754         * config/i386/mingw32.h (TARGET_VERSION): Remove.
2755         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
2756         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
2757         * config/i386/netware.h (TARGET_VERSION): Remove.
2758         * config/i386/nto.h (TARGET_VERSION): Remove.
2759         * config/i386/openbsd.h (TARGET_VERSION): Remove.
2760         * config/i386/vxworks.h (TARGET_VERSION): Remove.
2761         * config/ia64/elf.h (TARGET_VERSION): Remove.
2762         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
2763         * config/ia64/hpux.h (TARGET_VERSION): Remove.
2764         * config/ia64/linux.h (TARGET_VERSION): Remove.
2765         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
2766         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
2767         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
2768         * config/lm32/lm32.h (TARGET_VERSION): Remove.
2769         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
2770         * config/m32c/m32c.h (TARGET_VERSION): Remove.
2771         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
2772         * config/m32r/m32r.h (TARGET_VERSION): Remove.
2773         * config/m68k/linux.h (TARGET_VERSION): Remove.
2774         * config/m68k/m68k.h (TARGET_VERSION): Remove.
2775         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
2776         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
2777         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
2778         * config/mep/mep.h (TARGET_VERSION): Remove.
2779         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
2780         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
2781         * config/mips/iris6.h (MACHINE_TYPE): Remove.
2782         * config/mips/linux.h (TARGET_VERSION): Remove.
2783         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
2784         * config/mips/vxworks.h (TARGET_VERSION): Remove.
2785         * config/mmix/mmix.h (TARGET_VERSION): Remove.
2786         * config/mn10300/linux.h (TARGET_VERSION): Remove.
2787         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
2788         * config/pa/pa.h (TARGET_VERSION): Remove.
2789         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
2790         * config/picochip/picochip.h (TARGET_VERSION): Remove.
2791         * config/rs6000/aix.h (TARGET_VERSION): Remove.
2792         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
2793         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
2794         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
2795         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
2796         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
2797         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
2798         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
2799         * config/rs6000/linux.h (TARGET_VERSION): Remove.
2800         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
2801         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
2802         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
2803         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
2804         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
2805         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
2806         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
2807         * config/s390/linux.h (TARGET_VERSION): Remove.
2808         * config/s390/s390.h (TARGET_VERSION): Remove.
2809         * config/s390/tpf.h (TARGET_VERSION): Remove.
2810         * config/score/score.h (TARGET_VERSION): Remove.
2811         * config/sh/linux.h (TARGET_VERSION): Remove.
2812         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
2813         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
2814         * config/sh/sh.h (TARGET_VERSION): Remove.
2815         * config/sh/sh64.h (TARGET_VERSION): Remove.
2816         * config/sh/superh.h (TARGET_VERSION): Remove.
2817         * config/sh/vxworks.h (TARGET_VERSION): Remove.
2818         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
2819         * config/sparc/linux.h (TARGET_VERSION): Remove.
2820         * config/sparc/linux64.h (TARGET_VERSION): Remove.
2821         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
2822         TARGET_NAME32, TARGET_NAME): Remove.
2823         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
2824         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
2825         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
2826         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
2827         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
2828         * config/spu/spu.h (TARGET_VERSION): Remove.
2829         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
2830         * config/v850/v850.h (TARGET_VERSION): Remove.
2831         * config/vax/linux.h (TARGET_VERSION): Remove.
2832         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
2833         * config/xtensa/elf.h (TARGET_VERSION): Remove.
2834         * config/xtensa/linux.h (TARGET_VERSION): Remove.
2835
2836 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
2837
2838         PR target/48142
2839         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
2840         frame-related from frame-unrelated adjustments to the stack pointer.
2841
2842 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
2843
2844         * common.opt (fdebug-types-section): Move earlier.
2845         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
2846
2847 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
2848
2849         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
2850         var.
2851
2852 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
2853
2854         * tree.h (CASE_CHAIN): Define.
2855         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
2856         (gimple_redirect_edge_and_branch): Likewise.
2857
2858 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2859
2860         PR middle-end/48367
2861         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
2862         calculation.
2863
2864 2011-03-30  Jeff Law  <law@redhat.com>
2865
2866         * PR bootstrap/48371
2867         * reload1.c (reload): Fix botch in last change.
2868
2869         * reload.h (struct reload): Fix typo introduced in last change.
2870
2871 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
2872
2873         * config/arm/arm.opt (mhard-float, msoft-float): Mark
2874         Undocumented.  Remove help text.
2875         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
2876         -mhard-float.
2877
2878 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
2879
2880         * doc/options.texi (NegativeAlias): Document.
2881         (Alias): Mention NegativeAlias.
2882         * opt-functions.awk: Handle NegativeAlias.
2883         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
2884         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
2885         * opts.h (CL_NEGATIVE_ALIAS): Define.
2886         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
2887         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
2888         OPT_mspe_.
2889         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
2890         Alias entries.
2891         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
2892         mno-spe and mno-isel instead of mspe=no and -misel=no.
2893
2894 2011-03-29  Mark Wielaard  <mjw@redhat.com>
2895
2896         * common.opt (fdebug-types-section): New flag.
2897         * doc/invoke.texi: Document new -fno-debug-types-section flag.
2898         * dwarf2out.c (use_debug_types): New define.
2899         (struct die_struct): Mark die_id with GTY desc use_debug_types.
2900         (print_die): Guard output of type unit signatures using
2901         use_debug_types.
2902         (build_abbrev_table): Replace assert of dwarf_version >= 4
2903         with assert on use_debug_types.
2904         (size_of_die): Likewise.
2905         (unmark_dies): Likewise.
2906         (value_format): Decide AT_ref_external form on use_debug_types.
2907         (output_die): Replace dwarf_version version check guard with
2908         use_debug_types where appropriate.
2909         (modified_type_die): Likewise.
2910         (gen_reference_type_die): Likewise.
2911         (dwarf2out_start_source_file): Likewise.
2912         (dwarf2out_end_source_file): Likewise.
2913         (prune_unused_types_walk_attribs): Likewise.
2914         (dwarf2out_finish): Likewise.
2915
2916 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2917
2918         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
2919
2920 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
2921
2922         PR rtl-optimization/48332
2923         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
2924         mode of input operand N and modeN to its actual mode.
2925
2926 2011-03-30  Jeff Law  <law@redhat.com>
2927
2928         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
2929         define accessor macro.
2930         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
2931         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
2932         (reg_equiv_init): Likewise.
2933         (reg_equivs_size): New variable.
2934         (reg_equiv_init_size): Remove.
2935         (allocate_initial_values): Move prototype to here from....
2936         * integrate.h (allocate_initial_values): Remove prototype.
2937         * integrate.c: Include reload.h.
2938         (allocate_initial_values): Corresponding changes.
2939         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
2940         (fix_reg_equiv_init, no_equiv): Corresponding changes.
2941         (update_equiv_regs): Corresponding changes.
2942         (ira): Corresponding changes.
2943         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
2944         (push_secondary_reload): Corresponding changes.
2945         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
2946         (make_memloc, find_reloads_address): Corresponding changes.
2947         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
2948         (find_reloads_address_1): Corresponding changes.
2949         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
2950         (refers_to_regno_for_reload_p): Corresponding changes.
2951         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
2952         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
2953         * reload1.c: Include ggc.h.
2954         (grow_reg_equivs): New function.
2955         (replace_pseudos_in, reload): Corresponding changes.
2956         (calculate_needs_all_insns, alter_regs): Corresponding changes.
2957         (eliminate_regs_1, elimination_effects): Corresponding changes.
2958         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
2959         (delete_output_reload): Likewise.
2960         * caller-save.c (mark_referenced_regs): Corresponding changes.
2961         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
2962         * frv/predicates.md (frv_load_operand): Corresponding changes.
2963         * microblaze/microblaze.c (double_memory_operand): Corresponding
2964         changes.
2965         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
2966         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
2967         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
2968         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
2969         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
2970         changes.
2971         * pa/pa.c (emit_move_sequence): Corresponding changes.
2972         * vax/vax.c (nonindexed_address_p): Corresponding changes.
2973
2974 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
2975
2976         PR target/47551
2977         * config/arm/arm.c (coproc_secondary_reload_class): Handle
2978         structure modes.  Don't check neon_vector_mem_operand for
2979         vector or structure modes.
2980
2981 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
2982             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2983
2984         PR target/43590
2985         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
2986         operand 1 and reshuffle the operands to match.
2987         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
2988
2989 2011-03-30  Christian Schüler  <cschueler@gmx.de>
2990
2991         PR driver/48208
2992         * config/c.opt (F): Added 'Driver' to -F option.
2993
2994         PR driver/48260
2995         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
2996           handler function.
2997         * config/darwin.opt: Added '-arch' option.
2998
2999 2011-03-30  Nick Clifton  <nickc@redhat.com>
3000
3001         * config/rx/rx.md: Add peepholes and patterns to combine
3002         extending loads and simple arithmetic instructions.
3003         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
3004         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
3005         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
3006         modes to use pre-decrement and post-increment addressing.
3007         (rx_is_restricted_memory_address): Add range checking of REG+INT
3008         addresses.
3009         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
3010         (rx_memory_move_cost): Adjust cost of stores.
3011         (rx_adjust_insn_length): New function.
3012
3013 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
3014
3015         PR c/48305
3016         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
3017         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
3018         matching arg00/arg01 types.
3019
3020 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
3021
3022         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
3023         last_location to UNKNOWN_LOCATION.
3024
3025 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
3026
3027         PR target/48349
3028         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
3029         FLOAT_SSE_REGS.
3030
3031 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
3032             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3033
3034         PR bootstrap/48337
3035         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
3036         Init(PROCESSOR_V7).
3037         (sparc_cpu): Likewise.
3038         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
3039         PROCESSOR_V7.
3040
3041 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
3042
3043         PR target/48336
3044         PR middle-end/48342
3045         PR rtl-optimization/48345
3046         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
3047         hard regs for given mode from profitable regs when doing secondary
3048         allocation.
3049
3050 2011-03-29  Jeff Law  <law@redhat.com>
3051
3052         PR bootstrap/48327
3053         * tree-ssa-threadupdate.c (struct redirection_data): Remove
3054         do_not_duplicate field.
3055         (lookup_redirection_data): Corresponding changes.
3056         (create_duplicates): Always create a template block.
3057         (redirect_edges): Remove code which reused the original block
3058         when it was going to become unreachable code.
3059         (thread_block): Don't set do_not_duplicate field.
3060
3061 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
3062
3063         * lto-opts.c (register_user_option_p, lto_register_user_option):
3064         Make type argument unsigned.
3065         * lto-streamer.h (lto_register_user_option): Make type argument
3066         unsigned.
3067         * opth-gen.awk: Make CL_* macros unsigned.
3068         * opts-common.c (find_opt): Make lang_mask argument unsigned.
3069         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
3070         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
3071         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
3072         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
3073         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
3074         (find_opt): Make lang_mask argument unsigned.
3075
3076 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
3077
3078         PR rtl-optimization/48331
3079         PR rtl-optimization/48334
3080         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
3081         for any used algorithm.
3082
3083 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
3084
3085         * ira-conflicts.c (build_object_conflicts): Add unused attribute
3086         to parent_max.
3087
3088 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
3089
3090         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
3091         (alpha_option_override): Don't set alpha_sr_alias_set.
3092         (emit_frame_store_1): Use gen_frame_mem rather than calling
3093         set_mem_alias_set.
3094         (alpha_expand_epilogue): Ditto.
3095
3096 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
3097
3098         PR tree-optimization/48290
3099         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
3100         vectorization, check that relevant phis in the basic block after
3101         the inner loop are really inner loop's exit phis.
3102
3103 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
3104
3105         PR debug/48190
3106         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
3107         (cached_dw_loc_list_def): New structure.
3108         (cached_dw_loc_list): New typedef.
3109         (cached_dw_loc_list_table): New variable.
3110         (cached_dw_loc_list_table_hash): New function.
3111         (cached_dw_loc_list_table_eq): Likewise.
3112         (add_location_or_const_value_attribute): Take a bool cache_p.
3113         Cache the list when the parameter is true.
3114         (gen_formal_parameter_die): Update caller.
3115         (gen_variable_die): Likewise.
3116         (dwarf2out_finish): Likewise.
3117         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
3118         while generating debug info for the decl.
3119         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
3120         (dwarf2out_init): Initialize cached_dw_loc_list_table.
3121         (resolve_addr): Cache the result of resolving a chain of
3122         location lists.
3123
3124 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
3125
3126         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
3127         conflict object hard regset nodes have intersecting hard reg sets.
3128
3129         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
3130         after regstat_init_n_sets_and_refs.
3131
3132         * ira.c: Add more comments at the top.
3133         (setup_stack_reg_pressure_class, setup_pressure_classes):
3134         Add comments how we compute the register pressure classes.
3135         (setup_allocno_and_important_classes): Add more comments.
3136         (setup_class_translate_array, reorder_important_classes)
3137         (setup_reg_class_relations): Add comments.
3138
3139         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
3140         start of the file.
3141
3142         * ira-color.c: Add 2011 to the Copyright line.
3143         (assign_hard_reg):  Add more comments.
3144         (improve_allocation): Ditto.
3145
3146         * ira-costs.c: Add 2011 to the Copyright line.
3147         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
3148         comments.
3149         (setup_regno_cost_classes_by_mode): Ditto.
3150
3151         Initial patches from ira-improv branch:
3152
3153         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
3154
3155         * ira-build.c: (ira_create_object): Remove initialization of
3156         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
3157         (ira_create_allocno): Remove initialization of
3158         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
3159         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
3160         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
3161         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
3162         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
3163         Initialize ALLOCNO_ADD_DATA.
3164         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
3165         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
3166         ALLOCNO_REG.
3167         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
3168         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
3169
3170         * ira.c (ira_reallocate): Remove.
3171         (setup_pressure_classes): Call
3172         ira_init_register_move_cost_if_necessary.  Use
3173         ira_register_move_cost instead of ira_get_register_move_cost.
3174         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
3175         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
3176
3177         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
3178         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
3179         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
3180         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
3181         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
3182         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
3183         Fix formatting.
3184         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
3185         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
3186         (struct allocno_color_data): New.
3187         (allocno_color_data_t): New typedef.
3188         (allocno_color_data): New definition.
3189         (ALLOCNO_COLOR_DATA): New macro.
3190         (struct object_color_data): New.
3191         (object_color_data_t): New typedef.
3192         (object_color_data): New definition.
3193         (OBJECT_COLOR_DATA): New macro.
3194         (update_copy_costs, calculate_allocno_spill_cost): Call
3195         ira_init_register_move_cost_if_necessary.  Use
3196         ira_register_move_cost instead of ira_get_register_move_cost.
3197         (move_spill_restore, update_curr_costs): Ditto.
3198         (allocno_spill_priority): Make it inline.
3199         (color_pass): Allocate and free allocno_color_dat and object_color_data.
3200         (struct coalesce_data, coalesce_data_t): New.
3201         (allocno_coalesce_data): New definition.
3202         (ALLOCNO_COALESCE_DATA): New macro.
3203         (merge_allocnos, coalesced_allocno_conflict_p): Use
3204         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
3205         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
3206         (coalesce_allocnos): Ditto.
3207         (setup_coalesced_allocno_costs_and_nums): Ditto.
3208         (collect_spilled_coalesced_allocnos): Ditto.
3209         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
3210         (setup_slot_coalesced_allocno_live_ranges): Ditto.
3211         (coalesce_spill_slots): Ditto.
3212         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
3213         free allocno_coalesce_data.
3214
3215         * ira-conflicts.c: Fix formatting.
3216         (process_regs_for_copy): Call
3217         ira_init_register_move_cost_if_necessary.  Use
3218         ira_register_move_cost instead of ira_get_register_move_cost.
3219         (build_object_conflicts): Optimize.
3220
3221         * ira-costs.c (record_reg_classes): Optimize.  Call
3222         ira_init_register_move_cost_if_necessary.  Use
3223         ira_register_move_cost, ira_may_move_in_cost, and
3224         ira_may_move_out_cost instead of ira_get_register_move_cost and
3225         ira_get_may_move_cost.
3226         (record_address_regs): Ditto.
3227         (scan_one_insn): Optimize.
3228         (find_costs_and_classes): Optimize.
3229         (process_bb_node_for_hard_reg_moves): Call
3230         ira_init_register_move_cost_if_necessary.  Use
3231         ira_register_move_cost instead of ira_get_register_move_cost.
3232
3233         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
3234         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
3235         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
3236         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
3237         definitions.
3238         (ira_initiate_emit_data, ira_finish_emit_data)
3239         (create_new_allocno): New functions.
3240         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
3241         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
3242         Use ira_register_move_cost instead of ira_get_register_move_cost.
3243
3244         * ira-int.h: Fix some comments.
3245         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
3246         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
3247         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
3248         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
3249         add_data.
3250         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
3251         bitfield after mode.  Make hard_regno a short int.  Make
3252         hard_regno short.  Remove first_coalesced_allocno and
3253         next_coalesced_allocno.  Move mem_optimized_dest_p,
3254         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
3255         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
3256         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
3257         temp, colorable_p.  Add new member add_data.
3258         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
3259         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
3260         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
3261         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
3262         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
3263         (ALLOCNO_ADD_DATA): New macro.
3264         (ira_emit_data_t): New typedef.
3265         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
3266         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
3267         from struct ira_allocno.
3268         (ALLOCNO_EMIT_DATA): New macro.
3269         (ira_allocno_emit_data, allocno_emit_reg): New.
3270         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
3271         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
3272         (OBJECT_ADD_DATA): New macro.
3273         (ira_reallocate): Remove.
3274         (ira_initiate_emit_data, ira_finish_emit_data): New.
3275         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
3276         (ira_init_register_move_cost_if_necessary): New.
3277         (ira_object_conflict_iter_next): Merge into
3278         ira_object_conflict_iter_cond.
3279         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
3280
3281         * ira-live.c: (process_single_reg_class_operands): Call
3282         ira_init_register_move_cost_if_necessary.  Use
3283         ira_register_move_cost instead of ira_get_register_move_cost.
3284
3285         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
3286
3287         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
3288
3289         * ira-costs.c: Fix formatting.
3290         (cost_classes, cost_classes_num): Remove.
3291         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
3292         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
3293         (cost_classes_del, cost_classes_htab): New.
3294         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
3295         (initiate_regno_cost_classes, setup_cost_classes): New.
3296         (setup_regno_cost_classes_by_aclass): New.
3297         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
3298         (record_reg_classes): Use regno_cost_classes instead of
3299         cost_classes.  Move checking opposite operand up.
3300         (record_address_regs): Use regno_cost_classes
3301         instead of cost_classes.
3302         (scan_one_insn): Ditto.  Use always general register.
3303         (print_allocno_costs): Use regno_cost_classes instead of
3304         cost_classes.
3305         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
3306         (find_costs_and_classes): Set up cost classes for each registers.
3307         Use also their mode for this.  Use regno_cost_classes instead of
3308         cost_classes.
3309         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
3310         cost_classes.
3311         (free_ira_costs, ira_init_costs): Don't use cost_classes.
3312         (ira_costs, ira_set_pseudo_classes): Call
3313         initiate_regno_cost_classes and finish_regno_cost_classes.
3314
3315         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
3316
3317         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
3318
3319         * target.def (ira_cover_classes): Remove.
3320
3321         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
3322
3323         * doc/tm.texi.in: Ditto.
3324
3325         * ira-conflicts.c: Remove mentioning cover classes from the file.
3326         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
3327         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
3328
3329         * targhooks.c (default_ira_cover_classes): Remove.
3330
3331         * targhooks.h (default_ira_cover_classes): Ditto.
3332
3333         * haifa-sched.c: Remove mentioning cover classes from the file.
3334         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
3335         ira_pressure_classes and ira_pressure_classes_num instead of
3336         ira_reg_class_cover_size and ira_reg_class_cover.  Use
3337         sched_regno_pressure_class instead of sched_regno_cover_class.
3338         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
3339         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
3340
3341         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
3342         classes from the file.
3343         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
3344         (struct object_hard_regs, struct object_hard_regs_node): New.
3345         (struct ira_object): New members profitable_hard_regs,
3346         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
3347         (struct ira_allocno): Rename cover_class to aclass.  Rename
3348         cover_class_cost and updated_cover_class_cost to class_cost and
3349         updated_class_cost.  Remove splay_removed_p and
3350         left_conflict_size.  Add new members colorable_p.
3351         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
3352         (ALLOCNO_COLORABLE_P): New macro.
3353         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
3354         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
3355         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
3356         (OBJECT_...): Rename parameter C to O.
3357         (OBJECT_PROFITABLE_HARD_REGS): New macro.
3358         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
3359         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
3360         (struct target_ira_int): New members x_ira_max_memory_move_cost,
3361         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
3362         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
3363         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
3364         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
3365         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
3366         x_ira_reg_class_subunion.
3367         (ira_max_memory_move_cost, ira_max_register_move_cost)
3368         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
3369         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
3370         (ira_important_class_nums, ira_reg_class_superunion): New macros.
3371         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
3372         (ira_reg_class_union): Rename to ira_reg_class_subunion.
3373         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
3374         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
3375         (ira_tune_allocno_costs_and_cover_classes): Rename to
3376         ira_tune_allocno_costs.
3377         (ira_debug_hard_regs_forest): New.
3378         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
3379         (ira_object_conflict_iter_next): Fix comments.
3380         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
3381         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
3382         cover_class to aclass.
3383         (ira_allocate_and_accumulate_costs): Ditto.
3384         (ira_allocate_and_set_or_copy_costs): Ditto.
3385
3386         * opts.c (decode_options): Remove ira_cover_class check.
3387
3388         * ira-color.c: Remove mentioning cover classes from the file.  Use
3389         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
3390         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
3391         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
3392         (splay-tree.h): Remove include.
3393         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
3394         before copy_freq_compare_func.
3395         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
3396         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
3397         New definitions.
3398         (hard_regs_roots, hard_regs_node_vec): Ditto.
3399         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
3400         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
3401         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
3402         (create_new_object_hard_regs_node): Ditto.
3403         (add_new_object_hard_regs_node_to_forest): Ditto.
3404         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
3405         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
3406         Ditto.
3407         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
3408         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
3409         (remove_unused_object_hard_regs_nodes): Ditto.
3410         (enumerate_object_hard_regs_nodes): Ditto.
3411         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
3412         (object_hard_regs_subnode_t): Ditto.
3413         (struct object_hard_regs_subnode): Ditto.
3414         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
3415         (setup_object_hard_regs_subnode_index): Ditto.
3416         (get_object_hard_regs_subnodes_num): Ditto.
3417         (form_object_hard_regs_nodes_forest): Ditto.
3418         (finish_object_hard_regs_nodes_tree): Ditto.
3419         (finish_object_hard_regs_nodes_forest): Ditto.
3420         (allocnos_have_intersected_live_ranges_p): Rename to
3421         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
3422         (pseudos_have_intersected_live_ranges_p): Rename to
3423         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
3424         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
3425         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
3426         (update_copy_costs): Remove assert.  Skip cost update if the hard
3427         reg does not belong the class.
3428         (assign_hard_reg): Process only profitable hard regs.
3429         (uncolorable_allocnos_num): Make it scalar.
3430         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
3431         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
3432         and ira_reg_class_max_nregs.
3433         (bucket_allocno_compare_func): Check frequency first.
3434         (sort_bucket): Add compare function as a parameter.
3435         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
3436         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
3437         (push_allocno_to_stack): Rewrite for checking new allocno
3438         colorability.
3439         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
3440         (push_only_colorable): Pass new parameter to sort_bucket.
3441         (push_allocno_to_spill): Remove.
3442         (allocno_spill_priority_compare): Make it inline and rewrite.
3443         (splay_tree_allocate, splay_tree_free): Remove.
3444         (allocno_spill_sort_compare): New function.
3445         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
3446         build and use splay tree.  Choose first allocno in uncolorable
3447         allocno bucket to spill.  Remove setting spill cost.
3448         (all_conflicting_hard_regs): Remove.
3449         (setup_allocno_available_regs_num): Check only profitable hard
3450         regs.  Print info about hard regs nodes.
3451         (setup_allocno_left_conflicts_size): Remove.
3452         (put_allocno_into_bucket): Don't call
3453         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
3454         (improve_allocation): New.
3455         (color_allocnos): Call setup_profitable_hard_regs,
3456         form_object_hard_regs_nodes_forest, improve_allocation,
3457         finish_object_hard_regs_nodes_forest.  Setup spill cost.
3458         (print_loop_title): Use pressure classes.
3459         (color_allocnso): Ditto.
3460         (do_coloring): Remove allocation and freeing splay_tree_node_pool
3461         and allocnos_for_spilling.
3462         (ira_sort_regnos_for_alter_reg): Don't setup members
3463         {first,next}_coalesced_allocno.
3464         (color): Remove allocating and freeing removed_splay_allocno_vec.
3465         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
3466         prohibited_class_mode_regs.
3467
3468         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
3469         formatting.
3470         (update_allocno_pressure_excess_length): Use pressure classes.
3471         (inc_register_pressure, dec_register_pressure): Check for pressure
3472         class.
3473         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
3474         pressure class.  Use ira_reg_class_nregs instead of
3475         ira_reg_class_max_nregs.
3476         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
3477         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
3478         (single_reg_class): Use ira_reg_class_nregs instead of
3479         ira_reg_class_max_nregs.
3480         (process_bb_node_lives): Use pressure classes.
3481
3482         * ira-emit.c: Remove mentioning cover classes from the file.  Use
3483         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
3484         (change_loop): Use pressure classes.
3485         (modify_move_list): Call ira_set_allocno_class instead of
3486         ira_set_allocno_cover_class.
3487
3488         * ira-build.c: Remove mentioning cover classes from the file.  Use
3489         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
3490         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
3491         ALLOCNO_UPDATED_CLASS_COST instead of
3492         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
3493         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
3494         (ira_create_allocno): Remove initialization of
3495         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
3496         ALLOCNO_COLORABLE_P.
3497         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
3498         Update conflict regs for the objects.
3499         (create_cap_allocno): Remove assert.  Don't propagate
3500         ALLOCNO_AVAILABLE_REGS_NUM.
3501         (ira_free_allocno_costs): New function.
3502         (finish_allocno): Change a part of code into call of
3503         ira_free_allocno_costs.
3504         (low_pressure_loop_node_p): Use pressure classes.
3505         (object_range_compare_func): Don't compare classes.
3506         (setup_min_max_conflict_allocno_ids): Ditto.
3507
3508         * loop-invariant.c: Remove mentioning cover classes from the file.
3509         Use ira_pressure_classes and ira_pressure_classes_num instead of
3510         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
3511         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
3512         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
3513         Use reg_allocno_class instead of reg_cover_class.
3514         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
3515         STACK_REG_COVER_CLASS.
3516         (get_regno_cover_class): Rename to get_regno_pressure_class.
3517         (move_loop_invariants): Initialize and finalize regstat.
3518
3519         * ira.c: Remove mentioning cover classes from the file.  Add
3520         comments about coloring without cover classes.  Use ALLOCNO_CLASS
3521         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
3522         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
3523         setup_class_subset_and_memory_move_costs.
3524         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
3525         (setup_cover_and_important_classes): Rename to
3526         setup_allocno_and_important_classes.
3527         (setup_class_translate_array): New.
3528         (setup_class_translate): Call it for allocno and pressure classes.
3529         (cover_class_order): Rename to allocno_class_order.
3530         (comp_reg_classes_func): Use ira_allocno_class_translate instead
3531         of ira_class_translate.
3532         (reorder_important_classes): Set up ira_important_class_nums.
3533         (setup_reg_class_relations): Set up ira_reg_class_superunion.
3534         (print_class_cover): Rename to print_classes.  Add parameter.
3535         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
3536         Print pressure classes too.
3537         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
3538         setup_reg_subclasses.
3539         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
3540         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
3541         (setup_prohibited_class_mode_regs): Use
3542         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
3543         (clarify_prohibited_class_mode_regs): New function.
3544         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
3545         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
3546         (ira_init_once): Initialize them.
3547         (free_register_move_costs): Process them.
3548         (ira_init): Move calls of find_reg_classes and
3549         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
3550         Call clarify_prohibited_class_mode_regs.
3551         (ira_no_alloc_reg): Remove.
3552         (too_high_register_pressure_p): Use pressure classes.
3553
3554         * sched-deps.c: Remove mentioning cover classes from the file.
3555         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
3556         ira_pressure_classes and ira_pressure_classes_num instead of
3557         ira_reg_class_cover_size and ira_reg_class_cover.
3558         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
3559         sched_regno_pressure_class instead of sched_regno_cover_class.
3560         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
3561         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
3562
3563         * ira.h: Add 2010 to Copyright.
3564         (ira_no_alloc_reg): Remove external.
3565         (struct target_ira): Rename x_ira_hard_regno_cover_class,
3566         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
3567         x_ira_class_translate to x_ira_hard_regno_allocno_class,
3568         x_ira_allocno_classes_num, x_ira_allocno_classes, and
3569         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
3570         x_ira_pressure_classes, x_ira_pressure_class_translate, and
3571         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
3572         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
3573         x_ira_no_alloc_regs.
3574         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
3575         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
3576         ira_allocno_classes_num and ira_allocno_classes.
3577         (ira_class_translate): Rename to ira_allocno_class_translate.
3578         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
3579         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
3580         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
3581         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
3582         (ira_no_alloc_regs): New.
3583
3584         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
3585         classes from the file.  Use ALLOCNO_CLASS instead of
3586         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
3587         ALLOCNO_COVER_CLASS_COST.
3588         (regno_cover_class): Rename to regno_aclass.
3589         (record_reg_classes): Use ira_reg_class_subunion instead of
3590         ira_reg_class_union.
3591         (record_address_regs): Check overflow.
3592         (scan_one_insn): Ditto.
3593         (print_allocno_costs): Print total mem cost fore regional allocation.
3594         (print_pseudo_costs): Use REG_N_REFS.
3595         (find_costs_and_classes): Use classes intersected with them on the
3596         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
3597         ira_reg_class_union.  Use ira_allocno_class_translate and
3598         regno_aclass instead of ira_class_translate and regno_cover_class.
3599         Modify code for finding regno_aclass.  Setup preferred classes for
3600         the next pass.
3601         (setup_allocno_cover_class_and_costs): Rename to
3602         setup_allocno_class_and_costs.  Use regno_aclass instead of
3603         regno_cover_class.  Use ira_set_allocno_class instead of
3604         ira_set_allocno_cover_class.
3605         (init_costs, finish_costs): Use regno_aclass instead of
3606         regno_cover_class.
3607         (ira_costs): Use setup_allocno_class_and_costs instead of
3608         setup_allocno_cover_class_and_costs.
3609         (ira_tune_allocno_costs_and_cover_classes): Rename to
3610         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
3611         by processing objects.  Use ira_reg_class_max_nregs instead of
3612         ira_reg_class_nregs.
3613
3614         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
3615
3616         * sched-int.h: Remove mentioning cover classes from the file.
3617         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
3618
3619         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
3620         classes from the file.
3621         (struct reg_pref): Rename coverclass into allocnoclass.
3622         (reg_cover_class): Rename to reg_allocno_class.
3623
3624         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
3625
3626         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
3627
3628         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
3629
3630         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
3631
3632         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
3633
3634         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
3635
3636         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
3637
3638         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
3639
3640         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
3641
3642         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
3643
3644         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
3645         (i386_ira_cover_classes): Ditto.
3646
3647         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
3648
3649         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
3650
3651         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
3652
3653         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
3654
3655         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
3656
3657         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
3658
3659         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
3660         (mips_ira_cover_classes): Ditto.
3661
3662         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
3663
3664         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
3665
3666         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
3667
3668         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
3669
3670         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
3671
3672         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
3673         (IRA_COVER_CLASSES_VSX): Ditto.
3674
3675         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
3676         (rs6000_ira_cover_classes): Ditto.
3677
3678         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
3679
3680         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
3681
3682         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
3683
3684         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
3685
3686         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
3687
3688         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
3689
3690         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
3691
3692         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
3693
3694         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
3695
3696         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
3697
3698 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
3699
3700         PR debug/48253
3701         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
3702         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
3703         dw_fde_unlikely_section_end_label, cold_in_std_section,
3704         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
3705         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
3706         fields.
3707         (output_fde): Use dw_fde_second_{begin,end} if second is
3708         true, otherwise dw_fde_{begin,end}.
3709         (output_call_frame_info): Test dw_fde_second_begin != NULL
3710         instead of dw_fde_switched_sections.
3711         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
3712         fields, initialize new fields.  Initialize in_std_section
3713         unconditionally from the first partition.
3714         (dwarf2out_end_epilogue): Don't override dw_fde_end when
3715         dw_fde_second_begin is non-NULL.
3716         (dwarf2out_switch_text_section): Stop initializing removed
3717         dw_fde_struct fields, initialize new fields, initialize
3718         also dw_fde_end here.  Set dw_fde_switch_cfi even when
3719         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
3720         (struct var_loc_list_def): Add last_before_switch field.
3721         (arange_table, arange_table_allocated, arange_table_in_use,
3722         ARANGE_TABLE_INCREMENT, add_arange): Removed.
3723         (size_of_aranges): Count !in_std_section and !second_in_std_section
3724         hunks in fdes, instead of looking at arange_table_in_use.
3725         (output_aranges): Add aranges_length argument, don't call
3726         size_of_aranges here.  Instead of using aranges_table*
3727         emit ranges for fdes when !in_std_section resp.
3728         !second_in_std_section.
3729         (dw_loc_list): Break ranges crossing section switch.
3730         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
3731         use dw_fde_second_end instead of dw_fde_end as end of last range.
3732         (gen_subprogram_die): Don't call add_arange.  Use
3733         dw_fde_{begin,end} for first partition and if switched
3734         section dw_fde_second_{begin,end} for the second.
3735         (var_location_switch_text_section_1,
3736         var_location_switch_text_section): New functions.
3737         (dwarf2out_begin_function): Initialize cold_text_section even
3738         when function_section () isn't text_section.
3739         (prune_unused_types): Don't walk arange_table.
3740         (dwarf2out_finish): Don't needlessly test
3741         flag_reorder_blocks_and_partition when testing cold_text_section_used.
3742         If info_section_emitted, call size_of_aranges and if it indicates
3743         non-empty .debug_aranges, call output_aranges with the computed
3744         size.  Stop using removed dw_fde_struct fields, use
3745         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
3746         for second.
3747
3748         PR debug/48203
3749         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
3750         create ENTRY_VALUE if incoming or address of incoming's MEM
3751         is a hard REG.
3752         * dwarf2out.c (mem_loc_descriptor): Don't emit
3753         DW_OP_GNU_entry_value of DW_OP_fbreg.
3754         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
3755         on ENTRY_VALUE is able to find the canonical parameter VALUE.
3756         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
3757         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
3758         ENTRY_VALUE_EXPs.
3759         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
3760         is a REG_P or MEM_P with REG_P address, compute hash directly
3761         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
3762         (preserve_only_constants): Don't clear VALUES forwaring
3763         ENTRY_VALUE to some other VALUE.
3764
3765 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
3766
3767         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
3768         instead of GEN_INT.
3769
3770 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
3771
3772         * cfgexpand.c (expand_gimple_cond): Always set the source location and
3773         block before expanding the statement.
3774         (expand_gimple_stmt_1): Likewise.  Set them here...
3775         (expand_gimple_stmt): ...and not here.  Tidy.
3776         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
3777         unknown.
3778
3779 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
3780
3781         * Makefile.in: New rule for cprop.o.
3782         * gcse.c: Move constant/copy propagation to cprop.c.
3783         (compute_local_properties): Only handle expression tables.
3784         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
3785         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
3786         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
3787         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
3788         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
3789         compute_cprop_data, find_used_regs, try_replace_reg,
3790         find_avail_set, cprop_jump, constprop_register, cprop_insn,
3791         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
3792         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
3793         find_bypass_set, reg_killed_on_edge, bypass_block,
3794         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
3795         execute_rtl_cprop, pass_rtl_cprop): Move to...
3796         * cprop.c: ...here.  New file, constant/copy propagation for RTL
3797         moved from gcse.c to here with minor cleanups in duplicated code.
3798
3799 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
3800
3801         * config/i386/i386.c (flag_opts): Fix a typo in
3802         -mavx256-split-unaligned-store.
3803
3804 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
3805
3806         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
3807         LIBCALL_VALUE): Remove macros.
3808         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3809         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3810         (h8300_function_value, h8300_libcall_value,
3811         h8300_function_value_regno_p): New functions.
3812
3813 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
3814
3815         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
3816
3817 2011-03-28  Jeff Law  <law@redhat.com>
3818
3819         * tree-ssa-threadupdate.c (redirect_edges): Call
3820         create_edge_and_update_destination_phis as needed.
3821         (create_edge_and_update_destination_phis): Accept new BB argument.
3822         All callers updated.
3823         (thread_block): Do not update the profile when threading around
3824         intermediate blocks.
3825         (thread_single_edge): Likewise.
3826         (determine_bb_domination_status): If BB is not a successor of the
3827         loop header, return NONDOMINATING.
3828         (register_jump_thread): Note when we register a jump thread around
3829         an intermediate block.
3830         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
3831         (thread_across_edge): Use it.
3832
3833 2011-03-28  Tristan Gingold  <gingold@adacore.com>
3834
3835         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
3836         when for_return is 2.
3837
3838 2011-03-28  Jeff Law  <law@redhat.com>
3839
3840         * var-tracking.c (canonicalize_values_mark): Delete unused
3841         lhs assignment.
3842         (canonicalize_values_star, set_variable_part): Likewise.
3843         (clobber_variable_part, delete_variable_part): Likewise.
3844
3845 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
3846
3847         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
3848
3849 2011-03-28  Martin Jambor  <mjambor@suse.cz>
3850
3851         * tree-inline.c (expand_call_inline): Do not check that destination
3852         node is analyzed.
3853         (optimize_inline_calls): Assert that destination node is analyzed.
3854         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
3855         not call tree_lowering_passes.
3856         * cgraph.h (cgraph_analyze_function): Declare.
3857         * cgraphunit.c (cgraph_analyze_function): Make public.
3858
3859 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
3860
3861         * config/sparc/sparc-opts.h: New.
3862         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
3863         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
3864         (sparc_option_override): Store processor_type enumeration rather
3865         than string in cpu_default.  Remove name and enumeration from
3866         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
3867         without using sparc_select.  Use target_flags_explicit instead of
3868         fpu_option_set.
3869         * config/sparc/sparc.h (enum processor_type): Move to
3870         sparc-opts.h.
3871         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
3872         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
3873         HeaderInclude entry.
3874         (mcpu=, mtune=): Use Var and Enum.
3875         (sparc_processor_type): New Enum and EnumValue entries.
3876
3877 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3878             Iain Sandoe  <iains@gcc.gnu.org>
3879
3880         PR target/48245
3881         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
3882
3883 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
3884
3885         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
3886         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
3887         Insert new statements at it in lieu of STMT.
3888         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
3889         * tree-vect-stmts.c (vectorizable_store): Likewise.
3890         (vectorizable_load): Likewise.
3891
3892 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
3893
3894         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
3895         (divtf3): Ditto.
3896         (multf3): Ditto.
3897         (subtf3): Ditto.
3898
3899 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3900
3901         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
3902         unaligned 256bit load/store.
3903         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
3904         (*avx_movdqu<avxmodesuffix>): Likewise.
3905
3906 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3907
3908         PR target/48288
3909         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
3910         * config/pa/pa.md (iordi3): Use new predicate in expander.
3911         (iorsi3): Likewise.
3912
3913 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
3914
3915         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
3916         FUNCTION_VALUE_REGNO_P): Remove macros.
3917         * config/mips/mips-protos.h (mips_function_value): Remove.
3918         * config/mips/mips.c (mips_function_value): Rename to...
3919         (mips_function_value_1): ... this. Make static.  Handle receiving
3920         the function type in 'fn_decl_or_type' argument.
3921         (mips_function_value, mips_libcall_value,
3922         mips_function_value_regno_p): New function.
3923         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3924         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3925
3926 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3927
3928         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
3929         and -mavx256-split-unaligned-store.
3930         (ix86_option_override_internal): Split 32-byte AVX unaligned
3931         load/store by default.
3932         (ix86_avx256_split_vector_move_misalign): New.
3933         (ix86_expand_vector_move_misalign): Use it.
3934
3935         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
3936         -mavx256-split-unaligned-store.
3937
3938         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
3939         256bit load/store.  Generate unaligned store on misaligned memory
3940         operand.
3941         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
3942         256bit load/store.
3943         (*avx_movdqu<avxmodesuffix>): Likewise.
3944
3945         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
3946         -mavx256-split-unaligned-store.
3947
3948 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
3949
3950         PR target/38598
3951         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
3952         Update commentary.
3953
3954 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
3955
3956         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
3957         opno arguments with an expand_operand.  Use create_input_operand.
3958         (mips_prepare_builtin_target): Delete.
3959         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
3960         functions.
3961         (mips_expand_builtin_direct): Use create_output_operand and
3962         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
3963         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
3964         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
3965
3966 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
3967
3968         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
3969         function.
3970         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
3971
3972 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
3973
3974         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
3975         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
3976         basic blocks and call commit_edge_insertions directly.
3977         (fixup_abnormal_edges): Move from here to...
3978         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
3979         on the edges and return whether some have actually been inserted.
3980         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
3981         compensation code.
3982
3983 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
3984
3985         PR rtl-optimization/48144
3986         * sel-sched-ir.c (merge_history_vect): Factor out from ...
3987         (merge_expr_data): ... here.
3988         (av_set_intersect): Rename to av_set_code_motion_filter.
3989         Update all callers.  Call merge_history_vect when an expression
3990         is found in both sets.
3991         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
3992
3993 2011-03-26  Alan Modra  <amodra@gmail.com>
3994
3995         * config/rs6000/predicates.md (word_offset_memref_op): Handle
3996         cmodel medium addresses.
3997         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
3998         64-bit gpr loads and stores.
3999         (rs6000_secondary_reload_ppc64): New function.
4000         * config/rs6000/rs6000-protos.h: Declare it.
4001         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
4002
4003 2011-03-26  Alan Modra  <amodra@gmail.com>
4004
4005         PR target/47487
4006         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
4007         GNU Go in traceback table.
4008
4009 2011-03-25  Richard Henderson  <rth@redhat.com>
4010
4011         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
4012         if there are exactly 6 operands.
4013         (set_storage_via_setmem): Similarly.
4014
4015 2011-03-25  Kai Tietz  <ktietz@redhat.com>
4016
4017         * collect2.c (write_c_file_stat): Handle backslash
4018         as right-hand directory separator.
4019         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
4020         checking just for slash.
4021         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
4022         instead of checking for trailing slash.
4023         * gcc.c (record_temp_file): Use filename_cmp instead
4024         of strcmp.
4025         (do_spec_1): Likewise.
4026         (replace_outfile_spec_function): Likewise.
4027         (is_directory): Use filename_ncmp instead of strncmp.
4028         (print_multilib_info): Likewise.
4029         * gcov.c (find_source): Use filename_cmp instead
4030         instead of strcmp.
4031         (make_gcov_file_name): Fix order of slash/backslash
4032         checks.
4033         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
4034         (add_standard_paths): Likewise.
4035         * mips-tfile.c (saber_stop): Handle backslash.
4036         * prefix.c (update_path): Use filename_ncmp instead of
4037         strncmp.
4038         * profile.c (output_location): Use filename_cmp instead
4039         of strcmp.
4040         * read-md.c (handle_toplevel_file): Handle backslash.
4041         * tlink.c (frob_extension):  Likewise.
4042         * tree-cfg.c (same_line_p): Use filename_cmp instead of
4043         strcmp.
4044         * tree-dump.c (dequeue_and_dump): Handle backslash.
4045         * tree.c (get_file_function_name): Likewise.
4046         * gengtype.c (read_input_list): Likewise.
4047         (get_file_realbasename): Likewise.
4048         (get_output_file_with_visibility): Use filename_cmp
4049         instead of strcmp.
4050
4051 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
4052
4053         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
4054         case to VFPv1.
4055
4056 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
4057
4058         * fold-const.c (expr_location_or): New function.
4059         (fold_truth_not_expr): Call it.
4060
4061 2011-03-25  Jeff Law  <law@redhat.com>
4062
4063         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
4064         va_end.
4065         * c-family/c-common.c (def_fn_type): Likewise.
4066         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
4067         * emit-rtl.c (gen_rtvec): Likewise.
4068         * lto/lto-lang.c (def_fn_type): Likewise.
4069
4070 2011-03-25  Richard Guenther  <rguenther@suse.de>
4071
4072         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
4073         also generate copies.
4074         (fini_copy_prop): Handle constant values properly.
4075
4076 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
4077
4078         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
4079         mode size instead of bitsize with DWARF2_ADDR_SIZE.
4080         (hash_loc_operands, compare_loc_operands): Handle
4081         DW_OP_GNU_entry_value.
4082
4083 2011-03-25  Kai Tietz  <ktietz@redhat.com>
4084
4085         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
4086         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
4087         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
4088         comment and use macro TARGET_64BIT_MS_ABI instead.
4089         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
4090         and change default behavior for 32-bit MS_ABI.
4091         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
4092         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
4093         32-bit, too.
4094         (ix86_cfun_abi): Likewise.
4095         (ix86_maybe_switch_abi): Adjust comment.
4096         (init_cumulative_args): Check for bit-ness in MS_ABI case.
4097         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
4098         instead of checking for SYSV_ABI.
4099         (ix86_nsaved_sseregs): Likewise.
4100         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
4101         to 16 bytes.
4102         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
4103         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
4104         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
4105         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
4106         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
4107
4108 2011-03-25  Richard Guenther  <rguenther@suse.de>
4109
4110         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
4111         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
4112         (verify_gimple): Remove.
4113         * tree-cfg.c (verify_gimple_call): Merge verification
4114         from verify_stmts.
4115         (verify_gimple_phi): Merge verification from verify_stmts.
4116         (verify_gimple_label): New function.
4117         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
4118         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
4119         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
4120         (verify_stmts): Rename to verify_gimple_in_cfg.
4121         (verify_gimple_in_cfg): New function.
4122         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
4123         * tree-ssa.c (verify_ssa): Likewise.
4124         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
4125
4126 2011-03-25  Richard Guenther  <rguenther@suse.de>
4127
4128         * passes.c (init_optimization_passes): Add FRE pass after
4129         early SRA.
4130
4131 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
4132             Andrew Stubbs  <ams@codesourcery.com>
4133
4134         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
4135         for Cortex-A8.
4136         (arm_movdi_vfp_cortexa8): New pattern.
4137         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
4138         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
4139         instructions when tuning for Cortex-A8.  Set attribute "arch".
4140         * config/arm/arm.md: Move include arm-tune.md up a bit.
4141         (define_attr "arch"): Add "onlya8" and "nota8" values.
4142         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
4143
4144 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
4145
4146         PR bootstrap/48282
4147         Revert:
4148         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
4149
4150         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
4151         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
4152         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
4153         * passes.c (init_optimization_passes): Move
4154         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
4155
4156 2011-03-25  Kai Tietz  <ktietz@redhat.com>
4157
4158         * c-typeck.c (comptypes_internal): Replace target
4159         hook call of comp_type_attributes by version in tree.c file.
4160         * gimple.c (gimple_types_compatible_p_1): Likewise.
4161         * tree-ssa.c (useless_type_conversion_p): Likewise.
4162         * tree.c (build_type_attribute_qual_variant): Likewise.
4163         (attribute_value_equal): New static helper function.
4164         (comp_type_attributes): New function.
4165         (merge_attributes): Use attribute_value_equal for comparison.
4166         (attribute_list_contained): Likewise.
4167         * tree.h (comp_type_attributes): New prototype.
4168
4169 2011-03-25  Richard Guenther  <rguenther@suse.de>
4170
4171         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
4172         of complex types at -O0.
4173         (verify_gimple_assign_binary): Likewise.
4174         (verify_gimple_assign_ternary): Likewise.
4175
4176 2011-03-24  Mark Wielaard  <mjw@redhat.com>
4177
4178         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
4179         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
4180
4181 2011-03-24  Mark Wielaard  <mjw@redhat.com>
4182
4183         PR debug/48041
4184         * dwarf2out.c (output_abbrev_section): Only write table when
4185         abbrev_die_table_in_use > 1.
4186
4187 2011-02-24  Richard Henderson  <rth@redhat.com>
4188
4189         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
4190         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
4191         (alpha_expand_unaligned_load_words): Use extql.
4192         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
4193         (emit_insxl): Handle all modes for consistency.
4194
4195 2011-02-24  Richard Henderson  <rth@redhat.com>
4196
4197         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
4198         (alpha_expand_unaligned_load): Likewise.
4199         (alpha_expand_unaligned_store): Likewise.
4200         (alpha_expand_unaligned_load_words): Likewise.
4201         (alpha_expand_unaligned_store_words): Likewise.
4202         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
4203         (alpha_split_lock_test_and_set_12): Likewise.
4204         (print_operand, alpha_fold_builtin_extxx): Likewise.
4205         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
4206         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
4207         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
4208         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
4209         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
4210         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
4211         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
4212         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
4213         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
4214         (extwl, extll, extql): Similarly.
4215         (inswh, inslh, insqh): Similarly.
4216         (mskbl, mskwl, mskll, mskql): Similarly.
4217         (mskwh, msklh, mskqh): Similarly.
4218
4219 2011-02-24  Richard Henderson  <rth@redhat.com>
4220
4221         * config/alpha/alpha.md (attribute isa): Add er, ner.
4222         (attribute enabled): Handle them.
4223         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
4224
4225 2011-02-24  Richard Henderson  <rth@redhat.com>
4226
4227         * config/alpha/alpha.md (attribute isa): Add vms.
4228         (attribute enabled): Handle it.
4229         (*movsf): Merge *movsf_{nofix,fix,nofp}.
4230         (*movdf): Merge *movdf_{nofix,fix,nofp}.
4231         (*movtf): Rename from *movtf_internal for consistency.
4232         (*movsi): Merge with *movsi_nt_vms.
4233         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
4234         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
4235         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
4236         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
4237
4238 2011-02-24  Richard Henderson  <rth@redhat.com>
4239
4240         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
4241         (extendqisi2, extendhisi2): Likewise.
4242         (extendqidi2): Simplify BWX/non-BWX expansions.
4243         (extendhidi2): Similarly.
4244
4245 2011-02-24  Richard Henderson  <rth@redhat.com>
4246
4247         * config/alpha/alpha.md (attribute isa): New.
4248         (attribute enabled): New.
4249         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
4250         (zero_extendqisi2, zero_extendqidi2): Similarly.
4251         (zero_extendhisi2, zero_extendhidi2): Similarly.
4252         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
4253
4254 2011-02-24  Richard Henderson  <rth@redhat.com>
4255
4256         * config/alpha/predicates.md (input_operand): Revert last change;
4257         update comment to mention 32-bit VMS rather than Windows.
4258
4259 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
4260
4261         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
4262         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
4263         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
4264         * passes.c (init_optimization_passes): Move
4265         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
4266
4267 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
4268
4269         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
4270
4271 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
4272
4273         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
4274         correctly.
4275
4276 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
4277
4278         PR debug/48204
4279         * simplify-rtx.c (simplify_const_unary_operation): Call
4280         real_convert when changing mode class with FLOAT_EXTEND.
4281
4282 2011-03-24  Nick Clifton  <nickc@redhat.com>
4283
4284         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
4285         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
4286         * config/rx/rx.c (rx_option_override): Set align_jumps,
4287         align_loops and align_labels if not set by the user.
4288         (rx_align_for_label): New function.
4289         (rx_max_skip_for_label): New function.
4290         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
4291         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
4292         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
4293         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
4294         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
4295
4296 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
4297
4298         PR rtl-optimization/48263
4299         * optabs.c (expand_binop_directly): Reinstate convert_modes code
4300         and original commutative_p handling.  Use maybe_gen_insn.
4301
4302 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4303
4304         * reload.c (find_reloads_subreg_address): Add address_reloaded
4305         parameter and return true there if the full address has been
4306         reloaded.
4307         (find_reloads_toplev): Pass address_reloaded flag.
4308         (find_reloads_address_1): Don't use address_reloaded parameter.
4309
4310 2011-03-24  Jeff Law  <law@redhat.com>
4311
4312         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
4313         unused variable "ann".
4314         (remove_unused_locals): Likewise.
4315
4316         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
4317         statement.
4318
4319         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
4320         after it is freed.
4321
4322 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4323
4324         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
4325         for invalid symbolic addresses.
4326         (s390_secondary_reload): Don't use s390_check_symref_alignment for
4327         larl operands.
4328
4329 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
4330
4331         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
4332         the argument in calls to fold_truth_not_expr.
4333
4334 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
4335
4336         * tree.c (record_node_allocation_statistics): New function.
4337         (make_node_stat, copy_node_stat, build_string): Call it.
4338         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
4339         (build1_stat, build_omp_clause): Likewise.
4340
4341 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
4342
4343         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
4344         last commit.
4345
4346 2011-03-24  Richard Guenther  <rguenther@suse.de>
4347
4348         PR tree-optimization/48271
4349         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
4350         blocks that still exist.
4351
4352 2011-03-24  Richard Guenther  <rguenther@suse.de>
4353
4354         PR tree-optimization/48270
4355         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
4356         not free datarefs before ddrs.
4357
4358 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
4359
4360         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
4361         from the address built for a reference with variable offset.
4362
4363 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
4364
4365         PR target/48237
4366         * config/i386/i386.md (*movdf_internal_rex64): Do not split
4367         alternatives that can be handled with movq or movabsq insn.
4368         (*movdf_internal): Disable for !TARGET_64BIT.
4369         (*movdf_internal_nointeger): Ditto.
4370         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
4371
4372 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
4373
4374         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
4375         (FUNCTION_ARG_ADVANCE): Likewise.
4376         * tm.texi.in: Change references to them to hook references.
4377         * tm.texi: Regenerate.
4378         * targhooks.c (default_function_arg): Eliminate check for target macro.
4379         (default_function_incoming_arg): Likewise.
4380         (default_function_arg_advance): Likewise.
4381         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
4382         (function_arg_advance): Likewise.
4383         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
4384
4385 2011-03-24  Richard Guenther  <rguenther@suse.de>
4386
4387         PR middle-end/48269
4388         * tree-object-size.c (addr_object_size): Do not double-account
4389         for MEM_REF offsets.
4390
4391 2011-03-24  Diego Novillo  <dnovillo@google.com>
4392
4393         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
4394         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
4395         (lto_input_data_block): Move from lto-opts.c.  Make extern.
4396         Update all users.
4397         (lto_input_string): Rename from input_string.  Make extern.
4398         Update all users.
4399         * lto-streamer-out.c (lto_output_string_with_length): Rename from
4400         output_string_with_length.
4401         Output 0 to indicate a non-NULL string.  Update all callers to
4402         not emit 0.
4403         (lto_output_string): Rename from output_string.  Make extern.
4404         Update all users.
4405         (lto_output_decl_state_streams): Make extern.
4406         (lto_output_decl_state_refs): Make extern.
4407         * lto-streamer.h (lto_input_string): Declare.
4408         (lto_input_data_block): Declare.
4409         (lto_output_string): Declare.
4410         (lto_output_string_with_length): Declare.
4411         (lto_output_decl_state_streams): Declare.
4412         (lto_output_decl_state_refs): Declare.
4413
4414 2011-03-24  Richard Guenther  <rguenther@suse.de>
4415
4416         PR tree-optimization/46562
4417         * tree.c (build_invariant_address): New function.
4418         * tree.h (build_invariant_address): Declare.
4419         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
4420         a renamed function moved ...
4421         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
4422         Take valueization callback parameter.
4423         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
4424         * gimple-fold.h: New file.
4425         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
4426         (ccp_fold, fold_const_aggregate_ref,
4427         fold_ctor_reference, fold_nonarray_ctor_reference,
4428         fold_array_ctor_reference, fold_string_cst_ctor_reference,
4429         get_base_constructor): Move ...
4430         * gimple-fold.c: ... here.
4431         (gimple_fold_stmt_to_constant_1): New function
4432         split out from ccp_fold.  Take a valueization callback parameter.
4433         Valueize all operands.
4434         (gimple_fold_stmt_to_constant): New wrapper function.
4435         (fold_const_aggregate_ref_1): New function split out from
4436         fold_const_aggregate_ref.  Take a valueization callback parameter.
4437         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
4438         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
4439         invariant POINTER_PLUS_EXPRs to invariant form.
4440         (vn_valueize): New function.
4441         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
4442         * tree-vrp.c (vrp_valueize): New function.
4443         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
4444         to fold statements to constants.
4445         * tree-ssa-pre.c (eliminate): Properly guard propagation of
4446         function declarations.
4447         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
4448         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
4449
4450 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
4451
4452         * config/h8300/predicates.md (jump_address_operand): Fix register
4453         mode check.
4454
4455 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
4456
4457         * doc/invoke.texi (max-stores-to-sink): Document.
4458         * params.h (MAX_STORES_TO_SINK): Define.
4459         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
4460         if either vectorization or if-conversion is disabled.
4461         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
4462         tree-vect-data-refs.c vect_equal_offsets.
4463         (dr_equal_offsets_p): New function.
4464         (find_data_references_in_bb): Remove static.
4465         * tree-data-ref.h (find_data_references_in_bb): Declare.
4466         (dr_equal_offsets_p): Likewise.
4467         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
4468         (vect_drs_dependent_in_basic_block): Update calls to
4469         vect_equal_offsets.
4470         (vect_check_interleaving): Likewise.
4471         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
4472         (cond_if_else_store_replacement): Rename to...
4473         (cond_if_else_store_replacement_1): ... this.  Change arguments and
4474         documentation.
4475         (cond_if_else_store_replacement): New function.
4476         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
4477         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
4478
4479 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
4480
4481         PR target/46934
4482         * config/arm/arm.md (casesi): Use the gen_int_mode() function
4483         to subtract lower bound instead of GEN_INT().
4484
4485 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
4486
4487         PR other/48179
4488         PR other/48221
4489         PR other/48234
4490         * doc/extend.texi (Alignment): Move section to match order in TOC.
4491         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
4492         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
4493
4494 2011-03-23  Jeff Law  <law@redhat.com>
4495
4496         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
4497         before removing the edge.
4498
4499         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
4500         it may have been freed by redirect_branch_edge or
4501         redirect_edge_succ_nodup.
4502
4503 2011-03-23  Richard Guenther  <rguenther@suse.de>
4504
4505         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
4506         (check_va_list_escapes): Likewise.
4507         (check_all_va_list_escapes): Likewise.
4508
4509 2011-03-23  Richard Guenther  <rguenther@suse.de>
4510
4511         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
4512         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
4513         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
4514         (alias.o): Likewise.
4515         (ipa-type-escape.o): Remove.
4516         (ipa-struct-reorg.o): Likewise.
4517         (GTFILES): Remove ipa-struct-reorg.c.
4518         * alias.c: Do not include ipa-type-escape.h.
4519         * tree-ssa-alias.c: Likewise.
4520         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
4521         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
4522         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
4523         and ipa-type-escape passes.
4524         * tree-pass.h (pass_ipa_type_escape): Remove.
4525         (pass_ipa_struct_reorg): Likewise.
4526         * ipa-struct-reorg.h: Remove.
4527         * ipa-struct-reorg.c: Likewise.
4528         * ipa-type-escape.h: Likewise.
4529         * ipa-type-escape.c: Likewise.
4530         * doc/invoke.texi (-fipa-struct-reorg): Remove.
4531         (--param struct-reorg-cold-struct-ratio): Likewise.
4532         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
4533         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
4534         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
4535
4536 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4537
4538         * config/s390/2084.md: Enable all insn reservations also for z9_ec
4539         cpu attribute value.
4540         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
4541         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
4542         * config/s390/s390.c (processor_flags_table): New constant array.
4543         (s390_handle_arch_option): Remove.
4544         (s390_handle_option): Remove s390_handle_arch_option invocations
4545         and OPT_mwarn_framesize_ handling.
4546         (s390_option_override): Remove s390_handle_arch_option invocation.
4547         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
4548         warnings.
4549         * config/s390/s390.md (cpu attribute): Add z9_ec value.
4550         * config/s390/s390.opt (s390_tune, s390_arch)
4551         (march=): Replace s390_arch_option enum and values with
4552         processor_type.  Set variable name to s390_arch.  Set
4553         initialization value.
4554         (mtune=): Replace s390_arch_option with processor_type.  Set
4555         variable name to s390_tune.  Set initialization value.
4556
4557 2011-03-23  Julian Brown  <julian@codesourcery.com>
4558
4559         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
4560         accesses which are not naturally aligned.
4561
4562 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
4563
4564         PR target/47553
4565         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
4566
4567 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
4568
4569         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
4570         parameter from "int" to "enum insn_code".
4571         (expand_operand_type): New enum.
4572         (expand_operand): New structure.
4573         (create_expand_operand): New function.
4574         (create_fixed_operand, create_output_operand): Likewise
4575         (create_input_operand, create_convert_operand_to): Likewise.
4576         (create_convert_operand_from, create_address_operand): Likewise.
4577         (create_integer_operand): Likewise.
4578         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
4579         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
4580         (expand_insn, expand_jump_insn): Likewise.
4581         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
4582         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
4583         (expand_movstr, expand_builtin___clear_cache): Likewise.
4584         (expand_builtin_lock_release): Likewise.
4585         * explow.c (allocate_dynamic_stack_space): Likewise.
4586         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
4587         and use the default handling in that case.
4588         * expmed.c (check_predicate_volatile_ok): Delete.
4589         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
4590         (emit_cstore): Likewise.
4591         * expr.c (emit_block_move_via_movmem): Likewise.
4592         (set_storage_via_setmem, expand_assignment): Likewise.
4593         (emit_storent_insn, try_casesi): Likewise.
4594         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
4595         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
4596         (expand_vec_shift_expr, expand_binop_directly): Likewise.
4597         (expand_twoval_unop, expand_twoval_binop): Likewise.
4598         (expand_unop_direct, emit_indirect_jump): Likewise.
4599         (emit_conditional_move, vector_compare_rtx): Likewise.
4600         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
4601         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
4602         (expand_sync_lock_test_and_set): Likewise.
4603         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
4604         (emit_unop_insn): Likewise.
4605         (expand_copysign_absneg): Change icode to an insn_code.
4606         (create_convert_operand_from_type): New function.
4607         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
4608         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
4609         (expand_insn, expand_jump_insn): Likewise.
4610         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
4611         than const_int_operand for operand 2.
4612
4613 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4614
4615         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
4616         if possible.
4617
4618 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
4619
4620         * emit-rtl.c (emit_pattern_before_noloc): New function.
4621         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
4622         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
4623         (emit_pattern_after_noloc): New function.
4624         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
4625         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
4626
4627 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
4628
4629         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
4630         (__ffsDI2): Likewise.
4631
4632 2011-03-22  Richard Henderson  <rth@redhat.com>
4633
4634         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
4635         of !TARGET_ABI_OPEN_VMS.
4636         (alpha_trampoline_init, alpha_start_function): Likewise.
4637         (alpha_expand_epilogue, alpha_file_start): Likewise.
4638         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
4639         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
4640         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
4641         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
4642         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
4643
4644 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4645
4646         * config/s390/s390-opts.h: New.
4647         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
4648         s390_arch_flags, s390_warn_framesize, s390_stack_size,
4649         s390_stack_guard): Remove.
4650         (s390_handle_arch_option): Return void.  Take enum
4651         s390_arch_option value instead of string and searching array.
4652         (s390_handle_option): Don't assert that global structures are in
4653         use.  Access variables via opts pointer.  Use error_at.  Don't use
4654         sscanf for -mstack-guard= or -mstack-size=.  Update call to
4655         s390_handle_arch_option.
4656         (s390_option_override): Update call to s390_handle_arch_option.
4657         (s390_emit_prologue): Use %d format for s390_stack_size in
4658         diagnostic.  Use %wd for HOST_WIDE_INT.
4659         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
4660         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
4661         * config/s390/s390.opt (config/s390/s390-opts.h): New
4662         HeaderInclude entry.
4663         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
4664         s390_arch_flags, s390_warn_framesize): New Variable entries.
4665         (s390_arch_option): New Enum and EnumValue entries.
4666         (march=): Use Enum instead of Var.
4667         (mstack-guard=, mstack-size=): Use UInteger and Var.
4668         (mtune=): Use Enum.
4669
4670 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4671
4672         * config/score/score.c (score_handle_option): Don't assert that
4673         global structures are in use.  Access target_flags via opts
4674         pointer.  Use value of -march= option to determine target_flags
4675         settings.
4676         * config/score/score.opt (march=): Use Enum.
4677         (score_arch): New Enum and EnumValue entries.
4678
4679 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4680
4681         * config/mep/mep.c (option_mtiny_specified): Remove.
4682         (mep_option_override): Move register handling for -mivc2 from
4683         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
4684         instead of option_mtiny_specified.
4685         (mep_handle_option): Access target_flags via opts pointer.  Don't
4686         assert that global structures are in use.  Defer part of -mivc2
4687         handling and move it to mep_option_override.
4688         * config/mep/mep.opt (IVC2): New Mask entry.
4689         (mivc2): Use Var and Defer instead of Mask.
4690
4691 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4692
4693         * config/v850/v850-opts.h: New.
4694         * config/v850/v850.c (small_memory): Replace with
4695         small_memory_physical_max array.  Make that array static const.
4696         (v850_handle_memory_option): Take integer value of argument.  Take
4697         gcc_options pointer, option text and location.  Return void.
4698         Update for changes to small memory structures.
4699         (v850_handle_option): Access target_flags via opts pointer.  Don't
4700         assert that global structures are in use.  Update calls to
4701         v850_handle_memory_option.
4702         (v850_encode_data_area): Update references to small memory settings.
4703         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4704         (enum small_memory_type): Move to v850-opts.h.
4705         * config/v850/v850.opt (config/v850/v850-opts.h): New
4706         HeaderInclude entry.
4707         (small_memory_max): New Variable entry.
4708         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
4709         (mtda, mzda): Likewise.
4710
4711 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4712
4713         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
4714         pointer.  Don't assert that global structures are in use.
4715
4716 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4717
4718         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
4719         via opts pointer.  Don't assert that global structures are in use.
4720
4721 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4722
4723         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
4724         (munix=93): Use Var.
4725         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
4726         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
4727         * config/pa/pa-opts.h: New.
4728         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
4729         (pa_handle_option): Don't assert that global structures are in
4730         use.  Access target_flags via opts pointer.  Don't handle
4731         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
4732         OPT_munix_98 here.
4733         (pa_option_override): Handle deferred OPT_mfixed_range_.
4734
4735 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4736
4737         * config/mn10300/mn10300-opts.h: New.
4738         * config/mn10300/mn10300.c (mn10300_processor,
4739         mn10300_tune_string): Remove.
4740         (mn10300_handle_option): Don't assert that global structures are
4741         in use.  Access mn10300_processor via opts pointer.  Don't handle
4742         OPT_mtune_ here.
4743         * config/mn10300/mn10300.h (enum processor_type): Move to
4744         mn10300-opts.h.
4745         (mn10300_processor): Remove.
4746         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
4747         HeaderInclude entry.
4748         (mn10300_processor): New Variable entry.
4749         (mtune=): Use Var.
4750
4751 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4752
4753         * config/microblaze/microblaze.c: Don't include opts.h.
4754         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
4755         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
4756         (mno-clearbss): Use Var and Warn.
4757
4758 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4759
4760         * config/m32r/m32r-opts.h: New.
4761         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
4762         (m32r_handle_option): Don't assert that global structures are in
4763         use.  Access target_flags and m32r_cache_flush_func via opts
4764         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
4765         OPT_mno_flush_trap here.
4766         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
4767         include of m32r-opts.h.
4768         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
4769         HeaderInclude entry.
4770         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
4771         (mmodel=): Use Enum and Var.
4772         (m32r_model): New Enum and EnumValue entries.
4773         (mno-flush-trap): Use Var.
4774         (msdata=): Use Enum and Var.
4775         (m32r_sdata): New Enum and EnumValue entries.
4776
4777 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4778
4779         * config/m32c/m32c.c: Don't include opts.h.
4780         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
4781         m32c_handle_option): Remove.
4782         (m32c_option_override): Check global_options_set.x_target_memregs
4783         instead of target_memregs_set.
4784         * config/m32c/m32c.h (target_memregs): Remove.
4785         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
4786         variable.
4787
4788 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4789
4790         * config/iq2000/iq2000-opts.h: New.
4791         * config/iq2000/iq2000.c: Don't include opts.h.
4792         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
4793         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
4794         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
4795         HeaderInclude entry.
4796         (iq2000_tune): New Variable entry.
4797         (march=): Add comment.  Use Enum.
4798         (iq2000_arch): New Enum and EnumValue entries.
4799         (mcpu=): Use Enum and Var.
4800         (iq2000_tune): New Enum and EnumValue entries.
4801
4802 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4803
4804         * config/ia64/ia64-opts.h: New.
4805         * config/ia64/ia64.c (ia64_tune): Remove.
4806         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
4807         here.  Use error_at.
4808         (ia64_option_override): Handle deferred OPT_mfixed_range_.
4809         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
4810         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
4811         HeaderInclude entry.
4812         (ia64_tune): New Variable entry.
4813         (mfixed-range=): Use Defer and Var.
4814         (mtune=): Use Enum and Var.
4815         (ia64_tune): New Enum and EnumValue entries.
4816
4817 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4818
4819         * config/frv/frv-opts.h: New.
4820         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
4821         frv-opts.h.
4822         (frv_cpu_type): Remove.
4823         * config/frv/frv.c: Don't include opts.h.
4824         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
4825         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
4826         (frv_cpu_type): New Variable entry.
4827         (frv_cpu): New Enum and EnumValue entries.
4828
4829 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4830
4831         * config/cris/cris.c (cris_handle_option): Access target_flags via
4832         opts pointer.  Don't assert that global structures are in use.
4833         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
4834         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
4835
4836 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4837
4838         * config/bfin/bfin-opts.h: New.
4839         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
4840         bfin_si_revision, bfin_workarounds): Remove.
4841         (bfin_cpus): Make static const.
4842         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
4843         not bfin_lib_id_given.
4844         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
4845         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
4846         pointer. Use error_at.  Don't assert that global structures are in use.
4847         * config/bfin/bfin.h: Include bfin-opts.h.
4848         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
4849         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
4850         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
4851         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
4852         entries.
4853
4854 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4855
4856         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
4857         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
4858         or -msoft-float here.
4859         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
4860         -msoft-float and -mhard-float.
4861         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
4862         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
4863         msoft-float.
4864         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
4865         -msoft-float.
4866         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
4867         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
4868         not mhard-float.
4869         (LIBGCC_SPEC): Don't handle -msoft-float.
4870         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
4871         -mhard-float.
4872         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
4873         msoft-float.
4874         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
4875         -mfloat-abi=*, not -msoft-float and -mhard-float.
4876         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
4877         -msoft-float.
4878         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
4879         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
4880         mhard-float and msoft-float.
4881         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
4882         mfloat-abi=soft in comments, not mhard-float and msoft-float.
4883         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
4884         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
4885         mhard-float.
4886         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
4887         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
4888         msoft-float.
4889         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
4890         not mhard-float.
4891         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
4892         not msoft-float.
4893
4894 2011-03-22  Richard Henderson  <rth@redhat.com>
4895
4896         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
4897         TARGET_ABI_WINDOWS_NT.
4898         (alpha_output_function_end_prologue): Likewise.
4899         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
4900         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
4901         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
4902         (trap, *movsi_nt_vms): Likewise.
4903         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
4904         (*tablejump_osf_nt_internal): Remove.
4905         * config/alpha/predicates.md (input_operand): Only test Pmode.
4906
4907 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4908
4909         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
4910         via opts pointer.  Use error_at.  Don't assert that global
4911         structures are in use.
4912
4913 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4914
4915         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
4916         (ix86_handle_option): Access ix86_isa_flags and
4917         ix86_isa_flags_explicit via opts pointer.  Don't assert that
4918         global structures are in use.
4919         (ix86_function_specific_save, ix86_function_specific_restore):
4920         Update ix86_isa_flags_explicit field name.
4921         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
4922         (ix86_isa_flags_explicit): Rename TargetSave entry to
4923         x_ix86_isa_flags_explicit.
4924
4925 2011-03-22  Richard Henderson  <rth@redhat.com>
4926
4927         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
4928         (alpha_option_override, direct_return): Likewise.
4929         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
4930         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
4931         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
4932         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
4933         (alpha_expand_epilogue, alpha_end_function): Likewise.
4934         (alpha_init_libfuncs): Likewise.
4935         (struct machine_function): Remove unicosmk members.
4936         (print_operand) ['t']: Remove.
4937         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
4938         unicosmk_output_module_name, unicosmk_output_common,
4939         current_section_align, unicosmk_output_text_section_asm_op,
4940         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
4941         unicosmk_section_type_flags, unicosmk_unique_section,
4942         unicosmk_asm_named_section, unicosmk_insert_attributes,
4943         unicosmk_output_align, unicosmk_defer_case_vector,
4944         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
4945         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
4946         unicosmk_output_ssib, unicosmk_add_call_info_word,
4947         unicosmk_extern_head, unicosmk_output_default_externs,
4948         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
4949         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
4950         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
4951         * config/alpha/alpha-protos.h: Update.
4952         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
4953         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
4954         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
4955         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
4956         (*mulsi_se, mulvsi3): Likewise.
4957         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
4958         (*divmodsi_internal, call, call_value, realign): Likewise.
4959         (moddi3, umoddi3): Likewise; remove duplicate expander.
4960         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
4961         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
4962         (*movdi_nofix): Remove r/U alternative.
4963         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
4964         * config/alpha/constraints.md ("U"): Remove.
4965         * config/alpha/predicates.md (call_operand"): Don't test
4966         TARGET_ABI_UNICOSMK.
4967
4968 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4969
4970         * target.def (handle_option): Take gcc_options and
4971         cl_decoded_option pointers and location_t.
4972         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
4973         * doc/tm.texi: Regenerate.
4974         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
4975         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
4976         * lto-opts.c (lto_reissue_options): Generate option structure for
4977         targetm.handle_option call.
4978         * opts.c (target_handle_option): Update call to
4979         targetm.handle_option.  Remove assertions about values now passed
4980         down to hook.
4981         * targhooks.c (default_target_handle_option): New.
4982         * targhooks.h (default_target_handle_option): Declare.
4983         * config/alpha/alpha.c: Include opts.h.
4984         (alpha_handle_option): Update to new hook interface.
4985         * config/arm/arm.c: Include opts.h.
4986         (arm_handle_option): Update to new hook interface.
4987         * config/arm/t-arm (arm.o): Update dependencies.
4988         * config/bfin/bfin.c: Include opts.h.
4989         (bfin_handle_option): Update to new hook interface.
4990         * config/cris/cris.c: Include opts.h.
4991         (cris_handle_option): Update to new hook interface.
4992         * config/frv/frv.c: Include opts.h.
4993         (frv_handle_option): Update to new hook interface.
4994         * config/i386/i386.c: Include opts.h.
4995         (ix86_handle_option): Update to new hook interface.
4996         (ix86_valid_target_attribute_inner_p): Generate option structure
4997         for call to ix86_handle_option.
4998         * config/i386/t-i386 (i386.o): Update dependencies.
4999         * config/ia64/ia64.c: Include opts.h.
5000         (ia64_handle_option): Update to new hook interface.
5001         * config/ia64/t-ia64 (ia64.o): Update dependencies.
5002         * config/iq2000/iq2000.c: Include opts.h.
5003         (iq2000_handle_option): Update to new hook interface.
5004         * config/m32c/m32c.c: Include opts.h.
5005         (m32c_handle_option): Update to new hook interface.
5006         * config/m32r/m32r.c: Include opts.h.
5007         (m32r_handle_option): Update to new hook interface.
5008         * config/m68k/m68k.c: Include opts.h.
5009         (m68k_handle_option): Update to new hook interface.
5010         * config/mep/mep.c: Include opts.h.
5011         (mep_handle_option): Update to new hook interface.
5012         * config/microblaze/microblaze.c: Include opts.h.
5013         (microblaze_handle_option): Update to new hook interface.
5014         * config/mips/mips.c: Include opts.h.
5015         (mips_handle_option): Update to new hook interface.
5016         * config/mn10300/mn10300.c: Include opts.h.
5017         (mn10300_handle_option): Update to new hook interface.
5018         * config/pa/pa.c: Include opts.h.
5019         (pa_handle_option): Update to new hook interface.
5020         * config/pdp11/pdp11.c: Include opts.h.
5021         (pdp11_handle_option): Update to new hook interface.
5022         * config/rs6000/rs6000.c: Include opts.h.
5023         (rs6000_handle_option): Update to new hook interface.
5024         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
5025         * config/rx/rx.c: Include opts.h.
5026         (rx_handle_option): Update to new hook interface.
5027         * config/s390/s390.c: Include opts.h.
5028         (s390_handle_option): Update to new hook interface.
5029         * config/score/score.c: Include opts.h.
5030         (score_handle_option): Update to new hook interface.
5031         * config/sh/sh.c: Include opts.h.
5032         (sh_handle_option): Update to new hook interface.
5033         * config/sparc/sparc.c: Include opts.h.
5034         (sparc_handle_option): Update to new hook interface.
5035         * config/v850/v850.c: Include opts.h.
5036         (v850_handle_option): Update to new hook interface.
5037
5038 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5039
5040         * gcc.c (driver_unknown_option_callback): Only permit and save
5041         unknown -Wno- options.
5042         (driver_wrong_lang_callback): Save options directly instead of via
5043         driver_unknown_option_callback.
5044
5045 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
5046
5047         * combine.c (simplify_set): Try harder to find the best CC mode when
5048         simplifying a nested COMPARE on the RHS.
5049
5050 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5051
5052         * config/alpha/gnu.h: Remove.
5053         * config/arc: Remove directory.
5054         * config/arm/netbsd.h: Remove.
5055         * config/arm/t-pe: Remove.
5056         * config/crx: Remove directory.
5057         * config/i386/netbsd.h: Remove.
5058         * config/m68hc11: Remove directory.
5059         * config/m68k/uclinux-oldabi.h: Remove.
5060         * config/mcore/mcore-pe.h: Remove.
5061         * config/mcore/t-mcore-pe: Remove.
5062         * config/netbsd-aout.h: Remove.
5063         * config/rs6000/gnu.h: Remove.
5064         * config/sh/sh-symbian.h: Remove.
5065         * config/sh/symbian-base.c: Remove.
5066         * config/sh/symbian-c.c: Remove.
5067         * config/sh/symbian-cxx.c: Remove.
5068         * config/sh/symbian-post.h: Remove.
5069         * config/sh/symbian-pre.h: Remove.
5070         * config/sh/t-symbian: Remove.
5071         * config/svr3.h: Remove.
5072         * config/vax/netbsd.h: Remove.
5073         * config.build: Don't handle i[34567]86-*-pe.
5074         * config.gcc: Remove handling of deprecations for most deprecated
5075         targets.
5076         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
5077         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
5078         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
5079         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
5080         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
5081         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
5082         Remove cases.
5083         * config.host: Don't handle i[34567]86-*-pe.
5084         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
5085         (ASM_SPEC32): Don't handle -mcall-gnu.
5086         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
5087         -mcall-gnu.
5088         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
5089         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
5090         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
5091         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
5092         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
5093         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
5094         conditional on SYMBIAN.
5095         * configure.ac: Don't handle powerpc*-*-gnu*.
5096         * configure: Regenerate.
5097         * doc/extend.texi (interrupt attribute): Don't mention CRX.
5098         * doc/install-old.texi (m6811, m6812): Don't mention.
5099         * doc/install.texi (arc-*-elf*): Don't document multilib option.
5100         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
5101         (m68k-uclinuxoldabi): Don't mention.
5102         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
5103         Remove.
5104         (-mcall-gnu): Remove.
5105         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
5106         families): Remove constraint documentation.
5107
5108 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
5109
5110         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
5111         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
5112         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
5113
5114 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
5115
5116         * config/avr/avr-protos.h (expand_epilogue): Change prototype
5117         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
5118         * config/avr/avr.c (init_cumulative_args)
5119         (avr_function_arg_advance): Use it.
5120         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
5121         sibcall epilogues.
5122         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
5123         (avr_function_ok_for_sibcall): ...this new function.
5124         (avr_lookup_function_attribute1): New static Function.
5125         (avr_naked_function_p, interrupt_function_p)
5126         (signal_function_p, avr_OS_task_function_p)
5127         (avr_OS_main_function_p): Use it.
5128         * config/avr/avr.md ("sibcall", "sibcall_value")
5129         ("sibcall_epilogue"): New expander.
5130         ("*call_insn", "*call_value_insn"): New insn.
5131         ("call_insn", "call_value_insn"): Remove
5132         ("call", "call_value", "epilogue"): Change expander to handle
5133         sibling calls.
5134
5135 2011-03-21  Nick Clifton  <nickc@redhat.com>
5136
5137         * doc/invoke.texi (Overall Options): Move closing brace to end of
5138         options list.
5139         (Optimization Options): Add missing @gol.
5140         (Directory Options): Likewise.
5141         (i386 and x86-64 Options): Likewise.
5142         (RS6000 and PowerPC Options): Likewise.
5143         (i386 and x86-64 Windows Options): Likewise.
5144         (V850 Options): Add text missing from descriptions.
5145
5146 2011-03-22  Richard Henderson  <rth@redhat.com>
5147
5148         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
5149         (avr_incoming_return_addr_rtx): New.
5150         (emit_push_byte): New.
5151         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
5152         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
5153         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
5154         (emit_pop_byte): New.
5155         (expand_epilogue): Use it.  Pop frame pointer by bytes.
5156         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
5157         (INCOMING_RETURN_ADDR_RTX): New.
5158         (INCOMING_FRAME_SP_OFFSET): New.
5159         (ARG_POINTER_CFA_OFFSET): New.
5160         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
5161         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
5162         (pophi): Remove.
5163
5164         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
5165
5166 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
5167
5168         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
5169         (FUNCTION_ARG_ADVANCE): Likewise.
5170         * tm.texi.in: Change references to them to hook references.
5171         * tm.texi: Regenerate.
5172         * targhooks.c (default_function_arg): Eliminate check for target
5173         macro.
5174         (default_function_incoming_arg): Likewise.
5175         (default_function_arg_advance): Likewise.
5176         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
5177         (function_arg_advance): Likewise.
5178         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
5179
5180 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
5181
5182         * tree.c (build_call_1): New function.
5183         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
5184
5185 2011-03-22  Richard Guenther  <rguenther@suse.de>
5186
5187         PR tree-optimization/48228
5188         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
5189         for single-arg PHIs.
5190
5191 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
5192
5193         PR rtl-optimization/48143
5194         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
5195         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
5196         sse2_cvtps2pd): Likewise.
5197
5198 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5199
5200         * recog.c (canonicalize_change_group): Use validate_unshare_change.
5201
5202 2011-03-22  Richard Guenther  <rguenther@suse.de>
5203
5204         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
5205         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
5206         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
5207         and REALIGN_LOAD_EXPR.
5208         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
5209         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
5210         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
5211         DOT_PROD_EXPR case ...
5212         (expand_expr_real_2): ... here.
5213         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
5214         and REALIGN_LOAD_EXPR.
5215         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
5216         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
5217         (vect_create_epilog_for_reduction): Likewise.
5218         (vectorizable_reduction): Likewise.
5219         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
5220         * tree-vect-stmts.c (vectorizable_load): Likewise.
5221
5222 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
5223
5224         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
5225
5226 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5227
5228         * config/s390/s390.c (s390_delegitimize_address): Fix offset
5229         handling for PLTOFF/GOTOFF.
5230
5231 2011-03-22  Nick Clifton  <nickc@redhat.com>
5232
5233         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
5234         trailing backslash from the end of the macro definition.
5235
5236 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5237
5238         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
5239         and PLT unspecs.
5240
5241 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
5242
5243         * expr.h (prepare_operand): Move to...
5244         * optabs.h (prepare_operand): ...here and change the insn code
5245         parameter from "int" to "enum insn_code".
5246         (insn_operand_matches): Declare.
5247         * expr.c (init_expr_target): Use insn_operand_matches.
5248         (compress_float_constant): Likewise.
5249         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
5250         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
5251         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
5252         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
5253         Likewise.
5254         (gen_cond_trap): Likewise.
5255         (prepare_operand): Likewise.  Change icode to an insn_code.
5256         (insn_operand_matches): New function.
5257         * reload.c (find_reloads_address_1): Use insn_operand_matches.
5258         * reload1.c (gen_reload): Likewise.
5259         * targhooks.c (default_secondary_reload): Likewise.
5260
5261 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
5262
5263         * config/alpha/alpha.md (unspec): New define_c_enum.
5264         (unspecv): Ditto.
5265
5266 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
5267
5268         PR debug/48214
5269         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
5270         between a call and its CALL_ARG_LOCATION note.
5271
5272 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
5273
5274         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
5275
5276 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
5277
5278         PR c/42544
5279         PR c/48197
5280         * c-common.c (shorten_compare): If primopN is first sign-extended
5281         to opN and then zero-extended to result type, set primopN to opN.
5282
5283 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
5284
5285         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
5286         for barrier handlers.
5287
5288 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
5289
5290         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
5291         UNSPEC constants to be in the unspec enumeration, and redefine
5292         all UNSPECV constants to be in the unspecv enumeration, so that
5293         dumps print which unspec/unspec_volatile this is.
5294         * config/rs6000/vector.md (UNSPEC_*): Ditto.
5295         * config/rs6000/paired.md (UNSPEC_*): Ditto.
5296         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
5297         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
5298         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
5299
5300         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
5301         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
5302         UNSPECV_LWSYNC, since these are used as unspec_volatile.
5303         * config/rs6000/sync.md (isync, lwsync): Ditto.
5304
5305 2011-03-21  Richard Guenther  <rguenther@suse.de>
5306
5307         * params.def (lto-min-partition): Fix typo.
5308
5309 2011-03-21  Richard Guenther  <rguenther@suse.de>
5310
5311         PR c/47939
5312         * c-decl.c (grokdeclarator): Drop to the main variant only
5313         for array types.  Drop flag_gen_aux_info check.
5314
5315 2011-03-21  Richard Guenther  <rguenther@suse.de>
5316
5317         PR translation/47911
5318         * params.def (lto-partitions): Fix typo.
5319         (lto-min-partition): Fix wording.
5320
5321 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
5322
5323         * config/rs6000/t-freebsd: Remove duplication from file.
5324
5325 2011-03-21  Richard Guenther  <rguenther@suse.de>
5326
5327         PR middle-end/47661
5328         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
5329
5330 2011-03-21  Richard Guenther  <rguenther@suse.de>
5331
5332         PR lto/48210
5333         * params.def (lto-partitions): Require at least 1 partition.
5334
5335 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5336
5337         * gthr-solaris.h: Remove.
5338         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
5339         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
5340         (LIB_SPEC): Likewise.
5341         * config/sol2.opt (threads): Remove.
5342         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
5343         (sparc*-*-solaris2*): Likewise.
5344         * configure.ac (enable_threads): Enable solaris support.
5345         * configure: Regenerate.
5346         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
5347         * doc/install.texi (Configuration, --enable-threads=lib): Remove
5348         solaris.
5349
5350 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5351
5352         * config.gcc: Obsolete *-*-solaris2.8*.
5353         * doc/install.texi (Specific, *-*-solaris2*): Document it.
5354
5355 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5356
5357         PR bootstrap/48135
5358         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
5359         reference.  Solaris 8 perl works.
5360
5361 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5362
5363         PR bootstrap/48135
5364         * doc/install.texi (Prerequisites): Move jar etc. up.
5365         Explain support library version requirements.
5366
5367 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5368
5369         PR bootstrap/48135
5370         * doc/install.texi (Prerequisites): Move Perl to build
5371         requirements.  Always necessary on Solaris 2 with Sun ld.
5372
5373 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5374
5375         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
5376         binutils 2.21.
5377         (Specific, i?86-*-solaris2.[89]): Likewise.
5378         (Specific, i?86-*-solaris2.10): Likewise.
5379         (Specific, mips-sgi-irix6): Likewise.
5380         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
5381         Update for binutils 2.21.
5382
5383 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5384
5385         * configure.ac (gcc_cv_lto_plugin): Fix typo.
5386         Allow -fuse-linker-plugin for non-default plugin linker.
5387         * configure: Regenerate.
5388
5389 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
5390
5391         PR bootstrap/48167
5392         * gengtype.c (files_rules): Added rule for cp/parser.h.
5393
5394 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
5395
5396         PR target/48213
5397         * config/s390/s390.c (s390_delegitimize_address): Don't call
5398         lowpart_subreg if orig_x has BLKmode.
5399
5400 2011-03-21  Kai Tietz  <ktietz@redhat.com>
5401
5402         PR target/12171
5403         * doc/plugins.texi: Adjust documentation for plugin register_callback.
5404         * tree.h (attribute_spec): Add new member affects_type_identity.
5405         * attribs.c (empty_attribute_table): Adjust attribute_spec
5406         initializers.
5407         * config/alpha/alpha.c: Likewise.
5408         * config/arc/arc.c: Likewise.
5409         * config/arm/arm.c: Likewise.
5410         * config/avr/avr.c: Likewise.
5411         * config/bfin/bfin.c: Likewise.
5412         * config/crx/crx.c: Likewise.
5413         * config/darwin.h: Likewise.
5414         * config/h8300/h8300.c: Likewise.
5415         * config/i386/cygming.h: Likewise.
5416         * config/i386/i386.c: Likewise.
5417         * config/ia64/ia64.c: Likewise.
5418         * config/m32c/m32c.c: Likewise.
5419         * config/m32r/m32r.c: Likewise.
5420         * config/m68hc11/m68hc11.c: Likewise.
5421         * config/m68k/m68k.c: Likewise.
5422         * config/mcore/mcore.c: Likewise.
5423         * config/mep/mep.c: Likewise.
5424         * config/microblaze/microblaze.c: Likewise.
5425         * config/mips/mips.c: Likewise.
5426         * config/rs6000/rs6000.c: Likewise.
5427         * config/rx/rx.c: Likewise.
5428         * config/sh/sh.c: Likewise.
5429         * config/sol2.h: Likewise.
5430         * config/sparc/sparc.c: Likewise.
5431         * config/spu/spu.c: Likewise.
5432         * config/stormy16/stormy16.c: Likewise.
5433         * config/v850/v850.c: Likewise.
5434
5435 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
5436
5437         * simplify-rtx.c (simplify_binary_operation_1): Handle
5438         (xor (and A B) C) case when B and C are both constants.
5439
5440 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
5441
5442         * tree-dfa.c (add_referenced_var): Fix typo in comment.
5443
5444 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
5445
5446         PR bootstrap/48168
5447         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
5448
5449 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
5450
5451         PR rtl-optimization/48156
5452         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
5453         assume df and df_lr are not NULL.
5454
5455 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5456
5457         PR debug/48023
5458         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
5459         between a call and its CALL_ARG_LOCATION note.
5460
5461 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
5462
5463         PR debug/48178
5464         * config/sh/sh.c (find_barrier): Don't emit a constant pool
5465         between a call and its corresponding CALL_ARG_LOCATION note.
5466
5467 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
5468
5469         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
5470         instead of loop. Use HARD_REGISTER_NUM_P predicate.
5471         * haifa-sched.c (setup_ref_regs): Ditto.
5472         * caller-save.c (add_used_regs_1): Ditto.
5473         * dse.c (look_for_hardregs): Ditto.
5474         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
5475         * sched-rgn.c (check_live_1): Ditto.
5476
5477 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
5478
5479         * c-decl.c (diagnose_mismatched_decls): Give an error for
5480         redefining a typedef with variably modified type.
5481
5482 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
5483
5484         * c-decl.c (grokfield): Don't allow typedefs for structures or
5485         unions with no tag by default.
5486         * doc/extend.texi (Unnamed Fields): Update.
5487
5488 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
5489
5490         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
5491         Rewrite using indirect functions.
5492         (lwp_slwpcb): Ditto.
5493         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
5494         (avx_vinsertf128<mode>): Ditto.
5495
5496 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5497
5498         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
5499         unspecs.
5500
5501 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5502
5503         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
5504         splitting between a call and its corresponding CALL_ARG_LOCATION note.
5505
5506 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
5507
5508         PR rtl-optimization/48170
5509         * gcse.c (hoist_code): Remove bogus asserts.
5510
5511 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
5512
5513         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
5514         computation for prologue/epilogue.
5515
5516 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5517
5518         * Makefile.in (check-consistency): Remove.
5519
5520 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
5521
5522         PR debug/48176
5523         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
5524         arange_table_in_use is 0, but either text_section_used or
5525         cold_text_section_used is true.  Don't call it if
5526         !info_section_emitted.
5527
5528 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
5529
5530         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
5531         FUNCTION_VALUE_REGNO_P): Remove.
5532         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
5533         Remove.
5534         * config/avr/avr.c (avr_ret_register): Make static inline.
5535         (avr_function_value_regno_p): New function.
5536         (avr_libcall_value): Make static. Add 'func' argument.
5537         (avr_function_value): Make static. Rename 'func' argument to
5538         'fn_decl_or_type', forward it to avr_libcall_value. Call
5539         avr_ret_register function instead of RET_REGISTER macro.
5540         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
5541
5542 2011-03-18  Jason Merrill  <jason@redhat.com>
5543
5544         PR c++/23372
5545         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
5546
5547 2011-03-18  Richard Guenther  <rguenther@suse.de>
5548
5549         * doc/install.texi (--enable-gold): Remove.
5550         (--with-plugin-ld): Document.
5551         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
5552
5553 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
5554
5555         PR middle-end/47790
5556         * expr.c (optimize_bitfield_assignment_op): Revamp to work
5557         again after expansion changes.
5558
5559 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
5560
5561         * combine.c (try_combine): Do simplification only call of
5562         subst() on i2 even when i1 is present. Update comments.
5563
5564 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
5565
5566         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
5567         and UNSPEC_PCREL_SYMOFF.
5568
5569 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5570
5571         * config/s390/s390.md: Use define_c_enum for the unspec constant
5572         definitions.
5573
5574 2011-03-18  Richard Henderson  <rth@redhat.com>
5575             Jakub Jelinek  <jakub@redhat.com>
5576
5577         PR bootstrap/48161
5578         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
5579         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
5580
5581 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5582
5583         PR middle-end/47725
5584         * combine.c (cant_combine_insn_p): Don't check zero/sign
5585         extended hard registers.
5586
5587 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5588
5589         PR middle-end/47725
5590         * combine.c (cant_combine_insn_p): Check zero/sign extended
5591         hard registers.
5592
5593 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
5594
5595         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
5596         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
5597         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
5598         Change return type to bool.
5599         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
5600
5601 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
5602
5603         PR debug/48163
5604         * var-tracking.c (prepare_call_arguments): If CALL target
5605         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
5606         pc instead of looking it up using cselib_lookup and use
5607         Pmode for it if x has VOIDmode.
5608         * dwarf2out.c (gen_subprogram_die): If also both first and
5609         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
5610
5611         PR debug/48163
5612         * function.c (assign_parms): For data.passed_pointer parms
5613         use MEM of data.entry_parm instead of data.entry_parm itself
5614         as DECL_INCOMING_RTL.
5615         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
5616         also when passed and declared mode is the same, DECL_RTL
5617         is a MEM with pseudo as address and DECL_INCOMING_RTL is
5618         a MEM too.
5619
5620 2011-03-16  Jeff Law  <law@redhat.com>
5621
5622         PR rtl-optimization/37273
5623         * ira-costs.c (scan_one_insn): Detect constants living in memory and
5624         handle them like argument loads from stack slots.  Do not double
5625         count memory for memory constants and argument loads from stack slots.
5626
5627 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5628
5629         PR debug/48160
5630         * var-tracking.c (prepare_call_arguments): Check SUBREG.
5631
5632 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5633
5634         PR target/48171
5635         * config/i386/i386.opt: Add Save to -mavx and -mfma.
5636
5637 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
5638
5639         PR bootstrap/48153
5640         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
5641         if dwarf_strict.
5642         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
5643         Clear call_arg_locations and call_arg_loc_last always.
5644
5645         PR middle-end/48152
5646         * var-tracking.c (prepare_call_arguments): If argument needs to be
5647         passed by reference, adjust argtype and mode.
5648
5649 2011-03-17  Richard Guenther  <rguenther@suse.de>
5650
5651         PR middle-end/48134
5652         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
5653         a value make sure to fold the statement.
5654
5655 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
5656
5657         PR target/43872
5658         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
5659         return condition with !cfun->calls_alloca.
5660
5661 2011-03-17  Richard Guenther  <rguenther@suse.de>
5662
5663         PR bootstrap/48148
5664         * lto-cgraph.c (input_overwrite_node): Clear the abstract
5665         origin for decls in other ltrans units.
5666         (input_varpool_node): Likewise.
5667
5668 2011-03-17  Richard Guenther  <rguenther@suse.de>
5669
5670         PR middle-end/48165
5671         * tree-object-size.c (compute_object_offset): Properly return
5672         the offset operand of MEM_REFs as sizetype.
5673
5674 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
5675
5676         PR rtl-optimization/48141
5677         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
5678         * dse.c: Include params.h.
5679         (active_local_stores_len): New variable.
5680         (add_wild_read, dse_step1): Clear it when setting active_local_stores
5681         to NULL.
5682         (record_store, check_mem_read_rtx): Decrease it when removing
5683         from the chain.
5684         (scan_insn): Likewise.  Increase it when adding to chain, if it
5685         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
5686         set active_local_stores to NULL before the addition.
5687         * Makefile.in (dse.o): Depend on $(PARAMS_H).
5688
5689         PR rtl-optimization/48141
5690         * dse.c (record_store): If no positions are needed in an insn
5691         that cannot be deleted, at least unchain it from active_local_stores.
5692
5693 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
5694
5695         PR debug/47510
5696         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
5697         (lookup_type_die_strip_naming_typedef): ... here.
5698         (get_context_die): Use it.
5699         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
5700         the anonymous struct named by the naming typedef.
5701
5702 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
5703
5704         PR target/48154
5705         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
5706         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
5707
5708 2011-03-16  Jeff Law  <law@redhat.com>
5709
5710         * tree-vrp.c (identify_jump_threads): Slightly simplify type
5711         check for operands of conditional.  Allow type to be a pointer.
5712
5713 2011-03-16  Richard Guenther  <rguenther@suse.de>
5714
5715         PR tree-optimization/48149
5716         * fold-const.c (fold_binary_loc): Fold
5717         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
5718
5719 2011-03-16  Richard Guenther  <rguenther@suse.de>
5720
5721         PR tree-optimization/26134
5722         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
5723         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
5724         (non_rewritable_mem_ref_base): Handle complex type component
5725         accesses, constrain offsets for vector and complex extracts
5726         more properly.
5727
5728 2011-03-16  Richard Guenther  <rguenther@suse.de>
5729
5730         PR tree-optimization/48146
5731         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
5732         operands avoiding the need for renaming.
5733
5734 2011-03-16  Richard Guenther  <rguenther@suse.de>
5735
5736         * gimple-fold.c (maybe_fold_reference): Open-code relevant
5737         constant folding.  Move MEM_REF canonicalization first.
5738         Rely on fold_const_aggregate_ref for initializer folding.
5739         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
5740
5741 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
5742
5743         PR middle-end/48136
5744         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
5745         arg0/arg1 or their arguments are always fold converted to matching
5746         types.
5747
5748         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
5749         to nargs.
5750
5751 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5752
5753         PR lto/46944
5754         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
5755         Handle in-tree gold.
5756         (ld_vers): Extract binutils version for gold.
5757         (gcc_cv_ld_hidden): Handle gold here.
5758         (gcc_cv_lto_plugin): Determine level of linker plugin support.
5759         * configure: Regenerate.
5760         * config.in: Regenerate.
5761         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
5762         -fuse-linker-plugin otherwise.
5763         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
5764         (LINK_COMMAND_SPEC): Use it.
5765         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
5766
5767 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
5768
5769         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
5770         * calls.c: Remove debug.h include.
5771         (emit_call_1): Don't call virtual_call_token debug hook.
5772         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
5773         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
5774         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
5775         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
5776         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
5777         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
5778         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
5779         dwarf2out_virtual_call): Remove.
5780         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
5781         copy_call_info and virtual_call hooks.
5782         (dwarf2out_init): Don't initialize vcall_insn_table,
5783         debug_dcall_section and debug_vcall_section.
5784         (prune_unused_types): Don't mark nodes from dcall_table.
5785         (dwarf2out_finish): Don't output dcall or vcall tables.
5786         * final.c (final_scan_insn): Don't call direct_call or
5787         virtual_call debug hooks.
5788         * debug.h (struct gcc_debug_hooks): Remove direct_call,
5789         virtual_call_token, copy_call_info and virtual_call hooks.
5790         (debug_nothing_uid): Remove prototype.
5791         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
5792         copy_call_info and virtual_call hooks.
5793         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5794         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
5795         * debug.c (do_nothing_debug_hooks): Likewise.
5796         (debug_nothing_uid): Remove.
5797         * doc/invoke.texi (-fenable-icf-debug): Remove.
5798         * common.opt (-fenable-icf-debug): Likewise.
5799
5800         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
5801         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
5802         call's MEM.  Handle functions returning aggregate through a hidden
5803         first pointer.  For virtual calls add clobbered pc to call arguments
5804         chain.
5805         * dwarf2out.c (gen_subprogram_die): Emit
5806         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
5807         can't be emitted.
5808
5809         PR debug/45882
5810         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
5811         * rtl.h (ENTRY_VALUE_EXP): Define.
5812         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
5813         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
5814         * print-rtl.c (print_rtx): Likewise.
5815         * gengtype.c (adjust_field_rtx_def): Likewise.
5816         * var-tracking.c (vt_add_function_parameter): Adjust
5817         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
5818         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
5819         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
5820         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
5821         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
5822
5823         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
5824         Call var_location debug hook even on CALL_INSNs.
5825         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
5826         * rtl.def (ENTRY_VALUE): New.
5827         * dwarf2out.c: Include cfglayout.h.
5828         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
5829         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
5830         (struct call_arg_loc_node): New type.
5831         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
5832         tail_call_site_count): New variables.
5833         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
5834         DW_TAG_GNU_call_site_parameter.
5835         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
5836         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
5837         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
5838         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
5839         and DW_AT_GNU_all_source_call_sites.
5840         (mem_loc_descriptor): Handle ENTRY_VALUE.
5841         (add_src_coords_attributes): Don't add enything if
5842         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
5843         (dwarf2out_abstract_function): Save and clear call_arg_location,
5844         call_site_count and tail_call_site_count around dwarf2out_decl call.
5845         (gen_call_site_die): New function.
5846         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
5847         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
5848         (dwarf2out_function_decl): Clear call_arg_locations,
5849         call_arg_loc_last, set call_site_count and tail_call_site_count
5850         to -1 and free block_map.
5851         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
5852         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
5853         followed by any real instructions.
5854         (dwarf2out_begin_function): Set call_site_count and
5855         tail_call_site_count to 0.
5856         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
5857         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
5858         attempt to force a DIE for it and worst case remove the attribute.
5859         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
5860         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
5861         the decl itself.
5862         * var-tracking.c: Include tm_p.h.
5863         (vt_stack_adjustments): For calls call note_register_arguments.
5864         (argument_reg_set): New variable.
5865         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
5866         ensure the VALUE is resolved.
5867         (call_arguments): New variable.
5868         (prepare_call_arguments): New function.
5869         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
5870         (struct expand_loc_callback_data): Add ignore_cur_loc field.
5871         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
5872         always use the best expression.
5873         (vt_expand_loc): Add ignore_cur_loc argument.
5874         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
5875         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
5876         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
5877         note for all calls.
5878         (vt_add_function_parameter): Use cselib_lookup_from_insn.
5879         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
5880         argument.  Don't call cselib_preserve_only_values and
5881         cselib_reset_table.
5882         (note_register_arguments): New function.
5883         (vt_initialize): Compute argument_reg_set.  Call
5884         vt_add_function_parameters before processing basic blocks instead of
5885         afterwards.  For calls call prepare_call_arguments before calling
5886         cselib_process_insn.
5887         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
5888         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
5889         (var-tracking.o): Depend on $(TM_P_H).
5890         * cfglayout.h (insn_scope): New prototype.
5891         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
5892         * cfglayout.c (insn_scope): No longer static.
5893         * insn-notes.def (CALL_ARG_LOCATION): New.
5894         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
5895         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
5896         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
5897         nothing for DECL_EXTERNAL BLOCK_VARS.
5898
5899 2011-03-16  Alan Modra  <amodra@gmail.com>
5900
5901         PR target/45844
5902         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
5903         create invalid offset address for vsx splat insn.
5904         * config/rs6000/predicates.md (splat_input_operand): New.
5905         * config/rs6000/vsx.md (vsx_splat_*): Use it.
5906
5907 2011-03-15  Xinliang David Li  <davidxl@google.com>
5908
5909         PR c/47837
5910         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
5911         (normalize_preds): New function.
5912         (is_use_properly_guarded): Normalize def predicates.
5913
5914 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5915
5916         PR target/46788
5917         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
5918         in the output template.
5919
5920 2011-03-15  Richard Guenther  <rguenther@suse.de>
5921
5922         PR middle-end/47650
5923         * tree-pretty-print.c (dump_function_declaration): Properly
5924         dump unprototyped and varargs function types.
5925
5926 2011-03-15  Richard Guenther  <rguenther@suse.de>
5927
5928         PR tree-optimization/13954
5929         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
5930         and friends.
5931
5932 2011-03-15  Richard Guenther  <rguenther@suse.de>
5933
5934         PR tree-optimization/48037
5935         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
5936         selects into BIT_FIELD_REFs.
5937         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
5938         vector select.
5939
5940 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
5941
5942         PR tree-optimization/48129
5943         * builtins.c (fold_builtin_snprintf): Convert to type of
5944         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
5945         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
5946
5947 2011-03-15  Richard Guenther  <rguenther@suse.de>
5948
5949         PR tree-optimization/41490
5950         * tree-ssa-dce.c (propagate_necessity): Handle returns without
5951         value but with VUSE.
5952         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
5953         return statements.
5954         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
5955         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
5956         * tree-tailcall.c (find_tail_calls): Ignore returns.
5957
5958 2011-03-15  Richard Guenther  <rguenther@suse.de>
5959
5960         PR middle-end/48031
5961         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
5962         or variable-indexed array accesses when in gimple form.
5963
5964 2011-03-15  Richard Guenther  <rguenther@suse.de>
5965
5966         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
5967
5968 2011-03-15  Alan Modra  <amodra@gmail.com>
5969
5970         PR target/48032
5971         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
5972         presume symbol_refs without a symbol_ref_decl are suitably
5973         aligned, nor other trees we may see here.  Handle anchor symbols.
5974         (legitimate_constant_pool_address_p): Comment.  Add mode param.
5975         Check cmodel=medium addresses.  Adjust all calls.
5976         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
5977         creating cmodel=medium optimized access to locals.
5978         * config/rs6000/constraints.md (R): Pass QImode to
5979         legitimate_constant_pool_address_p.
5980         * config/rs6000/predicates.md (input_operand): Pass mode to
5981         legitimate_constant_pool_address_p.
5982         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
5983         Update prototype.
5984
5985 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5986
5987         PR target/48053
5988         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
5989         64-bit constants being loaded into registers other than GPRs such
5990         as loading 0 into a VSX register.
5991
5992 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5993
5994         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
5995
5996 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
5997
5998         PR middle-end/47917
5999         * builtins.c (fold_builtin_snprintf): New function.
6000         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
6001         (fold_builtin_4): Likewise.
6002
6003         PR middle-end/38878
6004         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
6005         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
6006         and C - X == X also strip nops from +/-/p+ operand.
6007         When optimizing -X == C, fold C to arg0's type.
6008
6009         PR debug/47946
6010         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
6011         emit it as add_AT_int instead of add_AT_unsigned.
6012
6013 2011-03-14  Tom Tromey  <tromey@redhat.com>
6014
6015         * unwind-dw2.c: Include sys/sdt.h if it exists.
6016         (_Unwind_DebugHook): Use STAP_PROBE2.
6017         * config.in, configure: Rebuild.
6018         * configure.ac: Check for sys/sdt.h.
6019
6020 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
6021
6022         * config/i386/i386.md (ROUND_FLOOR): New constant.
6023         (ROUND_CEIL): Ditto.
6024         (ROUND_TRUNC): Ditto.
6025         (ROUND_MXCSR): Ditto.
6026         (ROUND_NO_EXC): Ditto.
6027         (rint<mode>2): Use new defines instead of numerical constants.
6028         (floor<mode>2): Ditto.
6029         (ceil<mode>2): Ditto.
6030         (btrunc<mode>2): Ditto.
6031         * config/i386/i386-builtin-types.def: Define ROUND function type
6032         aliases.
6033         * config/i386/i386.c (enum ix86_builtins): Add
6034         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
6035         (struct builtin_description): Add
6036         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
6037         (ix86_expand_sse_round): New static function.
6038         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
6039         function types.
6040         (ix86_builtin_vectorized_function): Handle
6041         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
6042
6043 2011-03-14  Tom Tromey  <tromey@redhat.com>
6044
6045         * c-parser.c (c_parser_asm_string_literal): Clear
6046         warn_overlength_strings.
6047
6048 2011-03-14  Tom Tromey  <tromey@redhat.com>
6049
6050         * c-parser.c (disable_extension_diagnostics): Save
6051         warn_overlength_strings.
6052         (restore_extension_diagnostics): Restore warn_overlength_strings.
6053
6054 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
6055
6056         * BASE-VER: Change to 4.7.0.
6057
6058 2011-03-14  Richard Guenther  <rguenther@suse.de>
6059
6060         PR middle-end/48098
6061         * tree.c (build_vector_from_val): Adjust assert to requirements
6062         and reality.
6063
6064 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
6065
6066         PR bootstrap/48102
6067         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
6068
6069 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
6070
6071         * config/rs6000/freebsd.h: (RELOCATABLE_NEEDS_FIXUP): Define in
6072         terms of target_flags_explicit. Adjust copyright year.
6073
6074         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
6075         * config/rs6000/t-freebsd: New file. Add override for
6076         LIB2FUNCS_EXTRA.
6077
6078 2011-03-13  Chris Demetriou  <cgd@google.com>
6079
6080         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
6081         (-fno-diagnostics-show-option): this, to reflect current default.
6082         (-Werror=): Update text about -fno-diagnostics-show-option.
6083
6084 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
6085
6086         PR target/48053
6087         * config/rs6000/predicates.md (easy_vector_constant_add_self,
6088         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
6089         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
6090         mode is not V2DImode or V2DFmode.
6091         (vspltis_constant): Do not handle V2DImode and V2DFmode.
6092         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
6093         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
6094         registers to 0.
6095         (movdi_internal64): Likewise.
6096
6097 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
6098
6099         PR tree-optimization/47127
6100         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
6101         parameter.
6102         (set_cloog_options): Same.
6103         (scop_to_clast): Same.
6104         (print_clast_stmt): Do not call cloog_state_malloc and
6105         cloog_state_free.
6106         (print_generated_program): Same.
6107         (gloog): Same.
6108         * graphite-clast-to-gimple.h (cloog_state): Declared.
6109         (scop_to_clast): Adjust declaration.
6110         * graphite.c (cloog_state): Defined here.
6111         (graphite_initialize): Call cloog_state_malloc.
6112         (graphite_finalize): Call cloog_state_free.
6113
6114 2011-03-11  Jason Merrill  <jason@redhat.com>
6115
6116         * attribs.c (lookup_attribute_spec): Take const_tree.
6117         * tree.h: Adjust.
6118
6119 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
6120
6121         * config/sparc/sparc.c (sparc_option_override): Use
6122         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
6123
6124 2011-03-11  Richard Guenther  <rguenther@suse.de>
6125
6126         PR tree-optimization/48067
6127         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
6128         multiplication result will be only used once on the target
6129         stmt.
6130
6131 2011-03-11  Richard Guenther  <rguenther@suse.de>
6132
6133         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
6134
6135 2011-03-11  Richard Guenther  <rguenther@suse.de>
6136
6137         PR lto/48073
6138         * tree.c (find_decls_types_r): Do not walk types only reachable
6139         from IDENTIFIER_NODEs.
6140
6141 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
6142
6143         PR middle-end/48044
6144         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
6145         all vnode->force_output nodes as needed.
6146
6147 2011-03-11  Jason Merrill  <jason@redhat.com>
6148
6149         PR c++/48069
6150         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
6151         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
6152
6153 2011-03-11  Martin Jambor  <mjambor@suse.cz>
6154
6155         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
6156         cgraph_node.
6157
6158 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
6159
6160         PR tree-optimization/48063
6161         * ipa-inline.c (cgraph_decide_inlining): Don't try to
6162         inline functions called once if !tree_can_inline_p (node->callers).
6163
6164 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
6165
6166         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
6167         extra_objs.
6168         * config/score/score3.c: Delete.
6169         * config/score/score3.h: Delete.
6170         * config/score/mul-div.S: Delete.
6171         * config/score/sfp-machine.h: Add new file.
6172         * config/score/constraints.md: Add new file.
6173         * config/score/t-score-softfp: Add new file.
6174         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
6175         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
6176         (score7_extra_constraint): Delete.
6177         (score7_option_override): Remove unused code.
6178         * config/score/score.c: Remove score3 and score5 define and code.
6179         * config/score/score.h: Remove score3 and score5 define and code.
6180         * config/score/score.md: Remove score3 template and unusual insn.
6181         * config/score/score.opt: Remove score3 and score5 options.
6182
6183 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6184
6185         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
6186         when _HPUX_SOURCE is defined.
6187         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
6188
6189 2011-03-10  Jason Merrill  <jason@redhat.com>
6190
6191         PR c++/48029
6192         * stor-layout.c (layout_type): Don't set structural equality
6193         on arrays of incomplete type.
6194         * tree.c (type_hash_eq): Handle comparing them properly.
6195
6196 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
6197
6198         PR debug/48043
6199         * config/s390/s390.c (s390_delegitimize_address): Make sure the
6200         result mode matches original rtl mode.
6201
6202 2011-03-10  Nick Clifton  <nickc@redhat.com>
6203
6204         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
6205         (andsi3, andsi3_flags): Fix timings for three operand alternative.
6206
6207 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
6208
6209         PR rtl-optimization/47866
6210         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
6211         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
6212         if target wasn't scalar.
6213         * function.c (assign_stack_temp_for_type): Assert that neither
6214         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
6215         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
6216         macro.
6217         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
6218
6219 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6220
6221         * config/s390/s390-protos.h (s390_label_align): New prototype.
6222         * config/s390/s390.c (s390_label_align): New function.
6223         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
6224
6225 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
6226
6227         PR target/47755
6228         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
6229         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
6230         (output_vec_const_move): Ditto.
6231
6232 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
6233
6234         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
6235         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
6236         * config/mips/mips.c (mips_preferred_reload_class): Make static.
6237         Change 'rclass' argument and result type to reg_class_t.
6238         (TARGET_PREFERRED_RELOAD_CLASS): Define.
6239
6240 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
6241
6242         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
6243         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
6244         (TARGET_MEMORY_MOVE_COST): Define.
6245         (avr_register_move_cost, avr_memory_move_cost): New Functions.
6246
6247 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
6248
6249         PR debug/47881
6250         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
6251         removed anything.
6252
6253         PR tree-optimization/48022
6254         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
6255         for EQ/NE_EXPR.
6256
6257 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
6258
6259         PR debug/47991
6260         * var-tracking.c (find_use_val): Return NULL for
6261         cui->sets && cui->store_p BLKmode MEMs.
6262
6263 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
6264
6265         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
6266         Remove.
6267         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
6268         xstormy16_print_operand_address): Remove.
6269         * config/stormy16/stormy16.c (xstormy16_print_operand,
6270         xstormy16_print_operand_address): Make static.
6271         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
6272
6273 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
6274
6275         PR target/47862
6276         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
6277         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
6278         before definition.
6279
6280 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
6281
6282         PR bootstrap/48000
6283         * cfgloopmanip.c (fix_bb_placements): Return immediately
6284         if FROM is BASE_LOOP's header.
6285
6286 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
6287
6288         * gimplify.c (gimplify_function_tree): Fix building calls
6289         to __builtin_return_address.
6290
6291 2011-03-07  Alan Modra  <amodra@gmail.com>
6292
6293         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
6294         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
6295         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
6296         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
6297         return_mode args.
6298         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
6299         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
6300         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
6301         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
6302         * config/rs6000/rs6000.c
6303         (rs6000_elf_end_indicate_exec_stack): Rename to..
6304         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
6305         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
6306         (rs6000_file_start): ..here.
6307         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
6308         file scope variables.
6309         (call_ABI_of_interest): New function.
6310         (init_cumulative_args): Set above vars when function return value
6311         is a float, vector, or small struct.
6312         (rs6000_function_arg_advance_1): Likewise for function args.
6313         (rs6000_va_start): Set rs6000_passes_float if variable arg function
6314         references float args.
6315
6316 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
6317
6318         * doc/cfg.texi: Remove "See" before @ref.
6319         * doc/invoke.texi: Likewise.
6320
6321 2011-03-05  Jason Merrill  <jason@redhat.com>
6322
6323         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
6324
6325 2011-03-05  Anthony Green  <green@moxielogic.com>
6326
6327         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
6328
6329 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
6330
6331         PR rtl-optimization/47899
6332         * cfgloopmanip.c (fix_bb_placements): Fix first argument
6333         to flow_loop_nested_p when moving the loop upward.
6334
6335 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
6336
6337         PR target/47719
6338         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
6339
6340 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
6341
6342         PR tree-optimization/47967
6343         * ipa-cp.c (build_const_val): Return NULL instead of creating
6344         VIEW_CONVERT_EXPR for mismatching sizes.
6345         (ipcp_create_replace_map): Return NULL if build_const_val failed.
6346         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
6347         give up on versioning.
6348
6349 2011-03-05  Alan Modra  <amodra@gmail.com>
6350
6351         PR target/47986
6352         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
6353         full cmodel medium/large lo_sum + high addresses.
6354
6355 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6356
6357         * config/s390/s390.c (s390_decompose_address): Reject non-literal
6358         pool references in UNSPEC_LTREL_OFFSET.
6359
6360 2011-03-04  Jan Hubicka  <jh@suse.cz>
6361
6362         PR lto/47497
6363         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
6364         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
6365         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
6366         Add node pointers.
6367         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
6368         cgraph_add_thunk): Add node pointers.
6369         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
6370         associated to right node.
6371         (input_node): Update use of cgraph_same_body_alias
6372         and cgraph_add_thunk.
6373
6374 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
6375
6376         * config/i386/i386.opt (mprefer-avx128): New flag.
6377         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
6378         modes when the flag -mprefer-avx128 is on.
6379
6380 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
6381
6382         * dwarf2out.c (compare_loc_operands): Fix address handling.
6383
6384 2011-03-04  Alan Modra  <amodra@gmail.com>
6385
6386         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
6387
6388 2011-03-04  Richard Guenther  <rguenther@suse.de>
6389
6390         PR middle-end/47968
6391         * expmed.c (extract_bit_field_1): Prefer vector modes that
6392         vec_extract patterns can handle.
6393
6394 2011-03-04  Richard Guenther  <rguenther@suse.de>
6395
6396         PR middle-end/47975
6397         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
6398
6399 2011-03-04  Richard Henderson  <rth@redhat.com>
6400
6401         * explow.c (emit_stack_save): Remove 'after' parameter.
6402         (emit_stack_restore): Likewise.
6403         * expr.h: Update to match.
6404         * builtins.c, calls.c, stmt.c: Likewise.
6405         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
6406         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
6407         * function.c (expand_function_end): Insert the emit_stack_save
6408         sequence before parm_birth_insn instead of after.
6409
6410 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
6411
6412         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
6413         (ssse3_pmaddubsw128): Ditto.
6414         (ssse3_pmaddubsw): Ditto.
6415
6416 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
6417
6418         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
6419
6420 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
6421
6422         PR c/47963
6423         * gimplify.c (omp_add_variable): Only call omp_notice_variable
6424         on TYPE_SIZE_UNIT if it is a DECL.
6425
6426         PR debug/47283
6427         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
6428         first operand is not is_gimple_mem_ref_addr, try to fold it.
6429         If the operand still isn't is_gimple_mem_ref_addr, clear
6430         MEM_EXPR on op0.
6431
6432 2011-03-03  Richard Guenther  <rguenther@suse.de>
6433
6434         PR middle-end/47283
6435         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
6436         match comment.
6437         (refs_may_alias_p_1): For release branches return true if
6438         we are confused by our input.
6439
6440 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6441
6442         * config/s390/s390.c (s390_function_value): Rename to ...
6443         (s390_function_and_libcall_value): ... this.
6444         (s390_function_value): New function.
6445         (s390_libcall_value): New function.
6446         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
6447         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
6448         target macro definitions.
6449         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
6450
6451 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
6452
6453         * config/i386/freebsd64.h (CC1_SPEC): Define.
6454         * config/i386/linux64.h (CC1_SPEC): Define.
6455         * config/i386/x86-64.h (CC1_SPEC): Don't define.
6456
6457 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
6458
6459         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
6460         Remove.
6461         * config/stormy16/stormy16.c: Include reload.h.
6462         (xstormy16_memory_move_cost): New function.
6463         (TARGET_MEMORY_MOVE_COST): Define.
6464
6465 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
6466
6467         PR rtl-optimization/47925
6468         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
6469         with side effects.  Remove the more-specific check for volatile asms.
6470
6471 2011-03-02  Alan Modra  <amodra@gmail.com>
6472
6473         PR target/47935
6474         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
6475         toc relative addresses for valid offsets.
6476
6477 2011-03-01  Richard Guenther  <rguenther@suse.de>
6478
6479         PR tree-optimization/47890
6480         * tree-vect-loop.c (get_initial_def_for_induction): Set
6481         related stmt properly.
6482
6483 2011-03-01  Richard Guenther  <rguenther@suse.de>
6484
6485         PR lto/47924
6486         * lto-streamer.c (lto_record_common_node): Also register
6487         the canonical type.
6488
6489 2011-03-01  Richard Guenther  <rguenther@suse.de>
6490
6491         PR lto/46911
6492         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
6493         Do not stream DECL_ABSTRACT_ORIGIN.
6494         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
6495         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
6496         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
6497         Do not stream DECL_ABSTRACT_ORIGIN.
6498         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
6499         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
6500
6501 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
6502
6503         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
6504         FUNCTION_VALUE_REGNO_P): Remove.
6505         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
6506         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
6507         Add 'outgoing' argument.
6508         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
6509         function.
6510         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6511         TARGET_FUNCTION_VALUE_REGNO_P): Define.
6512
6513 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
6514
6515         PR debug/28047
6516         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
6517         (lookup_filename): Likewise.
6518         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
6519
6520 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
6521             Jakub Jelinek  <jakub@redhat.com>
6522
6523         PR middle-end/47893
6524         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
6525         (assign_stack_local_1): Change last argument type to int.
6526         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
6527         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
6528         don't record padding space into frame_space_list nor use those areas.
6529         (assign_stack_local): Adjust caller.
6530         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
6531         of assign_stack_local, pass 0 as last argument.
6532         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
6533         callers.
6534
6535 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
6536
6537         PR debug/47283
6538         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
6539         Use target address_mode and pointer_mode hooks instead of hardcoded
6540         Pmode and ptr_mode.  Handle some simple cases of extending if
6541         POINTERS_EXTEND_UNSIGNED < 0.
6542         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
6543         Call convert_debug_memory_address.
6544         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
6545         convert_debug_memory_address.
6546
6547         PR middle-end/46790
6548         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
6549         * configure: Regenerated.
6550         * config.in: Regenerated.
6551         * varasm.c (default_function_section): Return NULL
6552         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
6553
6554 2011-02-28  Martin Jambor  <mjambor@suse.cz>
6555
6556         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
6557         the description to match the printed values.
6558
6559 2011-02-28  Richard Guenther  <rguenther@suse.de>
6560
6561         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
6562         of the copied scope tree.
6563
6564 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6565
6566         * doc/extend.texi (Function Attributes): Avoid deeply (and
6567         wrongly) nested tables.
6568
6569 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
6570
6571         PR middle-end/47903
6572         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
6573         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
6574         r isn't op0 nor op1.
6575
6576 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
6577
6578         * config/avr/avr.md: Remove magic comment for emacs.
6579
6580 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
6581
6582         PR target/45261
6583         * config/avr/avr.c (avr_option_override): Use error on bad options.
6584         (avr_help): New function.
6585         (TARGET_HELP): Define.
6586
6587 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
6588
6589         PR target/42240
6590         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
6591         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
6592
6593 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
6594
6595         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
6596         (ARM Options): Ditto.
6597         (i386 and x86-64 Options): Ditto.
6598         (RX Options): Ditto.
6599         (SPARC Options): Ditto.
6600
6601 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
6602
6603         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
6604         FreeBSD 6 and later.  Generally use cpu generic.
6605
6606 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
6607
6608         * doc/cpp.texi: Update copyright years.
6609
6610 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
6611
6612         PR target/46898
6613         * config/lm32/lm32.md (ashrsi3): Added needed variable.
6614
6615 2011-02-25  Jon Beniston  <jon@beniston.com>
6616
6617         PR target/46898
6618         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
6619         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
6620         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
6621         (lm32_block_move_inline): Add type cast to remove warning.
6622         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
6623         (gen_int_relational): Move declarations to start of function.
6624
6625 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
6626
6627         PR tree-optimization/45470
6628         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
6629         can throw internally only.
6630         * tree-vect-stmts.c (vectorizable_call): Likewise.
6631
6632 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
6633
6634         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
6635         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
6636         * config/stormy16/stormy16-protos.h
6637         (xstormy16_preferred_reload_class): Remove.
6638         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
6639         static. Change 'rclass' argument and return type to reg_class_t.
6640         (TARGET_PREFERRED_RELOAD_CLASS,
6641         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6642
6643 2011-02-24  Richard Guenther  <rguenther@suse.de>
6644
6645         * lto-streamer-in.c (input_bb): Do not find referenced vars
6646         in debug statements.
6647
6648 2011-02-23  Jason Merrill  <jason@redhat.com>
6649
6650         * common.opt (fabi-version): Document v5 and v6.
6651
6652 2011-02-23  Richard Guenther  <rguenther@suse.de>
6653
6654         PR tree-optimization/47849
6655         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
6656
6657 2011-02-23  Jie Zhang  <jie@codesourcery.com>
6658
6659         * opts-common.c (decode_cmdline_option): Print empty string
6660         argument as "" in decoded->orig_option_with_args_text.
6661         * gcc.c (execute): Print empty string argument as ""
6662         in the verbose output.
6663         (do_spec_1): Keep empty string argument.
6664
6665 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
6666
6667         * config.gcc: Declare score-* and crx-* obsolete.
6668
6669 2011-02-23  Jie Zhang  <jie@codesourcery.com>
6670
6671         PR rtl-optimization/47763
6672         * web.c (web_main): Ignore naked clobber when replacing register.
6673
6674 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
6675
6676         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
6677         Remove.
6678
6679 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
6680
6681         PR doc/47848
6682         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
6683
6684 2011-02-22  Mike Stump  <mikestump@comcast.net>
6685
6686         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
6687         assembler.
6688         * configure: Regenerate.
6689
6690 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
6691
6692         PR rtl-optimization/46002
6693         * ira-color.c (update_copy_costs): Change class intersection
6694         test to reg_class_contents[] test of 'hard_regno'.
6695
6696 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
6697
6698         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
6699         than Driver option.
6700         * config/hpux11.opt (mt): Likewise.
6701         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
6702         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
6703         * config/vax/elf.opt (mno-asm-pic): Likewise.
6704         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
6705
6706 2011-02-21  Mike Stump  <mikestump@comcast.net>
6707
6708         PR target/47822
6709         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
6710         tree so we can get save the type.
6711         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
6712         for CFString instead of trying to use past the end of the builtins.
6713         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
6714         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
6715         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
6716         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
6717         Rename to darwin_builtin_cfstring.
6718         (darwin_init_cfstring_builtins): Return the built type.
6719
6720 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
6721
6722         PR target/47840
6723         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
6724         (_mm256_insert_epi64): Use _mm_insert_epi64.
6725
6726 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
6727
6728         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
6729         * config/stormy16/stormy16-protos.h
6730         (xstormy16_mode_dependent_address_p): Remove.
6731         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
6732         Make static. Change return type to bool. Change argument type to
6733         const_rtx. Remove dead code.
6734         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6735
6736 2011-02-21  Richard Guenther  <rguenther@suse.de>
6737
6738         PR lto/47820
6739         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
6740         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
6741         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
6742         TUs context.
6743         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
6744         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
6745
6746 2011-02-20  Richard Guenther  <rguenther@suse.de>
6747
6748         PR lto/47822
6749         * tree.c (free_lang_data_in_decl): Clean builtins from
6750         the TU decl BLOCK_VARS.
6751
6752 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
6753
6754         PR debug/47620
6755         PR debug/47630
6756         * haifa-sched.c (fix_tick_ready): Skip tick computation
6757         for debug insns.
6758
6759 2011-02-19  Richard Guenther  <rguenther@suse.de>
6760
6761         PR lto/47647
6762         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
6763         Remove lazy BLOCK_VARS streaming.
6764         (lto_input_ts_block_tree_pointers): Likewise.
6765         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
6766
6767 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
6768
6769         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
6770
6771 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
6772
6773         * config/i386/biarch32.h, config/i386/mach.h,
6774         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
6775
6776 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
6777
6778         PR target/47800
6779         * config/i386/i386.md (peephole2 for shift and plus): Use
6780         operands[1] original mode in the first insn.
6781
6782 2011-02-18  Mike Stump  <mikestump@comcast.net>
6783
6784         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
6785
6786 2011-02-18  Jan Hubicka  <jh@suse.cz>
6787
6788         PR middle-end/47788
6789         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
6790         to zero when the function is not inlinable at all.
6791
6792 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6793
6794         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
6795         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
6796         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
6797         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
6798         * config/pa/t-pa64: Likewise.
6799         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
6800
6801 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
6802
6803         PR driver/47787
6804         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
6805
6806 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6807
6808         PR target/47792
6809         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
6810
6811 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
6812
6813         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
6814         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
6815         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
6816         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
6817         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
6818         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
6819         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
6820         m32r_load_postinc_p, m32r_store_preinc_predec_p,
6821         m32r_legitimate_address_p): New functions.
6822         * config/m32r/constraints.md (constraint "S"): Don't use
6823         STORE_PREINC_PREDEC_P.
6824         (constraint "U"): Don't use LOAD_POSTINC_P.
6825
6826 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
6827
6828         PR rtl-optimization/46178
6829         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
6830         compute ira_hard_regno_cover_class[].
6831
6832 2011-02-18  Richard Guenther  <rguenther@suse.de>
6833
6834         PR lto/47798
6835         * lto-streamer.h (lto_global_var_decls): Declare.
6836         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
6837         statics for global var processing.
6838
6839 2011-02-18  Richard Guenther  <rguenther@suse.de>
6840
6841         PR tree-optimization/47737
6842         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
6843         edge dominance check.
6844
6845 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
6846
6847         PR debug/47780
6848         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
6849         avoid invalid rtx sharing.
6850
6851 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
6852
6853         * doc/cpp.texi (Obsolete Features): Add background on the
6854         origin of assertions.
6855
6856 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
6857
6858         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
6859         objc_abi == 2.
6860         * config/darwin.c (output_objc_section_asm_op): Added support for
6861         ABI v1 and v2.
6862         (is_objc_metadata): New.
6863         (darwin_objc2_section): New.
6864         (darwin_objc1_section): New.
6865         (machopic_select_section): Added support for ABI v1 and v2.
6866         (darwin_emit_objc_zeroed): New.
6867         (darwin_output_aligned_bss): Detect objc metadata and treat it
6868         appropriately.
6869         (darwin_asm_output_aligned_decl_common): Same.
6870         (darwin_asm_output_aligned_decl_local): Same.
6871         * config/darwin-sections.def: Updated for ABI v1 and v2.
6872         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
6873         compiling Objective-C code for the NeXT runtime, default to using
6874         ABI version 0 for 32-bit, and version 2 for 64-bit.
6875
6876 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6877
6878         * common.opt (optimize_fast): New Variable.
6879         * opts.c (default_options_optimization): Use opts->x_optimize_fast
6880         instead of local variable ofast.
6881
6882 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
6883
6884         * doc/invoke.texi (fobjc-abi-version): Documented.
6885         (fobjc-nilcheck): Documented.
6886         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
6887         version.
6888
6889 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6890
6891         PR driver/47390
6892         * common.opt (export-dynamic): New Driver option.
6893         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
6894
6895 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6896
6897         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
6898
6899 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
6900             Jan Hubicka  <jh@suse.cz>
6901
6902         PR debug/47106
6903         PR debug/47402
6904         * cfgexpand.c (account_used_vars_for_block): Remove.
6905         (estimated_stack_frame_size): Use referenced vars.
6906         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
6907         that were referenced in the original function.  Test src_fn
6908         rather than cfun.  Drop redundant get_var_ann.
6909         (setup_one_parameter): Drop redundant get_var_ann.
6910         (declare_return_variable): Likewise.
6911         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
6912         (copy_arguments_for_versioning): Drop redundant get_var_ann.
6913         * ipa-inline.c (compute_inline_parameters): Do not compute
6914         disregard_inline_limits here.
6915         (compute_inlinable_for_current, pass_inlinable): New.
6916         (pass_inline_parameters): Require PROP_referenced_vars.
6917         * cgraphunit.c (cgraph_process_new_functions): Don't run
6918         compute_inline_parameters explicitly unless function is in SSA form.
6919         (cgraph_analyze_function): Set .disregard_inline_limits.
6920         * tree-sra.c (convert_callers): Compute inliner parameters
6921         only for functions already in SSA form.
6922
6923 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6924
6925         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
6926         -mlittle-endian-data.
6927
6928 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6929
6930         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
6931         -mno-fpu, not -fpu and -no-fpu.
6932         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
6933         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
6934
6935 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
6936
6937         PR target/43653
6938         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
6939         input reload with PLUS RTX.
6940
6941 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6942
6943         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
6944         of InverseVar(MDMX).
6945
6946 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6947
6948         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
6949         --m4-340.
6950
6951 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6952
6953         * config/mn10300/mn10300.opt (mno-crt0): New.
6954
6955 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6956
6957         * config/m68k/uclinux.opt (static-libc): New Driver option.
6958
6959 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6960
6961         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
6962
6963 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6964
6965         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
6966         %{muser-extend-enabled}.
6967
6968 2011-02-16  Richard Guenther  <rguenther@suse.de>
6969
6970         PR tree-optimization/47738
6971         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
6972         the TODO from tree_predictive_commoning.
6973
6974 2011-02-15  Jeff Law  <law@redhat.com>
6975
6976         Revert
6977         2011-01-25  Jeff Law  <law@redhat.com>
6978
6979         PR rtl-optimization/37273
6980         * ira-costs.c (scan_one_insn): Detect constants living in memory and
6981         handle them like argument loads from stack slots.  Do not double
6982         count memory for memory constants and argument loads from stack slots.
6983
6984 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
6985
6986         PR middle-end/47725
6987         * combine.c (cant_combine_insn_p): Revert the last change.
6988
6989 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
6990
6991         PR target/47755
6992         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
6993         mode for vector constants.  Remove code that checks for TImode.
6994
6995 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
6996
6997         PR debug/47106
6998         PR debug/47402
6999         * cgraph.h (compute_inline_parameters): Return void.
7000         * ipa-inline.c (compute_inline_parameters): Adjust.
7001
7002 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
7003
7004         PR debug/47106
7005         PR debug/47402
7006         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
7007         rather than decl.
7008         * cfgexpand.c (estimated_stack_frame_size): Likewise.
7009         * ipa-inline.c (compute_inline_parameters): Adjust.
7010
7011 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
7012
7013         PR debug/47106
7014         PR debug/47402
7015         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
7016         Adjust all users.  Pass FN to...
7017         * tree-flow-inline.h (first_referenced_var): ... this.  Add
7018         fn argument.
7019         * ipa-struct-reorg.c: Adjust.
7020         * tree-dfa.c: Adjust.
7021         * tree-into-ssa.c: Adjust.
7022         * tree-sra.c: Adjust.
7023         * tree-ssa-alias.c: Adjust.
7024         * tree-ssa-live.c: Adjust.
7025         * tree-ssa.c: Adjust.
7026         * tree-ssanames.c: Adjust.
7027         * tree-tailcall.c: Adjust.
7028
7029 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
7030
7031         PR debug/47106
7032         PR debug/47402
7033         * tree-flow.h (referenced_var_lookup): Add fn parameter.
7034         Adjust all callers.
7035         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
7036         * tree-flow-inline.h: Adjust.
7037         * gimple-pretty-print.c: Adjust.
7038         * tree-into-ssa.c: Adjust.
7039         * tree-ssa.c: Adjust.
7040         * cfgexpand.c: Adjust.
7041
7042 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
7043
7044         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
7045         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7046         (EXTRA_CONSTRAINT): Delete.
7047         * config/iq2000/constraints.md: New file.
7048         * config/iq2000/iq2000.md: Include it.
7049         (define_insn ""): Delete.
7050         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
7051         unsupported constraint letters from patterns.
7052         (call_value, call_value_internal1): Likewise.
7053         (call_value_multiple_internal1): Likewise.
7054
7055 2011-02-15  Nick Clifton  <nickc@redhat.com>
7056
7057         * config/mn10300/mn10300.c: Include tm-constrs.h.
7058         (struct liw_data): New data structure describing an LIW candidate
7059         instruction.
7060         (extract_bundle): Use struct liw_data.  Allow small integer
7061         operands for some instructions.
7062         (check_liw_constraints): Use struct liw_data.  Remove swapped
7063         parameter.  Add comments describing the checks.  Fix bug when
7064         assigning the source of liw1 to the source of liw2.
7065         (liw_candidate): Delete.  Code moved into extract_bundle.
7066         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
7067         before swapping.
7068         * config/mn10300/predicates.md (liw_operand): New predicate.
7069         Allows registers and small integer constants.
7070         * config/mn10300/constraints.md (O): New constraint.  Accetps
7071         integers in the range -8 to +7 inclusive.
7072         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
7073         for moving a small integer into a register.  Give this alternative
7074         LIW attributes.
7075         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
7076         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
7077         using the J,K,L and M constraints,
7078         (liw): Remove SI mode on second operands to allow for HI and QI
7079         mode values.
7080         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
7081         instruction.
7082
7083 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
7084
7085         PR middle-end/47725
7086         * combine.c (cant_combine_insn_p): Check zero/sign extended
7087         hard registers.
7088
7089 2011-02-15  Richard Guenther  <rguenther@suse.de>
7090
7091         PR tree-optimization/47743
7092         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
7093         for a non-type-compatible VN lookup bail out.
7094
7095 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
7096
7097         * config/fr30/constraints.md: New file.
7098         * config/fr30/fr30.md: Include it.
7099         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
7100         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7101         (EXTRA_CONSTRAINT): Delete.
7102
7103 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
7104
7105         * config/frv/constraints.md: New file.
7106         * config/frv/predicates.md: Include it.
7107         * config/frv/frv.c (reg_class_from_letter): Delete.
7108         (frv_option_override): Don't initialize it.
7109         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
7110         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
7111         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
7112         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
7113         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
7114         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7115         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
7116         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
7117         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
7118         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
7119         (REG_CLASS_FROM_CONSTRAINT): Delete.
7120
7121 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
7122
7123         PR middle-end/47581
7124         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
7125         if frame size is 0 in a leaf function.
7126
7127 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7128
7129         PR pch/14940
7130         * config/alpha/host-osf.c: New file.
7131         * config/alpha/x-osf: New file.
7132         * config.host (alpha*-dec-osf*): Use it.
7133
7134 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
7135
7136         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
7137         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
7138         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
7139         (rx_mode_dependent_address_p): ...this. Make static. Change argument
7140         type to const_rtx.
7141         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7142
7143 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
7144
7145         * config/stormy16/constraints.md: New file.
7146         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
7147         Use satisfies_constraint_Q and satisfies_constraint_R.
7148         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
7149         Delete.
7150         (xstormy16_legitiamte_address_p): Declare.
7151         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
7152         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7153         (EXTRA_CONSTRAINT): Delete.
7154         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
7155         Un-staticize.
7156         (xstormy16_extra_constraint_p): Delete.
7157
7158 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
7159
7160         PR tree-optimization/46494
7161         * loop-unroll.c (split_edge_and_insert): Adjust comment.
7162         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
7163         (pass_rtl_loop_done): Add TODO_verify_flow.
7164         * fwprop.c (pass_rtl_fwprop): Likewise.
7165         * modulo-sched.c (pass_sms): Likewise.
7166         * tree-ssa-dom.c (pass_dominator): Likewise.
7167         * tree-ssa-loop-ch.c (pass_ch): Likewise.
7168         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
7169         (pass_tree_loop_done): Likewise.
7170         * tree-ssa-pre.c (execute_pre): Likewise.
7171         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
7172         * tree-ssa-sink.c (pass_sink_code): Likewise.
7173         * tree-vrp.c (pass_vrp): Likewise.
7174
7175 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
7176
7177         * config/v850/constraints.md: New file.
7178         * config/v850/v850.md: Include it.
7179         * config/v850/predicates.md (reg_or_0_operand): Use
7180         satisfies_constraint_G.
7181         (special_symbolref_operand): Use satisfies_constraint_K.
7182         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
7183         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
7184         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
7185         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
7186         (EXTRA_CONSTRAINT): Delete.
7187         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
7188         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
7189         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
7190
7191 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
7192
7193         PR target/47696
7194         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
7195         description.
7196
7197 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
7198
7199         * config/mcore/constraints.md: New file.
7200         * config/mcore/mcore.md: Include it.
7201         * config/mcore/mcore.c (reg_class_from_letter): Delete.
7202         * config/mcore/mcore.h (reg_class_from_letter): Delete.
7203         (REG_CLASS_FROM_LETTER): Delete.
7204         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
7205         insn_const_int_ok_for_constraint.
7206         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
7207         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
7208         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7209         (EXTRA_CONSTRAINT): Delete.
7210
7211 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7212
7213         PR ada/41929
7214         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
7215         (IS_SIGHANDLER): Define.
7216         (sparc64_is_sighandler): New function, split off from
7217         sparc64_fallback_frame_state.
7218         (sparc_is_sighandler): New function, split off from
7219         sparc_fallback_frame_state.
7220         (sparc64_fallback_frame_state): Merge with ...
7221         (sparc_fallback_frame_state): ... this into ...
7222         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
7223         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
7224         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
7225         stack instead of hardcoded offsets.
7226
7227 2011-02-14  Andriy Gapon  <avg@freebsd.org>
7228
7229         PR target/45808
7230         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
7231
7232 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7233
7234         * configure: Regenerate.
7235
7236 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
7237
7238         PR driver/45731
7239         * gcc.c (asm_options): Correct spec matching --target-help.
7240
7241 2011-02-12  Martin Jambor  <mjambor@suse.cz>
7242
7243         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
7244         to gimple call error.
7245
7246 2011-02-12  Mike Stump  <mikestump@comcast.net>
7247
7248         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
7249         comments in backslash regions.
7250
7251 2011-02-12  Mike Stump  <mikestump@comcast.net>
7252             Jakub Jelinek  <jakub@redhat.com>
7253             Iain Sandoe  <iains@gcc.gnu.org>
7254
7255         PR target/47324
7256         * dwarf2out.c (output_cfa_loc): When required, apply the
7257         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
7258         (output_loc_sequence): Likewise.
7259         (output_loc_operands_raw): Likewise.
7260         (output_loc_sequence_raw): Likewise.
7261         (output_cfa_loc): Likewise.
7262         (output_loc_list): Suppress register number adjustment when
7263         calling output_loc_sequence()
7264         (output_die): Likewise.
7265
7266 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
7267
7268         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
7269         Remove macros.
7270         * config/xtensa/xtensa.c (xtensa_register_move_cost,
7271         xtensa_memory_move_cost): New functions.
7272         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
7273
7274 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
7275
7276         PR lto/47225
7277         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
7278         in the current directory.
7279         * configure: Rebuilt.
7280
7281 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
7282
7283         * config/darwin.c (darwin_override_options): Add a hunk missed
7284         from the commit of r168571.  Trim comment line lengths and
7285         correct indents of the preceding block.
7286
7287 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
7288
7289         * gcc.c (driver_handle_option): Concatenate the argument to -F with
7290         the switch.
7291
7292 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
7293
7294         * common.opt (nostartfiles): New Driver option.
7295
7296 2011-02-11  Xinliang David Li  <davidxl@google.com>
7297
7298         PR tree-optimization/47707
7299         * tree-chrec.c (convert_affine_scev): Keep type precision.
7300
7301 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
7302
7303         PR tree-optimization/47420
7304         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
7305
7306 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
7307
7308         PR rtl-optimization/47614
7309         * rtl.h (check_for_inc_dec): Declare.
7310         * dse.c (check_for_inc_dec): Externalize...
7311         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
7312         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
7313
7314 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
7315
7316         PR driver/47678
7317         * gcc.c (main): Do not compile inputs if there were errors in
7318         option handling.
7319         * opts-common.c (read_cmdline_option): Check for wrong language
7320         after other error checks.
7321
7322 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
7323
7324         * cgraph.c: Fix comment typos.
7325         * cgraph.h: Likewise.
7326         * cgraphunit.c: Likewise.
7327         * ipa-cp.c: Likewise.
7328         * ipa-inline.c: Likewise.
7329         * ipa-prop.c: Likewise.
7330         * ipa-pure-const.c: Likewise.
7331         * ipa-ref.c: Likewise.
7332         * ipa-reference.c: Likewise.
7333
7334 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
7335
7336         PR debug/47684
7337         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
7338
7339 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7340
7341         PR testsuite/47400
7342         * doc/sourcebuild.texi (Require Support): Document
7343         dg-require-ascii-locale.
7344
7345 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
7346
7347         * doc/lto.texi (Write summary): Fix missing parentheses.
7348
7349 2011-02-10  DJ Delorie  <dj@redhat.com>
7350
7351         * config/m32c/m32c.c (m32c_option_override): Disable
7352         -fcombine-stack-adjustments until flag value tracking and compare
7353         optimization can be rewritten.
7354
7355 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
7356
7357         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
7358         PROCESSOR_POWER7.
7359         (PROCESSOR_DEFAULT64): Likewise.
7360
7361 2011-02-10  Richard Henderson  <rth@redhat.com>
7362
7363         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
7364         change from 2011-02-03.
7365         * config/rx/rx.c (flags_from_code): Likewise.
7366         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
7367         is valid, n/pz otherwise.
7368         (rx_select_cc_mode): Return CCmode if Y is not zero.
7369
7370 2011-02-10  Richard Guenther  <rguenther@suse.de>
7371
7372         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
7373
7374 2011-02-10  Richard Guenther  <rguenther@suse.de>
7375
7376         PR tree-optimization/47677
7377         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
7378
7379 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
7380
7381         PR target/47665
7382         * combine.c (make_compound_operation): Only change shifts into
7383         multiplication for SCALAR_INT_MODE_P.
7384
7385 2011-02-10  Jie Zhang  <jie@codesourcery.com>
7386
7387         PR testsuite/47622
7388         Revert
7389         2011-02-05  Jie Zhang  <jie@codesourcery.com>
7390         PR debug/42631
7391         * web.c (entry_register): Don't clobber the number of the
7392         first uninitialized reference in used[].
7393
7394 2011-02-09  Richard Guenther  <rguenther@suse.de>
7395
7396         PR tree-optimization/47664
7397         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
7398         all edges again.
7399
7400 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
7401
7402         PR target/46481
7403         PR target/47032
7404         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
7405         PROCESSOR_POWER7.
7406         (PROCESSOR_DEFAULT64): Same.
7407         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
7408
7409 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7410
7411         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
7412
7413 2011-02-09  Martin Jambor  <mjambor@suse.cz>
7414
7415         PR middle-end/45505
7416         * tree-sra.c (struct access): New flags grp_scalar_read and
7417         grp_scalar_write.  Changed description of assignment read and write
7418         flags.
7419         (dump_access): Dump new flags, reorder all of them.
7420         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
7421         to detect multiple scalar reads.
7422         (analyze_access_subtree): Use the new scalar read write flags instead
7423         of the old flags.  Adjusted comments.
7424
7425 2011-02-08  DJ Delorie  <dj@redhat.com>
7426
7427         PR target/47548
7428         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
7429         patterns.
7430
7431 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7432
7433         * config/m68k/uclinux.opt: New.
7434         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
7435
7436 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7437
7438         * config/cris/elf.opt (sim): New Driver option.
7439
7440 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7441
7442         * config/xtensa/elf.opt: New.
7443         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
7444
7445 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7446
7447         * config/vax/elf.opt: New.
7448         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
7449
7450 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7451
7452         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
7453
7454 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7455
7456         * config/gnu-user.opt: New.
7457         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
7458         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
7459         *-*-uclinux*): Use gnu-user.opt.
7460
7461 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
7462
7463         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
7464         * config/i386/gnu.h (CPP_SPEC): Likewise.
7465
7466 2011-02-08  Ian Lance Taylor  <iant@google.com>
7467
7468         * common.opt (fcx-limited-range): Add SetByCombined flag.
7469         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
7470         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
7471         (fassociative-math, freciprocal-math): Likewise.
7472         (funsafe-math-optimizations): Likewise.
7473         * opth-gen.awk: Handle SetByCombined.
7474         * optc-gen.awk: Likewise.
7475         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
7476         (set_unsafe_math_optimizations_flags): Likewise.
7477         * doc/options.texi (Option properties): Document SetByCombined.
7478
7479 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7480
7481         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
7482         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
7483         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
7484         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
7485         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
7486
7487 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
7488
7489         PR tree-optimization/46834
7490         PR tree-optimization/46994
7491         PR tree-optimization/46995
7492         * graphite-sese-to-poly.c (used_outside_reduction): New.
7493         (detect_commutative_reduction): Call used_outside_reduction.
7494         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
7495         translate_scalar_reduction_to_array only when at least one
7496         loop-phi/close-phi tuple has been detected.
7497
7498 2011-02-08  Richard Guenther  <rguenther@suse.de>
7499
7500         PR middle-end/47639
7501         * tree-vect-generic.c (expand_vector_operations_1): Update
7502         stmts here ...
7503         (expand_vector_operations): ... not here.  Cleanup EH info
7504         and the CFG if required.
7505
7506 2011-02-08  Richard Guenther  <rguenther@suse.de>
7507
7508         PR tree-optimization/47641
7509         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
7510         require type compatibility.
7511
7512 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7513
7514         * gimple-low.c (lower_function_body): Don't remove the location of
7515         the return statement here.
7516         (lower_gimple_return): Do it here instead but only if the return
7517         statement is actually used twice.
7518
7519 2011-02-08  Richard Guenther  <rguenther@suse.de>
7520
7521         PR tree-optimization/47632
7522         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
7523         unused up_to_stmt parameter, return whether cfg-cleanup is
7524         necessary, remove EH info properly.
7525         (forward_propagate_into_gimple_cond): Adjust caller.
7526         (forward_propagate_into_cond): Likewise.
7527         (forward_propagate_comparison): Likewise.
7528         (tree_ssa_forward_propagate_single_use_vars): Make
7529         forward_propagate_comparison case similar to the two others.
7530
7531 2011-02-08  Nick Clifton  <nickc@redhat.com>
7532
7533         * config/mn10300/mn10300.opt (mliw): New command line option.
7534         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
7535         (liw_bundling): New automaton.
7536         (liw): New attribute.
7537         (liw_op): New attribute.
7538         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
7539         (movsi_internal): Add LIW attributes.
7540         (andsi3): Likewise.
7541         (iorsi3): Likewise.
7542         (xorsi3): Likewise.
7543         (addsi3): Separate register and immediate alternatives.
7544         Add LIW attributes.
7545         (subsi3): Likewise.
7546         (cmpsi): Likewise.
7547         (aslsi3): Likewise.
7548         (lshrsi3): Likewise.
7549         (ashrsi3): Likewise.
7550         (liw): New pattern.
7551         * config/mn10300/mn10300.c (liw_op_names): New
7552         (mn10300_print_operand): Handle 'W' operand descriptor.
7553         (extract_bundle): New function.
7554         (check_liw_constraints): New function.
7555         (liw_candidate): New function.
7556         (mn10300_bundle_liw): New function.
7557         (mn10300_reorg): New function.
7558         (TARGET_MACHINE_DEPENDENT_REORG): Define.
7559         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
7560         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
7561         __LIW__ or __NO_LIW__.
7562         * doc/invoke.texi: Describe the -mliw command line option.
7563
7564 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7565
7566         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
7567         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
7568         pthread_mutex_unlock): Remove.
7569         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
7570         * config/pa/t-pa64: Likewise.
7571         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
7572         shared libc if not linking against libpthread.
7573         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
7574
7575 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
7576
7577         PR target/47558
7578         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
7579         on 10.6 and later to ensure that we always use the unwinder from
7580         the system.  Only add -no_compact_unwind when tarteting darwin
7581         10.6 or later.
7582
7583 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
7584
7585         PR target/46997
7586         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
7587         (vec_interleave_lowv2sf): Ditto.
7588         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
7589         (vec_extract_oddv2sf): Ditto.
7590
7591 2011-02-07  Mike Stump  <mikestump@comcast.net>
7592
7593         PR target/42333
7594         Add __ieee_divdc3 entry point.
7595         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
7596         entry point.
7597         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
7598         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
7599         * config/darwin.c (darwin_rename_builtins): Add.
7600         * config/darwin-protos.h (darwin_rename_builtins): Add.
7601
7602 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
7603
7604         PR target/47636
7605         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
7606         for the condition.
7607
7608 2011-02-07  Mike Stump  <mikestump@comcast.net>
7609
7610         * config/darwin.opt (mmacosx-version-min): Update default OS version.
7611
7612 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
7613
7614         PR target/47534
7615         * config/avr/libgcc.S (exit): Move .endfunc
7616
7617 2011-02-07  Richard Guenther  <rguenther@suse.de>
7618
7619         PR tree-optimization/47615
7620         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
7621         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
7622         (run_scc_vn): Initialize it.
7623         (visit_reference_op_load): Use it.
7624         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
7625
7626 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7627
7628         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
7629         DImode trapping arithmetic libfuncs.
7630
7631 2011-02-07  Richard Guenther  <rguenther@suse.de>
7632
7633         PR tree-optimization/47621
7634         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
7635         two duplicates ...
7636         (execute_update_addresses_taken): ... here.  Make it more
7637         conservative in what we accept.
7638
7639 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
7640
7641         * config/sparc/freebsd.h (ASM_SPEC): Define.
7642         * config/sparc/vxworks.h (ASM_SPEC): Define.
7643
7644 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
7645
7646         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
7647
7648 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
7649
7650         * doc/invoke.texi: Remove reference to compiler internals from
7651         user documentation.
7652
7653         * reg-notes.def: Remove REG_VALUE_PROFILE.
7654         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
7655
7656 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
7657
7658         PR middle-end/47610
7659         * varasm.c (default_section_type_flags): If decl is NULL,
7660         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
7661
7662 2011-02-05  Jie Zhang  <jie@codesourcery.com>
7663
7664         PR debug/42631
7665         * web.c (entry_register): Don't clobber the number of the
7666         first uninitialized reference in used[].
7667
7668 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
7669
7670         PR tree-optimization/46194
7671         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
7672         (build_classic_dist_vector_1): Do not represent classic distance
7673         vectors when the access functions are variating in different loops.
7674
7675 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
7676
7677         * config/mips/iris6.opt: New.
7678         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
7679
7680 2011-02-04  Richard Henderson  <rth@redhat.com>
7681             Steve Ellcey  <sje@cup.hp.com>
7682
7683         PR target/46997
7684         * config/ia64/predicates.md (mux1_brcst_element): New.
7685         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
7686         * config/ia64/ia64.c (ia64_unpack_assemble): New.
7687         (ia64_unpack_sign): New.
7688         (ia64_expand_unpack): Rewrite using new routines.
7689         (ia64_expand_widen_sum): Ditto.
7690         (ia64_expand_dot_prod_v8qi): Ditto.
7691         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
7692         routines, add endian check.
7693         (pmpy2_even): Rename from pmpy2_r, add endian check.
7694         (pmpy2_odd): Rename from pmpy2_l, add endian check.
7695         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
7696         (vec_widen_smult_hi_v4hi): Ditto.
7697         (vec_widen_umult_lo_v4hi): Ditto.
7698         (vec_widen_umult_hi_v4hi): Ditto.
7699         (mulv2si3): Change endian checks.
7700         (sdot_prodv4hi): Rewrite with new calls.
7701         (udot_prodv4hi): New.
7702         (vec_pack_ssat_v4hi): Add endian check.
7703         (vec_pack_usat_v4hi): Ditto.
7704         (vec_pack_ssat_v2si): Ditto.
7705         (max1_even): Rename from max1_r, add endian check.
7706         (max1_odd): Rename from max1_l, add endian check.
7707         (*mux1_rev): Format change.
7708         (*mux1_mix): Ditto.
7709         (*mux1_shuf): Ditto.
7710         (*mux1_alt): Ditto.
7711         (*mux1_brcst_v8qi): Use new predicate.
7712         (vec_extract_evenv8qi): Remove endian check.
7713         (vec_extract_oddv8qi): Ditto.
7714         (vec_interleave_lowv4hi): Format change.
7715         (vec_interleave_highv4hi): Ditto.
7716         (mix2_even): Rename from mix2_r, add endian check.
7717         (mix2_odd): Rename from mux2_l, add endian check.
7718         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
7719         (vec_extract_evenodd_helper): Format change.
7720         (vec_extract_evenv4hi): Remove endian check.
7721         (vec_extract_oddv4hi): Remove endian check.
7722         (vec_interleave_lowv2si): Format change.
7723         (vec_interleave_highv2si): Format change.
7724         (vec_initv2si): Remove endian check.
7725         (vecinit_v2si): Add endian check.
7726         (reduc_splus_v2sf): Add endian check.
7727         (reduc_smax_v2sf): Ditto.
7728         (reduc_smin_v2sf): Ditto.
7729         (vec_initv2sf): Remove endian check.
7730         (fpack): Add endian check.
7731         (fswap): Add endian check.
7732         (vec_interleave_highv2sf): Add endian check.
7733         (vec_interleave_lowv2sf): Add endian check.
7734         (fmix_lr): Add endian check.
7735         (vec_setv2sf): Format change.
7736         (*vec_extractv2sf_0_be): Use shift to extract operand.
7737         (*vec_extractv2sf_1_be): New.
7738         (vec_pack_trunc_v4hi): Add endian check.
7739         (vec_pack_trunc_v2si): Format change.
7740
7741 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
7742
7743         PR inline-asm/23200
7744         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
7745         do bb, locus and block comparison and disallow loads if it is not set.
7746         (stmt_is_replaceable_p): New function.
7747         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
7748         callers.
7749         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
7750         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
7751         SSA_NAME_DEF_STMT.
7752         * tree-flow.h (stmt_is_replaceable_p): New prototype.
7753
7754 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
7755
7756         * config/rs6000/xilinx.opt: New.
7757         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
7758
7759 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
7760
7761         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
7762
7763 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
7764
7765         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
7766         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
7767         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
7768         secondary_reload_info, xtensa_secondary_reload): Remove.
7769         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
7770         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7771         (xtensa_preferred_reload_class): Make static. Change return and
7772         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
7773         Use CONST_DOUBLE_P predicate.
7774         (xtensa_preferred_output_reload_class): New function.
7775         (xtensa_secondary_reload): Make static.
7776
7777 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
7778
7779         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
7780         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
7781         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
7782
7783 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
7784
7785         PR middle-end/31490
7786         * output.h (SECTION_RELRO): Define.
7787         (SECTION_MACH_DEP): Adjust.
7788         (get_variable_section): New prototype.
7789         * varpool.c (varpool_finalize_named_section_flags): New function.
7790         (varpool_assemble_pending_decls): Call it.
7791         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
7792         * cgraphunit.c (cgraph_output_in_order): Call
7793         varpool_finalize_named_section_flags.
7794         * varasm.c (get_section): Allow section flags conflicts between
7795         relro and read-only sections if the section hasn't been declared yet.
7796         Set SECTION_OVERRIDE after diagnosing section type conflict.
7797         (get_variable_section): No longer static.
7798         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
7799         readonly sections that need relocations.
7800         (decl_readonly_section_1): New function.
7801         (decl_readonly_section): Use it.
7802
7803         Revert:
7804         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
7805                     Steve Ellcey  <sje@cup.hp.com>
7806
7807         PR middle-end/31490
7808         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
7809         if section attribute used.
7810
7811 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
7812
7813         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
7814         * config/darwin.c (SECTION_NO_ANCHOR): Define.
7815         (darwin_init_sections): Remove assertion.
7816
7817 2011-02-03  Nick Clifton  <nickc@redhat.com>
7818
7819         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
7820         lt and ge.
7821         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
7822         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
7823         instead of "n" and "pz".
7824         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
7825         CC_FLAG_S.
7826
7827 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
7828
7829         PR target/47312
7830         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
7831         fma, expand FMA_EXPR as fma{,f,l} call.
7832
7833         PR lto/47274
7834         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
7835         copy them into a unsigned char variable and pass address of it to
7836         lto_output_data_stream.
7837
7838         PR target/47564
7839         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
7840         around backend_init_target and lang_dependent_init_target calls.
7841         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
7842         (verify_cgraph_node): Don't call set_cfun here.  Use
7843         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
7844         Set error_found for incorrectly represented calls to thunks.
7845
7846 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
7847
7848         PR debug/43092
7849         PR rtl-optimization/43494
7850         * rtl.h (for_each_inc_dec_fn): New type.
7851         (for_each_inc_dec): Declare.
7852         * rtlanal.c (struct for_each_inc_dec_ops): New type.
7853         (for_each_inc_dec_find_inc_dec): New fn.
7854         (for_each_inc_dec_find_mem): New fn.
7855         (for_each_inc_dec): New fn.
7856         * dse.c (struct insn_size): Remove.
7857         (replace_inc_dec, replace_inc_dec_mem): Remove.
7858         (emit_inc_dec_insn_before): New fn.
7859         (check_for_inc_dec): Use it, along with for_each_inc_dec.
7860         (canon_address): Pass mem modes to cselib_lookup.
7861         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
7862         (cselib_lookup_from_insn): Likewise.
7863         (cselib_subst_to_values): Likewise.
7864         * cselib.c (find_slot_memmode): New var.
7865         (cselib_find_slot): New fn.  Use it instead of
7866         htab_find_slot_with_hash everywhere.
7867         (entry_and_rtx_equal_p): Use find_slot_memmode.
7868         (autoinc_split): New fn.
7869         (rtx_equal_for_cselib_p): Rename and implement in terms of...
7870         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
7871         Deal with autoinc.  Special-case recursion into MEMs.
7872         (cselib_hash_rtx): Likewise.
7873         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
7874         address and MEM modes.
7875         (cselib_subst_to_values): Add memmode, pass it on.
7876         Deal with autoinc.
7877         (cselib_lookup): Add memmode argument, pass it on.
7878         (cselib_lookup_from_insn): Add memmode.
7879         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
7880         (struct cselib_record_autoinc_data): New.
7881         (cselib_record_autoinc_cb): New fn.
7882         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
7883         mode to cselib_lookup.  Reset autoinced REGs here instead of...
7884         (cselib_process_insn): ... here.
7885         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
7886         to cselib_lookup.
7887         (add_uses): Likewise, also to cselib_subst_to_values.
7888         (add_stores): Likewise.
7889         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
7890         cselib_subst_to_values.
7891         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
7892         * gcse.c (do_local_cprop): Adjusted.
7893         * postreload.c (reload_cse_simplify_set): Adjusted.
7894         (reload_cse_simplify_operands): Adjusted.
7895         * sel-sched-dump (debug_mem_addr_value): Pass mode.
7896
7897 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
7898
7899         PR tree-optimization/45122
7900         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
7901         unsafe assumptions when there's more than one loop exit.
7902
7903 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7904
7905         PR target/47272
7906         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
7907         Document using vector double with the load/store builtins, and
7908         that the load/store builtins always use Altivec instructions.
7909
7910         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
7911         to use altivec memory instructions, even on VSX.
7912         (vector_altivec_store_<mode>): Ditto.
7913
7914         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
7915         function.
7916
7917         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7918         V2DF, V2DI support to load/store overloaded builtins.
7919
7920         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
7921         altivec load/store builtins for V2DF/V2DI types.
7922
7923         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
7924         set avoid indexed addresses on power6 if -maltivec.
7925         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
7926         vector_altivec_load/vector_altivec_store builtins.
7927         (altivec_expand_st_builtin): Ditto.
7928         (altivec_expand_builtin): Add VSX memory builtins.
7929         (rs6000_init_builtins): Add V2DI types to internal types.
7930         (altivec_init_builtins): Add support for V2DF/V2DI altivec
7931         load/store builtins.
7932         (rs6000_address_for_altivec): Insure memory address is appropriate
7933         for Altivec.
7934
7935         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
7936         vec_vsx_ld and vec_vsx_st.
7937         (vsx_store_<mode>): Ditto.
7938
7939         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
7940         variables to hold long long types for VSX vector memory builtins.
7941         (RS6000_BTI_unsigned_long_long): Ditto.
7942         (long_long_integer_type_internal_node): Ditti.
7943         (long_long_unsigned_type_internal_node): Ditti.
7944
7945         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
7946         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
7947         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
7948
7949         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
7950         short cuts.
7951         (vec_vsx_st): Ditto.
7952
7953 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
7954
7955         * config/pa/pa-hpux10.opt: New.
7956         * config/hpux11.opt (pthread): New Driver option.
7957         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
7958         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
7959
7960 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
7961
7962         * config/ia64/vms.opt: New.
7963         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
7964
7965 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
7966
7967         PR target/47580
7968         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
7969         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
7970         generator functions.
7971         (vsx_floatuns<VSi><mode>2): Ditto.
7972         (vsx_fix_trunc<mode><VSi>2): Ditto.
7973         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
7974
7975 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
7976
7977         * config/i386/djgpp.opt (posix): New Driver option.
7978
7979 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
7980
7981         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
7982         Move to the unsupported targets list.
7983
7984 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
7985
7986         PR rtl-optimization/47525
7987         * df-scan.c: Update copyright years.
7988         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
7989         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
7990
7991 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7992
7993         * config/i386/sysv4.h (TARGET_VERSION): Remove.
7994         (SUBTARGET_RETURN_IN_MEMORY): Remove.
7995         (ASM_OUTPUT_ASCII): Remove.
7996         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
7997
7998 2011-02-02  Jeff Law  <law@redhat.com>
7999
8000         PR middle-end/47543
8001         * reload.c (find_reloads_address): Handle reg+d address where both
8002         components are invalid by reloading the entire address.
8003
8004 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
8005             Richard Guenther  <rguenther@suse.de>
8006
8007         PR tree-optimization/40979
8008         PR bootstrap/47044
8009         * passes.c (init_optimization_passes): After LIM call copy_prop
8010         and DCE to clean up.
8011         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
8012
8013 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
8014
8015         PR tree-optimization/47576
8016         PR tree-optimization/47555
8017         * doc/invoke.texi (scev-max-expr-complexity): Documented.
8018         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
8019         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
8020         * tree-scalar-evolution.c (follow_ssa_edge): Use
8021         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
8022
8023 2011-02-02  Richard Guenther  <rguenther@suse.de>
8024
8025         PR tree-optimization/47566
8026         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
8027
8028 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
8029
8030         PR debug/47106
8031         PR debug/47402
8032         * tree-inline.c (declare_return_variable): Remove unused caller
8033         variable.
8034
8035         PR debug/47106
8036         PR debug/47402
8037         * tree-flow-inline.h (clear_is_used, is_used_p): New.
8038         * cfgexpand.c (account_used_vars_for_block): Use them.
8039         * tree-nrv.c (tree_nrv): Likewise.
8040         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
8041         (dump_scope_block): Likewise.
8042         (remove_unused_locals): Likewise.
8043
8044         PR debug/47106
8045         PR debug/47402
8046         * tree-inline.c (declare_return_variable): Add result decl to
8047         local decls only once.
8048         * gimple-low.c (record_vars_into): Mark newly-created variables
8049         as referenced.
8050
8051 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
8052
8053         PR debug/47498
8054         PR debug/47501
8055         PR debug/45136
8056         PR debug/45130
8057         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
8058         debug insns.
8059         (no_real_insns_p, schedule_block, set_priorities): Drop special
8060         treatment of boundary debug insns.
8061         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
8062         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
8063         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
8064         (BOUNDARY_DEBUG_INSN_P): Likewise.
8065         (SCHEDULE_DEBUG_INSN_P): Likewise.
8066         * sched-rgn.c (init_ready_list): Drop special treatment of
8067         boundary debug insns.
8068         * final.c (rest_of_clean_state): Clear notes' BB.
8069
8070 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8071
8072         * config/openbsd.opt (assert=): New Driver option.
8073
8074 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8075
8076         * config/i386/nto.opt: New.
8077         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
8078
8079 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8080
8081         * config/i386/netware.opt: New.
8082         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
8083
8084 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8085
8086         * config/interix.opt (posix): New Driver option.
8087
8088 2011-02-01  DJ Delorie  <dj@redhat.com>
8089
8090         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
8091
8092         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
8093         class for A0/A1.
8094
8095 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
8096
8097         PR tree-optimization/47561
8098         * toplev.c (process_options): Print the Graphite flags.  Add
8099         flag_loop_flatten to the list of options requiring Graphite.
8100
8101 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8102
8103         * config/i386/cygming.opt (posix): New Driver option.
8104
8105 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8106
8107         * config/arm/vxworks.opt: New.
8108         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
8109
8110 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8111
8112         * config/alpha/elf.opt: New.
8113         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
8114         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
8115
8116 2011-02-01  Richard Guenther  <rguenther@suse.de>
8117
8118         PR tree-optimization/47559
8119         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
8120         store-motion on references that can throw.
8121
8122 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
8123
8124         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
8125         * tree-pass.h (TDF_CSELIB): New macro.
8126         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
8127         cselib_lookup): Check for it rather than for TDF_DETAILS.
8128
8129 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
8130
8131         PR driver/47547
8132         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
8133         is HOST_BIT_BUCKET.
8134
8135         * opts.c (finish_options): Don't add x_aux_base_name if it is
8136         HOST_BIT_BUCKET.
8137
8138 2011-02-01  Richard Guenther  <rguenther@suse.de>
8139
8140         PR tree-optimization/47555
8141         Revert
8142         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
8143
8144         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
8145
8146 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
8147
8148         PR gcc/46692
8149         * config/lm32/t-lm32: Add multilib for all CPU options.
8150
8151 2011-02-01  Richard Guenther  <rguenther@suse.de>
8152
8153         PR tree-optimization/47541
8154         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
8155         sure to have a field at offset zero.
8156
8157 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
8158
8159         * config/arc/arc.opt (EB, EL): New Driver options.
8160
8161 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
8162
8163         * config/alpha/osf5.opt: New.
8164         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
8165
8166 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
8167
8168         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
8169
8170 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
8171
8172         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
8173         -floop-interchange.
8174         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
8175         is an alias of -floop-interchange and that it requires the
8176         Graphite infrastructure.
8177         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
8178         flag_loop_interchange based on the value of flag_tree_loop_linear.
8179
8180 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
8181             Richard Guenther  <rguenther@suse.de>
8182
8183         PR tree-optimization/47538
8184         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
8185         type instead of r1type, except for comparisons.  For right
8186         shifts and comparisons punt if there are mismatches in
8187         sizetype vs. non-sizetype types.
8188
8189 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8190
8191         * doc/sourcebuild.texi (Effective-Target Keywords): Document
8192         avx_runtime.
8193
8194 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8195
8196         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
8197         version number.
8198         * configure: Regenerate.
8199
8200 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8201
8202         * configure.ac (gcc_cv_ld_static_option): Define.
8203         (gcc_cv_ld_dynamic_option): Define.
8204         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
8205         instead.
8206         (HAVE_LD_STATIC_DYNAMIC): Update message.
8207         (LD_STATIC_OPTION): Define.
8208         (LD_DYNAMIC_OPTION): Define.
8209         * configure: Regenerate.
8210         * config.in: Regenerate.
8211         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
8212         HAVE_LD_STATIC_DYNAMIC]: Use them.
8213
8214 2011-01-31  Nick Clifton  <nickc@redhat.com>
8215
8216         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
8217         registers inside interrupt handlers if the handler is not a leaf
8218         function.
8219
8220 2011-01-31  Nick Clifton  <nickc@redhat.com>
8221
8222         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
8223         reg_renumber returning an INVALID_REGNUM.
8224
8225 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
8226
8227         PR libgcj/44341
8228         * doc/install.texi: Document host options discarded when cross
8229         configuring target libraries.
8230
8231 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
8232
8233         Reverted:
8234         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
8235         PR debug/45136
8236         PR debug/45130
8237         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
8238         debug insns.
8239         (no_real_insns_p, schedule_block, set_priorities): Drop special
8240         treatment of boundary debug insns.
8241         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
8242         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
8243         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
8244         (BOUNDARY_DEBUG_INSN_P): Likewise.
8245         (SCHEDULE_DEBUG_INSN_P): Likewise.
8246         * sched-rgn.c (init_ready_list): Drop special treatment of
8247         boundary debug insns.
8248         * final.c (rest_of_clean-state): Clear notes' BB.
8249
8250 2011-01-31  Alan Modra  <amodra@gmail.com>
8251
8252         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
8253         toc relative expressions as we do in print_operand_address.
8254
8255 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
8256
8257         * doc/extend.texi: Follow spelling conventions.
8258         * doc/invoke.texi: Fix a typo.
8259
8260 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
8261
8262         * config/hpux11.opt: New.
8263         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
8264         ia64*-*-hpux*): Use hpux11.opt.
8265
8266 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
8267
8268         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
8269         to tmake_file.
8270
8271 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
8272
8273         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
8274         support sites.
8275
8276 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
8277
8278         * doc/install.texi (Binaries): Remove outdated reference for
8279         Motorola 68HC11/68HC12 downloads.
8280
8281 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
8282
8283         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
8284         Drepper's paper.
8285
8286 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
8287
8288         PR bootstrap/47147
8289         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
8290         used by NetBSD.
8291
8292 2011-01-28  Ahmad Sharif  <asharif@google.com>
8293
8294         * value-prof.c (check_counter): Corrected error message.
8295
8296 2011-01-29  Jie Zhang  <jie@codesourcery.com>
8297
8298         * config/arm/arm.c (arm_legitimize_reload_address): New.
8299         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
8300         arm_legitimize_reload_address.
8301         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
8302
8303 2011-01-28  Ian Lance Taylor  <iant@google.com>
8304
8305         * godump.c (go_define): Ignore macros whose definitions include
8306         two adjacent operands.
8307
8308 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
8309
8310         PR target/42894
8311         * varasm.c (force_const_mem): Store copy of x in desc->constant
8312         instead of x itself.
8313         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
8314         itself into REG_EQUAL note.
8315
8316 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
8317
8318         * config/freebsd.opt (posix, rdynamic): New Driver options.
8319
8320 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8321
8322         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
8323         -Bstatic/-Bdynamic.
8324         * configure: Regenerate.
8325
8326 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
8327
8328         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
8329         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
8330
8331 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
8332
8333         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
8334         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
8335         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
8336         (s390_preferred_reload_class): Make static. Change return and
8337         'rclass' argument type to reg_class_t.
8338
8339 2011-01-27  Jan Hubicka  <jh@suse.cz>
8340
8341         PR middle-end/46949
8342         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
8343         (process_function_and_variable_attributes): Check defined weakrefs.
8344
8345 2011-01-27  Martin Jambor  <mjambor@suse.cz>
8346
8347         PR tree-optimization/47228
8348         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
8349         build_ref_for_offset.
8350
8351 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8352
8353         * config/spu/spu-elf.h (ASM_SPEC): Remove.
8354
8355 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
8356
8357         PR rtl-optimization/46856
8358         * postreload.c (reload_combine_recognize_const_pattern): Do not
8359         separate cc0 setter and user on cc0 targets.
8360
8361 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
8362
8363         PR c/43082
8364         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
8365         passed a VOID_TYPE expression, immediately emit an error and
8366         return error_mark_node.
8367
8368 2011-01-26  Jeff Law  <law@redhat.com>
8369
8370         PR rtl-optimization/47464
8371         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
8372         rather than may_trap_p as needed.
8373
8374 2011-01-26  DJ Delorie  <dj@redhat.com>
8375
8376         PR rtl-optimization/46878
8377         * combine.c (insn_a_feeds_b): Check for the implicit cc0
8378         setter/user dependency as well.
8379
8380 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
8381
8382         PR rtl-optimization/44469
8383         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
8384         after removing trivially dead basic blocks.
8385
8386 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
8387
8388         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
8389         * config/frv/frv.h (LINK_SPEC): Likewise.
8390         * config/i386/netware.h (LINK_SPEC): Likewise.
8391         * config/m68k/linux.h (ASM_SPEC): Likewise.
8392         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
8393         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
8394         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8395         * config/sparc/linux.h (ASM_SPEC): Likewise.
8396         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8397         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8398
8399 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
8400
8401         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
8402         * config/frv/frv.h (ASM_SPEC): Likewise.
8403         * config/m68k/linux.h (ASM_SPEC): Likewise.
8404         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
8405         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
8406         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8407         * config/sparc/linux.h (ASM_SPEC): Likewise.
8408         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8409         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8410
8411 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
8412
8413         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
8414         * config/frv/frv.h (LINK_SPEC): Likewise.
8415         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
8416
8417 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
8418
8419         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
8420         * config/frv/frv.h (ASM_SPEC): Likewise.
8421         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
8422         * config/m68k/linux.h (ASM_SPEC): Likewise.
8423         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
8424         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
8425         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8426         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
8427         * config/sparc/linux.h (ASM_SPEC): Likewise.
8428         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8429         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8430         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
8431
8432 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
8433
8434         PR target/46997
8435         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
8436         (*mux2): Ditto.
8437         (vec_extract_evenodd_help): Ditto.
8438         (vec_extract_evenv4hi): Ditto.
8439         (vec_extract_oddv4hi): Ditto.
8440         (vec_interleave_lowv2si): Ditto.
8441         (vec_interleave_highv2si): Ditto.
8442         (vec_extract_evenv2si): Ditto.
8443         (vec_extract_oddv2si: Ditto.
8444         (vec_pack_trunc_v2si): Ditto.
8445
8446 2011-01-22  Jan Hubicka  <jh@suse.cz>
8447
8448         PR target/47237
8449         * cgraph.h (cgraph_local_info): New field can_change_signature.
8450         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
8451         signature can change.
8452         (ipcp_estimate_growth): Call sequence simplify only if calle signature
8453         can change.
8454         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
8455         (cgraph_function_versioning): We can not change signature of functions
8456         that don't allow that.
8457         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
8458         (lto_input_node): Likewise.
8459         * ipa-inline.c (compute_inline_parameters): Compute
8460         local.can_change_signature.
8461         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
8462         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
8463         functions that can not change signature.
8464         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
8465         init_cumulative_args): Do not use local calling conventions
8466         for functions that can not change signature.
8467
8468 2011-01-22  Jan Hubicka  <jh@suse.cz>
8469
8470         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
8471
8472 2011-01-26  Richard Guenther  <rguenther@suse.de>
8473
8474         PR tree-optimization/47190
8475         * cgraphunit.c (process_common_attributes): New function.
8476         (process_function_and_variable_attributes): Use it.
8477
8478 2011-01-26  Richard Guenther  <rguenther@suse.de>
8479
8480         PR lto/47423
8481         * cgraphbuild.c (record_eh_tables): Record reference to personality
8482         function.
8483
8484 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
8485
8486         PR debug/45454
8487         * sel-sched.c (moveup_expr): Don't let debug insns prevent
8488         non-debug insns from moving up.
8489
8490 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
8491
8492         PR target/40125
8493         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
8494         t-dlldir{,-x} fragment for build and add it to tmake_file.
8495         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
8496         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
8497         * config/i386/t-dlldir: New file.
8498         (SHLIB_DLLDIR): Define.
8499         * config/i386/t-dlldir-x: New file.
8500         (SHLIB_DLLDIR): Define.
8501         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
8502         (SHLIB_INSTALL): Use it.
8503
8504 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
8505
8506         PR target/47246
8507         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
8508         lower bound of the allowed Thumb-2 coprocessor load/store
8509         index range to -256. Add explaining comment.
8510
8511 2011-01-25  Ian Lance Taylor  <iant@google.com>
8512
8513         * godump.c (go_define): Improve lexing of macro expansion to only
8514         accept expressions which match Go spec.
8515
8516 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
8517
8518         PR c++/43601
8519         * tree.c (handle_dll_attribute): Handle it.
8520         * doc/extend.texi (@item dllexport): Mention it.
8521         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
8522
8523 2011-01-25  Ian Lance Taylor  <iant@google.com>
8524
8525         PR tree-optimization/26854
8526         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
8527         (decl_jump_unsafe): Move higher in file, with no other change.
8528         (bind): Set has_jump_unsafe_decl if appropriate.
8529         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
8530         (check_earlier_gotos): Likewise.
8531         (c_check_switch_jump_warnings): Likewise.
8532
8533 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
8534
8535         * doc/invoke.texi (Warning Options): Add missing hyphen.
8536         (-fprofile-dir): Minor grammatical fixes.
8537         (-fbranch-probabilities): Likewise.
8538
8539 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
8540
8541         PR debug/45136
8542         PR debug/45130
8543         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
8544         debug insns.
8545         (no_real_insns_p, schedule_block, set_priorities): Drop special
8546         treatment of boundary debug insns.
8547         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
8548         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
8549         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
8550         (BOUNDARY_DEBUG_INSN_P): Likewise.
8551         (SCHEDULE_DEBUG_INSN_P): Likewise.
8552         * sched-rgn.c (init_ready_list): Drop special treatment of
8553         boundary debug insns.
8554         * final.c (rest_of_clean-state): Clear notes' BB.
8555
8556 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8557
8558         * Makefile.in (LAMBDA_H): Removed.
8559         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
8560         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
8561         lambda-trans.o, and tree-loop-linear.o.
8562         (lto-symtab.o): Remove dependence on LAMBDA_H.
8563         (tree-loop-linear.o): Remove rule.
8564         (lambda-mat.o): Same.
8565         (lambda-trans.o): Same.
8566         (lambda-code.o): Same.
8567         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
8568         (tree-vect-slp.o): Same.
8569         * hwint.h (gcd): Moved here.
8570         (least_common_multiple): Same.
8571         * lambda-code.c: Removed.
8572         * lambda-mat.c: Removed.
8573         * lambda-trans.c: Removed.
8574         * lambda.h: Removed.
8575         * tree-loop-linear.c: Removed.
8576         * lto-symtab.c: Do not include lambda.h.
8577         * omega.c (gcd): Removed.
8578         * passes.c (init_optimization_passes): Remove pass_linear_transform.
8579         * tree-data-ref.c (print_lambda_vector): Moved here.
8580         (lambda_vector_copy): Same.
8581         (lambda_matrix_copy): Same.
8582         (lambda_matrix_id): Same.
8583         (lambda_vector_first_nz): Same.
8584         (lambda_matrix_row_add): Same.
8585         (lambda_matrix_row_exchange): Same.
8586         (lambda_vector_mult_const): Same.
8587         (lambda_vector_negate): Same.
8588         (lambda_matrix_row_negate): Same.
8589         (lambda_vector_equal): Same.
8590         (lambda_matrix_right_hermite): Same.
8591         * tree-data-ref.h: Do not include lambda.h.
8592         (lambda_vector): Moved here.
8593         (lambda_matrix): Same.
8594         (dependence_level): Same.
8595         (lambda_transform_legal_p): Removed declaration.
8596         (lambda_collect_parameters): Same.
8597         (lambda_compute_access_matrices): Same.
8598         (lambda_vector_gcd): Same.
8599         (lambda_vector_new): Same.
8600         (lambda_vector_clear): Same.
8601         (lambda_vector_lexico_pos): Same.
8602         (lambda_vector_zerop): Same.
8603         (lambda_matrix_new): Same.
8604         * tree-flow.h (least_common_multiple): Removed declaration.
8605         * tree-parloops.c (lambda_trans_matrix): Moved here.
8606         (LTM_MATRIX): Same.
8607         (LTM_ROWSIZE): Same.
8608         (LTM_COLSIZE): Same.
8609         (LTM_DENOMINATOR): Same.
8610         (lambda_trans_matrix_new): Same.
8611         (lambda_matrix_vector_mult): Same.
8612         (lambda_transform_legal_p): Same.
8613         * tree-pass.h (pass_linear_transform): Removed declaration.
8614         * tree-ssa-loop.c (tree_linear_transform): Removed.
8615         (gate_tree_linear_transform): Removed.
8616         (pass_linear_transform): Removed.
8617         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
8618         flag_loop_interchange.
8619
8620 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
8621
8622         PR tree-optimization/47265
8623         PR tree-optimization/47443
8624         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
8625         if name still has some uses.
8626
8627 2011-01-25  Martin Jambor  <mjambor@suse.cz>
8628
8629         PR tree-optimization/47382
8630         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
8631         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
8632
8633 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
8634
8635         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
8636         sjlj_except_unwind_info.
8637
8638 2011-01-25  Richard Guenther  <rguenther@suse.de>
8639
8640         PR tree-optimization/47426
8641         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
8642         visible functions results escape.
8643
8644 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
8645
8646         PR target/45701
8647         * config/arm/arm.c (any_sibcall_uses_r3): New function.
8648         (arm_get_frame_offsets): Use it.
8649
8650 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8651             Jakub Jelinek  <jakub@redhat.com>
8652
8653         PR tree-optimization/47271
8654         * tree-if-conv.c (bb_postdominates_preds): New.
8655         (if_convertible_bb_p): Call bb_postdominates_preds.
8656         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
8657         (predicate_scalar_phi): Call bb_postdominates_preds.
8658
8659 2011-01-25  Nick Clifton  <nickc@redhat.com>
8660
8661         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
8662         * config/rx/rx.c (rx_function_value): Likewise.
8663         (rx_promote_function_mode): Likewise.
8664         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
8665         in order to make it legitimate.
8666         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
8667         make sure that the first operand is the same as the result register.
8668         (addsi3_unspec): Delete.
8669         (subdi3): Do not accept immediate operands.
8670         (subdi3_internal): Likewise.
8671
8672 2011-01-25  Jeff Law  <law@redhat.com>
8673
8674         PR rtl-optimization/37273
8675         * ira-costs.c (scan_one_insn): Detect constants living in memory and
8676         handle them like argument loads from stack slots.  Do not double
8677         count memory for memory constants and argument loads from stack slots.
8678
8679 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
8680
8681         PR tree-optimization/47427
8682         PR tree-optimization/47428
8683         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
8684         coalesce if the new root var would be TREE_READONLY.
8685
8686 2011-01-25  Richard Guenther  <rguenther@suse.de>
8687
8688         PR middle-end/47414
8689         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
8690         correct type for TBAA.
8691
8692 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8693
8694         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
8695         (close_phi_written_to_memory): Call for_each_index with
8696         dr_indices_valid_in_loop.
8697
8698 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8699
8700         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
8701         when it is initialized.
8702
8703 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8704
8705         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
8706         call to graphite_find_data_references_in_stmt.
8707         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
8708         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
8709         call to graphite_find_data_references_in_stmt.
8710         (analyze_drs_in_stmts): Same.
8711         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
8712         in which the scalar analysis of indices is performed.
8713         (create_data_ref): Same.  Update call to dr_analyze_indices.
8714         (find_data_references_in_stmt): Update call to create_data_ref.
8715         (graphite_find_data_references_in_stmt): Same.
8716         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
8717         declaration.
8718         (create_data_ref): Same.
8719         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
8720         call to create_data_ref.
8721
8722 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8723
8724         * graphite-sese-to-poly.c (build_poly_scop): Move
8725         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
8726
8727 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8728
8729         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
8730         VAR_DECL, PARM_DECL, and RESULT_DECL.
8731
8732 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8733
8734         * graphite-dependences.c (reduction_dr_1): Allow several reductions
8735         in a reduction PBB.
8736         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
8737         that have already been marked as PBB_IS_REDUCTION.
8738
8739 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8740
8741         * graphite-scop-detection.c (same_close_phi_node): New.
8742         (remove_duplicate_close_phi): New.
8743         (make_close_phi_nodes_unique): New.
8744         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
8745
8746 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8747
8748         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
8749         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
8750         of both data references to be the same.
8751
8752 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8753
8754         * graphite-dependences.c (build_lexicographical_constraint): Remove
8755         the gdim parameter.
8756         (build_lexicographical_constraint): Adjust call to
8757         ppl_powerset_is_empty.
8758         (dependence_polyhedron): Same.
8759         (graphite_legal_transform_dr): Same.
8760         (graphite_carried_dependence_level_k): Same.
8761         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
8762         parameter.
8763         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
8764
8765 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8766
8767         * graphite-sese-to-poly.c
8768         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
8769         (close_phi_written_to_memory): New.
8770         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
8771         and unshare_expr.
8772
8773 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8774
8775         * doc/install.texi: Update the expected version number of PPL to 0.11.
8776         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
8777         #if PPL_VERSION_MINOR < 11.
8778
8779 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8780
8781         * graphite-dependences.c: Include graphite-cloog-util.h.
8782         (new_poly_ddr): Inlined into dependence_polyhedron.
8783         (free_poly_ddr): Moved close by new_poly_ddr.
8784         (dependence_polyhedron_1): Renamed dependence_polyhedron.
8785         Early return NULL when ppl_powerset_is_empty returns true.
8786         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
8787         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
8788         (graphite_legal_transform_dr): Call new_poly_ddr.
8789         (graphite_carried_dependence_level_k): Same.
8790         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
8791         (dot_transformed_deps_stmt_1): Removed.
8792         (dot_deps_stmt_1): Call dot_deps_stmt_2.
8793         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
8794         (dot_deps_1): Call dot_deps_2.
8795         * Makefile.in (graphite-dependences.o): Add missing dependence on
8796         graphite-cloog-util.h.
8797
8798 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8799
8800         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
8801         (build_lexicographical_constraint): Same.
8802         (dependence_polyhedron_1): Same.
8803         (graphite_legal_transform_dr): Same.
8804         (graphite_carried_dependence_level_k): Same.
8805         * graphite-ppl.c (ppl_powerset_is_empty): New.
8806         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
8807         * tree-data-ref.c (dump_data_reference): Print the basic block index.
8808
8809 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8810
8811         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
8812         the "a followed by b" relation and document it.
8813
8814 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8815
8816         * graphite-dependences.c (build_lexicographical_constraint): Stop the
8817         iteration when the bag of constraints is empty.
8818
8819 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8820
8821         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
8822
8823 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8824
8825         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
8826         nest and two loop depths as parameters.
8827         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
8828         lst_perfect_nestify.
8829
8830 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8831
8832         * graphite-dependences.c (print_pddr): Call
8833         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
8834
8835 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8836
8837         * graphite-ppl.c (debug_gmp_value): New.
8838         * graphite-ppl.h (debug_gmp_value): Declared.
8839
8840 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
8841
8842         * doc/install.texi: Document availability of cloog-0.16.
8843
8844 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
8845
8846         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
8847         invalid postdominance info.
8848
8849 2011-01-24  Jan Hubicka  <jh@suse.cz>
8850
8851         PR c/21659
8852         * doc/extend.texi (weak pragma): Drop claim that it must
8853         appear before definition.
8854         * varasm.c (merge_weak, declare_weak): Only sanity check
8855         that DECL is not output at a time it is declared weak.
8856
8857 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
8858
8859         * machmode.def: Fixed comments.
8860
8861 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
8862
8863         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
8864
8865 2011-01-24  Paul Koning  <ni1d@arrl.net>
8866
8867         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
8868         WORDS_BIG_ENDIAN.
8869
8870 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
8871
8872         PR target/46519
8873         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
8874         (block_info): Add scanned and prev.
8875         (move_or_delete_vzeroupper_2): Return if the basic block
8876         has been scanned and the upper 128bit state is unchanged
8877         from the last scan.
8878         (move_or_delete_vzeroupper_1): Return true if the exit
8879         state is changed.
8880         (move_or_delete_vzeroupper): Visit basic blocks using the
8881         work-list based algorithm based on vt_find_locations in
8882         var-tracking.c.
8883
8884         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
8885
8886 2011-01-24  Nick Clifton  <nickc@redhat.com>
8887
8888         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
8889         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
8890         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
8891         then define __v850e1__.
8892         * doc/invoke.texi: Document -mv850es.
8893
8894 2011-01-24  Richard Henderson  <rth@redhat.com>
8895
8896         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
8897         compound unordered comparisons.
8898         * config/rx/rx.c (rx_split_fp_compare): Remove.
8899         * config/rx/rx-protos.h: Update.
8900         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
8901         (cbranchsf4): Don't call rx_split_fp_compare.
8902         (*cbranchsf4): Use rx_split_cbranch.
8903         (*cmpsf): Don't accept "i" constraint.
8904         (*conditional_branch): Only valid after reload.
8905         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
8906
8907 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
8908
8909         PR target/47385
8910         * config/rs6000/altivec.md (vector constant splitters): Add
8911         support for creating vector single precision constants if -mvsx is
8912         used and we would create the constant using Altivec primitives.
8913
8914 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
8915             Richard Sandiford  <rdsandiford@googlemail.com>
8916
8917         PR rtl-optimization/47166
8918         * reload1.c (emit_reload_insns): Disable the spill_reg_store
8919         mechanism for PRE_MODIFY and POST_MODIFY.
8920         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
8921         reloadreg.
8922
8923 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
8924
8925         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
8926
8927 2011-01-22  Jan Hubicka  <jh@suse.cz>
8928
8929         PR lto/47333
8930         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
8931
8932 2011-01-22  Jan Hubicka  <jh@suse.cz>
8933
8934         PR tree-optimization/43884
8935         PR lto/44334
8936         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
8937         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
8938
8939 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
8940
8941         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
8942         * config/s390/s390.c (s390_register_move_cost,
8943         s390_memory_move_cost): New.
8944         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
8945
8946 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8947
8948         PR middle-end/47401
8949         * except.c (sjlj_assign_call_site_values): Move setting the
8950         crtl->uses_eh_lsda flag to ...
8951         (sjlj_mark_call_sites): ... here.
8952         (sjlj_emit_function_enter): Support NULL dispatch label.
8953         (sjlj_build_landing_pads): In a function with no landing pads
8954         that still has must-not-throw regions, generate code to register
8955         a personality function with empty LSDA.
8956
8957 2011-01-21  Richard Henderson  <rth@redhat.com>
8958
8959         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
8960
8961         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
8962
8963         * compare-elim.c: New file.
8964         * Makefile.in (OBJS-common): Add it.
8965         (compare-elim.o): New.
8966         * common.opt (fcompare-elim): New.
8967         * opts.c (default_options_table): Add OPT_fcompare_elim.
8968         * tree-pass.h (pass_compare_elim_after_reload): New.
8969         * passes.c (init_optimization_passes): Add it.
8970         * recog.h: Protect against re-inclusion.
8971         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
8972         * doc/invoke.texi (-fcompare-elim): Document it.
8973         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
8974         * doc/tm.texi: Rebuild.
8975
8976 2011-01-22  Nick Clifton  <nickc@redhat.com>
8977
8978         * config/rx/rx.md (cstoresf4): Pass comparison operator to
8979         rx_split_fp_compare.
8980
8981 2011-01-22  Nick Clifton  <nickc@redhat.com>
8982
8983         * config/rx/rx.md (UNSPEC_CONST): New.
8984         (deallocate_and_return): Wrap the amount popped off the stack in
8985         an UNSPEC_CONST in order to stop it being rejected by
8986         -mmax-constant-size.
8987         (pop_and_return): Add a "(return)" rtx.
8988         (call): Drop the immediate operand.
8989         (call_internal): Likewise.
8990         (call_value): Likewise.
8991         (call_value_internal): Likewise.
8992         (sibcall_internal): Likewise.
8993         (sibcall_value_internal): Likewise.
8994         (sibcall): Likewise.  Generate an explicit call using
8995         sibcall_internal.
8996         (sibcall_value): Likewise.
8997         (mov<>): FAIL if a constant operand is not legitimate.
8998         (addsi3_unpsec): New pattern.
8999
9000         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
9001         (ok_for_max_constant): New function.
9002         (gen_safe_add): New function.
9003         (rx_expand_prologue): Use gen_safe_add.
9004         (rx_expand_epilogue): Likewise.
9005         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
9006         UNSPEC CONSTs.
9007
9008 2011-01-21  Jeff Law  <law@redhat.com>
9009
9010         PR tree-optimization/47053
9011         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
9012         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
9013         statements are deleted.
9014         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
9015         is nonempty, then purge dead edges and cleanup the CFG.
9016
9017 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
9018
9019         PR debug/47402
9020         Temporarily revert:
9021         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
9022         PR debug/47106
9023         * tree-dfa.c (create_var_ann): Mark variable as used.
9024
9025 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
9026
9027         PR middle-end/45566
9028         * except.c (convert_to_eh_region_ranges): Emit queued no-region
9029         notes from other section in hot/cold partitioning even if
9030         last_action is -3.  Increment call_site_base.
9031
9032         PR rtl-optimization/47366
9033         * fwprop.c (forward_propagate_into): Return bool.  If
9034         any changes are made, -fnon-call-exceptions is used and
9035         REG_EH_REGION note is present, call purge_dead_edges
9036         and return true if it purged anything.
9037         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
9038         any EH edges were purged.
9039
9040 2011-01-21  Jeff Law  <law@redhat.com>
9041
9042         PR rtl-optimization/41619
9043         * caller-save.c (setup_save_areas): Break out code to determine
9044         which hard regs are live across calls by examining the reload chains
9045         so that it is always used.
9046         Eliminate code which checked REG_N_CALLS_CROSSED.
9047
9048 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
9049
9050         PR tree-optimization/47355
9051         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
9052         NOP has non-debug uses beyond PHIs in new_bb.
9053
9054 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
9055
9056         PR debug/47106
9057         * cfgexpand.c (account_used_vars_for_block): Only account vars
9058         that are annotated as used.
9059         (estimated_stack_frame_size): Don't set TREE_USED.
9060         * tree-dfa.c (create_var_ann): Mark variable as used.
9061
9062 2011-01-21  Richard Guenther  <rguenther@suse.de>
9063
9064         PR middle-end/47395
9065         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
9066
9067 2011-01-21  Richard Guenther  <rguenther@suse.de>
9068
9069         PR tree-optimization/47365
9070         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
9071         (vn_reference_lookup_pieces): Adjust.
9072         (vn_reference_lookup): Likewise.
9073         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
9074         (vn_reference_lookup_3): Only look through kills if in
9075         VN_WALKREWRITE mode.
9076         (vn_reference_lookup_pieces): Adjust.
9077         (vn_reference_lookup): Likewise.
9078         (visit_reference_op_load): Likewise.
9079         (visit_reference_op_store): Likewise.
9080         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
9081         (compute_avail): Likewise.
9082         (eliminate): Likewise.
9083
9084 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
9085
9086         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
9087         DECL_IGNORED_P non-reg vars if they are used.
9088
9089         PR tree-optimization/47391
9090         * varpool.c (const_value_known_p): Return false if
9091         decl is volatile.
9092
9093 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
9094
9095         PR bootstrap/47215
9096         * config/i386/i386.c (ix86_local_alignment): Handle
9097         case for va_list_type_node is nil.
9098         (ix86_canonical_va_list_type): Likewise.
9099
9100 2011-01-21  Alan Modra  <amodra@gmail.com>
9101
9102         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
9103         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
9104
9105 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9106
9107         * config/arm/arm.md (define_attr type): Rename f_load
9108         and f_store to f_fpa_load and f_fpa_store. Update.
9109         (write_conflict): Deal with rename fallout.
9110         (*push_fp_multi): Likewise.
9111         * config/arm/fpa.md (f_load): Use f_fpa_load.
9112         (f_store): Use f_fpa_store.
9113         (*movsf_fpa): Likewise.
9114         (*movdf_fpa): Likewise.
9115         (*movxf_fpa): Likewise.
9116         (*thumb2_movsf_fpa): Likewise.
9117         (*thumb2_movdf_fpa): Likewise.
9118         (*thumb2_movxf_fpa): Likewise.
9119         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
9120         f_loadd and f_stored.
9121         (*thumb2_movdi_vfp): Likewise.
9122         (*thumb2_movsf_vfp): Fix attribute to f_loads.
9123         (*thumb2_movsi_vfp): Likewise.
9124         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
9125         Use f_loads instead of f_load.
9126         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
9127
9128 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
9129
9130         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
9131         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
9132         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9133         (xtensa_mode_dependent_address_p): New function.
9134         (constantpool_address_p): Make static. Change return type to bool.
9135         Change argument type to const_rtx. Use CONST_INT_P predicate.
9136
9137 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
9138
9139         PR debug/46583
9140         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
9141
9142 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
9143
9144         PR debug/47283
9145         * cfgexpand.c (expand_debug_expr): Instead of generating
9146         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
9147         etc. handling.
9148
9149 2011-01-20  Richard Guenther  <rguenther@suse.de>
9150
9151         PR middle-end/47370
9152         * tree-inline.c (remap_gimple_op_r): Recurse manually for
9153         the pointer operand of MEM_REFs.
9154
9155 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
9156
9157         PR tree-optimization/46130
9158         * ipa-split.c (consider_split): If return_bb contains non-virtual
9159         PHIs other than for retval or if split_function would not adjust it,
9160         refuse to split.
9161
9162 2011-01-20  Richard Guenther  <rguenther@suse.de>
9163
9164         PR tree-optimization/47167
9165         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
9166         Revert previous change, only avoid enumeral type changes.
9167
9168 2011-01-19  Mike Stump  <mikestump@comcast.net>
9169
9170         * doc/tm.texi.in (BRANCH_COST): Englishify.
9171         * doc/tm.texi (BRANCH_COST): Likewise.
9172
9173 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
9174
9175         PR c++/47291
9176         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
9177         (gen_scheduled_generic_parms_dies): New functions.
9178         (gen_struct_or_union_type_die): Schedule template parameters DIEs
9179         generation for the end of CU compilation.
9180         (dwarf2out_finish): Generate template parameters DIEs here.
9181
9182 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
9183
9184         PR debug/46240
9185         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
9186         debug bind stmt on merge edges.
9187
9188 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
9189
9190         PR debug/47079
9191         PR debug/46724
9192         * function.c (instantiate_expr): Instantiate incoming rtl of
9193         implicit arguments, and recurse on VALUE_EXPRs.
9194         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
9195         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
9196
9197 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
9198
9199         * c-parser.c (c_parser_for_statement): Initialize
9200         collection_expression.
9201
9202 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
9203
9204         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
9205
9206 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
9207
9208         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
9209         (LINK_SHLIB_SPEC): Don't use %(link_path).
9210         (SUBTARGET_EXTRA_SPECS): Remove link_path.
9211
9212 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
9213
9214         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
9215         (NO_SHARED_LIB_SUPPORT): Remove.
9216         (LINK_SHLIB_SPEC): Remove one conditional definition.
9217
9218 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
9219
9220         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
9221         %{call_shared}.
9222         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
9223         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
9224         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
9225         %{call_shared} and conditionals on these options not being passed.
9226         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
9227         %{call_shared}.
9228
9229 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
9230
9231         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
9232         simplify.
9233
9234         * ipa-split.c: Spelling fixes.
9235
9236 2011-01-19  Richard Henderson  <rth@redhat.com>
9237
9238         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
9239         (*mulsi3): Likewise.
9240
9241         * longlong.h [__mn10300__] (count_leading_zeros): New.
9242         [__mn10300__] (umul_ppmm, smul_ppmm): New.
9243         [__mn10300__] (add_ssaaaa, subddmmss): New.
9244         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
9245         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
9246
9247 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9248
9249         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
9250
9251 2011-01-19  Richard Henderson  <rth@redhat.com>
9252
9253         * config/mn10300/mn10300.md (addsi3_flags): New.
9254         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
9255         (subsi3_flags, subc_internal, subdi3): New.
9256         (subdi3_internal, *subdi3_degenerate): New.
9257         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
9258
9259         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
9260         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
9261         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
9262         * config/mn10300/mn10300-protos.h: Update.
9263         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
9264         (return_ret): Likewise.  Rename from return_internal_regs.
9265         (return_internal): Remove.
9266
9267         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
9268         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
9269         (mn10300_legitimate_constant_p): Likewise.
9270         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
9271         (mn10300_frame_size): New.
9272         (mn10300_expand_prologue): Use it.
9273         (mn10300_expand_epilogue): Likewise.
9274         (mn10300_initial_offset): Likewise.
9275         * config/mn10300/mn10300-protos.h: Update.
9276         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
9277         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
9278         (prologue, epilogue, return_internal): Tidy output code.
9279         (mn10300_store_multiple_operation, return): Likewise.
9280         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
9281         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
9282         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
9283         (load_pic, am33_load_pic): New.
9284         (mn10300_load_pic0, mn10300_load_pic1): New.
9285
9286         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
9287         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
9288         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
9289         (cc_flags_for_mode, cc_flags_for_code): New.
9290         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
9291         overflow flag is not valid.  Validate that the flags we need
9292         for the comparison are valid.
9293         (mn10300_output_cmp): Remove.
9294         (mn10300_output_add): New.
9295         (mn10300_select_cc_mode): Use cc_flags_for_code.
9296         (mn10300_split_cbranch): New.
9297         (mn10300_match_ccmode): New.
9298         (mn10300_split_and_operand_count): New.
9299         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
9300         to the function.
9301         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
9302         (addsi3): ... here.  Use mn10300_output_add.
9303         (*addsi3_flags): New.
9304         (*am33_subsi3, *mn10300_subsi3): Merge...
9305         (subsi3): ... here.  Use attribute isa.
9306         (*subsi3_flags): New.
9307         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
9308         when possible.
9309         (*am33_andsi3, *mn10300_andsi3): Merge...
9310         (andsi3): ... here.
9311         (*andsi3_flags): New.
9312         (andsi3 splitters): New.
9313         (*am33_iorsi3, *mn10300_iorsi3): Merge...
9314         (iorsi3): ... here.
9315         (*iorsi3_flags): New.
9316         (*am33_xorsi3, *mn10300_xorsi3): Merge...
9317         (xorsi3): ... here.
9318         (*xorsi3_flags): New.
9319         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
9320         (one_cmplsi2): ... here.
9321         (*one_cmplsi2_flags): New.
9322         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
9323         instead of "dax" in constraints.  Use mn10300_split_cbranch.
9324         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
9325         use matching constraints to eliminate a self-comparison.
9326         (*integer_conditional_branch): Rename from integer_conditional_branch.
9327         Use int_mode_flags to match CC_REG.
9328         (*cbranchsi4_btst, *btstsi): New.
9329         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
9330         mn10300_split_cbranch.
9331         (*am33_cmpsf): Rename from am33_cmpsf.
9332         (*float_conditional_branch): Rename from float_conditional_branch.
9333         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
9334         (zero_extendqisi2): ... here.
9335         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
9336         (zero_extendhisi2): ... here.
9337         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
9338         (extendqisi2): ... here.
9339         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
9340         (extendhisi2): ... here.
9341         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
9342         (ashlsi3): ... here.
9343         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
9344         (lshrsi3): ... here.
9345         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
9346         (ashrsi3): ... here.
9347         (consecutive add peephole): Remove.
9348         * config/mn10300/predicates.md (label_ref_operand): New.
9349         (int_mode_flags): New.
9350         (CCZN_comparison_operator): New.
9351
9352         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
9353         (throughput_42_latency_43): New reservation.
9354         (mulsidi3, umulsidi3): New expanders.
9355         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
9356         the MDR register to allocation; separately allocate the low and
9357         high parts of the DImode result.
9358         (umulsidi3_internal): Similarly.
9359         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
9360         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
9361         (udivsi3, umodsi3): Remove.
9362         (udivmodsi4, divmodsi4): New expanders.
9363         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
9364         (*divmodsi4): Simiarly.
9365         (ext_internal): New.
9366
9367         * config/mn10300/constraints.md ("z"): New constraint.
9368         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
9369         (FIXED_REGISTERS): Don't fix MDR.
9370         (CALL_USED_REGSITERS): Reformat nicely.
9371         (REG_ALLOC_ORDER): Add MDR.
9372         (enum regclass): Add MDR_REGS.
9373         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
9374         (IRA_COVER_CLASSES): Add MDR_REGS.
9375         (REGNO_REG_CLASS): Handle MDR_REG.
9376         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
9377         (mn10300_register_move_cost): Likewise.
9378         * config/mn10300/mn10300.md (MDR_REG): New.
9379         (*movsi_internal): Handle moves to/from MDR_REGS.
9380
9381         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
9382         POST_MODIFY.
9383         (mn10300_secondary_reload): Tidy combination reload classes.
9384         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
9385         addresses for AM33.  Allow symbolic offsets for reg+imm.
9386         (mn10300_regno_in_class_p): New.
9387         (mn10300_legitimize_reload_address): New.
9388         * config/mn10300/mn10300.h (enum reg_class): Remove
9389         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
9390         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
9391         SP_OR_GENERAL_REGS.
9392         (REG_CLASS_NAMES): Update to match.
9393         (REG_CLASS_CONTENTS): Likewise.
9394         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
9395         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
9396         (REGNO_IN_RANGE_P): Remove.
9397         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
9398         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
9399         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
9400         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
9401         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
9402         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
9403         (REGNO_GENERAL_P): New.
9404         (HAVE_POST_MODIFY_DISP): New.
9405         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
9406         (LEGITIMIZE_RELOAD_ADDRESS): New.
9407         * config/mn10300/mn10300-protos.h: Update.
9408
9409         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
9410         DATA_REGS for AM33 stack-pointer destination.
9411         (mn10300_preferred_output_reload_class): Likewise.
9412         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
9413         into a form appropriate for ...
9414         (TARGET_SECONDARY_RELOAD): New.
9415         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
9416         * config/mn10300/mn10300-protos.h: Update.
9417         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
9418         reload_insi; use the "A" constraint for the scratch; handle AM33
9419         moves of sp to non-address registers.
9420
9421         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
9422         (*movqi_internal): ... here.
9423         (*am33_movhi, *mn10300_movhi): Merge into...
9424         (*movhi_internal): ... here.
9425         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
9426         as the source/destination of moves from/to SP.
9427         (movsf): Only allow for AM33-2.
9428         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
9429         any integer constant constraint.  Only allow for AM33-2.  Tidy
9430         all of the alternative outputs.
9431         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
9432         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
9433         for MN103.
9434         (udivsi3, umodsi3): New patterns for MN103 only.
9435
9436 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
9437
9438         * doc/tm.texi.in: Spell out that a lack of register class unions
9439         can lead to ICEs.
9440         * doc/tm.texi: Regenerate.
9441
9442 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
9443
9444         PR rtl-optimization/47337
9445         * dce.c (check_argument_store): New function.
9446         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
9447
9448         PR tree-optimization/47290
9449         * tree-eh.c (infinite_empty_loop_p): New function.
9450         (cleanup_empty_eh): Use it.
9451
9452 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
9453
9454         PR target/46997
9455         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
9456         (a64_expand_widen_sum): Ditto.
9457         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
9458         (vec_extract_evenodd_help): Ditto.
9459         (vec_extract_evenv4hi): Ditto.
9460         (vec_extract_oddv4hi): Ditto.
9461         (vec_extract_evenv2si): Ditto.
9462         (vec_extract_oddv2si): Ditto.
9463         (vec_extract_evenv2sf): Ditto.
9464         (vec_extract_oddv2sf): Ditto.
9465         (vec_pack_trunc_v4hi: Ditto.
9466         (vec_pack_trunc_v2si): Ditto.
9467         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
9468         (vec_interleave_highv8qi): Ditto.
9469         (mix1_r): Ditto.
9470         (vec_extract_oddv8qi): Ditto.
9471         (vec_interleave_lowv4hi): Ditto.
9472         (vec_interleave_highv4hi): Ditto.
9473         (vec_interleave_lowv2si): Ditto.
9474         (vec_interleave_highv2si): Ditto.
9475
9476 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9477
9478         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
9479         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
9480         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
9481         (pa_c_mode_for_suffix): New.
9482         (TARGET_EXPAND_BUILTIN): Define.
9483         (TARGET_C_MODE_FOR_SUFFIX): Define.
9484         (pa_builtins): Define.
9485         (pa_init_builtins): Register __float128 type and init new support
9486         builtins.
9487         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
9488         * config/pa/quadlib.c (_U_Qfcopysign): New.
9489
9490 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
9491
9492         PR middle-end/46894
9493         * explow.c (allocate_dynamic_stack_space): Do not assume more than
9494         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
9495         are defined.
9496
9497 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9498
9499         PR tree-optimization/47179
9500         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
9501         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
9502
9503 2011-01-18  Richard Guenther  <rguenther@suse.de>
9504
9505         PR rtl-optimization/47216
9506         * emit-rtl.c: Include tree-flow.h.
9507         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
9508         of replicating it with different semantics.
9509         * Makefile.in (emit-rtl.o): Adjust.
9510
9511 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9512
9513         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
9514         (cortex_a9_dp): Handle neon types correctly.
9515
9516 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
9517
9518         PR rtl-optimization/47299
9519         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
9520         subtarget.  Use normal multiplication if both operands are constants.
9521         * expmed.c (expand_widening_mult): Don't try to optimize constant
9522         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
9523         before using it.
9524
9525 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9526
9527         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
9528         spacing after 'e.g.', typos, comma, hyphenation.
9529
9530 2011-01-17  Richard Henderson  <rth@redhat.com>
9531
9532         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
9533         (rx_restricted_mem_operand): New.
9534         (rx_shift_operand): Use register_operand.
9535         (rx_source_operand, rx_compare_operand): Likewise.
9536         * config/rx/rx.md (addsi3_flags): New expander.
9537         (adddi3): Rewrite as expander.
9538         (adc_internal, *adc_flags, adddi3_internal): New patterns.
9539         (subsi3_flags): New expander.
9540         (subdi3): Rewrite as expander.
9541         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
9542
9543         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
9544         (rx_init_builtins): Remove sat builtin.
9545         (rx_expand_builtin): Likewise.
9546         * config/rx/rx.md (ssaddsi3): New.
9547         (*sat): Rename from sat.  Represent the CC_REG input.
9548
9549         * config/rx/predicates.md (rshift_operator): New.
9550         * config/rx/rx.c (rx_expand_insv): Remove.
9551         * config/rx/rx-protos.h: Update.
9552         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
9553         operand to the canonical position.
9554         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
9555         (*bitclr, *bitclr_in_memory): Similarly.
9556         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
9557         (insv): Retain the zero_extract in the expansion.
9558
9559         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
9560         (bswaphi2, bitinvert, revw): Likewise.
9561
9562         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
9563         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
9564         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
9565         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
9566         (bitset, bitset_in_memory): Likewise.
9567         (bitinvert, bitinvert_in_memory): Likewise.
9568         (bitclr, bitclr_in_memory): Likewise.
9569         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
9570         (rx_strend, rx_cmpstrn): Likewise.
9571         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
9572         (bitop peep2 patterns): Remove.
9573
9574         * config/rx/rx.c (rx_match_ccmode): New.
9575         * config/rx/rx-protos.h: Update.
9576         * config/rx/rx.md (abssi2): Clobber, don't set flags.
9577         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
9578         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
9579         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
9580         (fix_truncsfsi2, floatsisf2): Likewise.
9581         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
9582         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
9583         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
9584         (*subsi3_flags, *xorsi3_flags): New.
9585
9586         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
9587
9588         * config/rx/rx.c (rx_print_operand): Remove workaround for
9589         unsplit comparison operations.
9590
9591         * config/rx/rx.md (movsicc): Split after reload.
9592         (*movsicc): Merge *movsieq and *movsine via match_operator.
9593         (*stcc): New pattern.
9594
9595         * config/rx/rx.c (rx_float_compare_mode): Remove.
9596         * config/rx/rx.h (rx_float_compare_mode): Remove.
9597         * config/rx/rx.md (cstoresi4): Split after reload.
9598         (*sccc): New pattern.
9599
9600         * config/rx/predicates.md (label_ref_operand): New.
9601         (rx_z_comparison_operator): New.
9602         (rx_zs_comparison_operator): New.
9603         (rx_fp_comparison_operator): New.
9604         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
9605         Validate that the flags are set properly for the comparison.
9606         (rx_gen_cond_branch_template): Remove.
9607         (rx_cc_modes_compatible): Remove.
9608         (mode_from_flags): New.
9609         (flags_from_code): Rename from flags_needed_for_conditional.
9610         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
9611         (rx_select_cc_mode): Likewise.
9612         (rx_split_fp_compare): New.
9613         (rx_split_cbranch): New.
9614         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
9615         (*cbranchsi4): Use match_operator and rx_split_cbranch.
9616         (*cbranchsf4): Similarly.
9617         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
9618         match_operator and rx_split_cbranch.
9619         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
9620         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
9621         (*cmpsi): Rename from cmpsi.
9622         (*tstsi): Rename from tstsi.
9623         (*cmpsf): Rename from cmpsf; use CC_Fmode.
9624         (*conditional_branch): Rename from conditional_branch.
9625         (*reveresed_conditional_branch): Remove.
9626         (b<code>): Remove expander.
9627         * config/rx/rx-protos.h: Update.
9628
9629         * config/rx/rx.c (rx_compare_redundant): Remove.
9630         * config/rx/rx.md (cmpsi): Don't use it.
9631         * config/rx/rx-protos.h: Update.
9632
9633         * config/rx/rx-modes.def (CC_F): New mode.
9634         * config/rx/rx.c (rx_select_cc_mode): New.
9635         * config/rx/rx.h (SELECT_CC_MODE): Use it.
9636         * config/rx/rx-protos.h: Update.
9637
9638 2011-01-17  Richard Henderson  <rth@redhat.com>
9639
9640         * except.c (dump_eh_tree): Fix stray ; after for statement.
9641
9642 2011-01-17  Richard Guenther  <rguenther@suse.de>
9643
9644         PR tree-optimization/47313
9645         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
9646         handling before copying the body.  Properly deal with
9647         by-reference result in SSA form.
9648
9649 2011-01-17  Ian Lance Taylor  <iant@google.com>
9650
9651         PR target/47219
9652         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
9653         (struct_value_alias_set): Don't define.
9654         (sparc_option_override): Don't set sparc_sr_alias_set and
9655         struct_value_alias_set.
9656         (save_or_restore_regs): Use gen_frame_mem rather than calling
9657         set_mem_alias_set.
9658         (sparc_struct_value_rtx): Likewise.
9659
9660 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
9661
9662         PR target/47318
9663         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
9664         (_mm_maskstore_pd): Likewise.
9665         (_mm_maskload_ps): Likewise.
9666         (_mm_maskstore_ps): Likewise.
9667         (_mm256_maskload_pd): Change mask to __m256i.
9668         (_mm256_maskstore_pd): Likewise.
9669         (_mm256_maskload_ps): Likewise.
9670         (_mm256_maskstore_ps): Likewise.
9671
9672         * config/i386/i386-builtin-types.def: Updated.
9673         (ix86_expand_special_args_builtin): Likewise.
9674
9675         * config/i386/i386.c (bdesc_special_args): Update
9676         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
9677         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
9678         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
9679         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
9680
9681         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
9682         Use <avxpermvecmode> on mask register.
9683         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
9684
9685 2011-01-17  Olivier Hainque  <hainque@adacore.com>
9686             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
9687             Eric Botcazou  <ebotcazou@adacore.com>
9688
9689         PR target/46655
9690         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
9691         if <= USHRT_MAX in 32-bit mode.
9692
9693 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9694
9695         * doc/install.texi (Configuration, Specific): Wrap long
9696         lines in examples.  Allow line wrapping in long options
9697         and URLs where beneficial for PDF output.
9698
9699 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
9700
9701         * config/mips/mips.c (mips_classify_symbol): Don't return
9702         SYMBOL_PC_RELATIVE for nonlocal labels.
9703
9704 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
9705
9706         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
9707
9708 2011-01-15  Jan Hubicka  <jh@suse.cz>
9709
9710         PR tree-optimization/47276
9711         * ipa.c (function_and_variable_visibility): Do not try to mark alias
9712         declarations as needed.
9713
9714 2011-01-15  Martin Jambor  <mjambor@suse.cz>
9715
9716         * common.opt (fdevirtualize): New flag.
9717         * doc/invoke.texi (Option Summary): Document it.
9718         * opts.c (default_options_table): Add devirtualize flag.
9719         * ipa-prop.c (detect_type_change): Return immediately if
9720         devirtualize flag is not set.
9721         (detect_type_change_ssa): Likewise.
9722         (compute_known_type_jump_func): Likewise.
9723         (ipa_analyze_virtual_call_uses): Likewise.
9724
9725 2011-01-14  Martin Jambor  <mjambor@suse.cz>
9726
9727         PR tree-optimization/45934
9728         PR tree-optimization/46302
9729         * ipa-prop.c (type_change_info): New type.
9730         (stmt_may_be_vtbl_ptr_store): New function.
9731         (check_stmt_for_type_change): Likewise.
9732         (detect_type_change): Likewise.
9733         (detect_type_change_ssa): Likewise.
9734         (compute_complex_assign_jump_func): Check for dynamic type change.
9735         (compute_complex_ancestor_jump_func): Likewise.
9736         (compute_known_type_jump_func): Likewise.
9737         (compute_scalar_jump_functions): Likewise.
9738         (ipa_analyze_virtual_call_uses): Likewise.
9739         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
9740
9741 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9742
9743         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
9744         * config/i386/i386.opt (msse5): New Alias.
9745
9746 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9747
9748         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
9749         * config/sparc/linux64.h (CC1_SPEC): Likewise.
9750         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
9751         * config/sparc/sparc.h (CC1_SPEC): Likewise.
9752
9753 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9754
9755         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
9756         -mcpu options.
9757         * config/sparc/linux64.h (CC1_SPEC): Likewise.
9758         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
9759         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
9760         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
9761         Likewise.
9762         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
9763
9764 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9765
9766         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
9767
9768 2011-01-14  Mike Stump  <mikestump@comcast.net>
9769
9770         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
9771         * config/fr30/fr30.md: Likweise
9772         (movsi_push): Likewise.
9773         (movsi_pop): Likewise.
9774         (enter_func): Likewise.
9775         * config/moxie/moxie.md (movsi_push): Likewise.
9776         (movsi_pop): Likewise.
9777
9778 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9779
9780         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
9781         %{no_archive} %{exact_version}.
9782         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
9783         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
9784         %{no_archive} %{exact_version}.
9785         * config/mips/openbsd.h (LINK_SPEC): Likewise.
9786         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
9787         * config/mips/vxworks.h: Likewise.
9788
9789 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9790
9791         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
9792
9793 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9794
9795         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
9796         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
9797
9798 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9799
9800         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
9801         -nodefaultlib.
9802
9803 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9804
9805         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
9806         for mcpu not cpu.
9807         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
9808         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
9809         not cpu.
9810         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
9811         Don't handle -shlib.
9812
9813 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9814
9815         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
9816         (CC1_SPEC): Don't handle -profile.
9817
9818 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9819
9820         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
9821         * config/mips/mips.h (CC1_SPEC): Likewise.
9822
9823 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9824
9825         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
9826         * config/mips/mips.h (CC1_SPEC): Likewise.
9827
9828 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9829
9830         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
9831         * config/m32r/linux.h (LINK_SPEC): Likewise.
9832         * config/mips/linux.h (LINK_SPEC): Likewise.
9833         * config/mips/linux64.h (LINK_SPEC): Likewise.
9834         * config/sparc/linux.h (LINK_SPEC): Likewise.
9835         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
9836         LINK_SPEC): Likewise.
9837         * config/xtensa/linux.h (LINK_SPEC): Likewise.
9838
9839 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9840
9841         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
9842         %{version:-v}.
9843         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
9844
9845 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9846
9847         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
9848         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
9849
9850 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9851
9852         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
9853
9854 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9855
9856         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
9857         supports -Bstatic/-Bdynamic.
9858         * configure: Regenerate.
9859
9860 2011-01-14  Jan Hubicka  <jh@suse.cz>
9861             Jack Howarth  <howarth@bromo.med.uc.edu>
9862
9863         PR target/46037
9864         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
9865         when checking debug_info_level. Test write_symbols instead of
9866         debug_hooks->var_location when setting flag_var_tracking_uninit.
9867
9868 2011-01-14  Richard Guenther  <rguenther@suse.de>
9869
9870         PR tree-optimization/47179
9871         * target.def (ref_may_alias_errno): New target hook.
9872         * targhooks.h (default_ref_may_alias_errno): Declare.
9873         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
9874         (default_ref_may_alias_errno): New function.
9875         * target.h (struct ao_ref_s): Declare.
9876         * tree-ssa-alias.c: Include target.h.
9877         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
9878         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
9879         (targhooks.o): Likewise.
9880         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
9881         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
9882
9883 2011-01-14  Richard Guenther  <rguenther@suse.de>
9884
9885         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
9886
9887 2011-01-14  Richard Guenther  <rguenther@suse.de>
9888
9889         PR tree-optimization/47280
9890         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
9891         return CFG changes.
9892         (tree_ssa_forward_propagate_single_use_vars): Deal with
9893         CFG changes from associate_plusminus.
9894
9895 2011-01-14  Richard Guenther  <rguenther@suse.de>
9896
9897         PR middle-end/47281
9898         Revert
9899         2011-01-11  Richard Guenther  <rguenther@suse.de>
9900
9901         PR tree-optimization/46076
9902         * tree-ssa.c (useless_type_conversion_p): Conversions from
9903         unprototyped to empty argument list function types are useless.
9904
9905 2011-01-14  Richard Guenther  <rguenther@suse.de>
9906
9907         PR tree-optimization/47286
9908         * tree-ssa-structalias.c (new_var_info): Register variables are global.
9909
9910 2011-01-14  Martin Jambor  <mjambor@suse.cz>
9911
9912         PR middle-end/46823
9913         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
9914
9915 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
9916
9917         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
9918         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
9919         * config/xtensa/xtensa.c (xtensa_libcall_value,
9920         xtensa_function_value_regno_p): New functions.
9921         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
9922
9923 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
9924
9925         PR c++/47213
9926         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
9927         PE specific hook.
9928         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
9929         New function prototype.
9930         * config/i386/winnt.c (i386_pe_assemble_visibility):
9931         Warn only if attribute was specified by user.
9932
9933 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
9934
9935         PR target/47251
9936         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
9937         floating point.
9938         (floatunsdidf2_fcfidu): Ditto.
9939
9940 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9941
9942         * config/s390/s390.c (print_operand_address): Replace 'error' with
9943         'output_operand_lossage'.
9944         (print_operand): Likewise.
9945
9946 2011-01-13  Jeff Law  <law@redhat.com>
9947
9948         PR rtl-optimization/39077
9949         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
9950         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
9951         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
9952         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
9953         * gcse.c (prune_insertions_deletions): New function.
9954         (compute_pre_data): Use it.
9955
9956 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
9957
9958         PR debug/PR46973
9959         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
9960         static function.
9961         (prune_unused_types_mark): Use it.
9962
9963 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
9964
9965         PR rtl-optimization/45352
9966         * sel-sched.c: Update copyright years.
9967         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
9968         in the advancing loop when we have issued issue_rate insns.
9969
9970 2011-01-12  Richard Henderson  <rth@redhat.com>
9971
9972         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
9973         (TARGET_MD_ASM_CLOBBERS): New.
9974
9975         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
9976         (TARGET_DELEGITIMIZE_ADDRESS): New.
9977
9978         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
9979         (clzsi2, *bsch): New patterns.
9980
9981         * config/mn10300/mn10300.md (INT): New mode iterator.
9982         (*mov<INT>_clr): New pattern, and peep2 to generate it.
9983
9984         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
9985         flag_split_wide_types.
9986
9987         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
9988         (mn10300_trampoline_init): Rewrite without a template, an immediate
9989         load and a direct branch.
9990         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
9991
9992 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
9993
9994         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9995         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
9996         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
9997         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9998
9999 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
10000
10001         PR debug/47209
10002         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
10003         of type.
10004
10005 2011-01-12  Jan Hubicka  <jh@suse.cz>
10006
10007         PR driver/47244
10008         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
10009         (PLUGIN_COND_CLOSE): New macro.
10010         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
10011
10012 2011-01-12  Richard Guenther  <rguenther@suse.de>
10013
10014         PR lto/47259
10015         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
10016         register variables in a MEM_REF.
10017
10018 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
10019
10020         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
10021         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
10022         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
10023         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
10024         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
10025         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
10026         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
10027         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
10028         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
10029         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
10030         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
10031         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
10032         * config/gnu-user.h: New.  Copied from linux.h.
10033         (LINUX_TARGET_STARTFILE_SPEC): Rename to
10034         GNU_USER_TARGET_STARTFILE_SPEC.
10035         (LINUX_TARGET_ENDFILE_SPEC): Rename to
10036         GNU_USER_TARGET_ENDFILE_SPEC.
10037         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
10038         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
10039         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
10040         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
10041         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
10042         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
10043         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
10044         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
10045         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
10046         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
10047         * config/arm/linux-eabi.h (CC1_SPEC): Use
10048         GNU_USER_TARGET_CC1_SPEC.
10049         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
10050         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
10051         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
10052         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
10053         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
10054         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
10055         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
10056         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
10057
10058 2011-01-12  Richard Guenther  <rguenther@suse.de>
10059
10060         PR other/46946
10061         * doc/invoke.texi (ffast-math): Document it is turned on
10062         with -Ofast.
10063
10064 2011-01-12  Jan Hubicka  <jh@suse.cz>
10065
10066         PR tree-optimization/47233
10067         * opts.c (common_handle_option): Disable ipa-reference with profile
10068         feedback.
10069
10070 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
10071
10072         * c-parser.c (c_parser_objc_at_property_declaration): Improved
10073         error message.
10074
10075 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
10076
10077         * c-parser.c (c_lex_one_token): Updated and reindented some
10078         comments.  No changes in code.
10079
10080 2011-01-11  Ian Lance Taylor  <iant@google.com>
10081
10082         * godump.c (go_output_var): Don't output the variable if there is
10083         already a type with the same name.
10084
10085 2011-01-11  Ian Lance Taylor  <iant@google.com>
10086
10087         * godump.c (go_format_type): Don't generate float80.
10088
10089 2011-01-11  Richard Henderson  <rth@redhat.com>
10090
10091         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
10092         declaration.  Rewrite for both speed and size.
10093         (mn10300_address_cost_1): Remove.
10094         (mn10300_register_move_cost): New.
10095         (mn10300_memory_move_cost): New.
10096         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
10097         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
10098         extensions, shifts, BSWAP, CLZ.
10099         (mn10300_wide_const_load_uses_clr): Remove.
10100         (TARGET_REGISTER_MOVE_COST): New.
10101         (TARGET_MEMORY_MOVE_COST): New.
10102         * config/mn10300/mn10300-protos.h: Update.
10103         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
10104
10105         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
10106         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
10107         * config/mn10300/mn10300-protos.h: Update.
10108         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
10109         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
10110         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
10111         (*test_int_bitfield, *test_byte_bitfield): Remove.
10112         (*bit_test, *subreg_bit_test): Remove.
10113         * config/mn10300/predicates.md (const_8bit_operand): Remove.
10114
10115         * config/mn10300/constraints.md ("c"): Rename from "A".
10116         ("A", "D"): New constraint letters.
10117         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
10118         (fmssf4, fnmasf4, fnmssf4): Likewise.
10119
10120         * config/mn10300/mn10300.md (isa): New attribute.
10121         (enabled): New attribute.
10122
10123         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
10124         (abssf2, negsf2): Define only for hardware fp.
10125         (sqrtsf2): Reformat.
10126         (addsf3, subsf3, mulsf3): Merge expander and insn.
10127
10128         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
10129         (DEBUGGER_AUTO_OFFSET): Remove.
10130         (DEBUGGER_ARG_OFFSET): Remove.
10131
10132         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
10133         Emit register stores with the same offsets as the hardware.
10134         (mn10300_store_multiple_operation): Don't check that the register
10135         save offsets are monotonic.
10136         * config/mn10300/mn10300-protos.h: Update.
10137
10138         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
10139
10140         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
10141         in terms of the value on the stack, not the MDR register.
10142
10143 2011-01-11  Jan Hubicka  <jh@suse.cz>
10144
10145         PR lto/45721
10146         PR lto/45375
10147         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
10148         (symbol_alias_set_destroy, symbol_alias_set_contains,
10149         propagate_aliases_backward): Declare.
10150         * lto-streamer-out.c (struct sets): New sturcture.
10151         (trivally_defined_alias): New function.
10152         (output_alias_pair_p): Rewrite.
10153         (output_unreferenced_globals): Fix output of alias pairs.
10154         (produce_symtab): Likewise.
10155         * ipa.c (function_and_variable_visibility): Set weak alias destination
10156         as needed in lto.
10157         * varasm.c (symbol_alias_set_t): Remove.
10158         (symbol_alias_set_destroy): Export.
10159         (propagate_aliases_forward, propagate_aliases_backward): New functions
10160         based on ...
10161         (compute_visible_aliases): ... this one; remove.
10162         (trivially_visible_alias): New
10163         (trivially_defined_alias): New.
10164         (remove_unreachable_alias_pairs): Rewrite.
10165         (finish_aliases_1): Reorganize code checking if alias is defined.
10166         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
10167         in LTO mode.
10168
10169 2011-01-11  Richard Guenther  <rguenther@suse.de>
10170
10171         PR tree-optimization/46076
10172         * tree-ssa.c (useless_type_conversion_p): Conversions from
10173         unprototyped to empty argument list function types are useless.
10174
10175 2011-01-11  Richard Guenther  <rguenther@suse.de>
10176
10177         PR middle-end/45235
10178         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
10179         volatile MEMs as MEM_READONLY_P.
10180
10181 2011-01-11  Richard Guenther  <rguenther@suse.de>
10182
10183         PR tree-optimization/47239
10184         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
10185
10186 2011-01-11  Jeff Law  <law@redhat.com>
10187
10188         PR tree-optimization/47086
10189         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
10190         IVs from statements that might throw.
10191
10192 2011-01-10  Jan Hubicka  <jh@suse.cz>
10193
10194         PR lto/45375
10195         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
10196
10197 2011-01-10  Jan Hubicka  <jh@suse.cz>
10198
10199         PR lto/45375
10200         * profile.c (read_profile_edge_counts): Ignore profile inconistency
10201         when correcting profile.
10202
10203 2011-01-10  Jan Hubicka  <jh@suse.cz>
10204
10205         PR lto/46083
10206         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
10207         DECL_FINI_PRIORITY.
10208         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
10209         Restore DECL_FINI_PRIORITY.
10210
10211 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10212
10213         * doc/gimple.texi: Fix quoting of multi-word return values in
10214         @deftypefn statements.  Ensure presence of return value.  Wrap
10215         overlong @deftypefn lines.
10216         (is_gimple_operand, is_gimple_min_invariant_address): Remove
10217         descriptions of removed functions.
10218         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
10219         of multi-word return value in @deftypefn statement.
10220
10221 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10222
10223         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
10224         (Conditional Expressions, Logical Operators)
10225         (Statement and operand traversals): Do not indent smallexample
10226         code.  Fix duplicate function argument in example.
10227
10228 2011-01-10  Jeff Law  <law@redhat.com>
10229
10230         PR tree-optimization/47141
10231         * ipa-split.c (split_function): Handle case where we are
10232         returning a value and the return block has a virtual operand phi.
10233
10234 2011-01-10  Jan Hubicka  <jh@suse.cz>
10235
10236         PR tree-optimization/47234
10237         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
10238         (pass_feedback_split_functions): Declare.
10239         * passes.c (init_optimization_passes): Add ipa-split as subpass of
10240         tree-profile.
10241         * ipa-split.c (gate_split_functions): Update comments; disable
10242         split-functions for profile_arc_flag and branch_probabilities.
10243         (gate_feedback_split_functions): New function.
10244         (execute_feedback_split_functions): New function.
10245         (pass_feedback_split_functions): New global var.
10246
10247 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
10248
10249         PR lto/46760
10250         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
10251         calling gimple_call_set_cannot_inline.
10252
10253 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
10254
10255         * config/darwin-sections.def: Remove unused section.
10256
10257 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
10258
10259         PR c++/47218
10260         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
10261
10262 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
10263
10264         PR objc/47232
10265         * c-parser.c (c_parser_declaration_or_fndef): Improved
10266         error message.
10267
10268 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
10269
10270         * config/i386/winnt.c (i386_pe_start_function): Make sure
10271         to switch back to function's section.
10272
10273 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
10274
10275         PR gcc/46902
10276         PR testsuite/46912
10277         * plugin.c: Move include of dlfcn.h from here...
10278         * system.h: ... to here.
10279
10280 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10281
10282         * doc/cpp.texi (C++ Named Operators): Fix markup for header
10283         file name.
10284         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
10285         two extra empty pages in PDF output.
10286
10287 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
10288
10289         PR objc/47078
10290         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
10291         for error recovery purposes behave as if it was not specified so
10292         that the default type is usd.
10293
10294 2011-01-07  Jan Hubicka  <jh@suse.cz>
10295
10296         PR tree-optmization/46469
10297         * ipa.c (function_and_variable_visibility): Clear needed flags on
10298         nodes with external decls; handle weakrefs merging correctly.
10299
10300 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
10301
10302         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
10303         not false.
10304
10305 2011-01-07  Jan Hubicka  <jh@suse.cz>
10306
10307         * doc/invoke.texi: (-flto, -fuse-linker-plugin): Update defaults
10308         and no longer claim that gold is required for linker plugin.
10309         * configure: Regenerate.
10310         * gcc.c (PLUGIN_COND): New macro.
10311         (LINK_COMMAND_SPEC): Use it.
10312         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
10313         * config.in (HAVE_LTO_PLUGIN): New.
10314         * configure.ac (--with-lto-plugin): New parameter; autodetect
10315         HAVE_LTO_PLUGIN.
10316
10317 2011-01-07  Jan Hubicka  <jh@suse.cz>
10318
10319         PR tree-optimization/46367
10320         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
10321         when we can update original.
10322         (cgraph_mark_inline_edge): Sanity check.
10323         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
10324
10325 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10326
10327         * config/spu/spu.h (ASM_COMMENT_START): Define.
10328
10329 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
10330
10331         PR driver/42445
10332         * gcc.c (%>S): New.
10333         (SWITCH_KEEP_FOR_GCC): Likewise.
10334         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
10335         (do_spec_1): Handle "%>".
10336
10337         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
10338
10339 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
10340
10341         PR target/47201
10342         * config/i386/i386.c (ix86_delegitimize_address): If
10343         simplify_gen_subreg fails, return orig_x.
10344
10345         PR bootstrap/47187
10346         * value-prof.c (gimple_stringop_fixed_value): Handle
10347         lhs of the call properly.
10348
10349 2011-01-07  Jan Hubicka  <jh@suse.cz>
10350
10351         PR lto/45375
10352         * lto-opt.c (lto_reissue_options): Set flag_shlib.
10353
10354 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
10355
10356         * target.def (function_switched_text_sections): New hook.
10357         * doc/tm.texi: Regenerated.
10358         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
10359         * final.c (default_function_switched_text_sections): New.
10360         (final_scan_insn): Call function_switched_text_sections when a
10361         mid-function section change occurs.
10362         * output.h (default_function_switched_text_sections): Declare.
10363         * config/darwin-protos.h (darwin_function_switched_text_sections):
10364         Likewise.
10365         * config/darwin.c (darwin_function_switched_text_sections): New.
10366         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
10367
10368 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
10369
10370         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
10371         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
10372         the secondary code fragment when outputting for DWARF == 2.
10373
10374 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
10375
10376         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10377         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
10378         Remove.
10379         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
10380         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10381
10382 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
10383
10384         PR debug/46704
10385         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
10386         when it is not empty.
10387
10388 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
10389
10390         Bobcat Enablement
10391         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
10392         (case ${target}): Add btver1.
10393         * config/i386/driver-i386.c (host_detect_local_cpu): Let
10394         -march=native recognize btver1 processors.
10395         * config/i386/i386-c.c (ix86_target_macros_internal): Add
10396         btver1 def_and_undef
10397         * config/i386/i386.c (struct processor_costs btver1_cost): New
10398         btver1 cost table.
10399         (m_BTVER1): New definition.
10400         (m_AMD_MULTIPLE): Includes m_BTVER1.
10401         (initial_ix86_tune_features): Add btver1 tune.
10402         (processor_target_table): Add btver1 entry.
10403         (static const char *const cpu_names): Add btver1 entry.
10404         (software_prefetching_beneficial_p): Add btver1.
10405         (ix86_option_override_internal): Add btver1 instruction sets.
10406         (ix86_issue_rate): Add btver1.
10407         (ix86_adjust_cost): Add btver1.
10408         * config/i386/i386.h (TARGET_BTVER1): New definition.
10409         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
10410         (enum processor_type): Add PROCESSOR_BTVER1.
10411         * config/i386/i386.md (define_attr "cpu"): Add btver1.
10412
10413 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10414
10415         PR target/43309
10416         * config/i386/i386.c (legitimize_tls_address)
10417         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
10418         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
10419         (tls_initial_exec_64_sun): New pattern.
10420
10421 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
10422
10423         * doc/invoke.texi (Overall Options): Improve wording and markup
10424         of the description of -wrapper.
10425
10426 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
10427
10428         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
10429         rdynamic, threads): New Driver options.
10430
10431 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10432
10433         PR target/38118
10434         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
10435         if coming from .tdata.
10436         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
10437
10438 2011-01-06  Jan Hubicka  <jh@suse.cz>
10439
10440         PR lto/47188
10441         * collect2.c (main): Do not enable LTOmode when plugin is active.
10442
10443 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10444
10445         PR other/45915
10446         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
10447         --version output if supported.
10448         * configure: Regenerate.
10449
10450 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
10451
10452         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
10453         Driver options.
10454
10455 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
10456
10457         PR c/47150
10458         * c-convert.c (convert): When converting a complex expression
10459         other than COMPLEX_EXPR to a different complex type, ensure
10460         c_save_expr is called instead of save_expr, unless in_late_binary_op.
10461         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
10462         when converting COMPLEX_TYPE.
10463
10464 2011-01-06  Ira Rosen  <irar@il.ibm.com>
10465
10466         PR tree-optimization/47139
10467         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
10468         only the last reduction value is used outside the loop.  Update
10469         documentation.
10470
10471 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
10472
10473         * config/rtems.opt: New.
10474         * config.gcc (*-*-rtems*): Use rtems.opt.
10475
10476 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
10477
10478         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
10479         processors do not support 3DNow instructions.
10480
10481 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10482
10483         * config/spu/spu.c (spu_option_override): Set parameter
10484         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
10485
10486 2011-01-05  Jan Hubicka  <jh@suse.cz>
10487
10488         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
10489         at the command line.
10490
10491 2011-01-05  Martin Jambor  <mjambor@suse.cz>
10492
10493         PR lto/47162
10494         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
10495         deltas on streamed outgoing edges.
10496         (output_node_opt_summary): Output info for outgoing edges only when
10497         the node is in new parameter set.
10498         (output_cgraph_opt_summary): New parameter set, passed to the two
10499         aforementioned functions.  Update its forward declaration and its
10500         callee too.
10501
10502 2011-01-05  Tom Tromey  <tromey@redhat.com>
10503
10504         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
10505         operator to c_finish_omp_atomic.
10506         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
10507         (build_unary_op): Update.
10508         (build_modify_expr): Update.
10509         (build_asm_expr): Update.
10510
10511 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10512
10513         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
10514         newly inserted insns.
10515         (pad_bb): Likewise.
10516         (spu_emit_branch_hint): Likewise.
10517         (insert_hbrp_for_ilb_runout): Likewise.
10518         (spu_machine_dependent_reorg): Call df_finish_pass after
10519         schedule_insns returns.
10520
10521 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10522
10523         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
10524
10525 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
10526
10527         PR tree-optimization/47005
10528         * tree-sra.c (struct access): Add 'non_addressable' bit.
10529         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
10530         (decide_one_param_reduction): Return 0 if the parameter is passed by
10531         reference and one of the accesses in the group is non_addressable.
10532
10533 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
10534
10535         PR tree-optimization/47056
10536         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
10537         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
10538         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
10539
10540 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
10541
10542         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
10543         initializer.  Skip view conversions from aggregate types.
10544
10545 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
10546
10547         PR bootstrap/47055
10548         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
10549
10550 2011-01-04  Philipp Thomas  <pth@suse.de>
10551
10552         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
10553         obvious typo.
10554
10555 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10556
10557         * function.c (thread_prologue_and_epilogue_insns): Do not crash
10558         on empty epilogue sequences.
10559
10560 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
10561
10562         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
10563         non-static): New Driver options.
10564
10565 2011-01-04  Jie Zhang  <jie@codesourcery.com>
10566
10567         PR driver/47137
10568         * gcc.c (default_compilers[]): Set combinable field to 0
10569         for all assembly languages.
10570
10571 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
10572
10573         * config/mips/loongson3a.md: New file.
10574         * config/mips/mips.md: Include loongson3a.md.
10575         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
10576         TUNE_LOONGSON_3A.
10577
10578 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
10579
10580         PR middle-end/47017
10581         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
10582         instead of convert_memory_address_addr_space on the base expression.
10583
10584 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10585
10586         * config/spu/spu.c (spu_option_override): Update error text
10587         for bad -march= / -mtune= values.
10588
10589 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10590
10591         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
10592         if branch-hint optimization will be performed.
10593
10594 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
10595
10596         PR tree-optimization/47148
10597         * ipa-split.c (split_function): Convert arguments to
10598         DECL_ARG_TYPE if possible.
10599
10600         PR tree-optimization/47155
10601         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
10602         when computing uns.
10603
10604         PR rtl-optimization/47157
10605         * combine.c (try_combine): If undobuf.other_insn becomes
10606         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
10607         and set *new_direct_jump_p too.
10608
10609 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
10610
10611         PR tree-optimization/47021
10612         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
10613
10614 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
10615
10616         * gcc.c (process_command): Update copyright notice dates.
10617         * gcov.c (print_version): Likewise.
10618         * gcov-dump.c (print_version): Likewise.
10619         * mips-tfile.c (main): Likewise.
10620         * mips-tdump.c (main): Likewise.
10621
10622 2011-01-03  Martin Jambor  <mjambor@suse.cz>
10623
10624         PR tree-optimization/46801
10625         * tree-sra.c (type_internals_preclude_sra_p): Check whether
10626         aggregate fields start at byte boundary instead of the bit-field flag.
10627
10628 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
10629
10630         PR driver/47137
10631         * gcc.c (main): Revert revision 168407.
10632
10633 2011-01-03  Martin Jambor  <mjambor@suse.cz>
10634
10635         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
10636
10637 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10638
10639         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
10640         vector optab to expand vector/scalar shift, update gimple to vector.
10641
10642 2011-01-03  Martin Jambor  <mjambor@suse.cz>
10643
10644         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
10645         a thunk.
10646
10647 2011-01-03  Martin Jambor  <mjambor@suse.cz>
10648
10649         PR tree-optimization/46984
10650         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
10651         HOST_WIDE_INT.
10652         (cgraph_create_indirect_edge): Fixed line length.
10653         (cgraph_indirect_call_info): Declare.
10654         (cgraph_make_edge_direct) Update declaration.
10655         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
10656         (cgraph_create_indirect_edge): Use it.
10657         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
10658         callees.
10659         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
10660         the new thunk_delta representation.
10661         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
10662         HOST_WIDE_INT.
10663         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
10664         (ipa_read_indirect_edge_info): Likewise.
10665         * lto-cgraph.c (output_edge_opt_summary): New function.
10666         (output_node_opt_summary): Call it on all outgoing edges.
10667         (input_edge_opt_summary): New function.
10668         (input_node_opt_summary): Call it on all outgoing edges.
10669
10670 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
10671
10672         PR driver/47137
10673         * gcc.c (main): Don't check have_o when settting combine_inputs.
10674
10675 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
10676
10677         * regrename.c: Add general comment describing the pass.
10678         (struct du_head): Remove 'length' field.
10679         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
10680         (regrename_optimize): Do not sort chains.  Rework comments, add others.
10681         Force renaming to the preferred class (if any) in the first pass and do
10682         not consider registers that belong to it in the second pass.
10683         (create_new_chain): Do not set 'length' field.
10684         (scan_rtx_reg): Likewise.
10685
10686 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
10687
10688         PR tree-optimization/47140
10689         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
10690         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
10691         to bit_value_binop.
10692
10693         PR rtl-optimization/47028
10694         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
10695         parm_birth_insn instead of at the beginning of first bb.
10696
10697 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
10698
10699         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
10700         Remove the word "see" before "@pxref".
10701         * doc/rtl.texi: Remove the word "see" before "@pxref".
10702
10703 2011-01-01  Jan Hubicka  <jh@suse.cz>
10704
10705         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
10706         memory.
10707
10708 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
10709
10710         PR target/38662
10711         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
10712
10713 \f
10714 Copyright (C) 2011 Free Software Foundation, Inc.
10715
10716 Copying and distribution of this file, with or without modification,
10717 are permitted in any medium without royalty provided the copyright
10718 notice and this notice are preserved.