OSDN Git Service

2011-04-18 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-04-18  Richard Guenther  <rguenther@suse.de>
2
3         * gimple.h (gimple_call_addr_fndecl): New function.
4         (gimple_call_fndecl): Use it.
5         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
6         for direct calls.
7         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
8         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
9
10 2011-04-18  Richard Guenther  <rguenther@suse.de>
11
12         PR middle-end/48650
13         * tree.c (build_string): STRING_CST is now derived from tree_typed.
14
15 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
16
17         PR lto/48492
18         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
19         DECL_IN_CONSTANT_POOL without RTL.
20
21 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
22             Ira Rosen  <ira.rosen@linaro.org>
23
24         PR target/48252
25         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
26         to match neon_vzip/vuzp/vtrn_internal.
27         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
28         outputs explicitly dependent on both inputs.
29         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
30
31 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
32
33         PR tree-optimization/48616
34         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
35         whether the shift is by scalar or vector based on whether all SLP
36         scalar stmts have the same rhs.
37
38 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
39
40         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
41         memory operands.
42
43 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
44
45         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
46         registers.
47
48 2011-04-17  Jan Hubicka  <jh@suse.cz>
49
50         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
51         * cgrpahunit.c (cgraph_finalize_function): Do not set
52         finalized_by_frontend.
53         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
54         finalized_by_frontend.
55
56 2011-04-17  Jan Hubicka  <jh@suse.cz>
57
58         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
59         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
60         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
61         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
62         method.
63         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
64         gimple-fold.c
65         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
66
67 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
68
69         PR lto/48538
70         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
71         is non-null before accessing it.
72         (input_cgraph): Remove trailing spaces.
73
74 2011-04-17  Revital Eres  <revital.eres@linaro.org>
75
76         * params.def (sms-min-sc): New param flag.
77         * modulo-sched.c (sms_schedule): Use it.
78         * doc/invoke.texi (sms-min-sc): Document it.
79
80 2011-04-17  Jan Hubicka  <jh@suse.cz>
81
82         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
83         present, also set gimple_call_set_cannot_inline.
84         * ipa-inline.c: Update toplevel comment.
85         (MAX_TIME): Remove.
86         (cgraph_clone_inlined_nodes): Fix linebreaks.
87         (cgraph_check_inline_limits): Restructure to ...
88         (caller_growth_limits): ... this one; be more tolerant
89         on growth in nested inline chains; add explanatory comment;
90         fix stack accounting thinko introduced by previous patch.
91         (cgraph_default_inline_p): Remove.
92         (report_inline_failed_reason): New function.
93         (can_inline_edge_p): New function.
94         (can_early_inline_edge_p): New function.
95         (leaf_node_p): Move upwards in file.
96         (want_early_inline_function_p): New function.
97         (want_inline_small_function_p): New function.
98         (want_inline_self_recursive_call_p): New function.
99         (cgraph_edge_badness): Rename to ...
100         (edge_badness) ... this one; fix linebreaks.
101         (update_edge_key): Update call of edge_baddness; add
102         detailed dump about queue updates.
103         (update_caller_keys): Use can_inline_edge_p and
104         want_inline_small_function_p.
105         (cgraph_decide_recursive_inlining): Rename to...
106         (recursive_inlining): Use can_inline_edge_p and
107         want_inline_self_recursive_call_p; simplify and
108         remove no longer valid FIXME.
109         (cgraph_set_inline_failed): Remove.
110         (add_new_edges_to_heap): Use can_inline_edge_p and
111         want_inline_small_function_p.
112         (cgraph_decide_inlining_of_small_functions): Rename to ...
113         (inline_small_functions): ... this one; cleanup; use
114         can/want predicates; cleanup debug ouput; work edges
115         till fibheap is exhausted and do not stop once unit
116         growth is reached; remove later loop processing remaining
117         edges.
118         (cgraph_flatten): Rename to ...
119         (flatten_function): ... this one; use can_inline_edge_p
120         and can_early_inline_edge_p predicates.
121         (cgraph_decide_inlining): Rename to ...
122         (ipa_inline): ... this one; remove unreachable nodes before
123         inlining functions called once; simplify the pass.
124         (cgraph_perform_always_inlining): Rename to ...
125         (inline_always_inline_functions): ... this one; use
126         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p
127         predicate
128         (cgraph_decide_inlining_incrementally): Rename to ...
129         (early_inline_small_functions): ... this one; simplify
130         using new predicates; cleanup; make dumps prettier.
131         (cgraph_early_inlining): Rename to ...
132         (early_inliner): newer inline regular functions into always-inlines;
133         fix updating of call stmt summaries.
134         (pass_early_inline): Update for new names.
135         (inline_transform): Fix formating.
136         (gate_cgraph_decide_inlining): Rename to ...
137         (pass_ipa_inline): ... this one.
138         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
139         * ipa-inline-analysis.c (dump_inline_summary): Update.
140         (compute_inline_parameters): Do not compute disregard_inline_limits;
141         look for mismatching arguments.
142         (estimate_growth): Fix handlig of non-trivial self recursion.
143         (inline_read_summary): Do not read info->disregard_inline_limits.
144         (inline_write_summary): Do not write info->disregard_inline_limits.
145         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
146         and move all checks into can_inline_edge_p predicate; re-enable code
147         comparing optimization levels.
148         (expand_call_inline): Do not test inline_forbidden_into_p.
149         * Makefile.in (ipa-inline.o): Update arguments.
150
151 2011-04-17  Revital Eres  <revital.eres@linaro.org>
152
153         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
154
155 2011-04-17  Revital Eres  <revital.eres@linaro.org>
156
157         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
158
159 2011-04-17  Michael Matz  <matz@suse.de>
160
161         PR tree-optimization/48622
162         PR lto/48645
163         * ipa-inline-analysis.c (inline_read_summary): Read size/time
164         in same order as they're written.
165
166 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
167
168         * config/i386/sse.md (sseunpackmode): New mode attribute.
169         (ssepackmode): Ditto.
170         (vec_pack_trunc_<mode>): Macroize expander from
171         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
172         (vec_unpacks_lo_<mode>): Macroize expander from
173         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
174         (vec_unpacks_hi_<mode>): Macroize expander from
175         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
176         (vec_unpacku_lo_<mode>): Macroize expander from
177         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
178         (vec_unpacku_hi_<mode>): Macroize expander from
179         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
180         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
181         ix86_expand_sse4_unpack.
182         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
183
184 2011-04-16  Jan Hubicka  <jh@suse.cz>
185
186         * cgraphbuild.c: Include ipa-inline.h.
187         (reset_inline_failed): Use initialize_inline_failed.
188         * cgraph.c: Include ipa-inline.h.
189         (cgraph_create_node_1): Do not initialize estimated_growth.
190         (initialize_inline_failed): More to ipa-inline-analysis.c
191         (dump_cgraph_node): Do not dump inline flags.
192         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
193         and disregard_inline_limits flags.
194         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
195         time, size, estimated_growth.
196         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
197         Update.
198         * cgraphunit.c (cgraph_decide_is_function_needed): Use
199         DECL_DISREGARD_INLINE_LIMITS.
200         (cgraph_analyze_function): Do not initialize
201         node->local.disregard_inline_limits.
202         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
203         inlinable, versionable and disregard_inline_limits.
204         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
205         cgraph_check_inline_limits, cgraph_default_inline_p,
206         cgraph_edge_badness, update_caller_keys, update_callee_keys,
207         add_new_edges_to_heap): Update.
208         (cgraph_decide_inlining_of_small_function): Update; set
209         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
210         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
211         cgraph_decide_inlining_incrementally): Update.
212         * ipa-inline.h (inline_summary): Add inlinable, versionable,
213         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
214         time, size and estimated_growth parameters.
215         (estimate_edge_growth): Update.
216         (initialize_inline_failed): Declare.
217         * ipa-split.c: Include ipa-inline.h
218         (execute_split_functions): Update.
219         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
220         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
221         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
222         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
223         estimated_growth to INT_MIN.
224         (inline_node_duplication_hook): Likewise.
225         (dump_inline_summary): Dump new fields.
226         (compute_inline_parameters): Update.
227         (estimate_edge_time, estimate_time_after_inlining,
228         estimate_size_after_inlining, estimate_growth, inline_read_summary,
229         inline_write_summary):
230         (initialize_inline_failed): Move here from cgraph.c.
231         * tree-sra.c: Include ipa-inline.h.
232         (ipa_sra_preliminary_function_checks): Update.
233         * Makefile.in: (cgraph.o, cgraphbuild.o): Add dependency on
234         ipa-inline.h
235
236 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
237
238         * config/i386/sse.md (V16): New mode iterator.
239         (VI1, VI8): Ditto.
240         (AVXMODEQI, AVXMODEDI): Remove.
241         (sse2, sse3): New mode attribute.
242         (mov<mode>): Use V16 mode iterator.
243         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
244         (push<mode>1): Use V16 mode iterator.
245         (movmisalign<mode>): Ditto.
246         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
247         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
248         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
249         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
250         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
251         avx_movdqu<avxmodesuffix>.
252         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
253         *avx_movdqu<avxmodesuffix>.
254         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
255         avx_lddqu<avxmodesuffix>.
256         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
257         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
258         avx_movnt<AVXMODEDI:mode>.
259         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
260         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
261
262 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
263
264         PR target/48629
265         * haifa-sched.c (prune_ready_list, schedule_block): Use
266         sched_pressure_p rather than flag_sched_pressure.
267
268 2011-04-15  Pat Haugen <pthaugen@us.ibm.com>
269
270         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
271         cgraph_get_node instead of cgraph_get_create_node.
272
273 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
274
275         * cfgexpand.c (expand_debug_expr): Use
276         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
277
278 2011-04-15  Michael Matz  <matz@suse.de>
279
280         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
281         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
282         * function.c (gimplify_parameters): Ditto.
283         * gimplify.c (gimplify_vla_decl): Ditto.
284
285         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
286         (gimple_call_set_alloca_for_var): New inline function.
287         (gimple_call_alloca_for_var_p): Ditto.
288         * gimple.c (gimple_build_call_from_tree): Remember
289         CALL_ALLOCA_FOR_VAR_P state.
290         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
291
292         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
293         calls if they were for VLA objects.
294
295 2011-04-15  Martin Jambor  <mjambor@suse.cz>
296
297         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
298         of ADR_EXPRs.
299
300 2011-04-15  Martin Jambor  <mjambor@suse.cz>
301
302         PR middle-end/48601
303         * tree-emutls.c (lower_emutls_function_body): Call
304         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
305         result is non-NULL.
306
307 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
308
309         * c-decl.c (detect_field_duplicates): Call
310         objc_detect_field_duplicates instead of objc_get_interface_ivars.
311
312 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
313
314         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
315         * gimple.c (gimple_asm_clobbers_memory_p): Define.
316         * ipa-pure-const.c (check_stmt): Call it.
317         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
318
319 2011-04-15  Richard Guenther  <rguenther@suse.de>
320
321         PR tree-optimization/48290
322         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
323         Properly decide inhibiting propagation based on the valueized
324         operand.  Do loop-closed SSA form preserving here ...
325         (init_copy_prop): ... not here.
326
327 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
328
329         PR target/48612
330         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
331         (*ieee_smax<mode>3): Likewise.
332
333 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
334
335         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
336         Replace match_operand with match_dup for the third operand in
337         these expanders.
338
339 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
340
341         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
342         to track processing of conditionals.  Update all callers.
343         (try_combine, simplify_if_then_else): Update.
344
345 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
346
347         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
348         -fsched-pressure.
349
350 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
351
352         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
353         instead of match_operand for operand 3.
354
355 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
356
357         * recog.h (insn_operand_data): Add an "allows_mem" field.
358         * genoutput.c (output_operand_data): Initialize it.
359         * optabs.c (maybe_legitimize_operand_same_code): New function.
360         (maybe_legitimize_operand): Use it when matching the original
361         op->value.
362
363 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
364
365         * gimplify.c: Fix issues in comments throughout.
366         (voidify_wrapper_expr): Fix long line.
367         (build_stack_save_restore): Likewise.
368         (gimplify_loop_expr): Likewise.
369         (gimplify_compound_lval): Likewise.
370         (gimplify_init_ctor_eval): Likewise.
371         (gimplify_modify_expr_rhs): Likewise.
372         (omp_notice_threadprivate_variable): Likewise.
373
374 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
375
376         * cfgexpand.c (expand_call_stmt): Convert the function type to the
377         original one if this is not a builtin function.
378
379 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
380
381         PR target/48605
382         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
383         offset it as needed based on top 2 bits in operands[3], change
384         MEM mode to SFmode and mask those 2 bits away from operands[3].
385
386 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
387
388         * c-parser.c (c_parser_objc_protocol_definition): Updated for
389         change from objc_declare_protocols() to objc_declare_protocol().
390
391 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
392
393         * config/i386/sse.md (sse4_1): New mode attribute.
394         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
395         avx_blend<ssemodesuffix><avxmodesuffix> and
396         sse4_1_blend<ssemodesuffix> using VF mode iterator.
397         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
398         avx_blendv<ssemodesuffix><avxmodesuffix> and
399         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
400         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
401         avx_dp<ssemodesuffix><avxmodesuffix> and
402         sse4_1_dp<ssemodesuffix> using VF mode iterator.
403         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
404         (sse4_1_packusdw): Merge with *avx_packusdw.
405         (sse4_1_pblendvb): Merge with *avx_pblendvb.
406         (sse4_1_pblendw): Merge with *avx_pblendw.
407         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
408         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
409         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
410         VF mode iterator.
411         (sse4_1_round<ssescalarmodesuffix>): Merge with
412         *avx_round<ssescalarmodesuffix>.
413         (aesenc): Merge with *avx_aesenc.
414         (aesenclast): Merge with *avx_aesenclast.
415         (aesdec): Merge with *avx_aesdec.
416         (aesdeclast): Merge with *avx_aesdeclast.
417         (pclmulqdq): Merge with *pclmulqdq.
418         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
419         New predicate.
420         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
421
422 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
423
424         PR middle-end/48608
425         * cfgexpand.c (get_decl_align_unit): Renamed to ...
426         (align_local_variable): This.  Update DECL_ALIGN.
427         (add_stack_var): Updated.
428         (expand_one_stack_var): Likewise.
429
430 2011-04-14  Richard Guenther  <rguenther@suse.de>
431
432         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
433         Remove.
434         (dse_initialize_block_local_data, dse_leave_block,
435         record_voperand_set, get_stmt_uid): Likewise.
436         (dse_possible_dead_store_p): Allow any kind of killing stmt.
437         (dse_optimize_stmt): Remove voperand set handling code.
438         Simplify and improve to handle any kind of killing stmt.
439         (dse_record_phi): Remove.
440         (dse_enter_block): Simplify.
441         (tree_ssa_dse): Likewise.
442         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
443
444 2011-04-14  Jan Hubicka  <jh@suse.cz>
445
446         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
447         * cgraph.h (struct inline_summary): Move to ipa-inline.h
448         (cgraph_local_info): Remove inline_summary.
449         * ipa-cp.c: Include ipa-inline.h.
450         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
451         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
452         accesor.
453         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
454         (input_overwrite_node): Do not set inline summary.
455         (input_node): Do not stream inline summary.
456         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
457         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
458         growth; we do not have inline parameters computed for that anyway.
459         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
460         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
461         (inline_summary_t): New type and VECtor.
462         (debug_inline_summary, dump_inline_summaries): Declare.
463         (inline_summary): Use VOCtor.
464         (estimate_edge_growth): Kill hack computing call stmt size directly.
465         * lto-section-in.c (lto_section_name): Add inline section.
466         * ipa-inline-analysis.c: Include lto-streamer.h
467         (node_removal_hook_holder, node_duplication_hook_holder): New holders
468         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
469         (inline_summary_vec): Define.
470         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
471         dump_inline_summaries): New functions.
472         (estimate_function_body_sizes): Properly compute size/time of outgoing
473         calls.
474         (compute_inline_parameters): Alloc inline_summary; do not compute
475         size/time of incomming calls.
476         (estimate_edge_time): Avoid missing time summary hack.
477         (inline_read_summary): Read inline summary info.
478         (inline_write_summary): Write inline summary info.
479         (inline_free_summary): Free all hooks and inline summary vector.
480         * lto-streamer.h: Add LTO_section_inline_summary section.
481         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
482         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
483
484 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
485
486         * tree-vectorizer.h (vect_strided_store_supported): Add a
487         HOST_WIDE_INT argument.
488         (vect_strided_load_supported): Likewise.
489         (vect_permute_store_chain): Return void.
490         (vect_transform_strided_load): Likewise.
491         (vect_permute_load_chain): Delete.
492         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
493         count argument.  Check that the count is a power of two.
494         (vect_strided_load_supported): Likewise.
495         (vect_permute_store_chain): Return void.  Update after above changes.
496         Assert that the access is supported.
497         (vect_permute_load_chain): Likewise.
498         (vect_transform_strided_load): Return void.
499         * tree-vect-stmts.c (vectorizable_store): Update calls after
500         above interface changes.
501         (vectorizable_load): Likewise.
502         (vect_analyze_stmt): Don't check for strided powers of two here.
503
504 2011-04-14  Richard Guenther  <rguenther@suse.de>
505
506         PR tree-optimization/48590
507         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
508         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
509         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
510         BUILT_IN_STACK_SAVE.
511         * tree-ssa-dce.c (propagate_necessity): Handle
512         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
513
514 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
515
516         * c-parser.c (c_parser_objc_class_declaration): Updated call to
517         objc_declare_class.
518
519 2011-04-14  Richard Guenther  <rguenther@suse.de>
520
521         * tree.h (get_object_alignment_1): Declare.
522         * builtins.c (get_object_alignment_1): Split out worker from ...
523         (get_object_alignment): ... here.
524         * fold-const.c (get_pointer_modulus_and_residue): Use
525         get_object_alignment_1.
526
527 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
528
529         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
530         type parameter.
531         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
532         parameter.  Generalise code to handle arrays as well as vectors.
533         (vect_setup_realignment): Update accordingly.
534         * tree-vect-stmts.c (vectorizable_store): Likewise.
535         (vectorizable_load): Likewise.
536
537 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
538
539         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
540         within the per-copy loop.
541
542 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
543
544         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
545         in the dump file.
546
547 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
548
549         * doc/options.texi (Negative): Explicitly mention that the
550         Negative chain must be circular.
551
552 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
553
554         * function.h (block_chainon): Declare.
555         * function.c (block_chainon): Define.
556
557 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
558             Eric Weddington  <eric.weddington@atmel.com>
559             Georg-Johann Lay <avr@gjlay.de>
560
561         * config/avr/avr.c: ("insn-codes.h", "optabs.h", "langhooks.h"):
562         New Includes
563         (avr_init_builtins, avr_expand_builtin,
564         avr_expand_delay_cycles, avr_expand_unop_builtin,
565         avr_expand_binop_builtin ): New functions.
566         (avr_builtin_id): New enum
567         (struct avr_builtin_description): New struct
568         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
569         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
570
571         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
572         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
573         UNSPECV_DELAY_CYCLES): new enumeration values
574         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
575         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
576         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
577         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
578         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
579         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
580         "fmulsu"): New insns
581
582         * config/avr/avr-c.c: fix line endings
583         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
584         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
585         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
586         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
587         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
588
589         * doc/extend.texi (AVR Built-in Functions): New node
590         (Target Builtins): Add documentation of AVR
591         built-in functions.
592
593 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
594
595         PR target/44643
596         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
597         alone. Error if non-const data has attribute progmem.
598
599 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
600
601         * tree.h (struct tree_constructor): Include tree_typed instead of
602         tree_common.
603         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
604         TS_TYPED instead of TS_COMMON.
605
606 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
607
608         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
609         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
610         (sse2_psadbw): Merge with *avx_psadbw.
611         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
612         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
613         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
614         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
615         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
616         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
617         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
618         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
619         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
620         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
621         (ssse3_palignrti): Merge with *avx_palignrti.
622
623 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
624
625         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
626         * tree-ssanames.c (fini_ssanames): VEC_free it.
627         (make_ssa_name_fn): Update for VECness of free_ssanames.
628         (release_ssa_name, release_dead_ssa_names): Likewise.
629         * tree.h (struct tree_ssa_name): Include tree_typed instead of
630         tree_common.
631         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
632         TS_TYPED instead of TS_COMMON.
633
634 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
635
636         * postreload-gcse.c (gcse_after_reload_main): Add calls to
637         statistics_counter_event.
638         * tree-ssa-copyrename.c (stats): Define.
639         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
640         statistics_counter_event.
641         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
642         (bswap_stats, widen_mul_stats): Define.
643         (insert_reciprocals): Increment rdivs_inserted.
644         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
645         rfuncs_inserted.  Add calls to statistics_counter_event.
646         (execute_cse_sincos_1): Increment inserted.
647         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
648         statistics_counter_event.
649         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
650         of bswap_stats.  Add calls to statistics_counter_event.
651         (convert_mult_to_widen): Increment widen_mults_inserted.
652         (convert_plusminus_to_widen): Increment maccs_inserted.
653         (convert_mult_to_fma): Increment fmas_inserted.
654         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
655         calls to statistics_counter_event.
656
657 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
658
659         PR rtl-optimization/48455
660         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
661         `temp_costs->mem_cost'.
662
663 2011-04-13  Jan Hubicka  <jh@suse.cz>
664
665         * ipa-inline.h: New file.
666         * ipa-inline-analysis.c: New file. Broken out of ...
667         * ipa-inline.c: ... this file; update toplevel comment;
668         include ipa-inline.h
669         (inline_summary): Move to ipa-inline.h
670         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
671         ipa-inline-analysis.c.
672         (cgraph_estimate_time_after_inlining): Rename to estiamte_time_after_inlining;
673         move to ipa-inline-analysis.c
674         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
675         to estimate_edge_growth.
676         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
677         rename to estimate_size_after_inlining.
678         (cgraph_mark_inline_edge): Update for new naming convention.
679         (cgraph_check_inline_limits): Likewise.
680         (cgraph_edge_badness): Likewise.
681         (cgraph_decide_recursive_inlining): Likewise.
682         (cgraph_decide_inlining_of_small_functions): Likewise.
683         (cgraph_decide_inlining_incrementally): Likewise.
684         (cgraph_estimate_growth): Rename to estimate_growth; move to ipa-inline-analysis.c.
685         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
686         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
687         (compute_inline_parameters): Likewise.
688         (compute_inline_parameters_for_current): Likewise.
689         (pass_inline_parameters): Likewise.
690         (inline_indirect_intraprocedural_analysis): Likewise.
691         (analyze_function): Rename to inline_analyze_function; likewise.
692         (add_new_function): Move to ipa-inline-analysis.c.
693         (inline_generate_summary): Likewise.
694         (inline_read_summary): Likewise.
695         (inline_write_summary): Likewise.
696         * Makefile.in (ipa-inline-analysis.c): New file.
697
698 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
699
700         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
701         * configure: Regenerate.
702
703 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
704
705         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
706         instead of tree_common.
707         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
708         Likewise.
709         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
710         TS_TYPED rather than TS_COMMON.
711         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
712
713 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
714
715         PR target/45263
716         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
717         r20 around calls of __tablejump_elpm__
718
719 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
720
721         PR middle-end/48591
722         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
723         NULL.
724         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
725
726 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
727
728         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
729         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
730         (cfi_vec): New typedef.
731         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
732         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
733         (cie_cfi_vec): New static variable.
734         (cie_cfi_head): Delete.
735         (add_cfi): Accept a cfi_vec * as first argument. All callers and
736         declaration changed. Use vector rather than list operations.
737         (new_cfi): Don't initialize the dw_cfi_next field.
738         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
739         rather than list operations.
740         (lookup_cfa): Use vector rather than list operations.
741         (output_cfis): New argument upto. Accept a cfi_vec rather than
742         a dw_cfi_ref list head as argument. All callers changed.
743         Iterate over the vector using upto as a maximum index.
744         (output_all_cfis): New static function.
745         (output_fde): Use vector rather than list operations. Use the
746         new upto argument for output_cfis rather than manipulating a
747         list.
748         (dwarf2out_begin_prologue): Change initializations to match
749         new struct members.
750         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
751         from the vector length rather than searching for the end of a list.
752         Use output_all_cfis.
753         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
754
755 2011-04-13  Nick Clifton  <nickc@redhat.com>
756
757         * config/rx/rx.md (movmemsi): Do not use this pattern when
758         volatile pointers are involved.
759
760 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
761
762         * config/i386/sse.md (pinsrbits): Remove.
763         (sse2_packsswb): Merge with *avx_packsswb.
764         (sse2_packssdw): Merge with *avx_packssdw.
765         (sse2_packuswb): Merge with *avx_packuswb.
766         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
767         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
768         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
769         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
770         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
771         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
772         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
773         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
774         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
775         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
776         (sse2_loadld): Merge with *avx_loadld.
777         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
778         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
779         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
780         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
781         (vec_concatv2di): Merge with *vec_concatv2di_avx.
782
783 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
784
785         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
786         calling TREE_CHAIN.
787         * print-tree.c (print_node): Likewise.
788         * tree-inline.c (copy_tree_r): Likewise.
789         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
790         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
791         instead of TS_COMMON.
792         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
793         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
794         (copy_node_stat): Zero TREE_CHAIN only if necessary.
795         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
796         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
797         ...and these...
798         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
799         * tree.h: ...here.
800         (TREE_CHAIN): Check for a TS_COMMON structure.
801         (TREE_TYPE): Check for a TS_TYPED structure.
802
803 2011-04-12  Pat Haugen <pthaugen@us.ibm.com>
804
805         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
806         cgraph_get_create_node instead of cgraph_node.
807
808 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
809
810         * c-parser.c (c_parser_initelt): Updated call to
811         objc_build_message_expr.
812         (c_parser_postfix_expression): Likewise.
813
814 2011-04-12  Kai Tietz  <ktietz@redhat.com>
815
816         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
817         MASK_MS_BITFIELD_LAYOUT bit.
818
819 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
820
821         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
822         assert it is always true.
823         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
824         moves.
825
826 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
827
828         * c-parser.c (c_lex_one_token): Rewritten conditional used when
829         compiling Objective-C to be more efficient.
830
831 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
832
833         * opts-common.c (decode_cmdline_options_to_array): Remove variable
834         argv_copied.
835
836 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
837
838         * recog.h, genoutput.c, optabs.c: Revert last patch.
839
840 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
841
842         PR target/48090
843         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
844
845 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
846
847         * recog.h (insn_operand_data): Add an "allows_mem" field.
848         * genoutput.c (output_operand_data): Initialize it.
849         * optabs.c (maybe_legitimize_operand_same_code): New function.
850         (maybe_legitimize_operand): Use it when matching the original
851         op->value.
852
853 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
854
855         * genpreds.c (process_define_predicate): Move most processing
856         to gensupport.c.  Continue to validate the expression.
857         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
858         (process_define_predicate): Move processing to gensupport.c.
859         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
860         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
861         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
862         argument.
863         (valid_predicate_name_p): New function, split out from old
864         genpreds.c:process_define_predicate.
865         (process_define_predicate): New function, combining code from
866         old genpreds.c and genrecog.c functions.
867         (process_rtx): Call it for DEFINE_PREDICATE and
868         DEFINE_SPECIAL_PREDICATE.
869
870 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
871
872         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
873         size of a '%A' memory reference.
874         (T_DREG, T_QREG): New neon_builtin_type_bits.
875         (arm_init_neon_builtins): Assert that the load and store operands
876         are neon_struct_operands.
877         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
878         (NEON_ARG_MEMORY): New builtin_arg.
879         (neon_dereference_pointer): New function.
880         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
881         Handle NEON_ARG_MEMORY.
882         (arm_expand_neon_builtin): Update after above interface changes.
883         Use NEON_ARG_MEMORY for loads and stores.
884         * config/arm/predicates.md (neon_struct_operand): New predicate.
885         * config/arm/iterators.md (V_two_elem): Tweak formatting.
886         (V_three_elem): Use BLKmode for accesses that have no associated mode.
887         (V_four_elem): Tweak formatting.
888         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
889         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
890         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
891         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
892         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
893         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
894         (neon_vst4<mode>): Replace pointer operand with a memory operand.
895         Use %A in the output template.
896         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
897         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
898         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
899         the width of the memory access.  Remove post-increment.
900         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
901
902 2011-04-12  Nick Clifton  <nickc@redhat.com>
903
904         * config/v850/v850.c (expand_prologue): Do not use the CALLT
905         instruction for interrupt handlers if the target is the basic V850
906         architecture.
907         (expand_epilogue): Likewise.
908
909 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
910
911         PR rtl-optimization/48549
912         * combine.c (propagate_for_debug): Also stop after BB_END of
913         this_basic_block.  Process LAST and just stop processing after it.
914         (combine_instructions): If last_combined_insn has been deleted,
915         set last_combined_insn to its PREV_INSN.
916
917 2011-04-12  Richard Guenther  <rguenther@suse.de>
918
919         PR tree-optimization/46076
920         * gimple.h (struct gimple_statement_call): Add fntype field.
921         (gimple_call_fntype): Adjust.
922         (gimple_call_set_fntype): New function.
923         * gimple.c (gimple_build_call_1): Set the call function type.
924         * gimplify.c (gimplify_call_expr): Preserve the function
925         type the frontend used for the call.
926         (gimplify_modify_expr): Likewise.
927         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
928         function type.
929         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
930         function type.
931         * tree-ssa.c (useless_type_conversion_p): Function pointer
932         conversions are useless.
933
934 2011-04-12  Martin Jambor  <mjambor@suse.cz>
935
936         * cgraph.h (cgraph_node): Remove function declaration.
937         (cgraph_create_node): Declare.
938         (cgraph_get_create_node): Likewise.
939         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
940         Updated all callers.
941         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
942         the decl does not already exist.  Call cgraph_get_create_node instead
943         of cgraph_node.
944         (cgraph_get_create_node): New function.
945         (cgraph_same_body_alias): Update comment.
946         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
947         assert it does not return NULL.
948         (cgraph_update_edges_for_call_stmt): Likewise.
949         (cgraph_clone_edge): Likewise.
950         (cgraph_create_virtual_clone): Likewise.
951         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
952         instead of cgraph_node.
953         (cgraph_add_new_function): Call cgraph_create_node or
954         cgraph_get_create_node instead of cgraph_node.
955         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
956         instead of cgraph_node.
957         (record_eh_tables): Likewise.
958         (mark_address): Likewise.
959         (mark_load): Likewise.
960         (build_cgraph_edges): Call cgraph_get_create_node instead
961         of cgraph_node.
962         (rebuild_cgraph_edges): Likewise.
963         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
964         instead of cgraph_node.
965         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
966         cgraph_node.
967         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
968         cgraph_create_node instead of cgraph_node.
969         * c-decl.c (finish_function): Call cgraph_get_create_node instead
970         of cgraph_node.
971         * lto-cgraph.c (input_node): Likewise.
972         * lto-streamer-in.c (input_function): Likewise.
973         * varasm.c (mark_decl_referenced): Likewise.
974         (assemble_alias): Likewise.
975
976 2011-04-12  Martin Jambor  <mjambor@suse.cz>
977
978         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
979         instead of cgraph_node and assert it does not return NULL.
980         * lto-streamer-in.c (lto_read_body): Likewise.
981         * omp-low.c (new_omp_context): Likewise.
982         (create_task_copyfn): Likewise.
983         * tree-emutls.c (lower_emutls_function_body): Likewise.
984         * matrix-reorg.c (transform_allocation_sites): Likewise.
985
986 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
987
988         PR c/48552
989         * c-typeck.c (build_asm_expr): Error out on attempts to use
990         void type outputs or inputs for constraints that allow reg or
991         don't allow memory.
992
993 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
994             Richard Earnshaw  <rearnsha@arm.com>
995
996         PR target/48250
997         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
998         to use sign-magnitude offsets. Reject unsupported unaligned
999         cases. Add detailed description in comments.
1000         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
1001         condition from TARGET_32BIT to TARGET_ARM.
1002
1003 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
1004
1005         * tree.h (struct typed_tree): New.
1006         (struct tree_common): Include it instead of tree_base.
1007         (TREE_TYPE): Update for new location of type field.
1008         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
1009         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
1010         (union tree_node): Add typed field.
1011         * treestruct.def (TS_TYPED): New.
1012         * lto-streamer.c (check_handled_ts_structures): Handle it.
1013         * tree.c (MARK_TS_TYPED): New macro.
1014         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
1015
1016 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
1017
1018         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
1019         (force_nonfallthru): Do not alter the loop nest if no basic block
1020         was created.
1021
1022 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
1023
1024         * config/i386/sse.md (VI): New mode iterator.
1025         (SSEMODEI): Remove.
1026         (AVX256MODEI): Ditto.
1027         (AVXMODEF4P): Ditto.
1028         (avxvecpsmode): Ditto.
1029         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
1030         (sse2_andnot<mode>3): New expander.
1031         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
1032         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
1033         (<any_logic:code><mode>3): Use VI mode iterator.
1034         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
1035         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
1036         (*andnottf3): Handle AVX three-operand constraints.
1037         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
1038
1039 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
1040             Robert Millan  <rmh@gnu.org>
1041
1042         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
1043         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
1044         GNU_USER_DYNAMIC_LINKER64): Define.
1045         (REG_NAME): Don't undefine.
1046         (MD_UNWIND_SUPPORT): Undefine.
1047         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
1048         (REG_NAME): Don't undefine.
1049         (MD_UNWIND_SUPPORT): Undefine.
1050         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
1051
1052 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
1053
1054         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
1055         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
1056
1057 2011-04-11  Xinliang David Li  <davidxl@google.com>
1058
1059         * value-profile.c (check_ic_target): New function.
1060         (gimple_ic_transform): Sanity check indirect call target.
1061         * gimple-low.c (gimple_check_call_args): Interface change.
1062         (gimple_check_call_matching_types): New function.
1063         * tree-inline.c (tree_can_inline_p): Call new function.
1064
1065 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
1066
1067         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
1068         tree-pretty-print.h & realmpfr.h.
1069
1070 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
1071
1072         PR middle-end/48464
1073         * ira.c (setup_pressure_classes): Fix typo in loop condition.
1074         (setup_allocno_and_important_classes): Ditto.
1075
1076 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
1077
1078         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
1079         GNU_USER_DYNAMIC_LINKER.
1080         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
1081         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1082         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
1083         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1084         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
1085         GNU_USER_TARGET_OS_CPP_BUILTINS.
1086         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
1087         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1088         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
1089         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1090         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
1091         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1092         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
1093         GNU_USER_TARGET_OS_CPP_BUILTINS.
1094         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1095         GNU_USER_DYNAMIC_LINKER.
1096         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1097         GNU_USER_TARGET_OS_CPP_BUILTINS.
1098         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
1099         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1100         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
1101         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1102         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
1103         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
1104         GNU_USER_DYNAMIC_LINKER64): Remove.
1105         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
1106         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1107         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1108         GNU_USER_DYNAMIC_LINKER.
1109         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1110         GNU_USER_TARGET_OS_CPP_BUILTINS.
1111         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1112         GNU_USER_TARGET_OS_CPP_BUILTINS.
1113         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
1114         to GNU_USER_TARGET_OS_CPP_BUILTINS.
1115         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1116         GNU_USER_TARGET_OS_CPP_BUILTINS.
1117         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
1118         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
1119         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
1120         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
1121         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1122         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1123         GNU_USER_DYNAMIC_LINKER.
1124         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
1125         GNU_USER_TARGET_OS_CPP_BUILTINS.
1126         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
1127         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1128         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1129         GNU_USER_DYNAMIC_LINKER.
1130         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
1131         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1132         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
1133         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1134         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1135         GNU_USER_DYNAMIC_LINKER.
1136         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
1137         GNU_USER_DYNAMIC_LINKERN32.
1138         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
1139         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
1140         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
1141         GNU_USER_DYNAMIC_LINKER32.
1142         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
1143         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1144         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1145         GNU_USER_DYNAMIC_LINKER.
1146         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
1147         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1148         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
1149         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1150         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1151         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
1152         GNU_USER_DYNAMIC_LINKER32.
1153         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
1154         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
1155         GNU_USER_DYNAMIC_LINKER.
1156         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
1157         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1158         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
1159         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
1160         GNU_USER_DYNAMIC_LINKER64.
1161         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
1162         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1163         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1164         GNU_USER_DYNAMIC_LINKER.
1165         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
1166         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1167         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1168         GNU_USER_DYNAMIC_LINKER.
1169         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
1170         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1171         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
1172         GNU_USER_DYNAMIC_LINKER32.
1173         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
1174         GNU_USER_DYNAMIC_LINKER64.
1175         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
1176         GNU_USER_DYNAMIC_LINKER64.
1177         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
1178         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1179         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
1180         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1181         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1182
1183 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
1184
1185         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
1186         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
1187         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
1188         GNU_USER_DYNAMIC_LINKER.
1189         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
1190         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
1191         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
1192         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
1193         GNU_USER_DYNAMIC_LINKER64.
1194         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
1195         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
1196         GNU_USER_LINK_EMULATION.
1197         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
1198         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
1199         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
1200         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
1201         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
1202         CPP_SPEC, CC1_SPEC): Remove.
1203         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
1204         (GNU_USER_DYNAMIC_LINKER): Define.
1205         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
1206         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
1207         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
1208         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
1209         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
1210         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
1211         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
1212         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
1213         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
1214         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
1215         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
1216         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
1217         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
1218         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
1219         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
1220         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
1221         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1222         GNU_USER_DYNAMIC_LINKER.
1223         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1224         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
1225         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1226         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
1227         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1228         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
1229         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
1230         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
1231         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
1232         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
1233
1234 2011-04-11  Kai Tietz  <ktietz@redhat.com>
1235
1236         PR target/9601
1237         PR target/11772
1238         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
1239         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
1240         comment.
1241         (ix86_is_msabi_thiscall): Removed.
1242         (ix86_is_type_thiscall): Likewise.
1243         (ix86_get_callcvt): New function.
1244         (ix86_comp_type_attributes): Simplify check.
1245         (ix86_function_regparm): Use ix86_get_callcvt for calling
1246         convention attribute checks.
1247         (ix86_return_pops_args): Likewise.
1248         (ix86_static_chain): Likewise.
1249         (x86_this_parameter): Likewise.
1250         (x86_output_mi_thunk): Likewise.
1251         (ix86_function_type_abi): Optimize check for types without attributes.
1252         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
1253         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
1254         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
1255         by flag-values.
1256         (IX86_BASE_CALLCVT): Helper macro.
1257         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
1258         Use ix86_get_callcvt for calling convention attribute checks and avoid
1259         symbol-decoration for stdcall in TARGET_RTD case.
1260         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
1261         Likewise.
1262         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
1263         for declaration.
1264
1265 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
1266
1267         * config/i386/sse.md (VI_128): New mode iterator.
1268         (VI12_128): Rename from SSEMODE12.
1269         (VI14_128): Rename from SSEMODE14.
1270         (VI124_128): New mode iterator.
1271         (VI24_128): Rename from SSEMODE248.
1272         (VI248_128): Rename from SSEMODE248.
1273         (SSEMODE124C8): Remove.
1274         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
1275         (*sse2_<plusminus_insn><mode>3): Merge with
1276         *avx_<plusminus_insn><mode>3.
1277         (*mulv8hi3): Merge with *avx_mulv8hi3.
1278         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
1279         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
1280         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
1281         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
1282         (ashr<mode>3): Merge with *avx_ashr<mode>3.
1283         (lshr<mode>3): Merge with *avx_lshr<mode>3.
1284         (ashl<mode>3): Merge with *avx_ashl<mode>3.
1285         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
1286         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
1287         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
1288         (*<smaxmin:code>v8hi3): Ditto.
1289         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
1290         (*<smaxmin:code>v16qi3): Ditto.
1291         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
1292         (*sse2_eq<mode>3): Ditto.
1293         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
1294         (*sse2_gt<mode>3): Ditto.
1295         (vcondv2di): Split out of vcond<mode>.
1296         (vconduv2di): Split out of vcondu<mode>.
1297
1298 2011-04-11  Richard Guenther  <rguenther@suse.de>
1299
1300         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
1301         before calling tree_low_cst.
1302
1303 2011-04-11  Richard Guenther  <rguenther@suse.de>
1304
1305         * stor-layout.c (layout_type): Compute all array index size operations
1306         in the original type.
1307         (initialize_sizetypes): Add comment.
1308         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
1309
1310 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
1311
1312         * common.opt (Tbss=, Tdata=, Ttext=): New options.
1313
1314 2011-04-11  Martin Jambor  <mjambor@suse.cz>
1315
1316         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
1317         of cgraph_node, handle NULL return value.
1318         (cgraph_global_info): Likewise.
1319         (cgraph_rtl_info): Likewise.
1320         * tree-inline.c (estimate_num_insns): Likewise.
1321         * gimplify.c (unshare_body): Likewise.
1322         (unvisit_body): Likewise.
1323         (gimplify_body): Likewise.
1324         * predict.c (optimize_function_for_size_p): Likewise.
1325         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
1326         (call_may_clobber_ref_p_1): Likewise.
1327         * varasm.c (function_section_1): Likewise.
1328         (assemble_start_function): Likewise.
1329
1330 2011-04-11  Martin Jambor  <mjambor@suse.cz>
1331
1332         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
1333         of cgraph_node.
1334         * final.c (rest_of_clean_state): Likewise.
1335         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
1336         * passes.c (pass_init_dump_file): Likewise.
1337         (execute_all_ipa_transforms): Likewise.
1338         (function_called_by_processed_nodes_p): Likewise.
1339         * predict.c (maybe_hot_frequency_p): Likewise.
1340         (probably_never_executed_bb_p): Likewise.
1341         (compute_function_frequency): Likewise.
1342         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
1343         (unnest_nesting_tree_1): Likewise.
1344         (lower_nested_functions): Likewise.
1345         * tree-optimize.c (execute_fixup_cfg): Likewise.
1346         (tree_rest_of_compilation): Likewise.
1347         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
1348         * tree-sra.c (ipa_early_sra): Likewise.
1349         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
1350         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
1351         * ipa.c (record_cdtor_fn): Likewise.
1352         * ipa-inline.c (cgraph_early_inlining): Likewise.
1353         (compute_inline_parameters_for_current): Likewise.
1354         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
1355         * ipa-pure-const.c (local_pure_const): Likewise.
1356         * ipa-split.c (split_function): Likewise.
1357         (execute_split_functions): Likewise.
1358         * cgraphbuild.c (build_cgraph_edges): Likewise.
1359         (rebuild_cgraph_edges): Likewise.
1360         (cgraph_rebuild_references): Likewise.
1361         (remove_cgraph_callee_edges): Likewise.
1362         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
1363         (verify_cgraph_node): Likewise.
1364         (cgraph_analyze_functions): Likewise.
1365         (cgraph_preserve_function_body_p): Likewise.
1366         (save_inline_function_body): Likewise.
1367         (save_inline_function_body): Likewise.
1368         * tree-inline.c (copy_bb): Likewise.
1369         (optimize_inline_calls): Likewise.
1370
1371 2011-04-11  Martin Jambor  <mjambor@suse.cz>
1372
1373         PR tree-optimization/48195
1374         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
1375         ipa_check_create_edge_args.
1376         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
1377         ipa_check_create_edge_args.
1378         * ipa-inline.c (inline_generate_summary): Do not call
1379         ipa_check_create_node_params and ipa_check_create_edge_args.
1380         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
1381         ipa_check_create_edge_args.
1382
1383 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
1384
1385         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
1386         instead of loop.
1387         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
1388         * function.c (record_hard_reg_sets): Likewise.
1389         * ira.c (compute_regs_asm_clobbered): Likewise.
1390         * sched-deps.c (sched_analyze_1): Likewise.
1391         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
1392
1393 2011-04-09  Xinliang David Li  <davidxl@google.com>
1394
1395         PR tree-optimization/PR48484
1396         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
1397         has_valid_pred lazily
1398
1399 2011-04-09  Duncan Sands  <baldrick@free.fr>
1400
1401         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
1402
1403 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
1404
1405         * combine.c (combine_validate_cost): Adjust comments.  Set registered
1406         cost of I0 to zero at the end, if any.
1407
1408 2011-04-08  Xinliang David Li  <davidxl@google.com>
1409
1410         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
1411         to insane profile data.
1412
1413 2011-04-08  Xinliang David Li  <davidxl@google.com>
1414
1415         * final.c (dump_basic_block_info): New function.
1416         (final): Dump basic block.
1417         (final_scan_insn): Remove old dump.
1418
1419 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
1420
1421         PR target/47829
1422         * config.gcc (i386-*-freebsd): Disable unwind table generation for
1423         crtbegin/crtend.
1424
1425 2011-04-08  Michael Matz  <matz@suse.de>
1426
1427         PR middle-end/48389
1428         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
1429         functions.
1430         (rebuild_jump_labels): Call rebuild_jump_labels_1.
1431         * rtl.h (rebuild_jump_labels_chain): Declare.
1432         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
1433         insns inserted on edges.
1434
1435 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
1436
1437         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
1438         * config/arm/arm-arches.def: New.
1439         * config/arm/arm-opts.h: New.
1440         * config/arm/genopt.sh: New.
1441         * config/arm/arm-tables.opt: New (generated).
1442         * config/arm/arm.c (arm_handle_option, arm_target_help,
1443         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
1444         (all_architectures): Get most table contents from arm-arches.def.
1445         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
1446         arm_selected_tune here.
1447         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
1448         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
1449         (march=, mcpu=, mtune=): Use Enum and Var.
1450         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
1451         (arm.o): Update dependencies.
1452
1453 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
1454
1455         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
1456         of header_file.
1457         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
1458         (write_typed_alloc_defns): Likewise.
1459         (main): Calls write_typed_alloc_defns with output_header.
1460
1461 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
1462
1463         PR inline-asm/48435
1464         * ira-color.c (setup_profitable_hard_regs): Add comments.
1465         Don't take prohibited hard regs into account.
1466         (setup_conflict_profitable_regs): Rename to
1467         get_conflict_profitable_regs.
1468         (check_hard_reg_p): Check prohibited hard regs.
1469
1470 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
1471
1472         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
1473         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
1474         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
1475
1476 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1477
1478         PR target/48366
1479         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
1480         move from floating point to shift amount register .
1481         (emit_move_sequence): Remove secondary reload support for floating
1482         point to shift amount amount register copies.
1483         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
1484         amount register copies.
1485         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
1486         register, return false if mode isn't a scalar integer mode.
1487         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
1488
1489 2011-04-08  Richard Guenther  <rguenther@suse.de>
1490
1491         * gimple.c (gimple_call_flags): Remove kludge.
1492
1493 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1494
1495         * sel-sched.c (sel_region_init): Move call to
1496         sel_setup_region_sched_flags after setup_current_loop_nest.
1497
1498 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
1499
1500         PR rtl-optimization/48272
1501         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
1502         init_insn_reg_pressure_info.  Adjust a caller.
1503         * sched-int.h (init_insn_reg_pressure_info): Declare.
1504         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
1505         when sched-pressure is enabled.
1506
1507 2011-04-08  Richard Guenther  <rguenther@suse.de>
1508
1509         * gimple.c (gimple_set_modified): Do not queue calls to
1510         MODIFIED_NORETURN_CALLS here ...
1511         * tree-ssa-operands.c (update_stmt_operands): ... but here.
1512
1513 2011-04-08  Richard Guenther  <rguenther@suse.de>
1514
1515         PR lto/48467
1516         * toplev.c (lang_dependent_init): Do not open asm_out_file
1517         in WPA mode, nor perform debug machinery initialization.
1518         (finalize): Do not unlink asm_out_file in WPA mode.
1519
1520 2011-04-08  Richard Guenther  <rguenther@suse.de>
1521
1522         * gimple.h (gimple_call_fntype): New function.
1523         (gimple_call_return_type): Use it.
1524         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
1525         * gimple-low.c (gimple_check_call_args): Likewise.
1526         * gimple.c (gimple_call_flags): Likewise.
1527         (gimple_call_arg_flags): Likewise.
1528         (gimple_call_return_flags): Likewise.
1529         * tree-cfg.c (verify_gimple_call): Likewise.
1530         (do_warn_unused_result): Likewise.
1531         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
1532         * value-prof.c (gimple_ic_transform): Fix fndecl check.
1533
1534 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
1535
1536         PR rtl-optimization/48235
1537         * sel-sched.c (code_motion_process_successors): Recompute the last
1538         insn in basic block if control flow changed.
1539         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
1540         Update condition for ilist_remove.
1541
1542 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1543
1544         PR rtl-optimization/48302
1545         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
1546         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
1547         it to record added preheader blocks.
1548         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
1549         on to sel_add_loop_preheaders.
1550         (sel_region_init): Move call to setup_current_loop_nest after
1551         sel_init_bbs.
1552
1553 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1554
1555         PR target/48273
1556         * cfgloop.h (loop_has_exit_edges): New helper.
1557         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
1558         non-clonable.
1559         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
1560         that have no exit edges.
1561
1562 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1563
1564         PR rtl-optimization/48442
1565         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
1566         all callers.  Adjust assert.
1567
1568 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
1569
1570         PR tree-optimization/48377
1571         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
1572         is_packed to true even for types with smaller TYPE_ALIGN than
1573         TYPE_SIZE.
1574
1575 2011-04-08  Richard Guenther  <rguenther@suse.de>
1576
1577         PR bootstrap/48513
1578         * doc/tm.texi: Re-generate.
1579
1580 2011-04-08  Wei Guozhi  <carrot@google.com>
1581
1582         PR target/47855
1583         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
1584         * config/arm/arm.c (arm_attr_length_push_multi): New function.
1585         * config/arm/arm.md (*push_multi): Change the length computation to
1586         call a C function.
1587
1588 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
1589
1590         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
1591         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
1592         * doc/tm.texi: Regenerate.
1593         * system.h (ASM_OUTPUT_BSS): Poison.
1594         * varasm.c (asm_output_bss): Remove function.
1595         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
1596
1597         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
1598         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
1599         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
1600         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
1601         Likewise.
1602         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
1603         Likewise.
1604         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
1605         Likewise.
1606         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
1607
1608 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
1609
1610         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
1611         EnumValue lines.
1612
1613 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
1614
1615         * config/m68k/m68k.c (m68k_handle_option): Don't handle
1616         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
1617         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
1618         OPT_mcpu32.
1619         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
1620         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
1621         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
1622         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
1623         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
1624         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
1625         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
1626         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
1627         options.  Don't map other m68k options manually.  Don't handle
1628         old-style options as canonical.
1629         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
1630         * doc/install.texi (m68k-*-*): Document binutils version requirement.
1631
1632 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
1633
1634         * basic-block.h (force_nonfallthru): Move to...
1635         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
1636         (force_nonfallthru): ...here.
1637         * cfghooks.c (force_nonfallthru): New function.
1638         * cfgrtl.c (force_nonfallthru): Rename into...
1639         (rtl_force_nonfallthru): ...this.
1640         (commit_one_edge_insertion): Do not set AUX field.
1641         (commit_edge_insertions): Do not discover new basic blocks.
1642         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
1643         (cfg_layout_rtl_cfg_hooks): Likewise.
1644         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
1645         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
1646         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
1647
1648 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
1649
1650         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
1651         Remove macros.
1652
1653 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
1654
1655         * config/i386/sse.md: Update copyright year.
1656         (avxcvtvecmode): Remove.
1657         (sse_movhlps): Merge with *avx_movhlps.
1658         (sse_movlhps): Merge with *avx_movlhps.
1659         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
1660         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
1661         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
1662         (sse_loadhps): Merge with *avx_loadhps.
1663         (sse_storelps): Merge with *avx_storelps.
1664         (sse_loadlps): Merge with *avx_loadlps.
1665         (sse_movss): Merge with *avx_movss.
1666         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
1667         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
1668         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
1669         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
1670         (vec_set<mode>_0): Ditto.
1671         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
1672         (sse4_1_insertps): Merge with *avx_insertps.
1673         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
1674         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
1675         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
1676         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
1677         (sse2_storehpd): Merge with *avx_storehpd.
1678         (sse2_loadhpd): Merge with *avx_loadhpd.
1679         (sse2_loadlpd): Merge with *avx_loadlpd.
1680         (sse2_movsd): Merge with *avx_movsd.
1681         (*vec_concatv2df): Merge with *vec_concatv2df.
1682
1683 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
1684
1685         PR debug/48343
1686         * combine.c (combine_instructions): Add last_combined_insn,
1687         update it if insn is after it, pass it to all try_combine calls.
1688         (try_combine): Add last_combined_insn parameter, pass it instead of
1689         i3 to propagate_for_debug.
1690
1691 2011-04-07  Nick Clifton  <nickc@redhat.com>
1692
1693         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
1694         to handle MDR <-> data register transfers.
1695         (movhi_internal): Likewise.
1696
1697 2011-04-07  Alan Modra  <amodra@gmail.com>
1698
1699         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
1700         previous stack info.
1701
1702 2011-04-07  Tom de Vries  <tom@codesourcery.com>
1703
1704         PR target/43920
1705         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
1706         flow_find_cross_jump.  Swap variables to implement backward replacement.
1707         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
1708
1709 2011-04-07  Tom de Vries  <tom@codesourcery.com>
1710
1711         PR target/43920
1712         * cfgcleanup.c (walk_to_nondebug_insn): New function.
1713         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
1714         and bb2.
1715         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
1716         src1 or src2.  Redirect edges to the last basic block.  Update
1717         frequency and count on multiple basic blocks in case of fallthru.
1718
1719 2011-04-07  Tom de Vries  <tom@codesourcery.com>
1720
1721         PR target/43920
1722         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
1723         function.
1724         (old_insns_match_p): Change return type.  Replace return false/true
1725         with return dir_none/dir_both.  Use can_replace_by.
1726         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
1727         direction from dir_p.  Register replacement direction in dir, last_dir
1728         and afterlast_dir.  Handle new return type of old_insns_match_p using
1729         merge_dir.  Return replacement direction in dir_p.
1730         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
1731         return type of old_insns_match_p.
1732         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
1733         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
1734         flow_find_cross_jump.
1735         * basic-block.h (enum replace_direction): New type.
1736         (flow_find_cross_jump): Add parameter to declaration.
1737
1738 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
1739
1740         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
1741         (AVXMODEDCVTPS2DQ): Ditto.
1742         (VEC_FLOAT_MODE): Ditto.
1743         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
1744         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
1745         (<any_logic:code><mode>3): Use VF mode iterator.
1746         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
1747         Use VF mode iterator.
1748         (copysign<mode>3): Use VF mode iterator.
1749         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
1750         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
1751         (*<any_logic:code><MODEF:mode>3): Merge with
1752         *avx_<any_logic:code><MODEF:mode>3.
1753         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
1754         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
1755         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
1756         (avx_cvtdq2ps<avxmodesuffix>): Remove.
1757         (sse2_cvtdq2ps): Use %v modifier.
1758         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
1759         (avx_cvtps2dq<avxmodesuffix>): Remove.
1760         (sse2_cvtps2dq): Use %v modifier.
1761         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
1762         (avx_cvttps2dq<avxmodesuffix>): Remove.
1763         (sse2_cvttps2dq): Use %v modifier.
1764         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
1765         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
1766         (sse2_cvtsd2siq): Fix insn template.
1767         (sse2_cvtsd2siq_2): Ditto.
1768         (sse2_cvttsd2siq): Ditto.
1769         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
1770         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
1771
1772 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
1773
1774         * gcov-io.c: Use GCC Runtime Library Exception.
1775
1776 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
1777
1778         PR debug/48466
1779         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
1780         as base_reg whatever register reg has been eliminated to, instead
1781         of hardcoding STACK_POINTER_REGNUM.
1782
1783 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
1784
1785         * doc/tm.texi.in: Document C target hooks as separate from general
1786         target hooks.
1787         * doc/tm.texi: Regenerate.
1788         * genhooks.c (struct hook_desc): Add docname field.
1789         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
1790         docname field.
1791         (hook_array): Include c-target.def.
1792         (emit_documentation): Use docname field in output.
1793         (emit_init_macros): Take docname argument.  Only emit definitions
1794         for hooks matching docname.
1795         (main): Expect additional arguments in all cases.  Pass argument
1796         to emit_init_macros.
1797         * target.def: Move initial macro definitions and comments to
1798         target-hooks-macros.h.
1799         (gcc_targetcm): Move to c-family/c-target.def.
1800         * target.h (targetcm): Move declaration to c-family/c-target.h.
1801         * targhooks.c (default_handle_c_option): Move to
1802         c-family/c-opts.c.
1803         * targhooks.h (default_handle_c_option): Move declaration to
1804         c-family/c-common.h.
1805         * target-hooks-macros.h: New file.
1806         * config.gcc (target_has_targetcm): Define and use to add to
1807         c_target_objs and cxx_target_objs.
1808         * config/default-c.c: New file.
1809         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
1810         of target.h and target-def.h.
1811         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
1812         (darwin_objc_construct_string, darwin_cfstring_ref_p,
1813         darwin_check_cfstring_format_arg): Make static.
1814         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
1815         TARGET_STRING_OBJECT_REF_TYPE_P,
1816         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
1817         * config/darwin-protos.h (darwin_objc_construct_string,
1818         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
1819         declare.
1820         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
1821         TARGET_STRING_OBJECT_REF_TYPE_P,
1822         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
1823         * config/t-darwin (darwin-c.o): Update dependencies.
1824         * system.h (TARGET_HAS_TARGETCM): Poison.
1825         * Makefile.in (TARGET_H): Update.
1826         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
1827         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
1828         (default-c.o): New target.
1829         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
1830         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
1831         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
1832         c-target.def.
1833         (build/genhooks.o): Update dependencies.
1834
1835 2011-04-06  Richard Guenther  <rguenther@suse.de>
1836
1837         * ipa-inline.c (enum inlining_mode): Remove.
1838         (cgraph_flatten): Use some other token.
1839         (cgraph_edge_early_inlinable_p): New function, split out from ...
1840         (cgraph_perform_always_inlining): New function, split out from ...
1841         (cgraph_decide_inlining_incrementally): ... here.
1842         (cgraph_mark_inline_edge): Adjust.
1843         (cgraph_early_inlining): Re-structure.
1844         (pass_early_inline): Require SSA form.
1845
1846 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
1847             Julian Brown  <julian@codesourcery.com>
1848             Mark Shinwell  <shinwell@codesourcery.com>
1849
1850         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
1851         LO_REGS only for Thumb-1.
1852         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
1853         be used in short instructions when optimising for size on Thumb-2.
1854
1855 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
1856
1857         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
1858         associated with user returns to be preserved.
1859
1860 2011-04-06  Tristan Gingold  <gingold@adacore.com>
1861
1862         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
1863         symbol_queue_size, DBXOUT_DECR_NESTING,
1864         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
1865         if XCOFF_DEBUGGING_INFO.
1866
1867 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
1868
1869         * config/i386/i386.md (attribute isa): New.
1870         (attribute enabled): New.
1871         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
1872         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
1873         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
1874         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
1875         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
1876         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
1877         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
1878         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
1879
1880         * config/i386/sse.md (VF): New mode iterator.
1881         (VF1): Ditto.
1882         (VF2): Ditto.
1883         (VF_128): Ditto.
1884         (SSEMODEF4): Remove.
1885         (attribute sse): Handle V8SF and V4DF modes.
1886         (<absneg:code><mode>2): Use VF mode iterator.
1887         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
1888         mode iterator.
1889         (<plusminus_insn><mode>3): Use VF mode iterator.
1890         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
1891         Use VF mode iterator.
1892         (<sse>_vm<plusminus_insn><mode>3): Merge with
1893         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
1894         (mul<mode>3): Use VF mode iterator.
1895         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
1896         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
1897         mode iterator.
1898         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
1899         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
1900         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
1901         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
1902         mode iterator.
1903         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
1904         Use VF1 mode iterator.
1905         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
1906         (sqrt<VF2:mode>2): New expander.
1907         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
1908         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
1909         and sqrtv2df2.  Use VF mode iterator.
1910         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
1911         mode iterator.
1912         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
1913         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
1914         Use VF1 mode iterator.
1915         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
1916         (<smaxmin:code><mode>3): Use VF mode iterator.
1917         (*<smaxmin:code><mode>3_finite): Merge with
1918         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
1919         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
1920         (<sse>_vm<smaxmin:code><mode>2): Merge with
1921         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
1922         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
1923         mode iterator.
1924         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
1925         mode iterator.
1926         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
1927         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
1928         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
1929         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
1930         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
1931         VF mode iterator.
1932         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
1933         Use VF_128 mode iterator.
1934         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
1935         mode iterator.
1936         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
1937         VF_128 mode iterator.
1938         (vcond<mode>): Use VF mode iterator.
1939         * config/i386/predicates.md (sse_comparison_operator): Merge with
1940         avx_comparison_float_operator.  Do not declare as special_predicate.
1941         * config/i386/i386.c (struct builtin_description): Update for renamed
1942         compare patterns.
1943         (ix86_expand_args_builtin): Ditto.
1944         (ix86_expand_sse_compare_mask): Ditto.
1945
1946 2011-04-06  Richard Guenther  <rguenther@suse.de>
1947
1948         * tree-inline.c (estimate_num_insns): For calls simply account
1949         for all passed arguments and a used return value.
1950
1951 2011-04-06  Richard Guenther  <rguenther@suse.de>
1952
1953         PR tree-optimization/47663
1954         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
1955         call_stmt_time fields.
1956         (cgraph_edge_inlinable_p): Declare.
1957         (cgraph_edge_recursive_p): New inline function.
1958         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
1959         (cgraph_clone_edge): Copy it.
1960         * ipa-inline.c (cgraph_estimate_edge_time): New function.
1961         Account for call stmt time.
1962         (cgraph_estimate_time_after_inlining): Take edge argument.
1963         (cgraph_estimate_edge_growth): Account call stmt size.
1964         (cgraph_estimate_size_after_inlining): Take edge argument.
1965         (cgraph_mark_inline_edge): Adjust.
1966         (cgraph_check_inline_limits): Likewise.
1967         (cgraph_recursive_inlining_p): Remove.
1968         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
1969         (cgraph_decide_recursive_inlining): Take edge argument and
1970         adjust.
1971         (cgraph_decide_inlining_of_small_functions): Do not avoid
1972         diags for recursive inlining here.
1973         (cgraph_flatten): Adjust.
1974         (cgraph_decide_inlining_incrementally): Likewise.
1975         (estimate_function_body_sizes): Remove call cost handling.
1976         (compute_inline_parameters): Initialize caller edge call costs.
1977         (cgraph_estimate_edge_growth): New function.
1978         (cgraph_estimate_growth): Use it.
1979         (cgraph_edge_badness): Likewise.
1980         (cgraph_check_inline_limits): Take an edge argument.
1981         (cgraph_decide_inlining_of_small_functions): Adjust.
1982         (cgraph_decide_inlining): Likewise.
1983         * tree-inline.c (estimate_num_insns): Only account for call
1984         return value if it is used.
1985         (expand_call_inline): Avoid diagnostics on recursive inline
1986         functions here.
1987         * lto-cgraph.c (lto_output_edge): Output edge call costs.
1988         (input_edge): Input edge call costs.
1989
1990 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1991
1992         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
1993
1994 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
1995
1996         * doc/invoke.texi (Spec Files): Fix typo.
1997
1998 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
1999
2000         * profile.c (branch_prob): Move declaration of local variable.  Remove
2001         obsolete ??? comment.  Expand the location explicitly instead of using
2002         the LOCATION_FILE and LOCATION_LINE macros.
2003
2004 2011-04-06  Wei Guozhi  <carrot@google.com>
2005
2006         PR target/47855
2007         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
2008         (arm_cond_branch): Likewise.
2009         (arm_cond_branch_reversed): Likewise.
2010         (arm_jump): Likewise.
2011         (push_multi): Likewise.
2012         * config/arm/constraints.md (Py): New constraint.
2013
2014 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2015
2016         PR bootstrap/48471
2017         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
2018         Move these...
2019         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
2020         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
2021         #ifdef DBX_DEBUGGING_INFO.
2022
2023 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
2024
2025         PR bootstrap/48403
2026         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
2027         if old and new states differ.
2028
2029 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
2030
2031         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
2032         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
2033         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
2034         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
2035         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
2036         mcfv4e): Use Alias.
2037         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
2038         ColdFire options to -mcpu= options.
2039
2040 2011-04-05  Jeff Law  <law@redhat.com>
2041
2042         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
2043         check if BB is a successor of LOOP->header and return
2044         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
2045
2046 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
2047
2048         * cprop.c (struct reg_use): Remove.
2049         (reg_use_table): Make an array of RTX.
2050         (find_used_regs, constprop_register, local_cprop_pass,
2051         bypass_block): Simplify users of reg_use_table.
2052         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
2053         on one of the uses found by find_used_regs.
2054
2055 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2056
2057         PR bootstrap/48469
2058         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
2059         declaration.
2060
2061 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2062
2063         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
2064         as an rtx.
2065         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
2066
2067 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
2068
2069         PR middle-end/48441
2070         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
2071
2072 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2073
2074         * combine.c: Include obstack.h.
2075         (struct insn_link): Define.
2076         (uid_log_links): Adjust type.
2077         (FOR_EACH_LOG_LINK): New macro.
2078         (insn_link_obstack): Declare.
2079         (alloc_insn_link): Define.
2080         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
2081         type of link variables.
2082         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
2083         (try_combine, record_promoted_values, distribute_notes): Likewise.
2084         (distribute_links): Likewise.  Tweak prototype.
2085         (clear_log_links): Delete.
2086         (adjust_for_new_dest): Call alloc_insn_link.
2087         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
2088
2089 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2090
2091         * gcse.c (modify_mem_list): Convert to an array of VECs.
2092         (canon_modify_mem_list, compute_transp): Tweak formatting.
2093         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
2094         (load_killed_in_block_p): Likewise.
2095         (record_last_mem_set_info): Likewise.
2096         (clear_modify_mem_tables): Likewise.
2097
2098 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2099
2100         PR middle-end/48461
2101         * function.c (emit_use_return_register_into_block): Only define if
2102         HAVE_return.
2103
2104 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
2105
2106         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
2107
2108 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
2109
2110         * config/rx/rx-opts.h: New.
2111         * config/rx/rx.c (rx_cpu_type): Remove.
2112         (rx_handle_option): Don't assert that global structures are in
2113         use.  Access variables via opts pointer.  Defer most handling of
2114         OPT_mint_register_.  Use error_at.
2115         (rx_option_override): Handle deferred OPT_mint_register_ here.
2116         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
2117         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
2118         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
2119         (rx_cpu_types): New Enum and EnumValue entries.
2120         (mint-register=): Use Defer and use Var accordingly.
2121
2122 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2123
2124         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
2125         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
2126         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
2127         Move these...
2128         (debug_free_queue, debug_nesting, symbol_queue_index):
2129         ...and these...
2130         * dbxout.c: ...to here.  Make static.
2131
2132 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2133
2134         * gcse.c (modify_pair): Define.  Define a VEC of it.
2135         (canon_modify_mem_list): Convert to an array of VECs.
2136         (free_insn_expr_list_list): Delete.
2137         (clear_modify_mem_tables): Call VEC_free instead.
2138         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
2139         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
2140         (canon_list_insert, compute_transp): Likewise.
2141
2142 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2143
2144         PR target/43920
2145         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
2146         for size.
2147
2148 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2149
2150         PR target/43920
2151         * function.c (emit_use_return_register_into_block): New function.
2152         (thread_prologue_and_epilogue_insns): Use
2153         emit_use_return_register_into_block.
2154
2155 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2156
2157         PR target/43920
2158         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
2159         insn.
2160
2161 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2162
2163         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
2164
2165 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
2166
2167         * config/arm/arm.md (define_constants for unspec): Replace with
2168         define_c_enum.
2169         (define_constants for unspecv): Replace with define_c_enum.
2170         * config/arm/neon.md (define_constants for unspec): Replace with
2171         define_c_enum.
2172
2173 2011-04-04  Richard Henderson  <rth@redhat.com>
2174
2175         PR bootstrap/48400
2176         * dwarf2out.c (output_line_info): Always emit line info from
2177         at least one section.
2178         (dwarf2out_init): Create text_section_line_info here ...
2179         (set_cur_line_info_table): ... not here.
2180
2181 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
2182
2183         PR target/48380
2184         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
2185         not called.
2186
2187         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
2188
2189 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
2190
2191         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
2192         (expr_equiv_p): Remove.
2193         (insert_set_in_table): Look at <dest, src> pair instead of expr.
2194         (hash_scan_set): Update call to insert_set_in_table.
2195         (dump_hash_table): Dump <dest, src> pair.
2196         (lookup_set): Simplify.  Lookup <dest, src> pair.
2197         (compute_transp): Remove, fold heavily simplified code into...
2198         (compute_local_properties): ...here.  Expect COMP and TRANSP
2199         unconditionally.
2200         (find_avail_set): Take set directly from struct expr.
2201         (find_bypass-set): Likewise.
2202         (bypass_block): Likewise.
2203         (cprop_insn): Likewise.  Remove redundant INSN_P test.
2204
2205         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
2206         checks on form of COND from find_implicit_sets to here.
2207         (find_implicit_sets): Cleanup control flow. Split critical edges
2208         if it exposes implicit sets.  Allocate/resize implicit_sets as
2209         necessary.
2210         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
2211         changed something.  Run df_analyze after find_implicit_sets if any
2212         edges were split.  Do not allocate implicit_sets here.
2213
2214         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
2215         (gcse_obstack): Renamed to cprop_obstack.
2216         (GNEW, GNEWVEC, GNEWVAR): Remove.
2217         (gmalloc): Remove.
2218         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
2219         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
2220         (gcse_alloc): Likewise, and rename to cprop_alloc.
2221         (alloc_gcse_men, free_gcse_mem): Remove.
2222         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
2223         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
2224         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
2225
2226         * cprop.c (oprs_not_set_p): Remove.
2227         (mark_set, mark_clobber): Remove.
2228         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
2229         (reg_not_set_p): New function.
2230         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
2231         (cprop_insn): Likewise.
2232         (cprop_jump): Use FOR_EACH_EDGE.
2233
2234 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
2235
2236         PR bootstrap/48403
2237         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
2238         (rank_for_schedule): Use scheduled_insns vector instead of
2239         last_scheduled_insn.
2240         (ok_for_early_queue_removal): Likewise.
2241         (queue_to_ready): Search forward in nonscheduled_insns_begin if
2242         we have a dbg_cnt.
2243         (choose_ready): Likewise.
2244         (commit_schedule): Use VEC_iterate.
2245         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
2246         a dbg_cnt, use it and ensure the first insn is in the ready list.
2247         (haifa_sched_init): Allocate scheduled_insns.
2248         (sched_extend_ready_list): Don't allocate it; reserve space.
2249         (haifa_sched_finish): Free it.
2250
2251 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
2252
2253         * optc-gen.awk: Always remove type from Variable entry before
2254         recording in var_seen.
2255
2256 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
2257
2258         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
2259         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
2260         call to tidy_fallthru_edges.
2261
2262 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
2263
2264         * doc/options.texi (ToLower): Document.
2265         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
2266         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
2267         * opts.h (cl_option): Add cl_tolower field.
2268         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
2269         arguments with lowercase strings.
2270         * config/rx/rx.opt (mcpu=): Add ToLower.
2271         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
2272         argument.
2273
2274 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
2275
2276         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
2277
2278 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
2279
2280         * config/vax/vax.c: Include reload.h.
2281
2282 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
2283
2284         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
2285         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
2286         (sparc_preferred_reload_class): New function.
2287
2288 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
2289
2290         PR debug/48401
2291         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
2292         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
2293
2294 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
2295
2296         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
2297         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
2298
2299 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
2300
2301         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
2302         (ASM_OUTPUT_ALIGNED_BSS): Define.
2303
2304 2011-04-03  Michael Matz  <matz@suse.de>
2305
2306         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
2307         and next_slot members.
2308         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
2309         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
2310         (lto_streamer_cache_append): Declare.
2311         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
2312         unsigned index, remove offset parameter, ensure that we append
2313         or update existing entries.
2314         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
2315         parameter, update next_slot for append.
2316         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
2317         parameter.
2318         (lto_streamer_cache_insert_at): Likewise.
2319         (lto_streamer_cache_append): New function.
2320         (lto_streamer_cache_lookup): Use unsigned index.
2321         (lto_streamer_cache_get): Likewise.
2322         (lto_record_common_node): Don't test tree_node_can_be_shared.
2323         (preload_common_node): Adjust call to lto_streamer_cache_insert.
2324         (lto_streamer_cache_delete): Don't free offsets member.
2325         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
2326         (lto_output_string_with_length): Use lto_output_data_stream.
2327         (lto_output_tree_header): Remove ix parameter, don't write it.
2328         (lto_output_builtin_tree): Likewise.
2329         (lto_write_tree): Adjust callers to above, don't track and write
2330         offset, write unsigned index.
2331         (output_unreferenced_globals): Don't emit all global vars.
2332         (write_global_references): Use unsigned indices.
2333         (lto_output_decl_state_refs): Likewise.
2334         (write_symbol): Likewise.
2335         * lto-streamer-in.c (lto_input_chain): Move earlier.
2336         (input_function): Use unsigned index.
2337         (input_alias_pairs): Don't read and then ignore all global vars.
2338         (lto_materialize_tree): Remove ix_p parameter, don't read index,
2339         don't pass it back, use lto_streamer_cache_append.
2340         (lto_register_var_decl_in_symtab): Use unsigned index.
2341         (lto_register_function_decl_in_symtab): Likewise.
2342         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
2343         index.
2344         (lto_get_builtin_tree): Don't read index, use
2345         lto_streamer_cache_append.
2346         (lto_read_tree): Adjust call to lto_materialize_tree.
2347
2348         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
2349         don't use function calls in arguments to MIN.
2350
2351         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
2352         twice.
2353
2354         * gimple.c (gimple_type_leader_entry): Mark deletable.
2355
2356 2011-04-03  Alan Modra  <amodra@gmail.com>
2357
2358         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
2359
2360 2011-04-03  Michael Matz  <matz@suse.de>
2361
2362         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
2363         an integer.
2364         * tree.h (tree_decl_non_common.vindex): Adjust comment.
2365
2366 2011-04-03  Michael Matz  <matz@suse.de>
2367
2368         * cgraphbuild.c (record_reference): Canonicalize constructor values.
2369         * gimple-fold.c (canonicalize_constructor_val): Accept being called
2370         without function context.
2371         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
2372         current_function_decl and cfun.
2373
2374 2011-04-03  Michael Matz  <matz@suse.de>
2375
2376         * tree.c (decl_init_priority_insert): Don't create entry for
2377         default priority.
2378         (decl_fini_priority_insert): Ditto.
2379         (fields_compatible_p, find_compatible_field): Remove.
2380         * tree.h (fields_compatible_p, find_compatible_field): Remove.
2381         * gimple.c (gimple_compare_field_offset): Adjust block comment.
2382
2383 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
2384
2385         * combine.c (try_combine): Remove useless local variable.
2386
2387 2011-04-03  Richard Guenther  <rguenther@suse.de>
2388             Ira Rosen  <ira.rosen@linaro.org>
2389
2390         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
2391         non-variable offsets and compare the remaining bases of the two
2392         accesses instead of looking for exact same data-ref.
2393
2394 2011-04-02  Kai Tietz  <ktietz@redhat.com>
2395
2396         PR target/48416
2397         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
2398
2399         * i386.c (ix86_is_msabi_thiscall): New helper function.
2400         (ix86_is_type_thiscall): New helper function.
2401         (ix86_comp_type_attributes): Handle thiscall for method-functions
2402         special.
2403         (init_cumulative_args): Likewise.
2404         (find_drap_reg): Likewise.
2405         (ix86_static_chain): Likewise.
2406         (x86_this_parameter): Likewise.
2407         (x86_output_mi_thunk): Likewise.
2408
2409 2011-04-01  Olivier Hainque  <hainque@adacore.com>
2410             Nicolas Setton  <setton@adacore.com>
2411             Eric Botcazou  <ebotcazou@adacore.com>
2412
2413         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
2414         (add_gnat_descriptive_type_attribute): New function.
2415         (gen_array_type_die): Call it.
2416         (gen_enumeration_type_die): Likewise.
2417         (gen_struct_or_union_type_die): Likewise.
2418         (modified_type_die): Likewise.
2419         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
2420         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
2421         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
2422
2423 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
2424
2425         PR bootstrap/48148
2426         * dwarf2out.c (resolve_addr): Don't call force_decl_die
2427         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
2428
2429         Revert:
2430         2011-03-17  Richard Guenther  <rguenther@suse.de>
2431
2432         PR bootstrap/48148
2433         * lto-cgraph.c (input_overwrite_node): Clear the abstract
2434         origin for decls in other ltrans units.
2435         (input_varpool_node): Likewise.
2436
2437 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
2438
2439         PR middle-end/48335
2440         * expr.c (expand_assignment): Handle all possibilities
2441         if TO_RTX is CONCAT.
2442         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
2443         (store_split_bit_field): If SUBREG_REG (op0) or
2444         op0 itself has smaller mode than word, return it
2445         for offset 0 and const0_rtx for out-of-bounds stores.
2446         If word is const0_rtx, skip it.
2447
2448 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
2449
2450         * config/h8300/h8300.c (print_operand_address): Rename to...
2451         (h8300_print_operand_address): ...this. Make static. Adjust comments.
2452         Call h8300_print_operand and h8300_print_operand_address instead of
2453         print_operand and print_operand_address. Declare.
2454         (print_operand): Renake to...
2455         (h8300_print_operand): ...this. Make static. Adjust comments.
2456         Call h8300_print_operand instead of print_operand. Declare.
2457         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
2458         (h8300_register_move_cost): Likewise.
2459         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
2460         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
2461         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
2462         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
2463         * config/h8300/h8300-protos.h (print_operand): Delete.
2464         (print_operand_address): Delete.
2465
2466 2011-04-01  Richard Henderson  <rth@redhat.com>
2467
2468         PR 48400
2469         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
2470         in strict mode before dwarf4.  Re-order tests to early out
2471         before switching sections.
2472
2473 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
2474
2475         * config/h8300/constraints.md: New file.
2476         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
2477         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
2478         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
2479         * config/h8300/predicates.md (bit_operand): Likewise.
2480         (incdec_operand): Use satisfies_constraint_M and
2481         satisfies_constraint_O.  Don't use C code block.
2482         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
2483         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
2484         (compute_mov_length): Use satisfies_constraint_G.
2485         (fix_bit_operand): Use satisfies_constraint_U.
2486         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
2487         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
2488         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
2489         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
2490         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
2491         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
2492         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2493         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
2494         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
2495         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
2496         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
2497         (EXTRA_MEMORY_CONSTRAINT): Delete.
2498
2499 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
2500             Michael Meissner  <meissner@linux.vnet.ibm.com>
2501
2502         PR target/48262
2503         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
2504         operands, as per the specifications.
2505
2506         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
2507         (vec_extract_evenv4sf): Ditto.
2508         (vec_extract_evenv8hi): Ditto.
2509         (vec_extract_evenv16qi): Ditto.
2510         (vec_extract_oddv4si): Ditto.
2511
2512 2011-03-31  Mark Wielaard  <mjw@redhat.com>
2513
2514         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
2515         high_pc attribute if the CU has no associated code. Only output
2516         DW_AT_entry_pc for CU if not generating strict dwarf and
2517         dwarf_version < 4.
2518
2519 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
2520
2521         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
2522         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
2523         out of ...
2524         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
2525         * final.c (final_start_function): Call the new function rather
2526         than using a NULL argument for dwarf2out_frame_debug.
2527
2528         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
2529         that contains the prologue.
2530
2531         * haifa-sched.c (queue_insn): New arg REASON.  All callers
2532         changed.  Print it in debugging output.
2533
2534         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
2535
2536         * sched-ebb.c (begin_schedule_ready): Remove second argument.
2537         Split most of the code into...
2538         (begin_move_insn): ... here.  New function.
2539         (ebb_sched_info): Add a pointer to it.
2540         * haifa-sched.c (scheduled_insns): New static variable.
2541         (sched_extend_ready_list): Allocate it.
2542         (schedule_block): Use it to record the order of scheduled insns.
2543         Perform RTL changes to move insns only after all scheduling
2544         decisions have been made.
2545         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
2546         begin_move_insn field.
2547         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
2548         * sched-int.h (struct haifa_sched_info): Remove second argument
2549         from begin_schedule_ready hook.  Add new member begin_move_insn.
2550         * sched-rgn.c (begin_schedule_ready): Remove second argument.
2551         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
2552
2553         * haifa-sched.c (prune_ready_list): New function, broken out of
2554         schedule_block.
2555         (schedule_block): Use it.
2556
2557 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2558
2559         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
2560
2561 2011-04-01  Kai Tietz  <ktietz@redhat.com>
2562
2563         * config.gcc (*-*-mingw*): Allow as option the
2564         posix threading model.
2565         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
2566         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
2567         definition.
2568         (CPP_SPEC): Add pthread/no-pthread handling.
2569         (LIB_SPEC): Likewise.
2570         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
2571         (LIB_SPEC): Likewise.
2572         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
2573         flag to pass -pthread option for shared libgcc build.
2574         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
2575         for shared libgcc build.
2576         * config/i386/t-mingw-pthread: New file.
2577         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
2578         New define to enable use of library pthread by default.
2579         * config/i386/mingw.opt (pthread): New driver option.
2580         (no-pthread): New driver option.
2581         * config/i386/cygming.opt: Make sure trailing empty line is retained.
2582         * config/i386/mingw-w64.opt: Likewise.
2583
2584 2011-04-01  Gary Funck <gary@intrepid.com>
2585
2586         * c-decl.c (grokdeclarator): Fix formatting.
2587
2588 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
2589
2590         * expr.c (emit_block_move_via_movmem): Use n_generator_args
2591         instead of n_operands.
2592         (set_storage_via_setmem): Likewise.
2593         * optabs.c (maybe_gen_insn): Likewise.
2594         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
2595         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
2596         (mips_expand_builtin_direct): Likewise.
2597         * config/spu/spu.c (expand_builtin_args): Likewise.
2598
2599 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
2600
2601         * recog.h (insn_data_d): Add n_generator_args.
2602         * genoutput.c (data): Likewise.
2603         (output_insn_data): Print it.
2604         (max_opno, num_dups): Delete.
2605         (scan_operands): Just fill in "d->operand[...]".
2606         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
2607
2608 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
2609
2610         * gensupport.h (pattern_stats): New structure.
2611         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
2612         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
2613         (max_operand_1, max_operand_vec): Delete.
2614         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
2615
2616 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
2617
2618         * emit-rtl.c (emit_pattern_after_setloc): New function.
2619         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
2620         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
2621         (emit_pattern_after): New function.
2622         (emit_insn_after, emit_jump_insn_after): Call it.
2623         (emit_call_insn_after, emit_debug_insn_after): Likewise.
2624         (emit_pattern_before_setloc): New function.
2625         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
2626         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
2627         Likewise.
2628         (emit_pattern_before): New function.
2629         (emit_insn_before, emit_jump_insn_before): Call it.
2630         (emit_call_insn_before, emit_debug_insn_before): Likewise.
2631
2632 2011-03-31  Richard Henderson  <rth@redhat.com>
2633
2634         * dwarf2out.c (dw_separate_line_info_ref): Remove.
2635         (dw_separate_line_info_entry): Remove.
2636         (enum dw_line_info_opcode): New.
2637         (dw_line_info_entry): Use it.
2638         (dw_line_info_table, dw_line_info_table_p): New.
2639         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
2640         (line_info_table, line_info_label_num): Remove.
2641         (line_info_table_in_use): Remove.
2642         (separate_line_info_table): Remove.
2643         (separate_line_info_table_allocated): Remove.
2644         (separate_line_info_table_in_use): Remove.
2645         (LINE_INFO_TABLE_INCREMENT): Remove.
2646         (line_info_label_num): New.
2647         (cur_line_info_table): New.
2648         (text_section_line_info, cold_text_section_line_info): New.
2649         (separate_line_info): New.
2650         (SEPARATE_LINE_CODE_LABEL): Remove.
2651         (print_dwarf_line_table): Remove.
2652         (debug_dwarf): Don't dump it.
2653         (output_one_line_info_table): New.
2654         (output_line_info): Use it.
2655         (new_line_info_table): New.
2656         (set_cur_line_info_table): New.
2657         (dwarf2out_switch_text_section): Use it.
2658         (dwarf2out_begin_function): Likewise.
2659         (push_dw_line_info_entry): New.
2660         (dwarf2out_source_line): Rewrite for new line info tables.
2661         (dwarf2out_init): Remove dead initailizations.
2662
2663 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
2664
2665         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
2666         various flags.
2667         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
2668         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
2669         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
2670         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
2671         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
2672         * opt-functions.awk (flag_init, switch_bit_fields): New.
2673         (switch_flags): Don't handle flags moved to bit-fields.  Don't
2674         generate CL_MISSING_OK or CL_SAVE.
2675         * optc-gen.awk: Update to generate bit-field output as well as
2676         flags field.
2677         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
2678         bit-field instead of CL_REJECT_DRIVER flag.
2679         * opts-common.c (generate_canonical_option,
2680         decode_cmdline_option): Use bit-fields instead of CL_* flags.
2681         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
2682         instead of CL_REJECT_NEGATIVE flag.
2683         * toplev.c (print_switch_values): Use cl_report bit-field instead
2684         of CL_REPORT flag.
2685
2686 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
2687
2688         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
2689         a zero minimum index only if it is redundant.
2690
2691 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
2692
2693         PR rtl-optimization/48381
2694         * ira-color.c (assign_hard_reg): Use hard reg set intersection
2695         instead of ira_class_hard_reg_index for calculating conflicting
2696         hard registers.
2697
2698 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
2699
2700         * cprop.c: Clean up hash table building.
2701         (reg_avail_info): Remove.
2702         (oprs_available_p): Remove.
2703         (record_last_reg_set_info): Remove.
2704         (record_last_set_info): Remove.
2705         (reg_available_p): New function.
2706         (gcse_constant_p): Do not treat unfolded conditions as constants.
2707         (make_set_regs_unavailable): New function.
2708         (hash_scan_set): Simplify with new reg_available_p.
2709         (compute_hash_table_work): Traverse insns stream only once.
2710         Do not compute reg_avail_info. Traverse insns in reverse order.
2711         Record implicit sets after recording explicit sets from the block.
2712
2713 2011-03-31  Michael Matz  <matz@suse.de>
2714
2715         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
2716
2717 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
2718
2719         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
2720         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
2721         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
2722         (h8300_mode_dependent_address_p): New function.
2723         (h8300_get_index): Make static.
2724
2725 2011-03-31  Jeff Law  <law@redhat.com>
2726
2727         * reload1.c (elimination_effects): Fix typo in recent change.
2728
2729         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
2730         typo potentially leading to null pointer dereference.
2731
2732         * caller-save.c (new_saved_hard_reg): Eliminate return value.
2733         (setup_save_areas): Corresponding changes to avoid useless
2734         assignments.
2735
2736         * jump.c (reversed_comparison_code_parts): Avoid successive return
2737         statements when REVERSE_CONDITION is defined.
2738
2739         * expr.c (expand_assignment): Avoid useless assignments.
2740         (expand_expr_real_1): Likewise.
2741         (expand_expr_real_2): Avoid useless statements.
2742
2743         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
2744
2745         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
2746
2747         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
2748         statements.
2749
2750         * stmt.c (expand_expr_stmt): Avoid useless assignment.
2751
2752 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
2753
2754         PR target/47109
2755         * doc/tm.texi.in (TARGET_VERSION): Remove.
2756         * doc/tm.texi: Regenerate.
2757         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
2758         * collect2.c (main): Don't use TARGET_VERSION.
2759         * mips-tdump.c (main): Don't use TARGET_VERSION.
2760         * mips-tfile.c (main): Don't use TARGET_VERSION.
2761         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
2762         * config/rs6000/vxworksae.h: Remove.
2763         * config/alpha/alpha.h (TARGET_VERSION): Remove.
2764         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
2765         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
2766         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
2767         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
2768         * config/arm/arm.h (TARGET_VERSION): Remove.
2769         * config/arm/coff.h (TARGET_VERSION): Remove.
2770         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
2771         * config/arm/elf.h (TARGET_VERSION): Remove.
2772         * config/arm/freebsd.h (TARGET_VERSION): Remove.
2773         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
2774         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
2775         * config/arm/pe.h (TARGET_VERSION): Remove.
2776         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
2777         * config/arm/semi.h (TARGET_VERSION): Remove.
2778         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
2779         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
2780         * config/arm/vxworks.h (TARGET_VERSION): Remove.
2781         * config/avr/avr.h (TARGET_VERSION): Remove.
2782         * config/bfin/bfin.h (TARGET_VERSION): Remove.
2783         * config/fr30/fr30.h (TARGET_VERSION): Remove.
2784         * config/frv/frv.h (TARGET_VERSION): Remove.
2785         * config/h8300/h8300.h (TARGET_VERSION): Remove.
2786         * config/i386/cygwin.h (TARGET_VERSION): Remove.
2787         * config/i386/darwin.h (TARGET_VERSION): Remove.
2788         * config/i386/darwin64.h (TARGET_VERSION): Remove.
2789         * config/i386/djgpp.h (TARGET_VERSION): Remove.
2790         * config/i386/freebsd.h (TARGET_VERSION): Remove.
2791         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
2792         * config/i386/gnu.h (TARGET_VERSION): Remove.
2793         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
2794         * config/i386/i386elf.h (TARGET_VERSION): Remove.
2795         * config/i386/linux.h (TARGET_VERSION): Remove.
2796         * config/i386/linux64.h (TARGET_VERSION): Remove.
2797         * config/i386/lynx.h (TARGET_VERSION): Remove.
2798         * config/i386/mingw32.h (TARGET_VERSION): Remove.
2799         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
2800         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
2801         * config/i386/netware.h (TARGET_VERSION): Remove.
2802         * config/i386/nto.h (TARGET_VERSION): Remove.
2803         * config/i386/openbsd.h (TARGET_VERSION): Remove.
2804         * config/i386/vxworks.h (TARGET_VERSION): Remove.
2805         * config/ia64/elf.h (TARGET_VERSION): Remove.
2806         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
2807         * config/ia64/hpux.h (TARGET_VERSION): Remove.
2808         * config/ia64/linux.h (TARGET_VERSION): Remove.
2809         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
2810         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
2811         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
2812         * config/lm32/lm32.h (TARGET_VERSION): Remove.
2813         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
2814         * config/m32c/m32c.h (TARGET_VERSION): Remove.
2815         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
2816         * config/m32r/m32r.h (TARGET_VERSION): Remove.
2817         * config/m68k/linux.h (TARGET_VERSION): Remove.
2818         * config/m68k/m68k.h (TARGET_VERSION): Remove.
2819         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
2820         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
2821         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
2822         * config/mep/mep.h (TARGET_VERSION): Remove.
2823         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
2824         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
2825         * config/mips/iris6.h (MACHINE_TYPE): Remove.
2826         * config/mips/linux.h (TARGET_VERSION): Remove.
2827         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
2828         * config/mips/vxworks.h (TARGET_VERSION): Remove.
2829         * config/mmix/mmix.h (TARGET_VERSION): Remove.
2830         * config/mn10300/linux.h (TARGET_VERSION): Remove.
2831         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
2832         * config/pa/pa.h (TARGET_VERSION): Remove.
2833         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
2834         * config/picochip/picochip.h (TARGET_VERSION): Remove.
2835         * config/rs6000/aix.h (TARGET_VERSION): Remove.
2836         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
2837         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
2838         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
2839         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
2840         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
2841         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
2842         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
2843         * config/rs6000/linux.h (TARGET_VERSION): Remove.
2844         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
2845         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
2846         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
2847         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
2848         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
2849         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
2850         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
2851         * config/s390/linux.h (TARGET_VERSION): Remove.
2852         * config/s390/s390.h (TARGET_VERSION): Remove.
2853         * config/s390/tpf.h (TARGET_VERSION): Remove.
2854         * config/score/score.h (TARGET_VERSION): Remove.
2855         * config/sh/linux.h (TARGET_VERSION): Remove.
2856         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
2857         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
2858         * config/sh/sh.h (TARGET_VERSION): Remove.
2859         * config/sh/sh64.h (TARGET_VERSION): Remove.
2860         * config/sh/superh.h (TARGET_VERSION): Remove.
2861         * config/sh/vxworks.h (TARGET_VERSION): Remove.
2862         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
2863         * config/sparc/linux.h (TARGET_VERSION): Remove.
2864         * config/sparc/linux64.h (TARGET_VERSION): Remove.
2865         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
2866         TARGET_NAME32, TARGET_NAME): Remove.
2867         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
2868         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
2869         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
2870         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
2871         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
2872         * config/spu/spu.h (TARGET_VERSION): Remove.
2873         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
2874         * config/v850/v850.h (TARGET_VERSION): Remove.
2875         * config/vax/linux.h (TARGET_VERSION): Remove.
2876         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
2877         * config/xtensa/elf.h (TARGET_VERSION): Remove.
2878         * config/xtensa/linux.h (TARGET_VERSION): Remove.
2879
2880 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
2881
2882         PR target/48142
2883         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
2884         frame-related from frame-unrelated adjustments to the stack pointer.
2885
2886 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
2887
2888         * common.opt (fdebug-types-section): Move earlier.
2889         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
2890
2891 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
2892
2893         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
2894         var.
2895
2896 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
2897
2898         * tree.h (CASE_CHAIN): Define.
2899         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
2900         (gimple_redirect_edge_and_branch): Likewise.
2901
2902 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2903
2904         PR middle-end/48367
2905         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
2906         calculation.
2907
2908 2011-03-30  Jeff Law  <law@redhat.com>
2909
2910         * PR bootstrap/48371
2911         * reload1.c (reload): Fix botch in last change.
2912
2913         * reload.h (struct reload): Fix typo introduced in last change.
2914
2915 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
2916
2917         * config/arm/arm.opt (mhard-float, msoft-float): Mark
2918         Undocumented.  Remove help text.
2919         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
2920         -mhard-float.
2921
2922 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
2923
2924         * doc/options.texi (NegativeAlias): Document.
2925         (Alias): Mention NegativeAlias.
2926         * opt-functions.awk: Handle NegativeAlias.
2927         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
2928         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
2929         * opts.h (CL_NEGATIVE_ALIAS): Define.
2930         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
2931         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
2932         OPT_mspe_.
2933         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
2934         Alias entries.
2935         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
2936         mno-spe and mno-isel instead of mspe=no and -misel=no.
2937
2938 2011-03-29  Mark Wielaard  <mjw@redhat.com>
2939
2940         * common.opt (fdebug-types-section): New flag.
2941         * doc/invoke.texi: Document new -fno-debug-types-section flag.
2942         * dwarf2out.c (use_debug_types): New define.
2943         (struct die_struct): Mark die_id with GTY desc use_debug_types.
2944         (print_die): Guard output of type unit signatures using
2945         use_debug_types.
2946         (build_abbrev_table): Replace assert of dwarf_version >= 4
2947         with assert on use_debug_types.
2948         (size_of_die): Likewise.
2949         (unmark_dies): Likewise.
2950         (value_format): Decide AT_ref_external form on use_debug_types.
2951         (output_die): Replace dwarf_version version check guard with
2952         use_debug_types where appropriate.
2953         (modified_type_die): Likewise.
2954         (gen_reference_type_die): Likewise.
2955         (dwarf2out_start_source_file): Likewise.
2956         (dwarf2out_end_source_file): Likewise.
2957         (prune_unused_types_walk_attribs): Likewise.
2958         (dwarf2out_finish): Likewise.
2959
2960 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2961
2962         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
2963
2964 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
2965
2966         PR rtl-optimization/48332
2967         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
2968         mode of input operand N and modeN to its actual mode.
2969
2970 2011-03-30  Jeff Law  <law@redhat.com>
2971
2972         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
2973         define accessor macro.
2974         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
2975         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
2976         (reg_equiv_init): Likewise.
2977         (reg_equivs_size): New variable.
2978         (reg_equiv_init_size): Remove.
2979         (allocate_initial_values): Move prototype to here from....
2980         * integrate.h (allocate_initial_values): Remove prototype.
2981         * integrate.c: Include reload.h.
2982         (allocate_initial_values): Corresponding changes.
2983         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
2984         (fix_reg_equiv_init, no_equiv): Corresponding changes.
2985         (update_equiv_regs): Corresponding changes.
2986         (ira): Corresponding changes.
2987         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
2988         (push_secondary_reload): Corresponding changes.
2989         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
2990         (make_memloc, find_reloads_address): Corresponding changes.
2991         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
2992         (find_reloads_address_1): Corresponding changes.
2993         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
2994         (refers_to_regno_for_reload_p): Corresponding changes.
2995         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
2996         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
2997         * reload1.c: Include ggc.h.
2998         (grow_reg_equivs): New function.
2999         (replace_pseudos_in, reload): Corresponding changes.
3000         (calculate_needs_all_insns, alter_regs): Corresponding changes.
3001         (eliminate_regs_1, elimination_effects): Corresponding changes.
3002         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
3003         (delete_output_reload): Likewise.
3004         * caller-save.c (mark_referenced_regs): Corresponding changes.
3005         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
3006         * frv/predicates.md (frv_load_operand): Corresponding changes.
3007         * microblaze/microblaze.c (double_memory_operand): Corresponding
3008         changes.
3009         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
3010         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
3011         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
3012         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
3013         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
3014         changes.
3015         * pa/pa.c (emit_move_sequence): Corresponding changes.
3016         * vax/vax.c (nonindexed_address_p): Corresponding changes.
3017
3018 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
3019
3020         PR target/47551
3021         * config/arm/arm.c (coproc_secondary_reload_class): Handle
3022         structure modes.  Don't check neon_vector_mem_operand for
3023         vector or structure modes.
3024
3025 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
3026             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3027
3028         PR target/43590
3029         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
3030         operand 1 and reshuffle the operands to match.
3031         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
3032
3033 2011-03-30  Christian Schüler  <cschueler@gmx.de>
3034
3035         PR driver/48208
3036         * config/c.opt (F): Added 'Driver' to -F option.
3037
3038         PR driver/48260
3039         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
3040           handler function.
3041         * config/darwin.opt: Added '-arch' option.
3042
3043 2011-03-30  Nick Clifton  <nickc@redhat.com>
3044
3045         * config/rx/rx.md: Add peepholes and patterns to combine
3046         extending loads and simple arithmetic instructions.
3047         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
3048         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
3049         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
3050         modes to use pre-decrement and post-increment addressing.
3051         (rx_is_restricted_memory_address): Add range checking of REG+INT
3052         addresses.
3053         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
3054         (rx_memory_move_cost): Adjust cost of stores.
3055         (rx_adjust_insn_length): New function.
3056
3057 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
3058
3059         PR c/48305
3060         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
3061         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
3062         matching arg00/arg01 types.
3063
3064 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
3065
3066         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
3067         last_location to UNKNOWN_LOCATION.
3068
3069 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
3070
3071         PR target/48349
3072         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
3073         FLOAT_SSE_REGS.
3074
3075 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
3076             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3077
3078         PR bootstrap/48337
3079         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
3080         Init(PROCESSOR_V7).
3081         (sparc_cpu): Likewise.
3082         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
3083         PROCESSOR_V7.
3084
3085 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
3086
3087         PR target/48336
3088         PR middle-end/48342
3089         PR rtl-optimization/48345
3090         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
3091         hard regs for given mode from profitable regs when doing secondary
3092         allocation.
3093
3094 2011-03-29  Jeff Law  <law@redhat.com>
3095
3096         PR bootstrap/48327
3097         * tree-ssa-threadupdate.c (struct redirection_data): Remove
3098         do_not_duplicate field.
3099         (lookup_redirection_data): Corresponding changes.
3100         (create_duplicates): Always create a template block.
3101         (redirect_edges): Remove code which reused the original block
3102         when it was going to become unreachable code.
3103         (thread_block): Don't set do_not_duplicate field.
3104
3105 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
3106
3107         * lto-opts.c (register_user_option_p, lto_register_user_option):
3108         Make type argument unsigned.
3109         * lto-streamer.h (lto_register_user_option): Make type argument
3110         unsigned.
3111         * opth-gen.awk: Make CL_* macros unsigned.
3112         * opts-common.c (find_opt): Make lang_mask argument unsigned.
3113         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
3114         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
3115         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
3116         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
3117         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
3118         (find_opt): Make lang_mask argument unsigned.
3119
3120 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
3121
3122         PR rtl-optimization/48331
3123         PR rtl-optimization/48334
3124         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
3125         for any used algorithm.
3126
3127 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
3128
3129         * ira-conflicts.c (build_object_conflicts): Add unused attribute
3130         to parent_max.
3131
3132 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
3133
3134         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
3135         (alpha_option_override): Don't set alpha_sr_alias_set.
3136         (emit_frame_store_1): Use gen_frame_mem rather than calling
3137         set_mem_alias_set.
3138         (alpha_expand_epilogue): Ditto.
3139
3140 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
3141
3142         PR tree-optimization/48290
3143         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
3144         vectorization, check that relevant phis in the basic block after
3145         the inner loop are really inner loop's exit phis.
3146
3147 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
3148
3149         PR debug/48190
3150         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
3151         (cached_dw_loc_list_def): New structure.
3152         (cached_dw_loc_list): New typedef.
3153         (cached_dw_loc_list_table): New variable.
3154         (cached_dw_loc_list_table_hash): New function.
3155         (cached_dw_loc_list_table_eq): Likewise.
3156         (add_location_or_const_value_attribute): Take a bool cache_p.
3157         Cache the list when the parameter is true.
3158         (gen_formal_parameter_die): Update caller.
3159         (gen_variable_die): Likewise.
3160         (dwarf2out_finish): Likewise.
3161         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
3162         while generating debug info for the decl.
3163         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
3164         (dwarf2out_init): Initialize cached_dw_loc_list_table.
3165         (resolve_addr): Cache the result of resolving a chain of
3166         location lists.
3167
3168 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
3169
3170         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
3171         conflict object hard regset nodes have intersecting hard reg sets.
3172
3173         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
3174         after regstat_init_n_sets_and_refs.
3175
3176         * ira.c: Add more comments at the top.
3177         (setup_stack_reg_pressure_class, setup_pressure_classes):
3178         Add comments how we compute the register pressure classes.
3179         (setup_allocno_and_important_classes): Add more comments.
3180         (setup_class_translate_array, reorder_important_classes)
3181         (setup_reg_class_relations): Add comments.
3182
3183         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
3184         start of the file.
3185
3186         * ira-color.c: Add 2011 to the Copyright line.
3187         (assign_hard_reg):  Add more comments.
3188         (improve_allocation): Ditto.
3189
3190         * ira-costs.c: Add 2011 to the Copyright line.
3191         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
3192         comments.
3193         (setup_regno_cost_classes_by_mode): Ditto.
3194
3195         Initial patches from ira-improv branch:
3196
3197         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
3198
3199         * ira-build.c: (ira_create_object): Remove initialization of
3200         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
3201         (ira_create_allocno): Remove initialization of
3202         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
3203         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
3204         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
3205         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
3206         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
3207         Initialize ALLOCNO_ADD_DATA.
3208         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
3209         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
3210         ALLOCNO_REG.
3211         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
3212         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
3213
3214         * ira.c (ira_reallocate): Remove.
3215         (setup_pressure_classes): Call
3216         ira_init_register_move_cost_if_necessary.  Use
3217         ira_register_move_cost instead of ira_get_register_move_cost.
3218         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
3219         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
3220
3221         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
3222         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
3223         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
3224         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
3225         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
3226         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
3227         Fix formatting.
3228         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
3229         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
3230         (struct allocno_color_data): New.
3231         (allocno_color_data_t): New typedef.
3232         (allocno_color_data): New definition.
3233         (ALLOCNO_COLOR_DATA): New macro.
3234         (struct object_color_data): New.
3235         (object_color_data_t): New typedef.
3236         (object_color_data): New definition.
3237         (OBJECT_COLOR_DATA): New macro.
3238         (update_copy_costs, calculate_allocno_spill_cost): Call
3239         ira_init_register_move_cost_if_necessary.  Use
3240         ira_register_move_cost instead of ira_get_register_move_cost.
3241         (move_spill_restore, update_curr_costs): Ditto.
3242         (allocno_spill_priority): Make it inline.
3243         (color_pass): Allocate and free allocno_color_dat and object_color_data.
3244         (struct coalesce_data, coalesce_data_t): New.
3245         (allocno_coalesce_data): New definition.
3246         (ALLOCNO_COALESCE_DATA): New macro.
3247         (merge_allocnos, coalesced_allocno_conflict_p): Use
3248         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
3249         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
3250         (coalesce_allocnos): Ditto.
3251         (setup_coalesced_allocno_costs_and_nums): Ditto.
3252         (collect_spilled_coalesced_allocnos): Ditto.
3253         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
3254         (setup_slot_coalesced_allocno_live_ranges): Ditto.
3255         (coalesce_spill_slots): Ditto.
3256         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
3257         free allocno_coalesce_data.
3258
3259         * ira-conflicts.c: Fix formatting.
3260         (process_regs_for_copy): Call
3261         ira_init_register_move_cost_if_necessary.  Use
3262         ira_register_move_cost instead of ira_get_register_move_cost.
3263         (build_object_conflicts): Optimize.
3264
3265         * ira-costs.c (record_reg_classes): Optimize.  Call
3266         ira_init_register_move_cost_if_necessary.  Use
3267         ira_register_move_cost, ira_may_move_in_cost, and
3268         ira_may_move_out_cost instead of ira_get_register_move_cost and
3269         ira_get_may_move_cost.
3270         (record_address_regs): Ditto.
3271         (scan_one_insn): Optimize.
3272         (find_costs_and_classes): Optimize.
3273         (process_bb_node_for_hard_reg_moves): Call
3274         ira_init_register_move_cost_if_necessary.  Use
3275         ira_register_move_cost instead of ira_get_register_move_cost.
3276
3277         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
3278         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
3279         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
3280         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
3281         definitions.
3282         (ira_initiate_emit_data, ira_finish_emit_data)
3283         (create_new_allocno): New functions.
3284         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
3285         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
3286         Use ira_register_move_cost instead of ira_get_register_move_cost.
3287
3288         * ira-int.h: Fix some comments.
3289         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
3290         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
3291         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
3292         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
3293         add_data.
3294         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
3295         bitfield after mode.  Make hard_regno a short int.  Make
3296         hard_regno short.  Remove first_coalesced_allocno and
3297         next_coalesced_allocno.  Move mem_optimized_dest_p,
3298         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
3299         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
3300         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
3301         temp, colorable_p.  Add new member add_data.
3302         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
3303         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
3304         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
3305         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
3306         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
3307         (ALLOCNO_ADD_DATA): New macro.
3308         (ira_emit_data_t): New typedef.
3309         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
3310         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
3311         from struct ira_allocno.
3312         (ALLOCNO_EMIT_DATA): New macro.
3313         (ira_allocno_emit_data, allocno_emit_reg): New.
3314         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
3315         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
3316         (OBJECT_ADD_DATA): New macro.
3317         (ira_reallocate): Remove.
3318         (ira_initiate_emit_data, ira_finish_emit_data): New.
3319         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
3320         (ira_init_register_move_cost_if_necessary): New.
3321         (ira_object_conflict_iter_next): Merge into
3322         ira_object_conflict_iter_cond.
3323         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
3324
3325         * ira-live.c: (process_single_reg_class_operands): Call
3326         ira_init_register_move_cost_if_necessary.  Use
3327         ira_register_move_cost instead of ira_get_register_move_cost.
3328
3329         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
3330
3331         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
3332
3333         * ira-costs.c: Fix formatting.
3334         (cost_classes, cost_classes_num): Remove.
3335         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
3336         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
3337         (cost_classes_del, cost_classes_htab): New.
3338         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
3339         (initiate_regno_cost_classes, setup_cost_classes): New.
3340         (setup_regno_cost_classes_by_aclass): New.
3341         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
3342         (record_reg_classes): Use regno_cost_classes instead of
3343         cost_classes.  Move checking opposite operand up.
3344         (record_address_regs): Use regno_cost_classes
3345         instead of cost_classes.
3346         (scan_one_insn): Ditto.  Use always general register.
3347         (print_allocno_costs): Use regno_cost_classes instead of
3348         cost_classes.
3349         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
3350         (find_costs_and_classes): Set up cost classes for each registers.
3351         Use also their mode for this.  Use regno_cost_classes instead of
3352         cost_classes.
3353         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
3354         cost_classes.
3355         (free_ira_costs, ira_init_costs): Don't use cost_classes.
3356         (ira_costs, ira_set_pseudo_classes): Call
3357         initiate_regno_cost_classes and finish_regno_cost_classes.
3358
3359         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
3360
3361         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
3362
3363         * target.def (ira_cover_classes): Remove.
3364
3365         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
3366
3367         * doc/tm.texi.in: Ditto.
3368
3369         * ira-conflicts.c: Remove mentioning cover classes from the file.
3370         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
3371         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
3372
3373         * targhooks.c (default_ira_cover_classes): Remove.
3374
3375         * targhooks.h (default_ira_cover_classes): Ditto.
3376
3377         * haifa-sched.c: Remove mentioning cover classes from the file.
3378         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
3379         ira_pressure_classes and ira_pressure_classes_num instead of
3380         ira_reg_class_cover_size and ira_reg_class_cover.  Use
3381         sched_regno_pressure_class instead of sched_regno_cover_class.
3382         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
3383         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
3384
3385         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
3386         classes from the file.
3387         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
3388         (struct object_hard_regs, struct object_hard_regs_node): New.
3389         (struct ira_object): New members profitable_hard_regs,
3390         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
3391         (struct ira_allocno): Rename cover_class to aclass.  Rename
3392         cover_class_cost and updated_cover_class_cost to class_cost and
3393         updated_class_cost.  Remove splay_removed_p and
3394         left_conflict_size.  Add new members colorable_p.
3395         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
3396         (ALLOCNO_COLORABLE_P): New macro.
3397         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
3398         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
3399         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
3400         (OBJECT_...): Rename parameter C to O.
3401         (OBJECT_PROFITABLE_HARD_REGS): New macro.
3402         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
3403         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
3404         (struct target_ira_int): New members x_ira_max_memory_move_cost,
3405         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
3406         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
3407         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
3408         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
3409         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
3410         x_ira_reg_class_subunion.
3411         (ira_max_memory_move_cost, ira_max_register_move_cost)
3412         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
3413         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
3414         (ira_important_class_nums, ira_reg_class_superunion): New macros.
3415         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
3416         (ira_reg_class_union): Rename to ira_reg_class_subunion.
3417         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
3418         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
3419         (ira_tune_allocno_costs_and_cover_classes): Rename to
3420         ira_tune_allocno_costs.
3421         (ira_debug_hard_regs_forest): New.
3422         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
3423         (ira_object_conflict_iter_next): Fix comments.
3424         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
3425         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
3426         cover_class to aclass.
3427         (ira_allocate_and_accumulate_costs): Ditto.
3428         (ira_allocate_and_set_or_copy_costs): Ditto.
3429
3430         * opts.c (decode_options): Remove ira_cover_class check.
3431
3432         * ira-color.c: Remove mentioning cover classes from the file.  Use
3433         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
3434         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
3435         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
3436         (splay-tree.h): Remove include.
3437         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
3438         before copy_freq_compare_func.
3439         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
3440         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
3441         New definitions.
3442         (hard_regs_roots, hard_regs_node_vec): Ditto.
3443         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
3444         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
3445         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
3446         (create_new_object_hard_regs_node): Ditto.
3447         (add_new_object_hard_regs_node_to_forest): Ditto.
3448         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
3449         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
3450         Ditto.
3451         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
3452         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
3453         (remove_unused_object_hard_regs_nodes): Ditto.
3454         (enumerate_object_hard_regs_nodes): Ditto.
3455         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
3456         (object_hard_regs_subnode_t): Ditto.
3457         (struct object_hard_regs_subnode): Ditto.
3458         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
3459         (setup_object_hard_regs_subnode_index): Ditto.
3460         (get_object_hard_regs_subnodes_num): Ditto.
3461         (form_object_hard_regs_nodes_forest): Ditto.
3462         (finish_object_hard_regs_nodes_tree): Ditto.
3463         (finish_object_hard_regs_nodes_forest): Ditto.
3464         (allocnos_have_intersected_live_ranges_p): Rename to
3465         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
3466         (pseudos_have_intersected_live_ranges_p): Rename to
3467         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
3468         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
3469         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
3470         (update_copy_costs): Remove assert.  Skip cost update if the hard
3471         reg does not belong the class.
3472         (assign_hard_reg): Process only profitable hard regs.
3473         (uncolorable_allocnos_num): Make it scalar.
3474         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
3475         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
3476         and ira_reg_class_max_nregs.
3477         (bucket_allocno_compare_func): Check frequency first.
3478         (sort_bucket): Add compare function as a parameter.
3479         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
3480         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
3481         (push_allocno_to_stack): Rewrite for checking new allocno
3482         colorability.
3483         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
3484         (push_only_colorable): Pass new parameter to sort_bucket.
3485         (push_allocno_to_spill): Remove.
3486         (allocno_spill_priority_compare): Make it inline and rewrite.
3487         (splay_tree_allocate, splay_tree_free): Remove.
3488         (allocno_spill_sort_compare): New function.
3489         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
3490         build and use splay tree.  Choose first allocno in uncolorable
3491         allocno bucket to spill.  Remove setting spill cost.
3492         (all_conflicting_hard_regs): Remove.
3493         (setup_allocno_available_regs_num): Check only profitable hard
3494         regs.  Print info about hard regs nodes.
3495         (setup_allocno_left_conflicts_size): Remove.
3496         (put_allocno_into_bucket): Don't call
3497         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
3498         (improve_allocation): New.
3499         (color_allocnos): Call setup_profitable_hard_regs,
3500         form_object_hard_regs_nodes_forest, improve_allocation,
3501         finish_object_hard_regs_nodes_forest.  Setup spill cost.
3502         (print_loop_title): Use pressure classes.
3503         (color_allocnso): Ditto.
3504         (do_coloring): Remove allocation and freeing splay_tree_node_pool
3505         and allocnos_for_spilling.
3506         (ira_sort_regnos_for_alter_reg): Don't setup members
3507         {first,next}_coalesced_allocno.
3508         (color): Remove allocating and freeing removed_splay_allocno_vec.
3509         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
3510         prohibited_class_mode_regs.
3511
3512         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
3513         formatting.
3514         (update_allocno_pressure_excess_length): Use pressure classes.
3515         (inc_register_pressure, dec_register_pressure): Check for pressure
3516         class.
3517         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
3518         pressure class.  Use ira_reg_class_nregs instead of
3519         ira_reg_class_max_nregs.
3520         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
3521         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
3522         (single_reg_class): Use ira_reg_class_nregs instead of
3523         ira_reg_class_max_nregs.
3524         (process_bb_node_lives): Use pressure classes.
3525
3526         * ira-emit.c: Remove mentioning cover classes from the file.  Use
3527         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
3528         (change_loop): Use pressure classes.
3529         (modify_move_list): Call ira_set_allocno_class instead of
3530         ira_set_allocno_cover_class.
3531
3532         * ira-build.c: Remove mentioning cover classes from the file.  Use
3533         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
3534         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
3535         ALLOCNO_UPDATED_CLASS_COST instead of
3536         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
3537         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
3538         (ira_create_allocno): Remove initialization of
3539         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
3540         ALLOCNO_COLORABLE_P.
3541         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
3542         Update conflict regs for the objects.
3543         (create_cap_allocno): Remove assert.  Don't propagate
3544         ALLOCNO_AVAILABLE_REGS_NUM.
3545         (ira_free_allocno_costs): New function.
3546         (finish_allocno): Change a part of code into call of
3547         ira_free_allocno_costs.
3548         (low_pressure_loop_node_p): Use pressure classes.
3549         (object_range_compare_func): Don't compare classes.
3550         (setup_min_max_conflict_allocno_ids): Ditto.
3551
3552         * loop-invariant.c: Remove mentioning cover classes from the file.
3553         Use ira_pressure_classes and ira_pressure_classes_num instead of
3554         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
3555         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
3556         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
3557         Use reg_allocno_class instead of reg_cover_class.
3558         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
3559         STACK_REG_COVER_CLASS.
3560         (get_regno_cover_class): Rename to get_regno_pressure_class.
3561         (move_loop_invariants): Initialize and finalize regstat.
3562
3563         * ira.c: Remove mentioning cover classes from the file.  Add
3564         comments about coloring without cover classes.  Use ALLOCNO_CLASS
3565         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
3566         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
3567         setup_class_subset_and_memory_move_costs.
3568         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
3569         (setup_cover_and_important_classes): Rename to
3570         setup_allocno_and_important_classes.
3571         (setup_class_translate_array): New.
3572         (setup_class_translate): Call it for allocno and pressure classes.
3573         (cover_class_order): Rename to allocno_class_order.
3574         (comp_reg_classes_func): Use ira_allocno_class_translate instead
3575         of ira_class_translate.
3576         (reorder_important_classes): Set up ira_important_class_nums.
3577         (setup_reg_class_relations): Set up ira_reg_class_superunion.
3578         (print_class_cover): Rename to print_classes.  Add parameter.
3579         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
3580         Print pressure classes too.
3581         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
3582         setup_reg_subclasses.
3583         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
3584         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
3585         (setup_prohibited_class_mode_regs): Use
3586         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
3587         (clarify_prohibited_class_mode_regs): New function.
3588         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
3589         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
3590         (ira_init_once): Initialize them.
3591         (free_register_move_costs): Process them.
3592         (ira_init): Move calls of find_reg_classes and
3593         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
3594         Call clarify_prohibited_class_mode_regs.
3595         (ira_no_alloc_reg): Remove.
3596         (too_high_register_pressure_p): Use pressure classes.
3597
3598         * sched-deps.c: Remove mentioning cover classes from the file.
3599         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
3600         ira_pressure_classes and ira_pressure_classes_num instead of
3601         ira_reg_class_cover_size and ira_reg_class_cover.
3602         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
3603         sched_regno_pressure_class instead of sched_regno_cover_class.
3604         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
3605         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
3606
3607         * ira.h: Add 2010 to Copyright.
3608         (ira_no_alloc_reg): Remove external.
3609         (struct target_ira): Rename x_ira_hard_regno_cover_class,
3610         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
3611         x_ira_class_translate to x_ira_hard_regno_allocno_class,
3612         x_ira_allocno_classes_num, x_ira_allocno_classes, and
3613         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
3614         x_ira_pressure_classes, x_ira_pressure_class_translate, and
3615         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
3616         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
3617         x_ira_no_alloc_regs.
3618         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
3619         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
3620         ira_allocno_classes_num and ira_allocno_classes.
3621         (ira_class_translate): Rename to ira_allocno_class_translate.
3622         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
3623         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
3624         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
3625         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
3626         (ira_no_alloc_regs): New.
3627
3628         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
3629         classes from the file.  Use ALLOCNO_CLASS instead of
3630         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
3631         ALLOCNO_COVER_CLASS_COST.
3632         (regno_cover_class): Rename to regno_aclass.
3633         (record_reg_classes): Use ira_reg_class_subunion instead of
3634         ira_reg_class_union.
3635         (record_address_regs): Check overflow.
3636         (scan_one_insn): Ditto.
3637         (print_allocno_costs): Print total mem cost fore regional allocation.
3638         (print_pseudo_costs): Use REG_N_REFS.
3639         (find_costs_and_classes): Use classes intersected with them on the
3640         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
3641         ira_reg_class_union.  Use ira_allocno_class_translate and
3642         regno_aclass instead of ira_class_translate and regno_cover_class.
3643         Modify code for finding regno_aclass.  Setup preferred classes for
3644         the next pass.
3645         (setup_allocno_cover_class_and_costs): Rename to
3646         setup_allocno_class_and_costs.  Use regno_aclass instead of
3647         regno_cover_class.  Use ira_set_allocno_class instead of
3648         ira_set_allocno_cover_class.
3649         (init_costs, finish_costs): Use regno_aclass instead of
3650         regno_cover_class.
3651         (ira_costs): Use setup_allocno_class_and_costs instead of
3652         setup_allocno_cover_class_and_costs.
3653         (ira_tune_allocno_costs_and_cover_classes): Rename to
3654         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
3655         by processing objects.  Use ira_reg_class_max_nregs instead of
3656         ira_reg_class_nregs.
3657
3658         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
3659
3660         * sched-int.h: Remove mentioning cover classes from the file.
3661         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
3662
3663         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
3664         classes from the file.
3665         (struct reg_pref): Rename coverclass into allocnoclass.
3666         (reg_cover_class): Rename to reg_allocno_class.
3667
3668         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
3669
3670         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
3671
3672         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
3673
3674         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
3675
3676         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
3677
3678         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
3679
3680         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
3681
3682         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
3683
3684         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
3685
3686         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
3687
3688         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
3689         (i386_ira_cover_classes): Ditto.
3690
3691         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
3692
3693         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
3694
3695         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
3696
3697         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
3698
3699         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
3700
3701         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
3702
3703         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
3704         (mips_ira_cover_classes): Ditto.
3705
3706         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
3707
3708         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
3709
3710         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
3711
3712         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
3713
3714         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
3715
3716         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
3717         (IRA_COVER_CLASSES_VSX): Ditto.
3718
3719         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
3720         (rs6000_ira_cover_classes): Ditto.
3721
3722         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
3723
3724         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
3725
3726         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
3727
3728         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
3729
3730         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
3731
3732         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
3733
3734         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
3735
3736         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
3737
3738         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
3739
3740         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
3741
3742 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
3743
3744         PR debug/48253
3745         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
3746         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
3747         dw_fde_unlikely_section_end_label, cold_in_std_section,
3748         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
3749         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
3750         fields.
3751         (output_fde): Use dw_fde_second_{begin,end} if second is
3752         true, otherwise dw_fde_{begin,end}.
3753         (output_call_frame_info): Test dw_fde_second_begin != NULL
3754         instead of dw_fde_switched_sections.
3755         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
3756         fields, initialize new fields.  Initialize in_std_section
3757         unconditionally from the first partition.
3758         (dwarf2out_end_epilogue): Don't override dw_fde_end when
3759         dw_fde_second_begin is non-NULL.
3760         (dwarf2out_switch_text_section): Stop initializing removed
3761         dw_fde_struct fields, initialize new fields, initialize
3762         also dw_fde_end here.  Set dw_fde_switch_cfi even when
3763         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
3764         (struct var_loc_list_def): Add last_before_switch field.
3765         (arange_table, arange_table_allocated, arange_table_in_use,
3766         ARANGE_TABLE_INCREMENT, add_arange): Removed.
3767         (size_of_aranges): Count !in_std_section and !second_in_std_section
3768         hunks in fdes, instead of looking at arange_table_in_use.
3769         (output_aranges): Add aranges_length argument, don't call
3770         size_of_aranges here.  Instead of using aranges_table*
3771         emit ranges for fdes when !in_std_section resp.
3772         !second_in_std_section.
3773         (dw_loc_list): Break ranges crossing section switch.
3774         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
3775         use dw_fde_second_end instead of dw_fde_end as end of last range.
3776         (gen_subprogram_die): Don't call add_arange.  Use
3777         dw_fde_{begin,end} for first partition and if switched
3778         section dw_fde_second_{begin,end} for the second.
3779         (var_location_switch_text_section_1,
3780         var_location_switch_text_section): New functions.
3781         (dwarf2out_begin_function): Initialize cold_text_section even
3782         when function_section () isn't text_section.
3783         (prune_unused_types): Don't walk arange_table.
3784         (dwarf2out_finish): Don't needlessly test
3785         flag_reorder_blocks_and_partition when testing cold_text_section_used.
3786         If info_section_emitted, call size_of_aranges and if it indicates
3787         non-empty .debug_aranges, call output_aranges with the computed
3788         size.  Stop using removed dw_fde_struct fields, use
3789         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
3790         for second.
3791
3792         PR debug/48203
3793         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
3794         create ENTRY_VALUE if incoming or address of incoming's MEM
3795         is a hard REG.
3796         * dwarf2out.c (mem_loc_descriptor): Don't emit
3797         DW_OP_GNU_entry_value of DW_OP_fbreg.
3798         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
3799         on ENTRY_VALUE is able to find the canonical parameter VALUE.
3800         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
3801         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
3802         ENTRY_VALUE_EXPs.
3803         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
3804         is a REG_P or MEM_P with REG_P address, compute hash directly
3805         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
3806         (preserve_only_constants): Don't clear VALUES forwaring
3807         ENTRY_VALUE to some other VALUE.
3808
3809 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
3810
3811         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
3812         instead of GEN_INT.
3813
3814 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
3815
3816         * cfgexpand.c (expand_gimple_cond): Always set the source location and
3817         block before expanding the statement.
3818         (expand_gimple_stmt_1): Likewise.  Set them here...
3819         (expand_gimple_stmt): ...and not here.  Tidy.
3820         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
3821         unknown.
3822
3823 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
3824
3825         * Makefile.in: New rule for cprop.o.
3826         * gcse.c: Move constant/copy propagation to cprop.c.
3827         (compute_local_properties): Only handle expression tables.
3828         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
3829         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
3830         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
3831         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
3832         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
3833         compute_cprop_data, find_used_regs, try_replace_reg,
3834         find_avail_set, cprop_jump, constprop_register, cprop_insn,
3835         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
3836         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
3837         find_bypass_set, reg_killed_on_edge, bypass_block,
3838         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
3839         execute_rtl_cprop, pass_rtl_cprop): Move to...
3840         * cprop.c: ...here.  New file, constant/copy propagation for RTL
3841         moved from gcse.c to here with minor cleanups in duplicated code.
3842
3843 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
3844
3845         * config/i386/i386.c (flag_opts): Fix a typo in
3846         -mavx256-split-unaligned-store.
3847
3848 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
3849
3850         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
3851         LIBCALL_VALUE): Remove macros.
3852         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3853         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3854         (h8300_function_value, h8300_libcall_value,
3855         h8300_function_value_regno_p): New functions.
3856
3857 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
3858
3859         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
3860
3861 2011-03-28  Jeff Law  <law@redhat.com>
3862
3863         * tree-ssa-threadupdate.c (redirect_edges): Call
3864         create_edge_and_update_destination_phis as needed.
3865         (create_edge_and_update_destination_phis): Accept new BB argument.
3866         All callers updated.
3867         (thread_block): Do not update the profile when threading around
3868         intermediate blocks.
3869         (thread_single_edge): Likewise.
3870         (determine_bb_domination_status): If BB is not a successor of the
3871         loop header, return NONDOMINATING.
3872         (register_jump_thread): Note when we register a jump thread around
3873         an intermediate block.
3874         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
3875         (thread_across_edge): Use it.
3876
3877 2011-03-28  Tristan Gingold  <gingold@adacore.com>
3878
3879         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
3880         when for_return is 2.
3881
3882 2011-03-28  Jeff Law  <law@redhat.com>
3883
3884         * var-tracking.c (canonicalize_values_mark): Delete unused
3885         lhs assignment.
3886         (canonicalize_values_star, set_variable_part): Likewise.
3887         (clobber_variable_part, delete_variable_part): Likewise.
3888
3889 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
3890
3891         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
3892
3893 2011-03-28  Martin Jambor  <mjambor@suse.cz>
3894
3895         * tree-inline.c (expand_call_inline): Do not check that destination
3896         node is analyzed.
3897         (optimize_inline_calls): Assert that destination node is analyzed.
3898         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
3899         not call tree_lowering_passes.
3900         * cgraph.h (cgraph_analyze_function): Declare.
3901         * cgraphunit.c (cgraph_analyze_function): Make public.
3902
3903 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
3904
3905         * config/sparc/sparc-opts.h: New.
3906         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
3907         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
3908         (sparc_option_override): Store processor_type enumeration rather
3909         than string in cpu_default.  Remove name and enumeration from
3910         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
3911         without using sparc_select.  Use target_flags_explicit instead of
3912         fpu_option_set.
3913         * config/sparc/sparc.h (enum processor_type): Move to
3914         sparc-opts.h.
3915         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
3916         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
3917         HeaderInclude entry.
3918         (mcpu=, mtune=): Use Var and Enum.
3919         (sparc_processor_type): New Enum and EnumValue entries.
3920
3921 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3922             Iain Sandoe  <iains@gcc.gnu.org>
3923
3924         PR target/48245
3925         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
3926
3927 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
3928
3929         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
3930         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
3931         Insert new statements at it in lieu of STMT.
3932         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
3933         * tree-vect-stmts.c (vectorizable_store): Likewise.
3934         (vectorizable_load): Likewise.
3935
3936 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
3937
3938         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
3939         (divtf3): Ditto.
3940         (multf3): Ditto.
3941         (subtf3): Ditto.
3942
3943 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3944
3945         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
3946         unaligned 256bit load/store.
3947         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
3948         (*avx_movdqu<avxmodesuffix>): Likewise.
3949
3950 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3951
3952         PR target/48288
3953         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
3954         * config/pa/pa.md (iordi3): Use new predicate in expander.
3955         (iorsi3): Likewise.
3956
3957 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
3958
3959         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
3960         FUNCTION_VALUE_REGNO_P): Remove macros.
3961         * config/mips/mips-protos.h (mips_function_value): Remove.
3962         * config/mips/mips.c (mips_function_value): Rename to...
3963         (mips_function_value_1): ... this. Make static.  Handle receiving
3964         the function type in 'fn_decl_or_type' argument.
3965         (mips_function_value, mips_libcall_value,
3966         mips_function_value_regno_p): New function.
3967         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3968         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3969
3970 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3971
3972         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
3973         and -mavx256-split-unaligned-store.
3974         (ix86_option_override_internal): Split 32-byte AVX unaligned
3975         load/store by default.
3976         (ix86_avx256_split_vector_move_misalign): New.
3977         (ix86_expand_vector_move_misalign): Use it.
3978
3979         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
3980         -mavx256-split-unaligned-store.
3981
3982         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
3983         256bit load/store.  Generate unaligned store on misaligned memory
3984         operand.
3985         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
3986         256bit load/store.
3987         (*avx_movdqu<avxmodesuffix>): Likewise.
3988
3989         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
3990         -mavx256-split-unaligned-store.
3991
3992 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
3993
3994         PR target/38598
3995         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
3996         Update commentary.
3997
3998 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
3999
4000         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
4001         opno arguments with an expand_operand.  Use create_input_operand.
4002         (mips_prepare_builtin_target): Delete.
4003         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
4004         functions.
4005         (mips_expand_builtin_direct): Use create_output_operand and
4006         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
4007         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
4008         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
4009
4010 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
4011
4012         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
4013         function.
4014         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
4015
4016 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
4017
4018         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
4019         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
4020         basic blocks and call commit_edge_insertions directly.
4021         (fixup_abnormal_edges): Move from here to...
4022         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
4023         on the edges and return whether some have actually been inserted.
4024         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
4025         compensation code.
4026
4027 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
4028
4029         PR rtl-optimization/48144
4030         * sel-sched-ir.c (merge_history_vect): Factor out from ...
4031         (merge_expr_data): ... here.
4032         (av_set_intersect): Rename to av_set_code_motion_filter.
4033         Update all callers.  Call merge_history_vect when an expression
4034         is found in both sets.
4035         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
4036
4037 2011-03-26  Alan Modra  <amodra@gmail.com>
4038
4039         * config/rs6000/predicates.md (word_offset_memref_op): Handle
4040         cmodel medium addresses.
4041         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
4042         64-bit gpr loads and stores.
4043         (rs6000_secondary_reload_ppc64): New function.
4044         * config/rs6000/rs6000-protos.h: Declare it.
4045         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
4046
4047 2011-03-26  Alan Modra  <amodra@gmail.com>
4048
4049         PR target/47487
4050         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
4051         GNU Go in traceback table.
4052
4053 2011-03-25  Richard Henderson  <rth@redhat.com>
4054
4055         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
4056         if there are exactly 6 operands.
4057         (set_storage_via_setmem): Similarly.
4058
4059 2011-03-25  Kai Tietz  <ktietz@redhat.com>
4060
4061         * collect2.c (write_c_file_stat): Handle backslash
4062         as right-hand directory separator.
4063         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
4064         checking just for slash.
4065         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
4066         instead of checking for trailing slash.
4067         * gcc.c (record_temp_file): Use filename_cmp instead
4068         of strcmp.
4069         (do_spec_1): Likewise.
4070         (replace_outfile_spec_function): Likewise.
4071         (is_directory): Use filename_ncmp instead of strncmp.
4072         (print_multilib_info): Likewise.
4073         * gcov.c (find_source): Use filename_cmp instead
4074         instead of strcmp.
4075         (make_gcov_file_name): Fix order of slash/backslash
4076         checks.
4077         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
4078         (add_standard_paths): Likewise.
4079         * mips-tfile.c (saber_stop): Handle backslash.
4080         * prefix.c (update_path): Use filename_ncmp instead of
4081         strncmp.
4082         * profile.c (output_location): Use filename_cmp instead
4083         of strcmp.
4084         * read-md.c (handle_toplevel_file): Handle backslash.
4085         * tlink.c (frob_extension):  Likewise.
4086         * tree-cfg.c (same_line_p): Use filename_cmp instead of
4087         strcmp.
4088         * tree-dump.c (dequeue_and_dump): Handle backslash.
4089         * tree.c (get_file_function_name): Likewise.
4090         * gengtype.c (read_input_list): Likewise.
4091         (get_file_realbasename): Likewise.
4092         (get_output_file_with_visibility): Use filename_cmp
4093         instead of strcmp.
4094
4095 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
4096
4097         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
4098         case to VFPv1.
4099
4100 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
4101
4102         * fold-const.c (expr_location_or): New function.
4103         (fold_truth_not_expr): Call it.
4104
4105 2011-03-25  Jeff Law  <law@redhat.com>
4106
4107         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
4108         va_end.
4109         * c-family/c-common.c (def_fn_type): Likewise.
4110         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
4111         * emit-rtl.c (gen_rtvec): Likewise.
4112         * lto/lto-lang.c (def_fn_type): Likewise.
4113
4114 2011-03-25  Richard Guenther  <rguenther@suse.de>
4115
4116         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
4117         also generate copies.
4118         (fini_copy_prop): Handle constant values properly.
4119
4120 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
4121
4122         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
4123         mode size instead of bitsize with DWARF2_ADDR_SIZE.
4124         (hash_loc_operands, compare_loc_operands): Handle
4125         DW_OP_GNU_entry_value.
4126
4127 2011-03-25  Kai Tietz  <ktietz@redhat.com>
4128
4129         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
4130         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
4131         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
4132         comment and use macro TARGET_64BIT_MS_ABI instead.
4133         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
4134         and change default behavior for 32-bit MS_ABI.
4135         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
4136         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
4137         32-bit, too.
4138         (ix86_cfun_abi): Likewise.
4139         (ix86_maybe_switch_abi): Adjust comment.
4140         (init_cumulative_args): Check for bit-ness in MS_ABI case.
4141         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
4142         instead of checking for SYSV_ABI.
4143         (ix86_nsaved_sseregs): Likewise.
4144         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
4145         to 16 bytes.
4146         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
4147         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
4148         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
4149         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
4150         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
4151
4152 2011-03-25  Richard Guenther  <rguenther@suse.de>
4153
4154         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
4155         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
4156         (verify_gimple): Remove.
4157         * tree-cfg.c (verify_gimple_call): Merge verification
4158         from verify_stmts.
4159         (verify_gimple_phi): Merge verification from verify_stmts.
4160         (verify_gimple_label): New function.
4161         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
4162         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
4163         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
4164         (verify_stmts): Rename to verify_gimple_in_cfg.
4165         (verify_gimple_in_cfg): New function.
4166         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
4167         * tree-ssa.c (verify_ssa): Likewise.
4168         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
4169
4170 2011-03-25  Richard Guenther  <rguenther@suse.de>
4171
4172         * passes.c (init_optimization_passes): Add FRE pass after
4173         early SRA.
4174
4175 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
4176             Andrew Stubbs  <ams@codesourcery.com>
4177
4178         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
4179         for Cortex-A8.
4180         (arm_movdi_vfp_cortexa8): New pattern.
4181         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
4182         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
4183         instructions when tuning for Cortex-A8.  Set attribute "arch".
4184         * config/arm/arm.md: Move include arm-tune.md up a bit.
4185         (define_attr "arch"): Add "onlya8" and "nota8" values.
4186         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
4187
4188 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
4189
4190         PR bootstrap/48282
4191         Revert:
4192         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
4193
4194         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
4195         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
4196         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
4197         * passes.c (init_optimization_passes): Move
4198         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
4199
4200 2011-03-25  Kai Tietz  <ktietz@redhat.com>
4201
4202         * c-typeck.c (comptypes_internal): Replace target
4203         hook call of comp_type_attributes by version in tree.c file.
4204         * gimple.c (gimple_types_compatible_p_1): Likewise.
4205         * tree-ssa.c (useless_type_conversion_p): Likewise.
4206         * tree.c (build_type_attribute_qual_variant): Likewise.
4207         (attribute_value_equal): New static helper function.
4208         (comp_type_attributes): New function.
4209         (merge_attributes): Use attribute_value_equal for comparison.
4210         (attribute_list_contained): Likewise.
4211         * tree.h (comp_type_attributes): New prototype.
4212
4213 2011-03-25  Richard Guenther  <rguenther@suse.de>
4214
4215         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
4216         of complex types at -O0.
4217         (verify_gimple_assign_binary): Likewise.
4218         (verify_gimple_assign_ternary): Likewise.
4219
4220 2011-03-24  Mark Wielaard  <mjw@redhat.com>
4221
4222         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
4223         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
4224
4225 2011-03-24  Mark Wielaard  <mjw@redhat.com>
4226
4227         PR debug/48041
4228         * dwarf2out.c (output_abbrev_section): Only write table when
4229         abbrev_die_table_in_use > 1.
4230
4231 2011-02-24  Richard Henderson  <rth@redhat.com>
4232
4233         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
4234         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
4235         (alpha_expand_unaligned_load_words): Use extql.
4236         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
4237         (emit_insxl): Handle all modes for consistency.
4238
4239 2011-02-24  Richard Henderson  <rth@redhat.com>
4240
4241         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
4242         (alpha_expand_unaligned_load): Likewise.
4243         (alpha_expand_unaligned_store): Likewise.
4244         (alpha_expand_unaligned_load_words): Likewise.
4245         (alpha_expand_unaligned_store_words): Likewise.
4246         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
4247         (alpha_split_lock_test_and_set_12): Likewise.
4248         (print_operand, alpha_fold_builtin_extxx): Likewise.
4249         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
4250         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
4251         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
4252         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
4253         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
4254         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
4255         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
4256         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
4257         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
4258         (extwl, extll, extql): Similarly.
4259         (inswh, inslh, insqh): Similarly.
4260         (mskbl, mskwl, mskll, mskql): Similarly.
4261         (mskwh, msklh, mskqh): Similarly.
4262
4263 2011-02-24  Richard Henderson  <rth@redhat.com>
4264
4265         * config/alpha/alpha.md (attribute isa): Add er, ner.
4266         (attribute enabled): Handle them.
4267         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
4268
4269 2011-02-24  Richard Henderson  <rth@redhat.com>
4270
4271         * config/alpha/alpha.md (attribute isa): Add vms.
4272         (attribute enabled): Handle it.
4273         (*movsf): Merge *movsf_{nofix,fix,nofp}.
4274         (*movdf): Merge *movdf_{nofix,fix,nofp}.
4275         (*movtf): Rename from *movtf_internal for consistency.
4276         (*movsi): Merge with *movsi_nt_vms.
4277         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
4278         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
4279         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
4280         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
4281
4282 2011-02-24  Richard Henderson  <rth@redhat.com>
4283
4284         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
4285         (extendqisi2, extendhisi2): Likewise.
4286         (extendqidi2): Simplify BWX/non-BWX expansions.
4287         (extendhidi2): Similarly.
4288
4289 2011-02-24  Richard Henderson  <rth@redhat.com>
4290
4291         * config/alpha/alpha.md (attribute isa): New.
4292         (attribute enabled): New.
4293         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
4294         (zero_extendqisi2, zero_extendqidi2): Similarly.
4295         (zero_extendhisi2, zero_extendhidi2): Similarly.
4296         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
4297
4298 2011-02-24  Richard Henderson  <rth@redhat.com>
4299
4300         * config/alpha/predicates.md (input_operand): Revert last change;
4301         update comment to mention 32-bit VMS rather than Windows.
4302
4303 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
4304
4305         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
4306         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
4307         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
4308         * passes.c (init_optimization_passes): Move
4309         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
4310
4311 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
4312
4313         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
4314
4315 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
4316
4317         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
4318         correctly.
4319
4320 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
4321
4322         PR debug/48204
4323         * simplify-rtx.c (simplify_const_unary_operation): Call
4324         real_convert when changing mode class with FLOAT_EXTEND.
4325
4326 2011-03-24  Nick Clifton  <nickc@redhat.com>
4327
4328         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
4329         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
4330         * config/rx/rx.c (rx_option_override): Set align_jumps,
4331         align_loops and align_labels if not set by the user.
4332         (rx_align_for_label): New function.
4333         (rx_max_skip_for_label): New function.
4334         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
4335         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
4336         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
4337         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
4338         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
4339
4340 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
4341
4342         PR rtl-optimization/48263
4343         * optabs.c (expand_binop_directly): Reinstate convert_modes code
4344         and original commutative_p handling.  Use maybe_gen_insn.
4345
4346 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4347
4348         * reload.c (find_reloads_subreg_address): Add address_reloaded
4349         parameter and return true there if the full address has been
4350         reloaded.
4351         (find_reloads_toplev): Pass address_reloaded flag.
4352         (find_reloads_address_1): Don't use address_reloaded parameter.
4353
4354 2011-03-24  Jeff Law  <law@redhat.com>
4355
4356         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
4357         unused variable "ann".
4358         (remove_unused_locals): Likewise.
4359
4360         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
4361         statement.
4362
4363         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
4364         after it is freed.
4365
4366 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4367
4368         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
4369         for invalid symbolic addresses.
4370         (s390_secondary_reload): Don't use s390_check_symref_alignment for
4371         larl operands.
4372
4373 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
4374
4375         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
4376         the argument in calls to fold_truth_not_expr.
4377
4378 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
4379
4380         * tree.c (record_node_allocation_statistics): New function.
4381         (make_node_stat, copy_node_stat, build_string): Call it.
4382         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
4383         (build1_stat, build_omp_clause): Likewise.
4384
4385 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
4386
4387         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
4388         last commit.
4389
4390 2011-03-24  Richard Guenther  <rguenther@suse.de>
4391
4392         PR tree-optimization/48271
4393         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
4394         blocks that still exist.
4395
4396 2011-03-24  Richard Guenther  <rguenther@suse.de>
4397
4398         PR tree-optimization/48270
4399         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
4400         not free datarefs before ddrs.
4401
4402 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
4403
4404         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
4405         from the address built for a reference with variable offset.
4406
4407 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
4408
4409         PR target/48237
4410         * config/i386/i386.md (*movdf_internal_rex64): Do not split
4411         alternatives that can be handled with movq or movabsq insn.
4412         (*movdf_internal): Disable for !TARGET_64BIT.
4413         (*movdf_internal_nointeger): Ditto.
4414         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
4415
4416 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
4417
4418         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
4419         (FUNCTION_ARG_ADVANCE): Likewise.
4420         * tm.texi.in: Change references to them to hook references.
4421         * tm.texi: Regenerate.
4422         * targhooks.c (default_function_arg): Eliminate check for target macro.
4423         (default_function_incoming_arg): Likewise.
4424         (default_function_arg_advance): Likewise.
4425         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
4426         (function_arg_advance): Likewise.
4427         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
4428
4429 2011-03-24  Richard Guenther  <rguenther@suse.de>
4430
4431         PR middle-end/48269
4432         * tree-object-size.c (addr_object_size): Do not double-account
4433         for MEM_REF offsets.
4434
4435 2011-03-24  Diego Novillo  <dnovillo@google.com>
4436
4437         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
4438         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
4439         (lto_input_data_block): Move from lto-opts.c.  Make extern.
4440         Update all users.
4441         (lto_input_string): Rename from input_string.  Make extern.
4442         Update all users.
4443         * lto-streamer-out.c (lto_output_string_with_length): Rename from
4444         output_string_with_length.
4445         Output 0 to indicate a non-NULL string.  Update all callers to
4446         not emit 0.
4447         (lto_output_string): Rename from output_string.  Make extern.
4448         Update all users.
4449         (lto_output_decl_state_streams): Make extern.
4450         (lto_output_decl_state_refs): Make extern.
4451         * lto-streamer.h (lto_input_string): Declare.
4452         (lto_input_data_block): Declare.
4453         (lto_output_string): Declare.
4454         (lto_output_string_with_length): Declare.
4455         (lto_output_decl_state_streams): Declare.
4456         (lto_output_decl_state_refs): Declare.
4457
4458 2011-03-24  Richard Guenther  <rguenther@suse.de>
4459
4460         PR tree-optimization/46562
4461         * tree.c (build_invariant_address): New function.
4462         * tree.h (build_invariant_address): Declare.
4463         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
4464         a renamed function moved ...
4465         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
4466         Take valueization callback parameter.
4467         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
4468         * gimple-fold.h: New file.
4469         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
4470         (ccp_fold, fold_const_aggregate_ref,
4471         fold_ctor_reference, fold_nonarray_ctor_reference,
4472         fold_array_ctor_reference, fold_string_cst_ctor_reference,
4473         get_base_constructor): Move ...
4474         * gimple-fold.c: ... here.
4475         (gimple_fold_stmt_to_constant_1): New function
4476         split out from ccp_fold.  Take a valueization callback parameter.
4477         Valueize all operands.
4478         (gimple_fold_stmt_to_constant): New wrapper function.
4479         (fold_const_aggregate_ref_1): New function split out from
4480         fold_const_aggregate_ref.  Take a valueization callback parameter.
4481         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
4482         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
4483         invariant POINTER_PLUS_EXPRs to invariant form.
4484         (vn_valueize): New function.
4485         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
4486         * tree-vrp.c (vrp_valueize): New function.
4487         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
4488         to fold statements to constants.
4489         * tree-ssa-pre.c (eliminate): Properly guard propagation of
4490         function declarations.
4491         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
4492         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
4493
4494 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
4495
4496         * config/h8300/predicates.md (jump_address_operand): Fix register
4497         mode check.
4498
4499 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
4500
4501         * doc/invoke.texi (max-stores-to-sink): Document.
4502         * params.h (MAX_STORES_TO_SINK): Define.
4503         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
4504         if either vectorization or if-conversion is disabled.
4505         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
4506         tree-vect-data-refs.c vect_equal_offsets.
4507         (dr_equal_offsets_p): New function.
4508         (find_data_references_in_bb): Remove static.
4509         * tree-data-ref.h (find_data_references_in_bb): Declare.
4510         (dr_equal_offsets_p): Likewise.
4511         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
4512         (vect_drs_dependent_in_basic_block): Update calls to
4513         vect_equal_offsets.
4514         (vect_check_interleaving): Likewise.
4515         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
4516         (cond_if_else_store_replacement): Rename to...
4517         (cond_if_else_store_replacement_1): ... this.  Change arguments and
4518         documentation.
4519         (cond_if_else_store_replacement): New function.
4520         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
4521         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
4522
4523 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
4524
4525         PR target/46934
4526         * config/arm/arm.md (casesi): Use the gen_int_mode() function
4527         to subtract lower bound instead of GEN_INT().
4528
4529 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
4530
4531         PR other/48179
4532         PR other/48221
4533         PR other/48234
4534         * doc/extend.texi (Alignment): Move section to match order in TOC.
4535         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
4536         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
4537
4538 2011-03-23  Jeff Law  <law@redhat.com>
4539
4540         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
4541         before removing the edge.
4542
4543         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
4544         it may have been freed by redirect_branch_edge or
4545         redirect_edge_succ_nodup.
4546
4547 2011-03-23  Richard Guenther  <rguenther@suse.de>
4548
4549         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
4550         (check_va_list_escapes): Likewise.
4551         (check_all_va_list_escapes): Likewise.
4552
4553 2011-03-23  Richard Guenther  <rguenther@suse.de>
4554
4555         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
4556         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
4557         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
4558         (alias.o): Likewise.
4559         (ipa-type-escape.o): Remove.
4560         (ipa-struct-reorg.o): Likewise.
4561         (GTFILES): Remove ipa-struct-reorg.c.
4562         * alias.c: Do not include ipa-type-escape.h.
4563         * tree-ssa-alias.c: Likewise.
4564         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
4565         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
4566         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
4567         and ipa-type-escape passes.
4568         * tree-pass.h (pass_ipa_type_escape): Remove.
4569         (pass_ipa_struct_reorg): Likewise.
4570         * ipa-struct-reorg.h: Remove.
4571         * ipa-struct-reorg.c: Likewise.
4572         * ipa-type-escape.h: Likewise.
4573         * ipa-type-escape.c: Likewise.
4574         * doc/invoke.texi (-fipa-struct-reorg): Remove.
4575         (--param struct-reorg-cold-struct-ratio): Likewise.
4576         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
4577         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
4578         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
4579
4580 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4581
4582         * config/s390/2084.md: Enable all insn reservations also for z9_ec
4583         cpu attribute value.
4584         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
4585         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
4586         * config/s390/s390.c (processor_flags_table): New constant array.
4587         (s390_handle_arch_option): Remove.
4588         (s390_handle_option): Remove s390_handle_arch_option invocations
4589         and OPT_mwarn_framesize_ handling.
4590         (s390_option_override): Remove s390_handle_arch_option invocation.
4591         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
4592         warnings.
4593         * config/s390/s390.md (cpu attribute): Add z9_ec value.
4594         * config/s390/s390.opt (s390_tune, s390_arch)
4595         (march=): Replace s390_arch_option enum and values with
4596         processor_type.  Set variable name to s390_arch.  Set
4597         initialization value.
4598         (mtune=): Replace s390_arch_option with processor_type.  Set
4599         variable name to s390_tune.  Set initialization value.
4600
4601 2011-03-23  Julian Brown  <julian@codesourcery.com>
4602
4603         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
4604         accesses which are not naturally aligned.
4605
4606 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
4607
4608         PR target/47553
4609         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
4610
4611 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
4612
4613         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
4614         parameter from "int" to "enum insn_code".
4615         (expand_operand_type): New enum.
4616         (expand_operand): New structure.
4617         (create_expand_operand): New function.
4618         (create_fixed_operand, create_output_operand): Likewise
4619         (create_input_operand, create_convert_operand_to): Likewise.
4620         (create_convert_operand_from, create_address_operand): Likewise.
4621         (create_integer_operand): Likewise.
4622         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
4623         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
4624         (expand_insn, expand_jump_insn): Likewise.
4625         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
4626         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
4627         (expand_movstr, expand_builtin___clear_cache): Likewise.
4628         (expand_builtin_lock_release): Likewise.
4629         * explow.c (allocate_dynamic_stack_space): Likewise.
4630         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
4631         and use the default handling in that case.
4632         * expmed.c (check_predicate_volatile_ok): Delete.
4633         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
4634         (emit_cstore): Likewise.
4635         * expr.c (emit_block_move_via_movmem): Likewise.
4636         (set_storage_via_setmem, expand_assignment): Likewise.
4637         (emit_storent_insn, try_casesi): Likewise.
4638         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
4639         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
4640         (expand_vec_shift_expr, expand_binop_directly): Likewise.
4641         (expand_twoval_unop, expand_twoval_binop): Likewise.
4642         (expand_unop_direct, emit_indirect_jump): Likewise.
4643         (emit_conditional_move, vector_compare_rtx): Likewise.
4644         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
4645         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
4646         (expand_sync_lock_test_and_set): Likewise.
4647         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
4648         (emit_unop_insn): Likewise.
4649         (expand_copysign_absneg): Change icode to an insn_code.
4650         (create_convert_operand_from_type): New function.
4651         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
4652         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
4653         (expand_insn, expand_jump_insn): Likewise.
4654         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
4655         than const_int_operand for operand 2.
4656
4657 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4658
4659         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
4660         if possible.
4661
4662 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
4663
4664         * emit-rtl.c (emit_pattern_before_noloc): New function.
4665         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
4666         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
4667         (emit_pattern_after_noloc): New function.
4668         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
4669         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
4670
4671 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
4672
4673         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
4674         (__ffsDI2): Likewise.
4675
4676 2011-03-22  Richard Henderson  <rth@redhat.com>
4677
4678         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
4679         of !TARGET_ABI_OPEN_VMS.
4680         (alpha_trampoline_init, alpha_start_function): Likewise.
4681         (alpha_expand_epilogue, alpha_file_start): Likewise.
4682         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
4683         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
4684         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
4685         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
4686         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
4687
4688 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4689
4690         * config/s390/s390-opts.h: New.
4691         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
4692         s390_arch_flags, s390_warn_framesize, s390_stack_size,
4693         s390_stack_guard): Remove.
4694         (s390_handle_arch_option): Return void.  Take enum
4695         s390_arch_option value instead of string and searching array.
4696         (s390_handle_option): Don't assert that global structures are in
4697         use.  Access variables via opts pointer.  Use error_at.  Don't use
4698         sscanf for -mstack-guard= or -mstack-size=.  Update call to
4699         s390_handle_arch_option.
4700         (s390_option_override): Update call to s390_handle_arch_option.
4701         (s390_emit_prologue): Use %d format for s390_stack_size in
4702         diagnostic.  Use %wd for HOST_WIDE_INT.
4703         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
4704         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
4705         * config/s390/s390.opt (config/s390/s390-opts.h): New
4706         HeaderInclude entry.
4707         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
4708         s390_arch_flags, s390_warn_framesize): New Variable entries.
4709         (s390_arch_option): New Enum and EnumValue entries.
4710         (march=): Use Enum instead of Var.
4711         (mstack-guard=, mstack-size=): Use UInteger and Var.
4712         (mtune=): Use Enum.
4713
4714 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4715
4716         * config/score/score.c (score_handle_option): Don't assert that
4717         global structures are in use.  Access target_flags via opts
4718         pointer.  Use value of -march= option to determine target_flags
4719         settings.
4720         * config/score/score.opt (march=): Use Enum.
4721         (score_arch): New Enum and EnumValue entries.
4722
4723 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4724
4725         * config/mep/mep.c (option_mtiny_specified): Remove.
4726         (mep_option_override): Move register handling for -mivc2 from
4727         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
4728         instead of option_mtiny_specified.
4729         (mep_handle_option): Access target_flags via opts pointer.  Don't
4730         assert that global structures are in use.  Defer part of -mivc2
4731         handling and move it to mep_option_override.
4732         * config/mep/mep.opt (IVC2): New Mask entry.
4733         (mivc2): Use Var and Defer instead of Mask.
4734
4735 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4736
4737         * config/v850/v850-opts.h: New.
4738         * config/v850/v850.c (small_memory): Replace with
4739         small_memory_physical_max array.  Make that array static const.
4740         (v850_handle_memory_option): Take integer value of argument.  Take
4741         gcc_options pointer, option text and location.  Return void.
4742         Update for changes to small memory structures.
4743         (v850_handle_option): Access target_flags via opts pointer.  Don't
4744         assert that global structures are in use.  Update calls to
4745         v850_handle_memory_option.
4746         (v850_encode_data_area): Update references to small memory settings.
4747         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4748         (enum small_memory_type): Move to v850-opts.h.
4749         * config/v850/v850.opt (config/v850/v850-opts.h): New
4750         HeaderInclude entry.
4751         (small_memory_max): New Variable entry.
4752         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
4753         (mtda, mzda): Likewise.
4754
4755 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4756
4757         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
4758         pointer.  Don't assert that global structures are in use.
4759
4760 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4761
4762         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
4763         via opts pointer.  Don't assert that global structures are in use.
4764
4765 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4766
4767         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
4768         (munix=93): Use Var.
4769         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
4770         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
4771         * config/pa/pa-opts.h: New.
4772         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
4773         (pa_handle_option): Don't assert that global structures are in
4774         use.  Access target_flags via opts pointer.  Don't handle
4775         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
4776         OPT_munix_98 here.
4777         (pa_option_override): Handle deferred OPT_mfixed_range_.
4778
4779 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4780
4781         * config/mn10300/mn10300-opts.h: New.
4782         * config/mn10300/mn10300.c (mn10300_processor,
4783         mn10300_tune_string): Remove.
4784         (mn10300_handle_option): Don't assert that global structures are
4785         in use.  Access mn10300_processor via opts pointer.  Don't handle
4786         OPT_mtune_ here.
4787         * config/mn10300/mn10300.h (enum processor_type): Move to
4788         mn10300-opts.h.
4789         (mn10300_processor): Remove.
4790         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
4791         HeaderInclude entry.
4792         (mn10300_processor): New Variable entry.
4793         (mtune=): Use Var.
4794
4795 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4796
4797         * config/microblaze/microblaze.c: Don't include opts.h.
4798         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
4799         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
4800         (mno-clearbss): Use Var and Warn.
4801
4802 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4803
4804         * config/m32r/m32r-opts.h: New.
4805         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
4806         (m32r_handle_option): Don't assert that global structures are in
4807         use.  Access target_flags and m32r_cache_flush_func via opts
4808         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
4809         OPT_mno_flush_trap here.
4810         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
4811         include of m32r-opts.h.
4812         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
4813         HeaderInclude entry.
4814         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
4815         (mmodel=): Use Enum and Var.
4816         (m32r_model): New Enum and EnumValue entries.
4817         (mno-flush-trap): Use Var.
4818         (msdata=): Use Enum and Var.
4819         (m32r_sdata): New Enum and EnumValue entries.
4820
4821 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4822
4823         * config/m32c/m32c.c: Don't include opts.h.
4824         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
4825         m32c_handle_option): Remove.
4826         (m32c_option_override): Check global_options_set.x_target_memregs
4827         instead of target_memregs_set.
4828         * config/m32c/m32c.h (target_memregs): Remove.
4829         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
4830         variable.
4831
4832 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4833
4834         * config/iq2000/iq2000-opts.h: New.
4835         * config/iq2000/iq2000.c: Don't include opts.h.
4836         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
4837         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
4838         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
4839         HeaderInclude entry.
4840         (iq2000_tune): New Variable entry.
4841         (march=): Add comment.  Use Enum.
4842         (iq2000_arch): New Enum and EnumValue entries.
4843         (mcpu=): Use Enum and Var.
4844         (iq2000_tune): New Enum and EnumValue entries.
4845
4846 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4847
4848         * config/ia64/ia64-opts.h: New.
4849         * config/ia64/ia64.c (ia64_tune): Remove.
4850         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
4851         here.  Use error_at.
4852         (ia64_option_override): Handle deferred OPT_mfixed_range_.
4853         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
4854         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
4855         HeaderInclude entry.
4856         (ia64_tune): New Variable entry.
4857         (mfixed-range=): Use Defer and Var.
4858         (mtune=): Use Enum and Var.
4859         (ia64_tune): New Enum and EnumValue entries.
4860
4861 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4862
4863         * config/frv/frv-opts.h: New.
4864         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
4865         frv-opts.h.
4866         (frv_cpu_type): Remove.
4867         * config/frv/frv.c: Don't include opts.h.
4868         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
4869         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
4870         (frv_cpu_type): New Variable entry.
4871         (frv_cpu): New Enum and EnumValue entries.
4872
4873 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4874
4875         * config/cris/cris.c (cris_handle_option): Access target_flags via
4876         opts pointer.  Don't assert that global structures are in use.
4877         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
4878         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
4879
4880 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4881
4882         * config/bfin/bfin-opts.h: New.
4883         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
4884         bfin_si_revision, bfin_workarounds): Remove.
4885         (bfin_cpus): Make static const.
4886         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
4887         not bfin_lib_id_given.
4888         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
4889         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
4890         pointer. Use error_at.  Don't assert that global structures are in use.
4891         * config/bfin/bfin.h: Include bfin-opts.h.
4892         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
4893         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
4894         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
4895         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
4896         entries.
4897
4898 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4899
4900         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
4901         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
4902         or -msoft-float here.
4903         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
4904         -msoft-float and -mhard-float.
4905         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
4906         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
4907         msoft-float.
4908         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
4909         -msoft-float.
4910         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
4911         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
4912         not mhard-float.
4913         (LIBGCC_SPEC): Don't handle -msoft-float.
4914         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
4915         -mhard-float.
4916         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
4917         msoft-float.
4918         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
4919         -mfloat-abi=*, not -msoft-float and -mhard-float.
4920         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
4921         -msoft-float.
4922         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
4923         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
4924         mhard-float and msoft-float.
4925         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
4926         mfloat-abi=soft in comments, not mhard-float and msoft-float.
4927         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
4928         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
4929         mhard-float.
4930         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
4931         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
4932         msoft-float.
4933         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
4934         not mhard-float.
4935         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
4936         not msoft-float.
4937
4938 2011-03-22  Richard Henderson  <rth@redhat.com>
4939
4940         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
4941         TARGET_ABI_WINDOWS_NT.
4942         (alpha_output_function_end_prologue): Likewise.
4943         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
4944         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
4945         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
4946         (trap, *movsi_nt_vms): Likewise.
4947         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
4948         (*tablejump_osf_nt_internal): Remove.
4949         * config/alpha/predicates.md (input_operand): Only test Pmode.
4950
4951 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4952
4953         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
4954         via opts pointer.  Use error_at.  Don't assert that global
4955         structures are in use.
4956
4957 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4958
4959         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
4960         (ix86_handle_option): Access ix86_isa_flags and
4961         ix86_isa_flags_explicit via opts pointer.  Don't assert that
4962         global structures are in use.
4963         (ix86_function_specific_save, ix86_function_specific_restore):
4964         Update ix86_isa_flags_explicit field name.
4965         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
4966         (ix86_isa_flags_explicit): Rename TargetSave entry to
4967         x_ix86_isa_flags_explicit.
4968
4969 2011-03-22  Richard Henderson  <rth@redhat.com>
4970
4971         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
4972         (alpha_option_override, direct_return): Likewise.
4973         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
4974         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
4975         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
4976         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
4977         (alpha_expand_epilogue, alpha_end_function): Likewise.
4978         (alpha_init_libfuncs): Likewise.
4979         (struct machine_function): Remove unicosmk members.
4980         (print_operand) ['t']: Remove.
4981         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
4982         unicosmk_output_module_name, unicosmk_output_common,
4983         current_section_align, unicosmk_output_text_section_asm_op,
4984         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
4985         unicosmk_section_type_flags, unicosmk_unique_section,
4986         unicosmk_asm_named_section, unicosmk_insert_attributes,
4987         unicosmk_output_align, unicosmk_defer_case_vector,
4988         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
4989         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
4990         unicosmk_output_ssib, unicosmk_add_call_info_word,
4991         unicosmk_extern_head, unicosmk_output_default_externs,
4992         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
4993         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
4994         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
4995         * config/alpha/alpha-protos.h: Update.
4996         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
4997         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
4998         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
4999         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
5000         (*mulsi_se, mulvsi3): Likewise.
5001         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
5002         (*divmodsi_internal, call, call_value, realign): Likewise.
5003         (moddi3, umoddi3): Likewise; remove duplicate expander.
5004         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
5005         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
5006         (*movdi_nofix): Remove r/U alternative.
5007         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
5008         * config/alpha/constraints.md ("U"): Remove.
5009         * config/alpha/predicates.md (call_operand"): Don't test
5010         TARGET_ABI_UNICOSMK.
5011
5012 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5013
5014         * target.def (handle_option): Take gcc_options and
5015         cl_decoded_option pointers and location_t.
5016         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
5017         * doc/tm.texi: Regenerate.
5018         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
5019         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
5020         * lto-opts.c (lto_reissue_options): Generate option structure for
5021         targetm.handle_option call.
5022         * opts.c (target_handle_option): Update call to
5023         targetm.handle_option.  Remove assertions about values now passed
5024         down to hook.
5025         * targhooks.c (default_target_handle_option): New.
5026         * targhooks.h (default_target_handle_option): Declare.
5027         * config/alpha/alpha.c: Include opts.h.
5028         (alpha_handle_option): Update to new hook interface.
5029         * config/arm/arm.c: Include opts.h.
5030         (arm_handle_option): Update to new hook interface.
5031         * config/arm/t-arm (arm.o): Update dependencies.
5032         * config/bfin/bfin.c: Include opts.h.
5033         (bfin_handle_option): Update to new hook interface.
5034         * config/cris/cris.c: Include opts.h.
5035         (cris_handle_option): Update to new hook interface.
5036         * config/frv/frv.c: Include opts.h.
5037         (frv_handle_option): Update to new hook interface.
5038         * config/i386/i386.c: Include opts.h.
5039         (ix86_handle_option): Update to new hook interface.
5040         (ix86_valid_target_attribute_inner_p): Generate option structure
5041         for call to ix86_handle_option.
5042         * config/i386/t-i386 (i386.o): Update dependencies.
5043         * config/ia64/ia64.c: Include opts.h.
5044         (ia64_handle_option): Update to new hook interface.
5045         * config/ia64/t-ia64 (ia64.o): Update dependencies.
5046         * config/iq2000/iq2000.c: Include opts.h.
5047         (iq2000_handle_option): Update to new hook interface.
5048         * config/m32c/m32c.c: Include opts.h.
5049         (m32c_handle_option): Update to new hook interface.
5050         * config/m32r/m32r.c: Include opts.h.
5051         (m32r_handle_option): Update to new hook interface.
5052         * config/m68k/m68k.c: Include opts.h.
5053         (m68k_handle_option): Update to new hook interface.
5054         * config/mep/mep.c: Include opts.h.
5055         (mep_handle_option): Update to new hook interface.
5056         * config/microblaze/microblaze.c: Include opts.h.
5057         (microblaze_handle_option): Update to new hook interface.
5058         * config/mips/mips.c: Include opts.h.
5059         (mips_handle_option): Update to new hook interface.
5060         * config/mn10300/mn10300.c: Include opts.h.
5061         (mn10300_handle_option): Update to new hook interface.
5062         * config/pa/pa.c: Include opts.h.
5063         (pa_handle_option): Update to new hook interface.
5064         * config/pdp11/pdp11.c: Include opts.h.
5065         (pdp11_handle_option): Update to new hook interface.
5066         * config/rs6000/rs6000.c: Include opts.h.
5067         (rs6000_handle_option): Update to new hook interface.
5068         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
5069         * config/rx/rx.c: Include opts.h.
5070         (rx_handle_option): Update to new hook interface.
5071         * config/s390/s390.c: Include opts.h.
5072         (s390_handle_option): Update to new hook interface.
5073         * config/score/score.c: Include opts.h.
5074         (score_handle_option): Update to new hook interface.
5075         * config/sh/sh.c: Include opts.h.
5076         (sh_handle_option): Update to new hook interface.
5077         * config/sparc/sparc.c: Include opts.h.
5078         (sparc_handle_option): Update to new hook interface.
5079         * config/v850/v850.c: Include opts.h.
5080         (v850_handle_option): Update to new hook interface.
5081
5082 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5083
5084         * gcc.c (driver_unknown_option_callback): Only permit and save
5085         unknown -Wno- options.
5086         (driver_wrong_lang_callback): Save options directly instead of via
5087         driver_unknown_option_callback.
5088
5089 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
5090
5091         * combine.c (simplify_set): Try harder to find the best CC mode when
5092         simplifying a nested COMPARE on the RHS.
5093
5094 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5095
5096         * config/alpha/gnu.h: Remove.
5097         * config/arc: Remove directory.
5098         * config/arm/netbsd.h: Remove.
5099         * config/arm/t-pe: Remove.
5100         * config/crx: Remove directory.
5101         * config/i386/netbsd.h: Remove.
5102         * config/m68hc11: Remove directory.
5103         * config/m68k/uclinux-oldabi.h: Remove.
5104         * config/mcore/mcore-pe.h: Remove.
5105         * config/mcore/t-mcore-pe: Remove.
5106         * config/netbsd-aout.h: Remove.
5107         * config/rs6000/gnu.h: Remove.
5108         * config/sh/sh-symbian.h: Remove.
5109         * config/sh/symbian-base.c: Remove.
5110         * config/sh/symbian-c.c: Remove.
5111         * config/sh/symbian-cxx.c: Remove.
5112         * config/sh/symbian-post.h: Remove.
5113         * config/sh/symbian-pre.h: Remove.
5114         * config/sh/t-symbian: Remove.
5115         * config/svr3.h: Remove.
5116         * config/vax/netbsd.h: Remove.
5117         * config.build: Don't handle i[34567]86-*-pe.
5118         * config.gcc: Remove handling of deprecations for most deprecated
5119         targets.
5120         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
5121         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
5122         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
5123         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
5124         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
5125         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
5126         Remove cases.
5127         * config.host: Don't handle i[34567]86-*-pe.
5128         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
5129         (ASM_SPEC32): Don't handle -mcall-gnu.
5130         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
5131         -mcall-gnu.
5132         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
5133         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
5134         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
5135         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
5136         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
5137         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
5138         conditional on SYMBIAN.
5139         * configure.ac: Don't handle powerpc*-*-gnu*.
5140         * configure: Regenerate.
5141         * doc/extend.texi (interrupt attribute): Don't mention CRX.
5142         * doc/install-old.texi (m6811, m6812): Don't mention.
5143         * doc/install.texi (arc-*-elf*): Don't document multilib option.
5144         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
5145         (m68k-uclinuxoldabi): Don't mention.
5146         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
5147         Remove.
5148         (-mcall-gnu): Remove.
5149         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
5150         families): Remove constraint documentation.
5151
5152 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
5153
5154         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
5155         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
5156         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
5157
5158 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
5159
5160         * config/avr/avr-protos.h (expand_epilogue): Change prototype
5161         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
5162         * config/avr/avr.c (init_cumulative_args)
5163         (avr_function_arg_advance): Use it.
5164         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
5165         sibcall epilogues.
5166         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
5167         (avr_function_ok_for_sibcall): ...this new function.
5168         (avr_lookup_function_attribute1): New static Function.
5169         (avr_naked_function_p, interrupt_function_p)
5170         (signal_function_p, avr_OS_task_function_p)
5171         (avr_OS_main_function_p): Use it.
5172         * config/avr/avr.md ("sibcall", "sibcall_value")
5173         ("sibcall_epilogue"): New expander.
5174         ("*call_insn", "*call_value_insn"): New insn.
5175         ("call_insn", "call_value_insn"): Remove
5176         ("call", "call_value", "epilogue"): Change expander to handle
5177         sibling calls.
5178
5179 2011-03-21  Nick Clifton  <nickc@redhat.com>
5180
5181         * doc/invoke.texi (Overall Options): Move closing brace to end of
5182         options list.
5183         (Optimization Options): Add missing @gol.
5184         (Directory Options): Likewise.
5185         (i386 and x86-64 Options): Likewise.
5186         (RS6000 and PowerPC Options): Likewise.
5187         (i386 and x86-64 Windows Options): Likewise.
5188         (V850 Options): Add text missing from descriptions.
5189
5190 2011-03-22  Richard Henderson  <rth@redhat.com>
5191
5192         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
5193         (avr_incoming_return_addr_rtx): New.
5194         (emit_push_byte): New.
5195         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
5196         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
5197         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
5198         (emit_pop_byte): New.
5199         (expand_epilogue): Use it.  Pop frame pointer by bytes.
5200         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
5201         (INCOMING_RETURN_ADDR_RTX): New.
5202         (INCOMING_FRAME_SP_OFFSET): New.
5203         (ARG_POINTER_CFA_OFFSET): New.
5204         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
5205         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
5206         (pophi): Remove.
5207
5208         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
5209
5210 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
5211
5212         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
5213         (FUNCTION_ARG_ADVANCE): Likewise.
5214         * tm.texi.in: Change references to them to hook references.
5215         * tm.texi: Regenerate.
5216         * targhooks.c (default_function_arg): Eliminate check for target
5217         macro.
5218         (default_function_incoming_arg): Likewise.
5219         (default_function_arg_advance): Likewise.
5220         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
5221         (function_arg_advance): Likewise.
5222         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
5223
5224 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
5225
5226         * tree.c (build_call_1): New function.
5227         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
5228
5229 2011-03-22  Richard Guenther  <rguenther@suse.de>
5230
5231         PR tree-optimization/48228
5232         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
5233         for single-arg PHIs.
5234
5235 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
5236
5237         PR rtl-optimization/48143
5238         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
5239         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
5240         sse2_cvtps2pd): Likewise.
5241
5242 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5243
5244         * recog.c (canonicalize_change_group): Use validate_unshare_change.
5245
5246 2011-03-22  Richard Guenther  <rguenther@suse.de>
5247
5248         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
5249         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
5250         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
5251         and REALIGN_LOAD_EXPR.
5252         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
5253         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
5254         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
5255         DOT_PROD_EXPR case ...
5256         (expand_expr_real_2): ... here.
5257         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
5258         and REALIGN_LOAD_EXPR.
5259         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
5260         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
5261         (vect_create_epilog_for_reduction): Likewise.
5262         (vectorizable_reduction): Likewise.
5263         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
5264         * tree-vect-stmts.c (vectorizable_load): Likewise.
5265
5266 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
5267
5268         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
5269
5270 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5271
5272         * config/s390/s390.c (s390_delegitimize_address): Fix offset
5273         handling for PLTOFF/GOTOFF.
5274
5275 2011-03-22  Nick Clifton  <nickc@redhat.com>
5276
5277         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
5278         trailing backslash from the end of the macro definition.
5279
5280 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5281
5282         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
5283         and PLT unspecs.
5284
5285 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
5286
5287         * expr.h (prepare_operand): Move to...
5288         * optabs.h (prepare_operand): ...here and change the insn code
5289         parameter from "int" to "enum insn_code".
5290         (insn_operand_matches): Declare.
5291         * expr.c (init_expr_target): Use insn_operand_matches.
5292         (compress_float_constant): Likewise.
5293         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
5294         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
5295         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
5296         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
5297         Likewise.
5298         (gen_cond_trap): Likewise.
5299         (prepare_operand): Likewise.  Change icode to an insn_code.
5300         (insn_operand_matches): New function.
5301         * reload.c (find_reloads_address_1): Use insn_operand_matches.
5302         * reload1.c (gen_reload): Likewise.
5303         * targhooks.c (default_secondary_reload): Likewise.
5304
5305 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
5306
5307         * config/alpha/alpha.md (unspec): New define_c_enum.
5308         (unspecv): Ditto.
5309
5310 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
5311
5312         PR debug/48214
5313         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
5314         between a call and its CALL_ARG_LOCATION note.
5315
5316 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
5317
5318         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
5319
5320 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
5321
5322         PR c/42544
5323         PR c/48197
5324         * c-common.c (shorten_compare): If primopN is first sign-extended
5325         to opN and then zero-extended to result type, set primopN to opN.
5326
5327 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
5328
5329         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
5330         for barrier handlers.
5331
5332 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
5333
5334         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
5335         UNSPEC constants to be in the unspec enumeration, and redefine
5336         all UNSPECV constants to be in the unspecv enumeration, so that
5337         dumps print which unspec/unspec_volatile this is.
5338         * config/rs6000/vector.md (UNSPEC_*): Ditto.
5339         * config/rs6000/paired.md (UNSPEC_*): Ditto.
5340         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
5341         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
5342         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
5343
5344         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
5345         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
5346         UNSPECV_LWSYNC, since these are used as unspec_volatile.
5347         * config/rs6000/sync.md (isync, lwsync): Ditto.
5348
5349 2011-03-21  Richard Guenther  <rguenther@suse.de>
5350
5351         * params.def (lto-min-partition): Fix typo.
5352
5353 2011-03-21  Richard Guenther  <rguenther@suse.de>
5354
5355         PR c/47939
5356         * c-decl.c (grokdeclarator): Drop to the main variant only
5357         for array types.  Drop flag_gen_aux_info check.
5358
5359 2011-03-21  Richard Guenther  <rguenther@suse.de>
5360
5361         PR translation/47911
5362         * params.def (lto-partitions): Fix typo.
5363         (lto-min-partition): Fix wording.
5364
5365 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
5366
5367         * config/rs6000/t-freebsd: Remove duplication from file.
5368
5369 2011-03-21  Richard Guenther  <rguenther@suse.de>
5370
5371         PR middle-end/47661
5372         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
5373
5374 2011-03-21  Richard Guenther  <rguenther@suse.de>
5375
5376         PR lto/48210
5377         * params.def (lto-partitions): Require at least 1 partition.
5378
5379 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5380
5381         * gthr-solaris.h: Remove.
5382         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
5383         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
5384         (LIB_SPEC): Likewise.
5385         * config/sol2.opt (threads): Remove.
5386         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
5387         (sparc*-*-solaris2*): Likewise.
5388         * configure.ac (enable_threads): Enable solaris support.
5389         * configure: Regenerate.
5390         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
5391         * doc/install.texi (Configuration, --enable-threads=lib): Remove
5392         solaris.
5393
5394 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5395
5396         * config.gcc: Obsolete *-*-solaris2.8*.
5397         * doc/install.texi (Specific, *-*-solaris2*): Document it.
5398
5399 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5400
5401         PR bootstrap/48135
5402         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
5403         reference.  Solaris 8 perl works.
5404
5405 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5406
5407         PR bootstrap/48135
5408         * doc/install.texi (Prerequisites): Move jar etc. up.
5409         Explain support library version requirements.
5410
5411 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5412
5413         PR bootstrap/48135
5414         * doc/install.texi (Prerequisites): Move Perl to build
5415         requirements.  Always necessary on Solaris 2 with Sun ld.
5416
5417 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5418
5419         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
5420         binutils 2.21.
5421         (Specific, i?86-*-solaris2.[89]): Likewise.
5422         (Specific, i?86-*-solaris2.10): Likewise.
5423         (Specific, mips-sgi-irix6): Likewise.
5424         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
5425         Update for binutils 2.21.
5426
5427 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5428
5429         * configure.ac (gcc_cv_lto_plugin): Fix typo.
5430         Allow -fuse-linker-plugin for non-default plugin linker.
5431         * configure: Regenerate.
5432
5433 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
5434
5435         PR bootstrap/48167
5436         * gengtype.c (files_rules): Added rule for cp/parser.h.
5437
5438 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
5439
5440         PR target/48213
5441         * config/s390/s390.c (s390_delegitimize_address): Don't call
5442         lowpart_subreg if orig_x has BLKmode.
5443
5444 2011-03-21  Kai Tietz  <ktietz@redhat.com>
5445
5446         PR target/12171
5447         * doc/plugins.texi: Adjust documentation for plugin register_callback.
5448         * tree.h (attribute_spec): Add new member affects_type_identity.
5449         * attribs.c (empty_attribute_table): Adjust attribute_spec
5450         initializers.
5451         * config/alpha/alpha.c: Likewise.
5452         * config/arc/arc.c: Likewise.
5453         * config/arm/arm.c: Likewise.
5454         * config/avr/avr.c: Likewise.
5455         * config/bfin/bfin.c: Likewise.
5456         * config/crx/crx.c: Likewise.
5457         * config/darwin.h: Likewise.
5458         * config/h8300/h8300.c: Likewise.
5459         * config/i386/cygming.h: Likewise.
5460         * config/i386/i386.c: Likewise.
5461         * config/ia64/ia64.c: Likewise.
5462         * config/m32c/m32c.c: Likewise.
5463         * config/m32r/m32r.c: Likewise.
5464         * config/m68hc11/m68hc11.c: Likewise.
5465         * config/m68k/m68k.c: Likewise.
5466         * config/mcore/mcore.c: Likewise.
5467         * config/mep/mep.c: Likewise.
5468         * config/microblaze/microblaze.c: Likewise.
5469         * config/mips/mips.c: Likewise.
5470         * config/rs6000/rs6000.c: Likewise.
5471         * config/rx/rx.c: Likewise.
5472         * config/sh/sh.c: Likewise.
5473         * config/sol2.h: Likewise.
5474         * config/sparc/sparc.c: Likewise.
5475         * config/spu/spu.c: Likewise.
5476         * config/stormy16/stormy16.c: Likewise.
5477         * config/v850/v850.c: Likewise.
5478
5479 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
5480
5481         * simplify-rtx.c (simplify_binary_operation_1): Handle
5482         (xor (and A B) C) case when B and C are both constants.
5483
5484 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
5485
5486         * tree-dfa.c (add_referenced_var): Fix typo in comment.
5487
5488 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
5489
5490         PR bootstrap/48168
5491         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
5492
5493 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
5494
5495         PR rtl-optimization/48156
5496         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
5497         assume df and df_lr are not NULL.
5498
5499 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5500
5501         PR debug/48023
5502         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
5503         between a call and its CALL_ARG_LOCATION note.
5504
5505 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
5506
5507         PR debug/48178
5508         * config/sh/sh.c (find_barrier): Don't emit a constant pool
5509         between a call and its corresponding CALL_ARG_LOCATION note.
5510
5511 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
5512
5513         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
5514         instead of loop. Use HARD_REGISTER_NUM_P predicate.
5515         * haifa-sched.c (setup_ref_regs): Ditto.
5516         * caller-save.c (add_used_regs_1): Ditto.
5517         * dse.c (look_for_hardregs): Ditto.
5518         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
5519         * sched-rgn.c (check_live_1): Ditto.
5520
5521 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
5522
5523         * c-decl.c (diagnose_mismatched_decls): Give an error for
5524         redefining a typedef with variably modified type.
5525
5526 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
5527
5528         * c-decl.c (grokfield): Don't allow typedefs for structures or
5529         unions with no tag by default.
5530         * doc/extend.texi (Unnamed Fields): Update.
5531
5532 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
5533
5534         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
5535         Rewrite using indirect functions.
5536         (lwp_slwpcb): Ditto.
5537         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
5538         (avx_vinsertf128<mode>): Ditto.
5539
5540 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5541
5542         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
5543         unspecs.
5544
5545 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5546
5547         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
5548         splitting between a call and its corresponding CALL_ARG_LOCATION note.
5549
5550 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
5551
5552         PR rtl-optimization/48170
5553         * gcse.c (hoist_code): Remove bogus asserts.
5554
5555 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
5556
5557         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
5558         computation for prologue/epilogue.
5559
5560 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5561
5562         * Makefile.in (check-consistency): Remove.
5563
5564 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
5565
5566         PR debug/48176
5567         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
5568         arange_table_in_use is 0, but either text_section_used or
5569         cold_text_section_used is true.  Don't call it if
5570         !info_section_emitted.
5571
5572 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
5573
5574         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
5575         FUNCTION_VALUE_REGNO_P): Remove.
5576         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
5577         Remove.
5578         * config/avr/avr.c (avr_ret_register): Make static inline.
5579         (avr_function_value_regno_p): New function.
5580         (avr_libcall_value): Make static. Add 'func' argument.
5581         (avr_function_value): Make static. Rename 'func' argument to
5582         'fn_decl_or_type', forward it to avr_libcall_value. Call
5583         avr_ret_register function instead of RET_REGISTER macro.
5584         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
5585
5586 2011-03-18  Jason Merrill  <jason@redhat.com>
5587
5588         PR c++/23372
5589         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
5590
5591 2011-03-18  Richard Guenther  <rguenther@suse.de>
5592
5593         * doc/install.texi (--enable-gold): Remove.
5594         (--with-plugin-ld): Document.
5595         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
5596
5597 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
5598
5599         PR middle-end/47790
5600         * expr.c (optimize_bitfield_assignment_op): Revamp to work
5601         again after expansion changes.
5602
5603 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
5604
5605         * combine.c (try_combine): Do simplification only call of
5606         subst() on i2 even when i1 is present. Update comments.
5607
5608 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
5609
5610         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
5611         and UNSPEC_PCREL_SYMOFF.
5612
5613 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5614
5615         * config/s390/s390.md: Use define_c_enum for the unspec constant
5616         definitions.
5617
5618 2011-03-18  Richard Henderson  <rth@redhat.com>
5619             Jakub Jelinek  <jakub@redhat.com>
5620
5621         PR bootstrap/48161
5622         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
5623         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
5624
5625 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5626
5627         PR middle-end/47725
5628         * combine.c (cant_combine_insn_p): Don't check zero/sign
5629         extended hard registers.
5630
5631 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5632
5633         PR middle-end/47725
5634         * combine.c (cant_combine_insn_p): Check zero/sign extended
5635         hard registers.
5636
5637 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
5638
5639         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
5640         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
5641         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
5642         Change return type to bool.
5643         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
5644
5645 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
5646
5647         PR debug/48163
5648         * var-tracking.c (prepare_call_arguments): If CALL target
5649         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
5650         pc instead of looking it up using cselib_lookup and use
5651         Pmode for it if x has VOIDmode.
5652         * dwarf2out.c (gen_subprogram_die): If also both first and
5653         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
5654
5655         PR debug/48163
5656         * function.c (assign_parms): For data.passed_pointer parms
5657         use MEM of data.entry_parm instead of data.entry_parm itself
5658         as DECL_INCOMING_RTL.
5659         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
5660         also when passed and declared mode is the same, DECL_RTL
5661         is a MEM with pseudo as address and DECL_INCOMING_RTL is
5662         a MEM too.
5663
5664 2011-03-16  Jeff Law  <law@redhat.com>
5665
5666         PR rtl-optimization/37273
5667         * ira-costs.c (scan_one_insn): Detect constants living in memory and
5668         handle them like argument loads from stack slots.  Do not double
5669         count memory for memory constants and argument loads from stack slots.
5670
5671 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5672
5673         PR debug/48160
5674         * var-tracking.c (prepare_call_arguments): Check SUBREG.
5675
5676 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5677
5678         PR target/48171
5679         * config/i386/i386.opt: Add Save to -mavx and -mfma.
5680
5681 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
5682
5683         PR bootstrap/48153
5684         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
5685         if dwarf_strict.
5686         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
5687         Clear call_arg_locations and call_arg_loc_last always.
5688
5689         PR middle-end/48152
5690         * var-tracking.c (prepare_call_arguments): If argument needs to be
5691         passed by reference, adjust argtype and mode.
5692
5693 2011-03-17  Richard Guenther  <rguenther@suse.de>
5694
5695         PR middle-end/48134
5696         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
5697         a value make sure to fold the statement.
5698
5699 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
5700
5701         PR target/43872
5702         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
5703         return condition with !cfun->calls_alloca.
5704
5705 2011-03-17  Richard Guenther  <rguenther@suse.de>
5706
5707         PR bootstrap/48148
5708         * lto-cgraph.c (input_overwrite_node): Clear the abstract
5709         origin for decls in other ltrans units.
5710         (input_varpool_node): Likewise.
5711
5712 2011-03-17  Richard Guenther  <rguenther@suse.de>
5713
5714         PR middle-end/48165
5715         * tree-object-size.c (compute_object_offset): Properly return
5716         the offset operand of MEM_REFs as sizetype.
5717
5718 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
5719
5720         PR rtl-optimization/48141
5721         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
5722         * dse.c: Include params.h.
5723         (active_local_stores_len): New variable.
5724         (add_wild_read, dse_step1): Clear it when setting active_local_stores
5725         to NULL.
5726         (record_store, check_mem_read_rtx): Decrease it when removing
5727         from the chain.
5728         (scan_insn): Likewise.  Increase it when adding to chain, if it
5729         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
5730         set active_local_stores to NULL before the addition.
5731         * Makefile.in (dse.o): Depend on $(PARAMS_H).
5732
5733         PR rtl-optimization/48141
5734         * dse.c (record_store): If no positions are needed in an insn
5735         that cannot be deleted, at least unchain it from active_local_stores.
5736
5737 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
5738
5739         PR debug/47510
5740         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
5741         (lookup_type_die_strip_naming_typedef): ... here.
5742         (get_context_die): Use it.
5743         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
5744         the anonymous struct named by the naming typedef.
5745
5746 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
5747
5748         PR target/48154
5749         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
5750         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
5751
5752 2011-03-16  Jeff Law  <law@redhat.com>
5753
5754         * tree-vrp.c (identify_jump_threads): Slightly simplify type
5755         check for operands of conditional.  Allow type to be a pointer.
5756
5757 2011-03-16  Richard Guenther  <rguenther@suse.de>
5758
5759         PR tree-optimization/48149
5760         * fold-const.c (fold_binary_loc): Fold
5761         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
5762
5763 2011-03-16  Richard Guenther  <rguenther@suse.de>
5764
5765         PR tree-optimization/26134
5766         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
5767         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
5768         (non_rewritable_mem_ref_base): Handle complex type component
5769         accesses, constrain offsets for vector and complex extracts
5770         more properly.
5771
5772 2011-03-16  Richard Guenther  <rguenther@suse.de>
5773
5774         PR tree-optimization/48146
5775         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
5776         operands avoiding the need for renaming.
5777
5778 2011-03-16  Richard Guenther  <rguenther@suse.de>
5779
5780         * gimple-fold.c (maybe_fold_reference): Open-code relevant
5781         constant folding.  Move MEM_REF canonicalization first.
5782         Rely on fold_const_aggregate_ref for initializer folding.
5783         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
5784
5785 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
5786
5787         PR middle-end/48136
5788         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
5789         arg0/arg1 or their arguments are always fold converted to matching
5790         types.
5791
5792         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
5793         to nargs.
5794
5795 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5796
5797         PR lto/46944
5798         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
5799         Handle in-tree gold.
5800         (ld_vers): Extract binutils version for gold.
5801         (gcc_cv_ld_hidden): Handle gold here.
5802         (gcc_cv_lto_plugin): Determine level of linker plugin support.
5803         * configure: Regenerate.
5804         * config.in: Regenerate.
5805         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
5806         -fuse-linker-plugin otherwise.
5807         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
5808         (LINK_COMMAND_SPEC): Use it.
5809         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
5810
5811 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
5812
5813         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
5814         * calls.c: Remove debug.h include.
5815         (emit_call_1): Don't call virtual_call_token debug hook.
5816         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
5817         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
5818         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
5819         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
5820         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
5821         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
5822         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
5823         dwarf2out_virtual_call): Remove.
5824         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
5825         copy_call_info and virtual_call hooks.
5826         (dwarf2out_init): Don't initialize vcall_insn_table,
5827         debug_dcall_section and debug_vcall_section.
5828         (prune_unused_types): Don't mark nodes from dcall_table.
5829         (dwarf2out_finish): Don't output dcall or vcall tables.
5830         * final.c (final_scan_insn): Don't call direct_call or
5831         virtual_call debug hooks.
5832         * debug.h (struct gcc_debug_hooks): Remove direct_call,
5833         virtual_call_token, copy_call_info and virtual_call hooks.
5834         (debug_nothing_uid): Remove prototype.
5835         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
5836         copy_call_info and virtual_call hooks.
5837         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5838         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
5839         * debug.c (do_nothing_debug_hooks): Likewise.
5840         (debug_nothing_uid): Remove.
5841         * doc/invoke.texi (-fenable-icf-debug): Remove.
5842         * common.opt (-fenable-icf-debug): Likewise.
5843
5844         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
5845         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
5846         call's MEM.  Handle functions returning aggregate through a hidden
5847         first pointer.  For virtual calls add clobbered pc to call arguments
5848         chain.
5849         * dwarf2out.c (gen_subprogram_die): Emit
5850         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
5851         can't be emitted.
5852
5853         PR debug/45882
5854         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
5855         * rtl.h (ENTRY_VALUE_EXP): Define.
5856         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
5857         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
5858         * print-rtl.c (print_rtx): Likewise.
5859         * gengtype.c (adjust_field_rtx_def): Likewise.
5860         * var-tracking.c (vt_add_function_parameter): Adjust
5861         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
5862         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
5863         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
5864         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
5865         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
5866
5867         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
5868         Call var_location debug hook even on CALL_INSNs.
5869         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
5870         * rtl.def (ENTRY_VALUE): New.
5871         * dwarf2out.c: Include cfglayout.h.
5872         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
5873         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
5874         (struct call_arg_loc_node): New type.
5875         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
5876         tail_call_site_count): New variables.
5877         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
5878         DW_TAG_GNU_call_site_parameter.
5879         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
5880         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
5881         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
5882         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
5883         and DW_AT_GNU_all_source_call_sites.
5884         (mem_loc_descriptor): Handle ENTRY_VALUE.
5885         (add_src_coords_attributes): Don't add enything if
5886         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
5887         (dwarf2out_abstract_function): Save and clear call_arg_location,
5888         call_site_count and tail_call_site_count around dwarf2out_decl call.
5889         (gen_call_site_die): New function.
5890         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
5891         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
5892         (dwarf2out_function_decl): Clear call_arg_locations,
5893         call_arg_loc_last, set call_site_count and tail_call_site_count
5894         to -1 and free block_map.
5895         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
5896         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
5897         followed by any real instructions.
5898         (dwarf2out_begin_function): Set call_site_count and
5899         tail_call_site_count to 0.
5900         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
5901         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
5902         attempt to force a DIE for it and worst case remove the attribute.
5903         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
5904         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
5905         the decl itself.
5906         * var-tracking.c: Include tm_p.h.
5907         (vt_stack_adjustments): For calls call note_register_arguments.
5908         (argument_reg_set): New variable.
5909         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
5910         ensure the VALUE is resolved.
5911         (call_arguments): New variable.
5912         (prepare_call_arguments): New function.
5913         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
5914         (struct expand_loc_callback_data): Add ignore_cur_loc field.
5915         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
5916         always use the best expression.
5917         (vt_expand_loc): Add ignore_cur_loc argument.
5918         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
5919         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
5920         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
5921         note for all calls.
5922         (vt_add_function_parameter): Use cselib_lookup_from_insn.
5923         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
5924         argument.  Don't call cselib_preserve_only_values and
5925         cselib_reset_table.
5926         (note_register_arguments): New function.
5927         (vt_initialize): Compute argument_reg_set.  Call
5928         vt_add_function_parameters before processing basic blocks instead of
5929         afterwards.  For calls call prepare_call_arguments before calling
5930         cselib_process_insn.
5931         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
5932         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
5933         (var-tracking.o): Depend on $(TM_P_H).
5934         * cfglayout.h (insn_scope): New prototype.
5935         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
5936         * cfglayout.c (insn_scope): No longer static.
5937         * insn-notes.def (CALL_ARG_LOCATION): New.
5938         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
5939         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
5940         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
5941         nothing for DECL_EXTERNAL BLOCK_VARS.
5942
5943 2011-03-16  Alan Modra  <amodra@gmail.com>
5944
5945         PR target/45844
5946         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
5947         create invalid offset address for vsx splat insn.
5948         * config/rs6000/predicates.md (splat_input_operand): New.
5949         * config/rs6000/vsx.md (vsx_splat_*): Use it.
5950
5951 2011-03-15  Xinliang David Li  <davidxl@google.com>
5952
5953         PR c/47837
5954         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
5955         (normalize_preds): New function.
5956         (is_use_properly_guarded): Normalize def predicates.
5957
5958 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5959
5960         PR target/46788
5961         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
5962         in the output template.
5963
5964 2011-03-15  Richard Guenther  <rguenther@suse.de>
5965
5966         PR middle-end/47650
5967         * tree-pretty-print.c (dump_function_declaration): Properly
5968         dump unprototyped and varargs function types.
5969
5970 2011-03-15  Richard Guenther  <rguenther@suse.de>
5971
5972         PR tree-optimization/13954
5973         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
5974         and friends.
5975
5976 2011-03-15  Richard Guenther  <rguenther@suse.de>
5977
5978         PR tree-optimization/48037
5979         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
5980         selects into BIT_FIELD_REFs.
5981         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
5982         vector select.
5983
5984 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
5985
5986         PR tree-optimization/48129
5987         * builtins.c (fold_builtin_snprintf): Convert to type of
5988         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
5989         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
5990
5991 2011-03-15  Richard Guenther  <rguenther@suse.de>
5992
5993         PR tree-optimization/41490
5994         * tree-ssa-dce.c (propagate_necessity): Handle returns without
5995         value but with VUSE.
5996         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
5997         return statements.
5998         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
5999         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
6000         * tree-tailcall.c (find_tail_calls): Ignore returns.
6001
6002 2011-03-15  Richard Guenther  <rguenther@suse.de>
6003
6004         PR middle-end/48031
6005         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
6006         or variable-indexed array accesses when in gimple form.
6007
6008 2011-03-15  Richard Guenther  <rguenther@suse.de>
6009
6010         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
6011
6012 2011-03-15  Alan Modra  <amodra@gmail.com>
6013
6014         PR target/48032
6015         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
6016         presume symbol_refs without a symbol_ref_decl are suitably
6017         aligned, nor other trees we may see here.  Handle anchor symbols.
6018         (legitimate_constant_pool_address_p): Comment.  Add mode param.
6019         Check cmodel=medium addresses.  Adjust all calls.
6020         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
6021         creating cmodel=medium optimized access to locals.
6022         * config/rs6000/constraints.md (R): Pass QImode to
6023         legitimate_constant_pool_address_p.
6024         * config/rs6000/predicates.md (input_operand): Pass mode to
6025         legitimate_constant_pool_address_p.
6026         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
6027         Update prototype.
6028
6029 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6030
6031         PR target/48053
6032         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
6033         64-bit constants being loaded into registers other than GPRs such
6034         as loading 0 into a VSX register.
6035
6036 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6037
6038         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
6039
6040 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
6041
6042         PR middle-end/47917
6043         * builtins.c (fold_builtin_snprintf): New function.
6044         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
6045         (fold_builtin_4): Likewise.
6046
6047         PR middle-end/38878
6048         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
6049         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
6050         and C - X == X also strip nops from +/-/p+ operand.
6051         When optimizing -X == C, fold C to arg0's type.
6052
6053         PR debug/47946
6054         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
6055         emit it as add_AT_int instead of add_AT_unsigned.
6056
6057 2011-03-14  Tom Tromey  <tromey@redhat.com>
6058
6059         * unwind-dw2.c: Include sys/sdt.h if it exists.
6060         (_Unwind_DebugHook): Use STAP_PROBE2.
6061         * config.in, configure: Rebuild.
6062         * configure.ac: Check for sys/sdt.h.
6063
6064 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
6065
6066         * config/i386/i386.md (ROUND_FLOOR): New constant.
6067         (ROUND_CEIL): Ditto.
6068         (ROUND_TRUNC): Ditto.
6069         (ROUND_MXCSR): Ditto.
6070         (ROUND_NO_EXC): Ditto.
6071         (rint<mode>2): Use new defines instead of numerical constants.
6072         (floor<mode>2): Ditto.
6073         (ceil<mode>2): Ditto.
6074         (btrunc<mode>2): Ditto.
6075         * config/i386/i386-builtin-types.def: Define ROUND function type
6076         aliases.
6077         * config/i386/i386.c (enum ix86_builtins): Add
6078         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
6079         (struct builtin_description): Add
6080         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
6081         (ix86_expand_sse_round): New static function.
6082         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
6083         function types.
6084         (ix86_builtin_vectorized_function): Handle
6085         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
6086
6087 2011-03-14  Tom Tromey  <tromey@redhat.com>
6088
6089         * c-parser.c (c_parser_asm_string_literal): Clear
6090         warn_overlength_strings.
6091
6092 2011-03-14  Tom Tromey  <tromey@redhat.com>
6093
6094         * c-parser.c (disable_extension_diagnostics): Save
6095         warn_overlength_strings.
6096         (restore_extension_diagnostics): Restore warn_overlength_strings.
6097
6098 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
6099
6100         * BASE-VER: Change to 4.7.0.
6101
6102 2011-03-14  Richard Guenther  <rguenther@suse.de>
6103
6104         PR middle-end/48098
6105         * tree.c (build_vector_from_val): Adjust assert to requirements
6106         and reality.
6107
6108 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
6109
6110         PR bootstrap/48102
6111         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
6112
6113 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
6114
6115         * config/rs6000/freebsd.h: (RELOCATABLE_NEEDS_FIXUP): Define in
6116         terms of target_flags_explicit. Adjust copyright year.
6117
6118         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
6119         * config/rs6000/t-freebsd: New file. Add override for
6120         LIB2FUNCS_EXTRA.
6121
6122 2011-03-13  Chris Demetriou  <cgd@google.com>
6123
6124         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
6125         (-fno-diagnostics-show-option): this, to reflect current default.
6126         (-Werror=): Update text about -fno-diagnostics-show-option.
6127
6128 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
6129
6130         PR target/48053
6131         * config/rs6000/predicates.md (easy_vector_constant_add_self,
6132         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
6133         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
6134         mode is not V2DImode or V2DFmode.
6135         (vspltis_constant): Do not handle V2DImode and V2DFmode.
6136         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
6137         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
6138         registers to 0.
6139         (movdi_internal64): Likewise.
6140
6141 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
6142
6143         PR tree-optimization/47127
6144         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
6145         parameter.
6146         (set_cloog_options): Same.
6147         (scop_to_clast): Same.
6148         (print_clast_stmt): Do not call cloog_state_malloc and
6149         cloog_state_free.
6150         (print_generated_program): Same.
6151         (gloog): Same.
6152         * graphite-clast-to-gimple.h (cloog_state): Declared.
6153         (scop_to_clast): Adjust declaration.
6154         * graphite.c (cloog_state): Defined here.
6155         (graphite_initialize): Call cloog_state_malloc.
6156         (graphite_finalize): Call cloog_state_free.
6157
6158 2011-03-11  Jason Merrill  <jason@redhat.com>
6159
6160         * attribs.c (lookup_attribute_spec): Take const_tree.
6161         * tree.h: Adjust.
6162
6163 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
6164
6165         * config/sparc/sparc.c (sparc_option_override): Use
6166         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
6167
6168 2011-03-11  Richard Guenther  <rguenther@suse.de>
6169
6170         PR tree-optimization/48067
6171         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
6172         multiplication result will be only used once on the target
6173         stmt.
6174
6175 2011-03-11  Richard Guenther  <rguenther@suse.de>
6176
6177         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
6178
6179 2011-03-11  Richard Guenther  <rguenther@suse.de>
6180
6181         PR lto/48073
6182         * tree.c (find_decls_types_r): Do not walk types only reachable
6183         from IDENTIFIER_NODEs.
6184
6185 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
6186
6187         PR middle-end/48044
6188         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
6189         all vnode->force_output nodes as needed.
6190
6191 2011-03-11  Jason Merrill  <jason@redhat.com>
6192
6193         PR c++/48069
6194         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
6195         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
6196
6197 2011-03-11  Martin Jambor  <mjambor@suse.cz>
6198
6199         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
6200         cgraph_node.
6201
6202 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
6203
6204         PR tree-optimization/48063
6205         * ipa-inline.c (cgraph_decide_inlining): Don't try to
6206         inline functions called once if !tree_can_inline_p (node->callers).
6207
6208 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
6209
6210         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
6211         extra_objs.
6212         * config/score/score3.c: Delete.
6213         * config/score/score3.h: Delete.
6214         * config/score/mul-div.S: Delete.
6215         * config/score/sfp-machine.h: Add new file.
6216         * config/score/constraints.md: Add new file.
6217         * config/score/t-score-softfp: Add new file.
6218         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
6219         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
6220         (score7_extra_constraint): Delete.
6221         (score7_option_override): Remove unused code.
6222         * config/score/score.c: Remove score3 and score5 define and code.
6223         * config/score/score.h: Remove score3 and score5 define and code.
6224         * config/score/score.md: Remove score3 template and unusual insn.
6225         * config/score/score.opt: Remove score3 and score5 options.
6226
6227 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6228
6229         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
6230         when _HPUX_SOURCE is defined.
6231         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
6232
6233 2011-03-10  Jason Merrill  <jason@redhat.com>
6234
6235         PR c++/48029
6236         * stor-layout.c (layout_type): Don't set structural equality
6237         on arrays of incomplete type.
6238         * tree.c (type_hash_eq): Handle comparing them properly.
6239
6240 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
6241
6242         PR debug/48043
6243         * config/s390/s390.c (s390_delegitimize_address): Make sure the
6244         result mode matches original rtl mode.
6245
6246 2011-03-10  Nick Clifton  <nickc@redhat.com>
6247
6248         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
6249         (andsi3, andsi3_flags): Fix timings for three operand alternative.
6250
6251 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
6252
6253         PR rtl-optimization/47866
6254         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
6255         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
6256         if target wasn't scalar.
6257         * function.c (assign_stack_temp_for_type): Assert that neither
6258         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
6259         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
6260         macro.
6261         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
6262
6263 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6264
6265         * config/s390/s390-protos.h (s390_label_align): New prototype.
6266         * config/s390/s390.c (s390_label_align): New function.
6267         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
6268
6269 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
6270
6271         PR target/47755
6272         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
6273         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
6274         (output_vec_const_move): Ditto.
6275
6276 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
6277
6278         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
6279         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
6280         * config/mips/mips.c (mips_preferred_reload_class): Make static.
6281         Change 'rclass' argument and result type to reg_class_t.
6282         (TARGET_PREFERRED_RELOAD_CLASS): Define.
6283
6284 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
6285
6286         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
6287         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
6288         (TARGET_MEMORY_MOVE_COST): Define.
6289         (avr_register_move_cost, avr_memory_move_cost): New Functions.
6290
6291 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
6292
6293         PR debug/47881
6294         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
6295         removed anything.
6296
6297         PR tree-optimization/48022
6298         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
6299         for EQ/NE_EXPR.
6300
6301 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
6302
6303         PR debug/47991
6304         * var-tracking.c (find_use_val): Return NULL for
6305         cui->sets && cui->store_p BLKmode MEMs.
6306
6307 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
6308
6309         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
6310         Remove.
6311         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
6312         xstormy16_print_operand_address): Remove.
6313         * config/stormy16/stormy16.c (xstormy16_print_operand,
6314         xstormy16_print_operand_address): Make static.
6315         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
6316
6317 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
6318
6319         PR target/47862
6320         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
6321         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
6322         before definition.
6323
6324 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
6325
6326         PR bootstrap/48000
6327         * cfgloopmanip.c (fix_bb_placements): Return immediately
6328         if FROM is BASE_LOOP's header.
6329
6330 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
6331
6332         * gimplify.c (gimplify_function_tree): Fix building calls
6333         to __builtin_return_address.
6334
6335 2011-03-07  Alan Modra  <amodra@gmail.com>
6336
6337         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
6338         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
6339         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
6340         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
6341         return_mode args.
6342         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
6343         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
6344         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
6345         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
6346         * config/rs6000/rs6000.c
6347         (rs6000_elf_end_indicate_exec_stack): Rename to..
6348         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
6349         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
6350         (rs6000_file_start): ..here.
6351         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
6352         file scope variables.
6353         (call_ABI_of_interest): New function.
6354         (init_cumulative_args): Set above vars when function return value
6355         is a float, vector, or small struct.
6356         (rs6000_function_arg_advance_1): Likewise for function args.
6357         (rs6000_va_start): Set rs6000_passes_float if variable arg function
6358         references float args.
6359
6360 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
6361
6362         * doc/cfg.texi: Remove "See" before @ref.
6363         * doc/invoke.texi: Likewise.
6364
6365 2011-03-05  Jason Merrill  <jason@redhat.com>
6366
6367         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
6368
6369 2011-03-05  Anthony Green  <green@moxielogic.com>
6370
6371         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
6372
6373 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
6374
6375         PR rtl-optimization/47899
6376         * cfgloopmanip.c (fix_bb_placements): Fix first argument
6377         to flow_loop_nested_p when moving the loop upward.
6378
6379 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
6380
6381         PR target/47719
6382         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
6383
6384 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
6385
6386         PR tree-optimization/47967
6387         * ipa-cp.c (build_const_val): Return NULL instead of creating
6388         VIEW_CONVERT_EXPR for mismatching sizes.
6389         (ipcp_create_replace_map): Return NULL if build_const_val failed.
6390         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
6391         give up on versioning.
6392
6393 2011-03-05  Alan Modra  <amodra@gmail.com>
6394
6395         PR target/47986
6396         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
6397         full cmodel medium/large lo_sum + high addresses.
6398
6399 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6400
6401         * config/s390/s390.c (s390_decompose_address): Reject non-literal
6402         pool references in UNSPEC_LTREL_OFFSET.
6403
6404 2011-03-04  Jan Hubicka  <jh@suse.cz>
6405
6406         PR lto/47497
6407         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
6408         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
6409         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
6410         Add node pointers.
6411         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
6412         cgraph_add_thunk): Add node pointers.
6413         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
6414         associated to right node.
6415         (input_node): Update use of cgraph_same_body_alias
6416         and cgraph_add_thunk.
6417
6418 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
6419
6420         * config/i386/i386.opt (mprefer-avx128): New flag.
6421         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
6422         modes when the flag -mprefer-avx128 is on.
6423
6424 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
6425
6426         * dwarf2out.c (compare_loc_operands): Fix address handling.
6427
6428 2011-03-04  Alan Modra  <amodra@gmail.com>
6429
6430         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
6431
6432 2011-03-04  Richard Guenther  <rguenther@suse.de>
6433
6434         PR middle-end/47968
6435         * expmed.c (extract_bit_field_1): Prefer vector modes that
6436         vec_extract patterns can handle.
6437
6438 2011-03-04  Richard Guenther  <rguenther@suse.de>
6439
6440         PR middle-end/47975
6441         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
6442
6443 2011-03-04  Richard Henderson  <rth@redhat.com>
6444
6445         * explow.c (emit_stack_save): Remove 'after' parameter.
6446         (emit_stack_restore): Likewise.
6447         * expr.h: Update to match.
6448         * builtins.c, calls.c, stmt.c: Likewise.
6449         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
6450         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
6451         * function.c (expand_function_end): Insert the emit_stack_save
6452         sequence before parm_birth_insn instead of after.
6453
6454 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
6455
6456         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
6457         (ssse3_pmaddubsw128): Ditto.
6458         (ssse3_pmaddubsw): Ditto.
6459
6460 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
6461
6462         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
6463
6464 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
6465
6466         PR c/47963
6467         * gimplify.c (omp_add_variable): Only call omp_notice_variable
6468         on TYPE_SIZE_UNIT if it is a DECL.
6469
6470         PR debug/47283
6471         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
6472         first operand is not is_gimple_mem_ref_addr, try to fold it.
6473         If the operand still isn't is_gimple_mem_ref_addr, clear
6474         MEM_EXPR on op0.
6475
6476 2011-03-03  Richard Guenther  <rguenther@suse.de>
6477
6478         PR middle-end/47283
6479         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
6480         match comment.
6481         (refs_may_alias_p_1): For release branches return true if
6482         we are confused by our input.
6483
6484 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6485
6486         * config/s390/s390.c (s390_function_value): Rename to ...
6487         (s390_function_and_libcall_value): ... this.
6488         (s390_function_value): New function.
6489         (s390_libcall_value): New function.
6490         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
6491         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
6492         target macro definitions.
6493         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
6494
6495 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
6496
6497         * config/i386/freebsd64.h (CC1_SPEC): Define.
6498         * config/i386/linux64.h (CC1_SPEC): Define.
6499         * config/i386/x86-64.h (CC1_SPEC): Don't define.
6500
6501 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
6502
6503         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
6504         Remove.
6505         * config/stormy16/stormy16.c: Include reload.h.
6506         (xstormy16_memory_move_cost): New function.
6507         (TARGET_MEMORY_MOVE_COST): Define.
6508
6509 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
6510
6511         PR rtl-optimization/47925
6512         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
6513         with side effects.  Remove the more-specific check for volatile asms.
6514
6515 2011-03-02  Alan Modra  <amodra@gmail.com>
6516
6517         PR target/47935
6518         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
6519         toc relative addresses for valid offsets.
6520
6521 2011-03-01  Richard Guenther  <rguenther@suse.de>
6522
6523         PR tree-optimization/47890
6524         * tree-vect-loop.c (get_initial_def_for_induction): Set
6525         related stmt properly.
6526
6527 2011-03-01  Richard Guenther  <rguenther@suse.de>
6528
6529         PR lto/47924
6530         * lto-streamer.c (lto_record_common_node): Also register
6531         the canonical type.
6532
6533 2011-03-01  Richard Guenther  <rguenther@suse.de>
6534
6535         PR lto/46911
6536         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
6537         Do not stream DECL_ABSTRACT_ORIGIN.
6538         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
6539         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
6540         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
6541         Do not stream DECL_ABSTRACT_ORIGIN.
6542         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
6543         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
6544
6545 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
6546
6547         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
6548         FUNCTION_VALUE_REGNO_P): Remove.
6549         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
6550         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
6551         Add 'outgoing' argument.
6552         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
6553         function.
6554         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6555         TARGET_FUNCTION_VALUE_REGNO_P): Define.
6556
6557 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
6558
6559         PR debug/28047
6560         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
6561         (lookup_filename): Likewise.
6562         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
6563
6564 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
6565             Jakub Jelinek  <jakub@redhat.com>
6566
6567         PR middle-end/47893
6568         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
6569         (assign_stack_local_1): Change last argument type to int.
6570         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
6571         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
6572         don't record padding space into frame_space_list nor use those areas.
6573         (assign_stack_local): Adjust caller.
6574         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
6575         of assign_stack_local, pass 0 as last argument.
6576         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
6577         callers.
6578
6579 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
6580
6581         PR debug/47283
6582         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
6583         Use target address_mode and pointer_mode hooks instead of hardcoded
6584         Pmode and ptr_mode.  Handle some simple cases of extending if
6585         POINTERS_EXTEND_UNSIGNED < 0.
6586         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
6587         Call convert_debug_memory_address.
6588         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
6589         convert_debug_memory_address.
6590
6591         PR middle-end/46790
6592         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
6593         * configure: Regenerated.
6594         * config.in: Regenerated.
6595         * varasm.c (default_function_section): Return NULL
6596         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
6597
6598 2011-02-28  Martin Jambor  <mjambor@suse.cz>
6599
6600         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
6601         the description to match the printed values.
6602
6603 2011-02-28  Richard Guenther  <rguenther@suse.de>
6604
6605         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
6606         of the copied scope tree.
6607
6608 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6609
6610         * doc/extend.texi (Function Attributes): Avoid deeply (and
6611         wrongly) nested tables.
6612
6613 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
6614
6615         PR middle-end/47903
6616         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
6617         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
6618         r isn't op0 nor op1.
6619
6620 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
6621
6622         * config/avr/avr.md: Remove magic comment for emacs.
6623
6624 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
6625
6626         PR target/45261
6627         * config/avr/avr.c (avr_option_override): Use error on bad options.
6628         (avr_help): New function.
6629         (TARGET_HELP): Define.
6630
6631 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
6632
6633         PR target/42240
6634         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
6635         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
6636
6637 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
6638
6639         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
6640         (ARM Options): Ditto.
6641         (i386 and x86-64 Options): Ditto.
6642         (RX Options): Ditto.
6643         (SPARC Options): Ditto.
6644
6645 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
6646
6647         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
6648         FreeBSD 6 and later.  Generally use cpu generic.
6649
6650 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
6651
6652         * doc/cpp.texi: Update copyright years.
6653
6654 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
6655
6656         PR target/46898
6657         * config/lm32/lm32.md (ashrsi3): Added needed variable.
6658
6659 2011-02-25  Jon Beniston  <jon@beniston.com>
6660
6661         PR target/46898
6662         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
6663         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
6664         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
6665         (lm32_block_move_inline): Add type cast to remove warning.
6666         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
6667         (gen_int_relational): Move declarations to start of function.
6668
6669 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
6670
6671         PR tree-optimization/45470
6672         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
6673         can throw internally only.
6674         * tree-vect-stmts.c (vectorizable_call): Likewise.
6675
6676 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
6677
6678         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
6679         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
6680         * config/stormy16/stormy16-protos.h
6681         (xstormy16_preferred_reload_class): Remove.
6682         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
6683         static. Change 'rclass' argument and return type to reg_class_t.
6684         (TARGET_PREFERRED_RELOAD_CLASS,
6685         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6686
6687 2011-02-24  Richard Guenther  <rguenther@suse.de>
6688
6689         * lto-streamer-in.c (input_bb): Do not find referenced vars
6690         in debug statements.
6691
6692 2011-02-23  Jason Merrill  <jason@redhat.com>
6693
6694         * common.opt (fabi-version): Document v5 and v6.
6695
6696 2011-02-23  Richard Guenther  <rguenther@suse.de>
6697
6698         PR tree-optimization/47849
6699         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
6700
6701 2011-02-23  Jie Zhang  <jie@codesourcery.com>
6702
6703         * opts-common.c (decode_cmdline_option): Print empty string
6704         argument as "" in decoded->orig_option_with_args_text.
6705         * gcc.c (execute): Print empty string argument as ""
6706         in the verbose output.
6707         (do_spec_1): Keep empty string argument.
6708
6709 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
6710
6711         * config.gcc: Declare score-* and crx-* obsolete.
6712
6713 2011-02-23  Jie Zhang  <jie@codesourcery.com>
6714
6715         PR rtl-optimization/47763
6716         * web.c (web_main): Ignore naked clobber when replacing register.
6717
6718 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
6719
6720         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
6721         Remove.
6722
6723 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
6724
6725         PR doc/47848
6726         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
6727
6728 2011-02-22  Mike Stump  <mikestump@comcast.net>
6729
6730         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
6731         assembler.
6732         * configure: Regenerate.
6733
6734 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
6735
6736         PR rtl-optimization/46002
6737         * ira-color.c (update_copy_costs): Change class intersection
6738         test to reg_class_contents[] test of 'hard_regno'.
6739
6740 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
6741
6742         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
6743         than Driver option.
6744         * config/hpux11.opt (mt): Likewise.
6745         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
6746         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
6747         * config/vax/elf.opt (mno-asm-pic): Likewise.
6748         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
6749
6750 2011-02-21  Mike Stump  <mikestump@comcast.net>
6751
6752         PR target/47822
6753         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
6754         tree so we can get save the type.
6755         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
6756         for CFString instead of trying to use past the end of the builtins.
6757         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
6758         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
6759         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
6760         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
6761         Rename to darwin_builtin_cfstring.
6762         (darwin_init_cfstring_builtins): Return the built type.
6763
6764 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
6765
6766         PR target/47840
6767         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
6768         (_mm256_insert_epi64): Use _mm_insert_epi64.
6769
6770 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
6771
6772         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
6773         * config/stormy16/stormy16-protos.h
6774         (xstormy16_mode_dependent_address_p): Remove.
6775         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
6776         Make static. Change return type to bool. Change argument type to
6777         const_rtx. Remove dead code.
6778         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6779
6780 2011-02-21  Richard Guenther  <rguenther@suse.de>
6781
6782         PR lto/47820
6783         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
6784         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
6785         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
6786         TUs context.
6787         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
6788         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
6789
6790 2011-02-20  Richard Guenther  <rguenther@suse.de>
6791
6792         PR lto/47822
6793         * tree.c (free_lang_data_in_decl): Clean builtins from
6794         the TU decl BLOCK_VARS.
6795
6796 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
6797
6798         PR debug/47620
6799         PR debug/47630
6800         * haifa-sched.c (fix_tick_ready): Skip tick computation
6801         for debug insns.
6802
6803 2011-02-19  Richard Guenther  <rguenther@suse.de>
6804
6805         PR lto/47647
6806         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
6807         Remove lazy BLOCK_VARS streaming.
6808         (lto_input_ts_block_tree_pointers): Likewise.
6809         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
6810
6811 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
6812
6813         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
6814
6815 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
6816
6817         * config/i386/biarch32.h, config/i386/mach.h,
6818         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
6819
6820 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
6821
6822         PR target/47800
6823         * config/i386/i386.md (peephole2 for shift and plus): Use
6824         operands[1] original mode in the first insn.
6825
6826 2011-02-18  Mike Stump  <mikestump@comcast.net>
6827
6828         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
6829
6830 2011-02-18  Jan Hubicka  <jh@suse.cz>
6831
6832         PR middle-end/47788
6833         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
6834         to zero when the function is not inlinable at all.
6835
6836 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6837
6838         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
6839         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
6840         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
6841         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
6842         * config/pa/t-pa64: Likewise.
6843         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
6844
6845 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
6846
6847         PR driver/47787
6848         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
6849
6850 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6851
6852         PR target/47792
6853         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
6854
6855 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
6856
6857         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
6858         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
6859         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
6860         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
6861         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
6862         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
6863         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
6864         m32r_load_postinc_p, m32r_store_preinc_predec_p,
6865         m32r_legitimate_address_p): New functions.
6866         * config/m32r/constraints.md (constraint "S"): Don't use
6867         STORE_PREINC_PREDEC_P.
6868         (constraint "U"): Don't use LOAD_POSTINC_P.
6869
6870 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
6871
6872         PR rtl-optimization/46178
6873         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
6874         compute ira_hard_regno_cover_class[].
6875
6876 2011-02-18  Richard Guenther  <rguenther@suse.de>
6877
6878         PR lto/47798
6879         * lto-streamer.h (lto_global_var_decls): Declare.
6880         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
6881         statics for global var processing.
6882
6883 2011-02-18  Richard Guenther  <rguenther@suse.de>
6884
6885         PR tree-optimization/47737
6886         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
6887         edge dominance check.
6888
6889 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
6890
6891         PR debug/47780
6892         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
6893         avoid invalid rtx sharing.
6894
6895 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
6896
6897         * doc/cpp.texi (Obsolete Features): Add background on the
6898         origin of assertions.
6899
6900 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
6901
6902         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
6903         objc_abi == 2.
6904         * config/darwin.c (output_objc_section_asm_op): Added support for
6905         ABI v1 and v2.
6906         (is_objc_metadata): New.
6907         (darwin_objc2_section): New.
6908         (darwin_objc1_section): New.
6909         (machopic_select_section): Added support for ABI v1 and v2.
6910         (darwin_emit_objc_zeroed): New.
6911         (darwin_output_aligned_bss): Detect objc metadata and treat it
6912         appropriately.
6913         (darwin_asm_output_aligned_decl_common): Same.
6914         (darwin_asm_output_aligned_decl_local): Same.
6915         * config/darwin-sections.def: Updated for ABI v1 and v2.
6916         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
6917         compiling Objective-C code for the NeXT runtime, default to using
6918         ABI version 0 for 32-bit, and version 2 for 64-bit.
6919
6920 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6921
6922         * common.opt (optimize_fast): New Variable.
6923         * opts.c (default_options_optimization): Use opts->x_optimize_fast
6924         instead of local variable ofast.
6925
6926 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
6927
6928         * doc/invoke.texi (fobjc-abi-version): Documented.
6929         (fobjc-nilcheck): Documented.
6930         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
6931         version.
6932
6933 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6934
6935         PR driver/47390
6936         * common.opt (export-dynamic): New Driver option.
6937         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
6938
6939 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6940
6941         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
6942
6943 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
6944             Jan Hubicka  <jh@suse.cz>
6945
6946         PR debug/47106
6947         PR debug/47402
6948         * cfgexpand.c (account_used_vars_for_block): Remove.
6949         (estimated_stack_frame_size): Use referenced vars.
6950         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
6951         that were referenced in the original function.  Test src_fn
6952         rather than cfun.  Drop redundant get_var_ann.
6953         (setup_one_parameter): Drop redundant get_var_ann.
6954         (declare_return_variable): Likewise.
6955         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
6956         (copy_arguments_for_versioning): Drop redundant get_var_ann.
6957         * ipa-inline.c (compute_inline_parameters): Do not compute
6958         disregard_inline_limits here.
6959         (compute_inlinable_for_current, pass_inlinable): New.
6960         (pass_inline_parameters): Require PROP_referenced_vars.
6961         * cgraphunit.c (cgraph_process_new_functions): Don't run
6962         compute_inline_parameters explicitly unless function is in SSA form.
6963         (cgraph_analyze_function): Set .disregard_inline_limits.
6964         * tree-sra.c (convert_callers): Compute inliner parameters
6965         only for functions already in SSA form.
6966
6967 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6968
6969         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
6970         -mlittle-endian-data.
6971
6972 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6973
6974         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
6975         -mno-fpu, not -fpu and -no-fpu.
6976         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
6977         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
6978
6979 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
6980
6981         PR target/43653
6982         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
6983         input reload with PLUS RTX.
6984
6985 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6986
6987         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
6988         of InverseVar(MDMX).
6989
6990 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6991
6992         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
6993         --m4-340.
6994
6995 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6996
6997         * config/mn10300/mn10300.opt (mno-crt0): New.
6998
6999 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
7000
7001         * config/m68k/uclinux.opt (static-libc): New Driver option.
7002
7003 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
7004
7005         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
7006
7007 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
7008
7009         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
7010         %{muser-extend-enabled}.
7011
7012 2011-02-16  Richard Guenther  <rguenther@suse.de>
7013
7014         PR tree-optimization/47738
7015         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
7016         the TODO from tree_predictive_commoning.
7017
7018 2011-02-15  Jeff Law  <law@redhat.com>
7019
7020         Revert
7021         2011-01-25  Jeff Law  <law@redhat.com>
7022
7023         PR rtl-optimization/37273
7024         * ira-costs.c (scan_one_insn): Detect constants living in memory and
7025         handle them like argument loads from stack slots.  Do not double
7026         count memory for memory constants and argument loads from stack slots.
7027
7028 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
7029
7030         PR middle-end/47725
7031         * combine.c (cant_combine_insn_p): Revert the last change.
7032
7033 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
7034
7035         PR target/47755
7036         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
7037         mode for vector constants.  Remove code that checks for TImode.
7038
7039 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
7040
7041         PR debug/47106
7042         PR debug/47402
7043         * cgraph.h (compute_inline_parameters): Return void.
7044         * ipa-inline.c (compute_inline_parameters): Adjust.
7045
7046 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
7047
7048         PR debug/47106
7049         PR debug/47402
7050         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
7051         rather than decl.
7052         * cfgexpand.c (estimated_stack_frame_size): Likewise.
7053         * ipa-inline.c (compute_inline_parameters): Adjust.
7054
7055 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
7056
7057         PR debug/47106
7058         PR debug/47402
7059         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
7060         Adjust all users.  Pass FN to...
7061         * tree-flow-inline.h (first_referenced_var): ... this.  Add
7062         fn argument.
7063         * ipa-struct-reorg.c: Adjust.
7064         * tree-dfa.c: Adjust.
7065         * tree-into-ssa.c: Adjust.
7066         * tree-sra.c: Adjust.
7067         * tree-ssa-alias.c: Adjust.
7068         * tree-ssa-live.c: Adjust.
7069         * tree-ssa.c: Adjust.
7070         * tree-ssanames.c: Adjust.
7071         * tree-tailcall.c: Adjust.
7072
7073 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
7074
7075         PR debug/47106
7076         PR debug/47402
7077         * tree-flow.h (referenced_var_lookup): Add fn parameter.
7078         Adjust all callers.
7079         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
7080         * tree-flow-inline.h: Adjust.
7081         * gimple-pretty-print.c: Adjust.
7082         * tree-into-ssa.c: Adjust.
7083         * tree-ssa.c: Adjust.
7084         * cfgexpand.c: Adjust.
7085
7086 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
7087
7088         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
7089         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7090         (EXTRA_CONSTRAINT): Delete.
7091         * config/iq2000/constraints.md: New file.
7092         * config/iq2000/iq2000.md: Include it.
7093         (define_insn ""): Delete.
7094         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
7095         unsupported constraint letters from patterns.
7096         (call_value, call_value_internal1): Likewise.
7097         (call_value_multiple_internal1): Likewise.
7098
7099 2011-02-15  Nick Clifton  <nickc@redhat.com>
7100
7101         * config/mn10300/mn10300.c: Include tm-constrs.h.
7102         (struct liw_data): New data structure describing an LIW candidate
7103         instruction.
7104         (extract_bundle): Use struct liw_data.  Allow small integer
7105         operands for some instructions.
7106         (check_liw_constraints): Use struct liw_data.  Remove swapped
7107         parameter.  Add comments describing the checks.  Fix bug when
7108         assigning the source of liw1 to the source of liw2.
7109         (liw_candidate): Delete.  Code moved into extract_bundle.
7110         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
7111         before swapping.
7112         * config/mn10300/predicates.md (liw_operand): New predicate.
7113         Allows registers and small integer constants.
7114         * config/mn10300/constraints.md (O): New constraint.  Accetps
7115         integers in the range -8 to +7 inclusive.
7116         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
7117         for moving a small integer into a register.  Give this alternative
7118         LIW attributes.
7119         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
7120         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
7121         using the J,K,L and M constraints,
7122         (liw): Remove SI mode on second operands to allow for HI and QI
7123         mode values.
7124         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
7125         instruction.
7126
7127 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
7128
7129         PR middle-end/47725
7130         * combine.c (cant_combine_insn_p): Check zero/sign extended
7131         hard registers.
7132
7133 2011-02-15  Richard Guenther  <rguenther@suse.de>
7134
7135         PR tree-optimization/47743
7136         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
7137         for a non-type-compatible VN lookup bail out.
7138
7139 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
7140
7141         * config/fr30/constraints.md: New file.
7142         * config/fr30/fr30.md: Include it.
7143         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
7144         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7145         (EXTRA_CONSTRAINT): Delete.
7146
7147 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
7148
7149         * config/frv/constraints.md: New file.
7150         * config/frv/predicates.md: Include it.
7151         * config/frv/frv.c (reg_class_from_letter): Delete.
7152         (frv_option_override): Don't initialize it.
7153         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
7154         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
7155         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
7156         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
7157         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
7158         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7159         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
7160         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
7161         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
7162         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
7163         (REG_CLASS_FROM_CONSTRAINT): Delete.
7164
7165 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
7166
7167         PR middle-end/47581
7168         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
7169         if frame size is 0 in a leaf function.
7170
7171 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7172
7173         PR pch/14940
7174         * config/alpha/host-osf.c: New file.
7175         * config/alpha/x-osf: New file.
7176         * config.host (alpha*-dec-osf*): Use it.
7177
7178 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
7179
7180         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
7181         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
7182         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
7183         (rx_mode_dependent_address_p): ...this. Make static. Change argument
7184         type to const_rtx.
7185         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7186
7187 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
7188
7189         * config/stormy16/constraints.md: New file.
7190         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
7191         Use satisfies_constraint_Q and satisfies_constraint_R.
7192         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
7193         Delete.
7194         (xstormy16_legitiamte_address_p): Declare.
7195         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
7196         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7197         (EXTRA_CONSTRAINT): Delete.
7198         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
7199         Un-staticize.
7200         (xstormy16_extra_constraint_p): Delete.
7201
7202 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
7203
7204         PR tree-optimization/46494
7205         * loop-unroll.c (split_edge_and_insert): Adjust comment.
7206         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
7207         (pass_rtl_loop_done): Add TODO_verify_flow.
7208         * fwprop.c (pass_rtl_fwprop): Likewise.
7209         * modulo-sched.c (pass_sms): Likewise.
7210         * tree-ssa-dom.c (pass_dominator): Likewise.
7211         * tree-ssa-loop-ch.c (pass_ch): Likewise.
7212         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
7213         (pass_tree_loop_done): Likewise.
7214         * tree-ssa-pre.c (execute_pre): Likewise.
7215         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
7216         * tree-ssa-sink.c (pass_sink_code): Likewise.
7217         * tree-vrp.c (pass_vrp): Likewise.
7218
7219 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
7220
7221         * config/v850/constraints.md: New file.
7222         * config/v850/v850.md: Include it.
7223         * config/v850/predicates.md (reg_or_0_operand): Use
7224         satisfies_constraint_G.
7225         (special_symbolref_operand): Use satisfies_constraint_K.
7226         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
7227         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
7228         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
7229         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
7230         (EXTRA_CONSTRAINT): Delete.
7231         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
7232         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
7233         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
7234
7235 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
7236
7237         PR target/47696
7238         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
7239         description.
7240
7241 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
7242
7243         * config/mcore/constraints.md: New file.
7244         * config/mcore/mcore.md: Include it.
7245         * config/mcore/mcore.c (reg_class_from_letter): Delete.
7246         * config/mcore/mcore.h (reg_class_from_letter): Delete.
7247         (REG_CLASS_FROM_LETTER): Delete.
7248         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
7249         insn_const_int_ok_for_constraint.
7250         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
7251         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
7252         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7253         (EXTRA_CONSTRAINT): Delete.
7254
7255 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7256
7257         PR ada/41929
7258         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
7259         (IS_SIGHANDLER): Define.
7260         (sparc64_is_sighandler): New function, split off from
7261         sparc64_fallback_frame_state.
7262         (sparc_is_sighandler): New function, split off from
7263         sparc_fallback_frame_state.
7264         (sparc64_fallback_frame_state): Merge with ...
7265         (sparc_fallback_frame_state): ... this into ...
7266         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
7267         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
7268         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
7269         stack instead of hardcoded offsets.
7270
7271 2011-02-14  Andriy Gapon  <avg@freebsd.org>
7272
7273         PR target/45808
7274         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
7275
7276 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7277
7278         * configure: Regenerate.
7279
7280 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
7281
7282         PR driver/45731
7283         * gcc.c (asm_options): Correct spec matching --target-help.
7284
7285 2011-02-12  Martin Jambor  <mjambor@suse.cz>
7286
7287         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
7288         to gimple call error.
7289
7290 2011-02-12  Mike Stump  <mikestump@comcast.net>
7291
7292         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
7293         comments in backslash regions.
7294
7295 2011-02-12  Mike Stump  <mikestump@comcast.net>
7296             Jakub Jelinek  <jakub@redhat.com>
7297             Iain Sandoe  <iains@gcc.gnu.org>
7298
7299         PR target/47324
7300         * dwarf2out.c (output_cfa_loc): When required, apply the
7301         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
7302         (output_loc_sequence): Likewise.
7303         (output_loc_operands_raw): Likewise.
7304         (output_loc_sequence_raw): Likewise.
7305         (output_cfa_loc): Likewise.
7306         (output_loc_list): Suppress register number adjustment when
7307         calling output_loc_sequence()
7308         (output_die): Likewise.
7309
7310 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
7311
7312         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
7313         Remove macros.
7314         * config/xtensa/xtensa.c (xtensa_register_move_cost,
7315         xtensa_memory_move_cost): New functions.
7316         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
7317
7318 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
7319
7320         PR lto/47225
7321         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
7322         in the current directory.
7323         * configure: Rebuilt.
7324
7325 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
7326
7327         * config/darwin.c (darwin_override_options): Add a hunk missed
7328         from the commit of r168571.  Trim comment line lengths and
7329         correct indents of the preceding block.
7330
7331 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
7332
7333         * gcc.c (driver_handle_option): Concatenate the argument to -F with
7334         the switch.
7335
7336 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
7337
7338         * common.opt (nostartfiles): New Driver option.
7339
7340 2011-02-11  Xinliang David Li  <davidxl@google.com>
7341
7342         PR tree-optimization/47707
7343         * tree-chrec.c (convert_affine_scev): Keep type precision.
7344
7345 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
7346
7347         PR tree-optimization/47420
7348         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
7349
7350 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
7351
7352         PR rtl-optimization/47614
7353         * rtl.h (check_for_inc_dec): Declare.
7354         * dse.c (check_for_inc_dec): Externalize...
7355         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
7356         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
7357
7358 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
7359
7360         PR driver/47678
7361         * gcc.c (main): Do not compile inputs if there were errors in
7362         option handling.
7363         * opts-common.c (read_cmdline_option): Check for wrong language
7364         after other error checks.
7365
7366 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
7367
7368         * cgraph.c: Fix comment typos.
7369         * cgraph.h: Likewise.
7370         * cgraphunit.c: Likewise.
7371         * ipa-cp.c: Likewise.
7372         * ipa-inline.c: Likewise.
7373         * ipa-prop.c: Likewise.
7374         * ipa-pure-const.c: Likewise.
7375         * ipa-ref.c: Likewise.
7376         * ipa-reference.c: Likewise.
7377
7378 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
7379
7380         PR debug/47684
7381         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
7382
7383 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7384
7385         PR testsuite/47400
7386         * doc/sourcebuild.texi (Require Support): Document
7387         dg-require-ascii-locale.
7388
7389 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
7390
7391         * doc/lto.texi (Write summary): Fix missing parentheses.
7392
7393 2011-02-10  DJ Delorie  <dj@redhat.com>
7394
7395         * config/m32c/m32c.c (m32c_option_override): Disable
7396         -fcombine-stack-adjustments until flag value tracking and compare
7397         optimization can be rewritten.
7398
7399 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
7400
7401         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
7402         PROCESSOR_POWER7.
7403         (PROCESSOR_DEFAULT64): Likewise.
7404
7405 2011-02-10  Richard Henderson  <rth@redhat.com>
7406
7407         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
7408         change from 2011-02-03.
7409         * config/rx/rx.c (flags_from_code): Likewise.
7410         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
7411         is valid, n/pz otherwise.
7412         (rx_select_cc_mode): Return CCmode if Y is not zero.
7413
7414 2011-02-10  Richard Guenther  <rguenther@suse.de>
7415
7416         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
7417
7418 2011-02-10  Richard Guenther  <rguenther@suse.de>
7419
7420         PR tree-optimization/47677
7421         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
7422
7423 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
7424
7425         PR target/47665
7426         * combine.c (make_compound_operation): Only change shifts into
7427         multiplication for SCALAR_INT_MODE_P.
7428
7429 2011-02-10  Jie Zhang  <jie@codesourcery.com>
7430
7431         PR testsuite/47622
7432         Revert
7433         2011-02-05  Jie Zhang  <jie@codesourcery.com>
7434         PR debug/42631
7435         * web.c (entry_register): Don't clobber the number of the
7436         first uninitialized reference in used[].
7437
7438 2011-02-09  Richard Guenther  <rguenther@suse.de>
7439
7440         PR tree-optimization/47664
7441         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
7442         all edges again.
7443
7444 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
7445
7446         PR target/46481
7447         PR target/47032
7448         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
7449         PROCESSOR_POWER7.
7450         (PROCESSOR_DEFAULT64): Same.
7451         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
7452
7453 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7454
7455         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
7456
7457 2011-02-09  Martin Jambor  <mjambor@suse.cz>
7458
7459         PR middle-end/45505
7460         * tree-sra.c (struct access): New flags grp_scalar_read and
7461         grp_scalar_write.  Changed description of assignment read and write
7462         flags.
7463         (dump_access): Dump new flags, reorder all of them.
7464         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
7465         to detect multiple scalar reads.
7466         (analyze_access_subtree): Use the new scalar read write flags instead
7467         of the old flags.  Adjusted comments.
7468
7469 2011-02-08  DJ Delorie  <dj@redhat.com>
7470
7471         PR target/47548
7472         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
7473         patterns.
7474
7475 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7476
7477         * config/m68k/uclinux.opt: New.
7478         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
7479
7480 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7481
7482         * config/cris/elf.opt (sim): New Driver option.
7483
7484 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7485
7486         * config/xtensa/elf.opt: New.
7487         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
7488
7489 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7490
7491         * config/vax/elf.opt: New.
7492         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
7493
7494 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7495
7496         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
7497
7498 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7499
7500         * config/gnu-user.opt: New.
7501         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
7502         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
7503         *-*-uclinux*): Use gnu-user.opt.
7504
7505 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
7506
7507         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
7508         * config/i386/gnu.h (CPP_SPEC): Likewise.
7509
7510 2011-02-08  Ian Lance Taylor  <iant@google.com>
7511
7512         * common.opt (fcx-limited-range): Add SetByCombined flag.
7513         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
7514         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
7515         (fassociative-math, freciprocal-math): Likewise.
7516         (funsafe-math-optimizations): Likewise.
7517         * opth-gen.awk: Handle SetByCombined.
7518         * optc-gen.awk: Likewise.
7519         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
7520         (set_unsafe_math_optimizations_flags): Likewise.
7521         * doc/options.texi (Option properties): Document SetByCombined.
7522
7523 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7524
7525         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
7526         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
7527         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
7528         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
7529         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
7530
7531 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
7532
7533         PR tree-optimization/46834
7534         PR tree-optimization/46994
7535         PR tree-optimization/46995
7536         * graphite-sese-to-poly.c (used_outside_reduction): New.
7537         (detect_commutative_reduction): Call used_outside_reduction.
7538         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
7539         translate_scalar_reduction_to_array only when at least one
7540         loop-phi/close-phi tuple has been detected.
7541
7542 2011-02-08  Richard Guenther  <rguenther@suse.de>
7543
7544         PR middle-end/47639
7545         * tree-vect-generic.c (expand_vector_operations_1): Update
7546         stmts here ...
7547         (expand_vector_operations): ... not here.  Cleanup EH info
7548         and the CFG if required.
7549
7550 2011-02-08  Richard Guenther  <rguenther@suse.de>
7551
7552         PR tree-optimization/47641
7553         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
7554         require type compatibility.
7555
7556 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7557
7558         * gimple-low.c (lower_function_body): Don't remove the location of
7559         the return statement here.
7560         (lower_gimple_return): Do it here instead but only if the return
7561         statement is actually used twice.
7562
7563 2011-02-08  Richard Guenther  <rguenther@suse.de>
7564
7565         PR tree-optimization/47632
7566         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
7567         unused up_to_stmt parameter, return whether cfg-cleanup is
7568         necessary, remove EH info properly.
7569         (forward_propagate_into_gimple_cond): Adjust caller.
7570         (forward_propagate_into_cond): Likewise.
7571         (forward_propagate_comparison): Likewise.
7572         (tree_ssa_forward_propagate_single_use_vars): Make
7573         forward_propagate_comparison case similar to the two others.
7574
7575 2011-02-08  Nick Clifton  <nickc@redhat.com>
7576
7577         * config/mn10300/mn10300.opt (mliw): New command line option.
7578         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
7579         (liw_bundling): New automaton.
7580         (liw): New attribute.
7581         (liw_op): New attribute.
7582         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
7583         (movsi_internal): Add LIW attributes.
7584         (andsi3): Likewise.
7585         (iorsi3): Likewise.
7586         (xorsi3): Likewise.
7587         (addsi3): Separate register and immediate alternatives.
7588         Add LIW attributes.
7589         (subsi3): Likewise.
7590         (cmpsi): Likewise.
7591         (aslsi3): Likewise.
7592         (lshrsi3): Likewise.
7593         (ashrsi3): Likewise.
7594         (liw): New pattern.
7595         * config/mn10300/mn10300.c (liw_op_names): New
7596         (mn10300_print_operand): Handle 'W' operand descriptor.
7597         (extract_bundle): New function.
7598         (check_liw_constraints): New function.
7599         (liw_candidate): New function.
7600         (mn10300_bundle_liw): New function.
7601         (mn10300_reorg): New function.
7602         (TARGET_MACHINE_DEPENDENT_REORG): Define.
7603         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
7604         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
7605         __LIW__ or __NO_LIW__.
7606         * doc/invoke.texi: Describe the -mliw command line option.
7607
7608 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7609
7610         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
7611         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
7612         pthread_mutex_unlock): Remove.
7613         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
7614         * config/pa/t-pa64: Likewise.
7615         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
7616         shared libc if not linking against libpthread.
7617         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
7618
7619 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
7620
7621         PR target/47558
7622         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
7623         on 10.6 and later to ensure that we always use the unwinder from
7624         the system.  Only add -no_compact_unwind when tarteting darwin
7625         10.6 or later.
7626
7627 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
7628
7629         PR target/46997
7630         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
7631         (vec_interleave_lowv2sf): Ditto.
7632         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
7633         (vec_extract_oddv2sf): Ditto.
7634
7635 2011-02-07  Mike Stump  <mikestump@comcast.net>
7636
7637         PR target/42333
7638         Add __ieee_divdc3 entry point.
7639         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
7640         entry point.
7641         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
7642         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
7643         * config/darwin.c (darwin_rename_builtins): Add.
7644         * config/darwin-protos.h (darwin_rename_builtins): Add.
7645
7646 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
7647
7648         PR target/47636
7649         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
7650         for the condition.
7651
7652 2011-02-07  Mike Stump  <mikestump@comcast.net>
7653
7654         * config/darwin.opt (mmacosx-version-min): Update default OS version.
7655
7656 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
7657
7658         PR target/47534
7659         * config/avr/libgcc.S (exit): Move .endfunc
7660
7661 2011-02-07  Richard Guenther  <rguenther@suse.de>
7662
7663         PR tree-optimization/47615
7664         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
7665         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
7666         (run_scc_vn): Initialize it.
7667         (visit_reference_op_load): Use it.
7668         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
7669
7670 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7671
7672         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
7673         DImode trapping arithmetic libfuncs.
7674
7675 2011-02-07  Richard Guenther  <rguenther@suse.de>
7676
7677         PR tree-optimization/47621
7678         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
7679         two duplicates ...
7680         (execute_update_addresses_taken): ... here.  Make it more
7681         conservative in what we accept.
7682
7683 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
7684
7685         * config/sparc/freebsd.h (ASM_SPEC): Define.
7686         * config/sparc/vxworks.h (ASM_SPEC): Define.
7687
7688 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
7689
7690         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
7691
7692 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
7693
7694         * doc/invoke.texi: Remove reference to compiler internals from
7695         user documentation.
7696
7697         * reg-notes.def: Remove REG_VALUE_PROFILE.
7698         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
7699
7700 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
7701
7702         PR middle-end/47610
7703         * varasm.c (default_section_type_flags): If decl is NULL,
7704         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
7705
7706 2011-02-05  Jie Zhang  <jie@codesourcery.com>
7707
7708         PR debug/42631
7709         * web.c (entry_register): Don't clobber the number of the
7710         first uninitialized reference in used[].
7711
7712 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
7713
7714         PR tree-optimization/46194
7715         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
7716         (build_classic_dist_vector_1): Do not represent classic distance
7717         vectors when the access functions are variating in different loops.
7718
7719 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
7720
7721         * config/mips/iris6.opt: New.
7722         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
7723
7724 2011-02-04  Richard Henderson  <rth@redhat.com>
7725             Steve Ellcey  <sje@cup.hp.com>
7726
7727         PR target/46997
7728         * config/ia64/predicates.md (mux1_brcst_element): New.
7729         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
7730         * config/ia64/ia64.c (ia64_unpack_assemble): New.
7731         (ia64_unpack_sign): New.
7732         (ia64_expand_unpack): Rewrite using new routines.
7733         (ia64_expand_widen_sum): Ditto.
7734         (ia64_expand_dot_prod_v8qi): Ditto.
7735         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
7736         routines, add endian check.
7737         (pmpy2_even): Rename from pmpy2_r, add endian check.
7738         (pmpy2_odd): Rename from pmpy2_l, add endian check.
7739         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
7740         (vec_widen_smult_hi_v4hi): Ditto.
7741         (vec_widen_umult_lo_v4hi): Ditto.
7742         (vec_widen_umult_hi_v4hi): Ditto.
7743         (mulv2si3): Change endian checks.
7744         (sdot_prodv4hi): Rewrite with new calls.
7745         (udot_prodv4hi): New.
7746         (vec_pack_ssat_v4hi): Add endian check.
7747         (vec_pack_usat_v4hi): Ditto.
7748         (vec_pack_ssat_v2si): Ditto.
7749         (max1_even): Rename from max1_r, add endian check.
7750         (max1_odd): Rename from max1_l, add endian check.
7751         (*mux1_rev): Format change.
7752         (*mux1_mix): Ditto.
7753         (*mux1_shuf): Ditto.
7754         (*mux1_alt): Ditto.
7755         (*mux1_brcst_v8qi): Use new predicate.
7756         (vec_extract_evenv8qi): Remove endian check.
7757         (vec_extract_oddv8qi): Ditto.
7758         (vec_interleave_lowv4hi): Format change.
7759         (vec_interleave_highv4hi): Ditto.
7760         (mix2_even): Rename from mix2_r, add endian check.
7761         (mix2_odd): Rename from mux2_l, add endian check.
7762         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
7763         (vec_extract_evenodd_helper): Format change.
7764         (vec_extract_evenv4hi): Remove endian check.
7765         (vec_extract_oddv4hi): Remove endian check.
7766         (vec_interleave_lowv2si): Format change.
7767         (vec_interleave_highv2si): Format change.
7768         (vec_initv2si): Remove endian check.
7769         (vecinit_v2si): Add endian check.
7770         (reduc_splus_v2sf): Add endian check.
7771         (reduc_smax_v2sf): Ditto.
7772         (reduc_smin_v2sf): Ditto.
7773         (vec_initv2sf): Remove endian check.
7774         (fpack): Add endian check.
7775         (fswap): Add endian check.
7776         (vec_interleave_highv2sf): Add endian check.
7777         (vec_interleave_lowv2sf): Add endian check.
7778         (fmix_lr): Add endian check.
7779         (vec_setv2sf): Format change.
7780         (*vec_extractv2sf_0_be): Use shift to extract operand.
7781         (*vec_extractv2sf_1_be): New.
7782         (vec_pack_trunc_v4hi): Add endian check.
7783         (vec_pack_trunc_v2si): Format change.
7784
7785 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
7786
7787         PR inline-asm/23200
7788         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
7789         do bb, locus and block comparison and disallow loads if it is not set.
7790         (stmt_is_replaceable_p): New function.
7791         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
7792         callers.
7793         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
7794         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
7795         SSA_NAME_DEF_STMT.
7796         * tree-flow.h (stmt_is_replaceable_p): New prototype.
7797
7798 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
7799
7800         * config/rs6000/xilinx.opt: New.
7801         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
7802
7803 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
7804
7805         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
7806
7807 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
7808
7809         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
7810         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
7811         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
7812         secondary_reload_info, xtensa_secondary_reload): Remove.
7813         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
7814         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7815         (xtensa_preferred_reload_class): Make static. Change return and
7816         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
7817         Use CONST_DOUBLE_P predicate.
7818         (xtensa_preferred_output_reload_class): New function.
7819         (xtensa_secondary_reload): Make static.
7820
7821 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
7822
7823         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
7824         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
7825         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
7826
7827 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
7828
7829         PR middle-end/31490
7830         * output.h (SECTION_RELRO): Define.
7831         (SECTION_MACH_DEP): Adjust.
7832         (get_variable_section): New prototype.
7833         * varpool.c (varpool_finalize_named_section_flags): New function.
7834         (varpool_assemble_pending_decls): Call it.
7835         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
7836         * cgraphunit.c (cgraph_output_in_order): Call
7837         varpool_finalize_named_section_flags.
7838         * varasm.c (get_section): Allow section flags conflicts between
7839         relro and read-only sections if the section hasn't been declared yet.
7840         Set SECTION_OVERRIDE after diagnosing section type conflict.
7841         (get_variable_section): No longer static.
7842         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
7843         readonly sections that need relocations.
7844         (decl_readonly_section_1): New function.
7845         (decl_readonly_section): Use it.
7846
7847         Revert:
7848         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
7849                     Steve Ellcey  <sje@cup.hp.com>
7850
7851         PR middle-end/31490
7852         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
7853         if section attribute used.
7854
7855 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
7856
7857         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
7858         * config/darwin.c (SECTION_NO_ANCHOR): Define.
7859         (darwin_init_sections): Remove assertion.
7860
7861 2011-02-03  Nick Clifton  <nickc@redhat.com>
7862
7863         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
7864         lt and ge.
7865         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
7866         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
7867         instead of "n" and "pz".
7868         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
7869         CC_FLAG_S.
7870
7871 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
7872
7873         PR target/47312
7874         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
7875         fma, expand FMA_EXPR as fma{,f,l} call.
7876
7877         PR lto/47274
7878         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
7879         copy them into a unsigned char variable and pass address of it to
7880         lto_output_data_stream.
7881
7882         PR target/47564
7883         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
7884         around backend_init_target and lang_dependent_init_target calls.
7885         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
7886         (verify_cgraph_node): Don't call set_cfun here.  Use
7887         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
7888         Set error_found for incorrectly represented calls to thunks.
7889
7890 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
7891
7892         PR debug/43092
7893         PR rtl-optimization/43494
7894         * rtl.h (for_each_inc_dec_fn): New type.
7895         (for_each_inc_dec): Declare.
7896         * rtlanal.c (struct for_each_inc_dec_ops): New type.
7897         (for_each_inc_dec_find_inc_dec): New fn.
7898         (for_each_inc_dec_find_mem): New fn.
7899         (for_each_inc_dec): New fn.
7900         * dse.c (struct insn_size): Remove.
7901         (replace_inc_dec, replace_inc_dec_mem): Remove.
7902         (emit_inc_dec_insn_before): New fn.
7903         (check_for_inc_dec): Use it, along with for_each_inc_dec.
7904         (canon_address): Pass mem modes to cselib_lookup.
7905         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
7906         (cselib_lookup_from_insn): Likewise.
7907         (cselib_subst_to_values): Likewise.
7908         * cselib.c (find_slot_memmode): New var.
7909         (cselib_find_slot): New fn.  Use it instead of
7910         htab_find_slot_with_hash everywhere.
7911         (entry_and_rtx_equal_p): Use find_slot_memmode.
7912         (autoinc_split): New fn.
7913         (rtx_equal_for_cselib_p): Rename and implement in terms of...
7914         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
7915         Deal with autoinc.  Special-case recursion into MEMs.
7916         (cselib_hash_rtx): Likewise.
7917         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
7918         address and MEM modes.
7919         (cselib_subst_to_values): Add memmode, pass it on.
7920         Deal with autoinc.
7921         (cselib_lookup): Add memmode argument, pass it on.
7922         (cselib_lookup_from_insn): Add memmode.
7923         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
7924         (struct cselib_record_autoinc_data): New.
7925         (cselib_record_autoinc_cb): New fn.
7926         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
7927         mode to cselib_lookup.  Reset autoinced REGs here instead of...
7928         (cselib_process_insn): ... here.
7929         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
7930         to cselib_lookup.
7931         (add_uses): Likewise, also to cselib_subst_to_values.
7932         (add_stores): Likewise.
7933         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
7934         cselib_subst_to_values.
7935         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
7936         * gcse.c (do_local_cprop): Adjusted.
7937         * postreload.c (reload_cse_simplify_set): Adjusted.
7938         (reload_cse_simplify_operands): Adjusted.
7939         * sel-sched-dump (debug_mem_addr_value): Pass mode.
7940
7941 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
7942
7943         PR tree-optimization/45122
7944         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
7945         unsafe assumptions when there's more than one loop exit.
7946
7947 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7948
7949         PR target/47272
7950         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
7951         Document using vector double with the load/store builtins, and
7952         that the load/store builtins always use Altivec instructions.
7953
7954         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
7955         to use altivec memory instructions, even on VSX.
7956         (vector_altivec_store_<mode>): Ditto.
7957
7958         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
7959         function.
7960
7961         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7962         V2DF, V2DI support to load/store overloaded builtins.
7963
7964         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
7965         altivec load/store builtins for V2DF/V2DI types.
7966
7967         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
7968         set avoid indexed addresses on power6 if -maltivec.
7969         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
7970         vector_altivec_load/vector_altivec_store builtins.
7971         (altivec_expand_st_builtin): Ditto.
7972         (altivec_expand_builtin): Add VSX memory builtins.
7973         (rs6000_init_builtins): Add V2DI types to internal types.
7974         (altivec_init_builtins): Add support for V2DF/V2DI altivec
7975         load/store builtins.
7976         (rs6000_address_for_altivec): Insure memory address is appropriate
7977         for Altivec.
7978
7979         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
7980         vec_vsx_ld and vec_vsx_st.
7981         (vsx_store_<mode>): Ditto.
7982
7983         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
7984         variables to hold long long types for VSX vector memory builtins.
7985         (RS6000_BTI_unsigned_long_long): Ditto.
7986         (long_long_integer_type_internal_node): Ditti.
7987         (long_long_unsigned_type_internal_node): Ditti.
7988
7989         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
7990         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
7991         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
7992
7993         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
7994         short cuts.
7995         (vec_vsx_st): Ditto.
7996
7997 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
7998
7999         * config/pa/pa-hpux10.opt: New.
8000         * config/hpux11.opt (pthread): New Driver option.
8001         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
8002         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
8003
8004 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
8005
8006         * config/ia64/vms.opt: New.
8007         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
8008
8009 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
8010
8011         PR target/47580
8012         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
8013         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
8014         generator functions.
8015         (vsx_floatuns<VSi><mode>2): Ditto.
8016         (vsx_fix_trunc<mode><VSi>2): Ditto.
8017         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
8018
8019 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
8020
8021         * config/i386/djgpp.opt (posix): New Driver option.
8022
8023 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
8024
8025         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
8026         Move to the unsupported targets list.
8027
8028 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
8029
8030         PR rtl-optimization/47525
8031         * df-scan.c: Update copyright years.
8032         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
8033         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
8034
8035 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8036
8037         * config/i386/sysv4.h (TARGET_VERSION): Remove.
8038         (SUBTARGET_RETURN_IN_MEMORY): Remove.
8039         (ASM_OUTPUT_ASCII): Remove.
8040         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
8041
8042 2011-02-02  Jeff Law  <law@redhat.com>
8043
8044         PR middle-end/47543
8045         * reload.c (find_reloads_address): Handle reg+d address where both
8046         components are invalid by reloading the entire address.
8047
8048 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
8049             Richard Guenther  <rguenther@suse.de>
8050
8051         PR tree-optimization/40979
8052         PR bootstrap/47044
8053         * passes.c (init_optimization_passes): After LIM call copy_prop
8054         and DCE to clean up.
8055         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
8056
8057 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
8058
8059         PR tree-optimization/47576
8060         PR tree-optimization/47555
8061         * doc/invoke.texi (scev-max-expr-complexity): Documented.
8062         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
8063         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
8064         * tree-scalar-evolution.c (follow_ssa_edge): Use
8065         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
8066
8067 2011-02-02  Richard Guenther  <rguenther@suse.de>
8068
8069         PR tree-optimization/47566
8070         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
8071
8072 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
8073
8074         PR debug/47106
8075         PR debug/47402
8076         * tree-inline.c (declare_return_variable): Remove unused caller
8077         variable.
8078
8079         PR debug/47106
8080         PR debug/47402
8081         * tree-flow-inline.h (clear_is_used, is_used_p): New.
8082         * cfgexpand.c (account_used_vars_for_block): Use them.
8083         * tree-nrv.c (tree_nrv): Likewise.
8084         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
8085         (dump_scope_block): Likewise.
8086         (remove_unused_locals): Likewise.
8087
8088         PR debug/47106
8089         PR debug/47402
8090         * tree-inline.c (declare_return_variable): Add result decl to
8091         local decls only once.
8092         * gimple-low.c (record_vars_into): Mark newly-created variables
8093         as referenced.
8094
8095 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
8096
8097         PR debug/47498
8098         PR debug/47501
8099         PR debug/45136
8100         PR debug/45130
8101         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
8102         debug insns.
8103         (no_real_insns_p, schedule_block, set_priorities): Drop special
8104         treatment of boundary debug insns.
8105         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
8106         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
8107         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
8108         (BOUNDARY_DEBUG_INSN_P): Likewise.
8109         (SCHEDULE_DEBUG_INSN_P): Likewise.
8110         * sched-rgn.c (init_ready_list): Drop special treatment of
8111         boundary debug insns.
8112         * final.c (rest_of_clean_state): Clear notes' BB.
8113
8114 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8115
8116         * config/openbsd.opt (assert=): New Driver option.
8117
8118 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8119
8120         * config/i386/nto.opt: New.
8121         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
8122
8123 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8124
8125         * config/i386/netware.opt: New.
8126         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
8127
8128 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8129
8130         * config/interix.opt (posix): New Driver option.
8131
8132 2011-02-01  DJ Delorie  <dj@redhat.com>
8133
8134         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
8135
8136         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
8137         class for A0/A1.
8138
8139 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
8140
8141         PR tree-optimization/47561
8142         * toplev.c (process_options): Print the Graphite flags.  Add
8143         flag_loop_flatten to the list of options requiring Graphite.
8144
8145 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8146
8147         * config/i386/cygming.opt (posix): New Driver option.
8148
8149 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8150
8151         * config/arm/vxworks.opt: New.
8152         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
8153
8154 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8155
8156         * config/alpha/elf.opt: New.
8157         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
8158         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
8159
8160 2011-02-01  Richard Guenther  <rguenther@suse.de>
8161
8162         PR tree-optimization/47559
8163         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
8164         store-motion on references that can throw.
8165
8166 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
8167
8168         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
8169         * tree-pass.h (TDF_CSELIB): New macro.
8170         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
8171         cselib_lookup): Check for it rather than for TDF_DETAILS.
8172
8173 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
8174
8175         PR driver/47547
8176         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
8177         is HOST_BIT_BUCKET.
8178
8179         * opts.c (finish_options): Don't add x_aux_base_name if it is
8180         HOST_BIT_BUCKET.
8181
8182 2011-02-01  Richard Guenther  <rguenther@suse.de>
8183
8184         PR tree-optimization/47555
8185         Revert
8186         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
8187
8188         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
8189
8190 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
8191
8192         PR gcc/46692
8193         * config/lm32/t-lm32: Add multilib for all CPU options.
8194
8195 2011-02-01  Richard Guenther  <rguenther@suse.de>
8196
8197         PR tree-optimization/47541
8198         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
8199         sure to have a field at offset zero.
8200
8201 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
8202
8203         * config/arc/arc.opt (EB, EL): New Driver options.
8204
8205 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
8206
8207         * config/alpha/osf5.opt: New.
8208         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
8209
8210 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
8211
8212         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
8213
8214 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
8215
8216         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
8217         -floop-interchange.
8218         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
8219         is an alias of -floop-interchange and that it requires the
8220         Graphite infrastructure.
8221         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
8222         flag_loop_interchange based on the value of flag_tree_loop_linear.
8223
8224 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
8225             Richard Guenther  <rguenther@suse.de>
8226
8227         PR tree-optimization/47538
8228         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
8229         type instead of r1type, except for comparisons.  For right
8230         shifts and comparisons punt if there are mismatches in
8231         sizetype vs. non-sizetype types.
8232
8233 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8234
8235         * doc/sourcebuild.texi (Effective-Target Keywords): Document
8236         avx_runtime.
8237
8238 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8239
8240         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
8241         version number.
8242         * configure: Regenerate.
8243
8244 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8245
8246         * configure.ac (gcc_cv_ld_static_option): Define.
8247         (gcc_cv_ld_dynamic_option): Define.
8248         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
8249         instead.
8250         (HAVE_LD_STATIC_DYNAMIC): Update message.
8251         (LD_STATIC_OPTION): Define.
8252         (LD_DYNAMIC_OPTION): Define.
8253         * configure: Regenerate.
8254         * config.in: Regenerate.
8255         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
8256         HAVE_LD_STATIC_DYNAMIC]: Use them.
8257
8258 2011-01-31  Nick Clifton  <nickc@redhat.com>
8259
8260         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
8261         registers inside interrupt handlers if the handler is not a leaf
8262         function.
8263
8264 2011-01-31  Nick Clifton  <nickc@redhat.com>
8265
8266         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
8267         reg_renumber returning an INVALID_REGNUM.
8268
8269 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
8270
8271         PR libgcj/44341
8272         * doc/install.texi: Document host options discarded when cross
8273         configuring target libraries.
8274
8275 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
8276
8277         Reverted:
8278         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
8279         PR debug/45136
8280         PR debug/45130
8281         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
8282         debug insns.
8283         (no_real_insns_p, schedule_block, set_priorities): Drop special
8284         treatment of boundary debug insns.
8285         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
8286         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
8287         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
8288         (BOUNDARY_DEBUG_INSN_P): Likewise.
8289         (SCHEDULE_DEBUG_INSN_P): Likewise.
8290         * sched-rgn.c (init_ready_list): Drop special treatment of
8291         boundary debug insns.
8292         * final.c (rest_of_clean-state): Clear notes' BB.
8293
8294 2011-01-31  Alan Modra  <amodra@gmail.com>
8295
8296         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
8297         toc relative expressions as we do in print_operand_address.
8298
8299 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
8300
8301         * doc/extend.texi: Follow spelling conventions.
8302         * doc/invoke.texi: Fix a typo.
8303
8304 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
8305
8306         * config/hpux11.opt: New.
8307         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
8308         ia64*-*-hpux*): Use hpux11.opt.
8309
8310 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
8311
8312         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
8313         to tmake_file.
8314
8315 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
8316
8317         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
8318         support sites.
8319
8320 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
8321
8322         * doc/install.texi (Binaries): Remove outdated reference for
8323         Motorola 68HC11/68HC12 downloads.
8324
8325 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
8326
8327         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
8328         Drepper's paper.
8329
8330 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
8331
8332         PR bootstrap/47147
8333         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
8334         used by NetBSD.
8335
8336 2011-01-28  Ahmad Sharif  <asharif@google.com>
8337
8338         * value-prof.c (check_counter): Corrected error message.
8339
8340 2011-01-29  Jie Zhang  <jie@codesourcery.com>
8341
8342         * config/arm/arm.c (arm_legitimize_reload_address): New.
8343         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
8344         arm_legitimize_reload_address.
8345         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
8346
8347 2011-01-28  Ian Lance Taylor  <iant@google.com>
8348
8349         * godump.c (go_define): Ignore macros whose definitions include
8350         two adjacent operands.
8351
8352 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
8353
8354         PR target/42894
8355         * varasm.c (force_const_mem): Store copy of x in desc->constant
8356         instead of x itself.
8357         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
8358         itself into REG_EQUAL note.
8359
8360 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
8361
8362         * config/freebsd.opt (posix, rdynamic): New Driver options.
8363
8364 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8365
8366         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
8367         -Bstatic/-Bdynamic.
8368         * configure: Regenerate.
8369
8370 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
8371
8372         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
8373         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
8374
8375 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
8376
8377         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
8378         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
8379         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
8380         (s390_preferred_reload_class): Make static. Change return and
8381         'rclass' argument type to reg_class_t.
8382
8383 2011-01-27  Jan Hubicka  <jh@suse.cz>
8384
8385         PR middle-end/46949
8386         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
8387         (process_function_and_variable_attributes): Check defined weakrefs.
8388
8389 2011-01-27  Martin Jambor  <mjambor@suse.cz>
8390
8391         PR tree-optimization/47228
8392         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
8393         build_ref_for_offset.
8394
8395 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8396
8397         * config/spu/spu-elf.h (ASM_SPEC): Remove.
8398
8399 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
8400
8401         PR rtl-optimization/46856
8402         * postreload.c (reload_combine_recognize_const_pattern): Do not
8403         separate cc0 setter and user on cc0 targets.
8404
8405 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
8406
8407         PR c/43082
8408         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
8409         passed a VOID_TYPE expression, immediately emit an error and
8410         return error_mark_node.
8411
8412 2011-01-26  Jeff Law  <law@redhat.com>
8413
8414         PR rtl-optimization/47464
8415         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
8416         rather than may_trap_p as needed.
8417
8418 2011-01-26  DJ Delorie  <dj@redhat.com>
8419
8420         PR rtl-optimization/46878
8421         * combine.c (insn_a_feeds_b): Check for the implicit cc0
8422         setter/user dependency as well.
8423
8424 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
8425
8426         PR rtl-optimization/44469
8427         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
8428         after removing trivially dead basic blocks.
8429
8430 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
8431
8432         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
8433         * config/frv/frv.h (LINK_SPEC): Likewise.
8434         * config/i386/netware.h (LINK_SPEC): Likewise.
8435         * config/m68k/linux.h (ASM_SPEC): Likewise.
8436         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
8437         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
8438         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8439         * config/sparc/linux.h (ASM_SPEC): Likewise.
8440         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8441         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8442
8443 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
8444
8445         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
8446         * config/frv/frv.h (ASM_SPEC): Likewise.
8447         * config/m68k/linux.h (ASM_SPEC): Likewise.
8448         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
8449         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
8450         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8451         * config/sparc/linux.h (ASM_SPEC): Likewise.
8452         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8453         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8454
8455 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
8456
8457         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
8458         * config/frv/frv.h (LINK_SPEC): Likewise.
8459         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
8460
8461 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
8462
8463         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
8464         * config/frv/frv.h (ASM_SPEC): Likewise.
8465         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
8466         * config/m68k/linux.h (ASM_SPEC): Likewise.
8467         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
8468         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
8469         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8470         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
8471         * config/sparc/linux.h (ASM_SPEC): Likewise.
8472         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8473         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8474         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
8475
8476 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
8477
8478         PR target/46997
8479         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
8480         (*mux2): Ditto.
8481         (vec_extract_evenodd_help): Ditto.
8482         (vec_extract_evenv4hi): Ditto.
8483         (vec_extract_oddv4hi): Ditto.
8484         (vec_interleave_lowv2si): Ditto.
8485         (vec_interleave_highv2si): Ditto.
8486         (vec_extract_evenv2si): Ditto.
8487         (vec_extract_oddv2si: Ditto.
8488         (vec_pack_trunc_v2si): Ditto.
8489
8490 2011-01-22  Jan Hubicka  <jh@suse.cz>
8491
8492         PR target/47237
8493         * cgraph.h (cgraph_local_info): New field can_change_signature.
8494         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
8495         signature can change.
8496         (ipcp_estimate_growth): Call sequence simplify only if calle signature
8497         can change.
8498         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
8499         (cgraph_function_versioning): We can not change signature of functions
8500         that don't allow that.
8501         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
8502         (lto_input_node): Likewise.
8503         * ipa-inline.c (compute_inline_parameters): Compute
8504         local.can_change_signature.
8505         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
8506         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
8507         functions that can not change signature.
8508         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
8509         init_cumulative_args): Do not use local calling conventions
8510         for functions that can not change signature.
8511
8512 2011-01-22  Jan Hubicka  <jh@suse.cz>
8513
8514         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
8515
8516 2011-01-26  Richard Guenther  <rguenther@suse.de>
8517
8518         PR tree-optimization/47190
8519         * cgraphunit.c (process_common_attributes): New function.
8520         (process_function_and_variable_attributes): Use it.
8521
8522 2011-01-26  Richard Guenther  <rguenther@suse.de>
8523
8524         PR lto/47423
8525         * cgraphbuild.c (record_eh_tables): Record reference to personality
8526         function.
8527
8528 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
8529
8530         PR debug/45454
8531         * sel-sched.c (moveup_expr): Don't let debug insns prevent
8532         non-debug insns from moving up.
8533
8534 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
8535
8536         PR target/40125
8537         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
8538         t-dlldir{,-x} fragment for build and add it to tmake_file.
8539         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
8540         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
8541         * config/i386/t-dlldir: New file.
8542         (SHLIB_DLLDIR): Define.
8543         * config/i386/t-dlldir-x: New file.
8544         (SHLIB_DLLDIR): Define.
8545         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
8546         (SHLIB_INSTALL): Use it.
8547
8548 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
8549
8550         PR target/47246
8551         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
8552         lower bound of the allowed Thumb-2 coprocessor load/store
8553         index range to -256. Add explaining comment.
8554
8555 2011-01-25  Ian Lance Taylor  <iant@google.com>
8556
8557         * godump.c (go_define): Improve lexing of macro expansion to only
8558         accept expressions which match Go spec.
8559
8560 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
8561
8562         PR c++/43601
8563         * tree.c (handle_dll_attribute): Handle it.
8564         * doc/extend.texi (@item dllexport): Mention it.
8565         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
8566
8567 2011-01-25  Ian Lance Taylor  <iant@google.com>
8568
8569         PR tree-optimization/26854
8570         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
8571         (decl_jump_unsafe): Move higher in file, with no other change.
8572         (bind): Set has_jump_unsafe_decl if appropriate.
8573         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
8574         (check_earlier_gotos): Likewise.
8575         (c_check_switch_jump_warnings): Likewise.
8576
8577 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
8578
8579         * doc/invoke.texi (Warning Options): Add missing hyphen.
8580         (-fprofile-dir): Minor grammatical fixes.
8581         (-fbranch-probabilities): Likewise.
8582
8583 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
8584
8585         PR debug/45136
8586         PR debug/45130
8587         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
8588         debug insns.
8589         (no_real_insns_p, schedule_block, set_priorities): Drop special
8590         treatment of boundary debug insns.
8591         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
8592         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
8593         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
8594         (BOUNDARY_DEBUG_INSN_P): Likewise.
8595         (SCHEDULE_DEBUG_INSN_P): Likewise.
8596         * sched-rgn.c (init_ready_list): Drop special treatment of
8597         boundary debug insns.
8598         * final.c (rest_of_clean-state): Clear notes' BB.
8599
8600 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8601
8602         * Makefile.in (LAMBDA_H): Removed.
8603         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
8604         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
8605         lambda-trans.o, and tree-loop-linear.o.
8606         (lto-symtab.o): Remove dependence on LAMBDA_H.
8607         (tree-loop-linear.o): Remove rule.
8608         (lambda-mat.o): Same.
8609         (lambda-trans.o): Same.
8610         (lambda-code.o): Same.
8611         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
8612         (tree-vect-slp.o): Same.
8613         * hwint.h (gcd): Moved here.
8614         (least_common_multiple): Same.
8615         * lambda-code.c: Removed.
8616         * lambda-mat.c: Removed.
8617         * lambda-trans.c: Removed.
8618         * lambda.h: Removed.
8619         * tree-loop-linear.c: Removed.
8620         * lto-symtab.c: Do not include lambda.h.
8621         * omega.c (gcd): Removed.
8622         * passes.c (init_optimization_passes): Remove pass_linear_transform.
8623         * tree-data-ref.c (print_lambda_vector): Moved here.
8624         (lambda_vector_copy): Same.
8625         (lambda_matrix_copy): Same.
8626         (lambda_matrix_id): Same.
8627         (lambda_vector_first_nz): Same.
8628         (lambda_matrix_row_add): Same.
8629         (lambda_matrix_row_exchange): Same.
8630         (lambda_vector_mult_const): Same.
8631         (lambda_vector_negate): Same.
8632         (lambda_matrix_row_negate): Same.
8633         (lambda_vector_equal): Same.
8634         (lambda_matrix_right_hermite): Same.
8635         * tree-data-ref.h: Do not include lambda.h.
8636         (lambda_vector): Moved here.
8637         (lambda_matrix): Same.
8638         (dependence_level): Same.
8639         (lambda_transform_legal_p): Removed declaration.
8640         (lambda_collect_parameters): Same.
8641         (lambda_compute_access_matrices): Same.
8642         (lambda_vector_gcd): Same.
8643         (lambda_vector_new): Same.
8644         (lambda_vector_clear): Same.
8645         (lambda_vector_lexico_pos): Same.
8646         (lambda_vector_zerop): Same.
8647         (lambda_matrix_new): Same.
8648         * tree-flow.h (least_common_multiple): Removed declaration.
8649         * tree-parloops.c (lambda_trans_matrix): Moved here.
8650         (LTM_MATRIX): Same.
8651         (LTM_ROWSIZE): Same.
8652         (LTM_COLSIZE): Same.
8653         (LTM_DENOMINATOR): Same.
8654         (lambda_trans_matrix_new): Same.
8655         (lambda_matrix_vector_mult): Same.
8656         (lambda_transform_legal_p): Same.
8657         * tree-pass.h (pass_linear_transform): Removed declaration.
8658         * tree-ssa-loop.c (tree_linear_transform): Removed.
8659         (gate_tree_linear_transform): Removed.
8660         (pass_linear_transform): Removed.
8661         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
8662         flag_loop_interchange.
8663
8664 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
8665
8666         PR tree-optimization/47265
8667         PR tree-optimization/47443
8668         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
8669         if name still has some uses.
8670
8671 2011-01-25  Martin Jambor  <mjambor@suse.cz>
8672
8673         PR tree-optimization/47382
8674         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
8675         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
8676
8677 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
8678
8679         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
8680         sjlj_except_unwind_info.
8681
8682 2011-01-25  Richard Guenther  <rguenther@suse.de>
8683
8684         PR tree-optimization/47426
8685         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
8686         visible functions results escape.
8687
8688 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
8689
8690         PR target/45701
8691         * config/arm/arm.c (any_sibcall_uses_r3): New function.
8692         (arm_get_frame_offsets): Use it.
8693
8694 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8695             Jakub Jelinek  <jakub@redhat.com>
8696
8697         PR tree-optimization/47271
8698         * tree-if-conv.c (bb_postdominates_preds): New.
8699         (if_convertible_bb_p): Call bb_postdominates_preds.
8700         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
8701         (predicate_scalar_phi): Call bb_postdominates_preds.
8702
8703 2011-01-25  Nick Clifton  <nickc@redhat.com>
8704
8705         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
8706         * config/rx/rx.c (rx_function_value): Likewise.
8707         (rx_promote_function_mode): Likewise.
8708         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
8709         in order to make it legitimate.
8710         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
8711         make sure that the first operand is the same as the result register.
8712         (addsi3_unspec): Delete.
8713         (subdi3): Do not accept immediate operands.
8714         (subdi3_internal): Likewise.
8715
8716 2011-01-25  Jeff Law  <law@redhat.com>
8717
8718         PR rtl-optimization/37273
8719         * ira-costs.c (scan_one_insn): Detect constants living in memory and
8720         handle them like argument loads from stack slots.  Do not double
8721         count memory for memory constants and argument loads from stack slots.
8722
8723 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
8724
8725         PR tree-optimization/47427
8726         PR tree-optimization/47428
8727         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
8728         coalesce if the new root var would be TREE_READONLY.
8729
8730 2011-01-25  Richard Guenther  <rguenther@suse.de>
8731
8732         PR middle-end/47414
8733         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
8734         correct type for TBAA.
8735
8736 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8737
8738         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
8739         (close_phi_written_to_memory): Call for_each_index with
8740         dr_indices_valid_in_loop.
8741
8742 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8743
8744         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
8745         when it is initialized.
8746
8747 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8748
8749         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
8750         call to graphite_find_data_references_in_stmt.
8751         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
8752         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
8753         call to graphite_find_data_references_in_stmt.
8754         (analyze_drs_in_stmts): Same.
8755         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
8756         in which the scalar analysis of indices is performed.
8757         (create_data_ref): Same.  Update call to dr_analyze_indices.
8758         (find_data_references_in_stmt): Update call to create_data_ref.
8759         (graphite_find_data_references_in_stmt): Same.
8760         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
8761         declaration.
8762         (create_data_ref): Same.
8763         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
8764         call to create_data_ref.
8765
8766 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8767
8768         * graphite-sese-to-poly.c (build_poly_scop): Move
8769         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
8770
8771 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8772
8773         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
8774         VAR_DECL, PARM_DECL, and RESULT_DECL.
8775
8776 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8777
8778         * graphite-dependences.c (reduction_dr_1): Allow several reductions
8779         in a reduction PBB.
8780         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
8781         that have already been marked as PBB_IS_REDUCTION.
8782
8783 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8784
8785         * graphite-scop-detection.c (same_close_phi_node): New.
8786         (remove_duplicate_close_phi): New.
8787         (make_close_phi_nodes_unique): New.
8788         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
8789
8790 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8791
8792         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
8793         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
8794         of both data references to be the same.
8795
8796 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8797
8798         * graphite-dependences.c (build_lexicographical_constraint): Remove
8799         the gdim parameter.
8800         (build_lexicographical_constraint): Adjust call to
8801         ppl_powerset_is_empty.
8802         (dependence_polyhedron): Same.
8803         (graphite_legal_transform_dr): Same.
8804         (graphite_carried_dependence_level_k): Same.
8805         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
8806         parameter.
8807         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
8808
8809 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8810
8811         * graphite-sese-to-poly.c
8812         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
8813         (close_phi_written_to_memory): New.
8814         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
8815         and unshare_expr.
8816
8817 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8818
8819         * doc/install.texi: Update the expected version number of PPL to 0.11.
8820         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
8821         #if PPL_VERSION_MINOR < 11.
8822
8823 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8824
8825         * graphite-dependences.c: Include graphite-cloog-util.h.
8826         (new_poly_ddr): Inlined into dependence_polyhedron.
8827         (free_poly_ddr): Moved close by new_poly_ddr.
8828         (dependence_polyhedron_1): Renamed dependence_polyhedron.
8829         Early return NULL when ppl_powerset_is_empty returns true.
8830         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
8831         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
8832         (graphite_legal_transform_dr): Call new_poly_ddr.
8833         (graphite_carried_dependence_level_k): Same.
8834         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
8835         (dot_transformed_deps_stmt_1): Removed.
8836         (dot_deps_stmt_1): Call dot_deps_stmt_2.
8837         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
8838         (dot_deps_1): Call dot_deps_2.
8839         * Makefile.in (graphite-dependences.o): Add missing dependence on
8840         graphite-cloog-util.h.
8841
8842 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8843
8844         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
8845         (build_lexicographical_constraint): Same.
8846         (dependence_polyhedron_1): Same.
8847         (graphite_legal_transform_dr): Same.
8848         (graphite_carried_dependence_level_k): Same.
8849         * graphite-ppl.c (ppl_powerset_is_empty): New.
8850         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
8851         * tree-data-ref.c (dump_data_reference): Print the basic block index.
8852
8853 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8854
8855         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
8856         the "a followed by b" relation and document it.
8857
8858 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8859
8860         * graphite-dependences.c (build_lexicographical_constraint): Stop the
8861         iteration when the bag of constraints is empty.
8862
8863 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8864
8865         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
8866
8867 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8868
8869         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
8870         nest and two loop depths as parameters.
8871         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
8872         lst_perfect_nestify.
8873
8874 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8875
8876         * graphite-dependences.c (print_pddr): Call
8877         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
8878
8879 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8880
8881         * graphite-ppl.c (debug_gmp_value): New.
8882         * graphite-ppl.h (debug_gmp_value): Declared.
8883
8884 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
8885
8886         * doc/install.texi: Document availability of cloog-0.16.
8887
8888 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
8889
8890         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
8891         invalid postdominance info.
8892
8893 2011-01-24  Jan Hubicka  <jh@suse.cz>
8894
8895         PR c/21659
8896         * doc/extend.texi (weak pragma): Drop claim that it must
8897         appear before definition.
8898         * varasm.c (merge_weak, declare_weak): Only sanity check
8899         that DECL is not output at a time it is declared weak.
8900
8901 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
8902
8903         * machmode.def: Fixed comments.
8904
8905 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
8906
8907         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
8908
8909 2011-01-24  Paul Koning  <ni1d@arrl.net>
8910
8911         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
8912         WORDS_BIG_ENDIAN.
8913
8914 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
8915
8916         PR target/46519
8917         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
8918         (block_info): Add scanned and prev.
8919         (move_or_delete_vzeroupper_2): Return if the basic block
8920         has been scanned and the upper 128bit state is unchanged
8921         from the last scan.
8922         (move_or_delete_vzeroupper_1): Return true if the exit
8923         state is changed.
8924         (move_or_delete_vzeroupper): Visit basic blocks using the
8925         work-list based algorithm based on vt_find_locations in
8926         var-tracking.c.
8927
8928         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
8929
8930 2011-01-24  Nick Clifton  <nickc@redhat.com>
8931
8932         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
8933         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
8934         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
8935         then define __v850e1__.
8936         * doc/invoke.texi: Document -mv850es.
8937
8938 2011-01-24  Richard Henderson  <rth@redhat.com>
8939
8940         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
8941         compound unordered comparisons.
8942         * config/rx/rx.c (rx_split_fp_compare): Remove.
8943         * config/rx/rx-protos.h: Update.
8944         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
8945         (cbranchsf4): Don't call rx_split_fp_compare.
8946         (*cbranchsf4): Use rx_split_cbranch.
8947         (*cmpsf): Don't accept "i" constraint.
8948         (*conditional_branch): Only valid after reload.
8949         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
8950
8951 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
8952
8953         PR target/47385
8954         * config/rs6000/altivec.md (vector constant splitters): Add
8955         support for creating vector single precision constants if -mvsx is
8956         used and we would create the constant using Altivec primitives.
8957
8958 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
8959             Richard Sandiford  <rdsandiford@googlemail.com>
8960
8961         PR rtl-optimization/47166
8962         * reload1.c (emit_reload_insns): Disable the spill_reg_store
8963         mechanism for PRE_MODIFY and POST_MODIFY.
8964         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
8965         reloadreg.
8966
8967 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
8968
8969         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
8970
8971 2011-01-22  Jan Hubicka  <jh@suse.cz>
8972
8973         PR lto/47333
8974         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
8975
8976 2011-01-22  Jan Hubicka  <jh@suse.cz>
8977
8978         PR tree-optimization/43884
8979         PR lto/44334
8980         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
8981         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
8982
8983 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
8984
8985         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
8986         * config/s390/s390.c (s390_register_move_cost,
8987         s390_memory_move_cost): New.
8988         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
8989
8990 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8991
8992         PR middle-end/47401
8993         * except.c (sjlj_assign_call_site_values): Move setting the
8994         crtl->uses_eh_lsda flag to ...
8995         (sjlj_mark_call_sites): ... here.
8996         (sjlj_emit_function_enter): Support NULL dispatch label.
8997         (sjlj_build_landing_pads): In a function with no landing pads
8998         that still has must-not-throw regions, generate code to register
8999         a personality function with empty LSDA.
9000
9001 2011-01-21  Richard Henderson  <rth@redhat.com>
9002
9003         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
9004
9005         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
9006
9007         * compare-elim.c: New file.
9008         * Makefile.in (OBJS-common): Add it.
9009         (compare-elim.o): New.
9010         * common.opt (fcompare-elim): New.
9011         * opts.c (default_options_table): Add OPT_fcompare_elim.
9012         * tree-pass.h (pass_compare_elim_after_reload): New.
9013         * passes.c (init_optimization_passes): Add it.
9014         * recog.h: Protect against re-inclusion.
9015         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
9016         * doc/invoke.texi (-fcompare-elim): Document it.
9017         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
9018         * doc/tm.texi: Rebuild.
9019
9020 2011-01-22  Nick Clifton  <nickc@redhat.com>
9021
9022         * config/rx/rx.md (cstoresf4): Pass comparison operator to
9023         rx_split_fp_compare.
9024
9025 2011-01-22  Nick Clifton  <nickc@redhat.com>
9026
9027         * config/rx/rx.md (UNSPEC_CONST): New.
9028         (deallocate_and_return): Wrap the amount popped off the stack in
9029         an UNSPEC_CONST in order to stop it being rejected by
9030         -mmax-constant-size.
9031         (pop_and_return): Add a "(return)" rtx.
9032         (call): Drop the immediate operand.
9033         (call_internal): Likewise.
9034         (call_value): Likewise.
9035         (call_value_internal): Likewise.
9036         (sibcall_internal): Likewise.
9037         (sibcall_value_internal): Likewise.
9038         (sibcall): Likewise.  Generate an explicit call using
9039         sibcall_internal.
9040         (sibcall_value): Likewise.
9041         (mov<>): FAIL if a constant operand is not legitimate.
9042         (addsi3_unpsec): New pattern.
9043
9044         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
9045         (ok_for_max_constant): New function.
9046         (gen_safe_add): New function.
9047         (rx_expand_prologue): Use gen_safe_add.
9048         (rx_expand_epilogue): Likewise.
9049         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
9050         UNSPEC CONSTs.
9051
9052 2011-01-21  Jeff Law  <law@redhat.com>
9053
9054         PR tree-optimization/47053
9055         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
9056         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
9057         statements are deleted.
9058         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
9059         is nonempty, then purge dead edges and cleanup the CFG.
9060
9061 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
9062
9063         PR debug/47402
9064         Temporarily revert:
9065         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
9066         PR debug/47106
9067         * tree-dfa.c (create_var_ann): Mark variable as used.
9068
9069 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
9070
9071         PR middle-end/45566
9072         * except.c (convert_to_eh_region_ranges): Emit queued no-region
9073         notes from other section in hot/cold partitioning even if
9074         last_action is -3.  Increment call_site_base.
9075
9076         PR rtl-optimization/47366
9077         * fwprop.c (forward_propagate_into): Return bool.  If
9078         any changes are made, -fnon-call-exceptions is used and
9079         REG_EH_REGION note is present, call purge_dead_edges
9080         and return true if it purged anything.
9081         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
9082         any EH edges were purged.
9083
9084 2011-01-21  Jeff Law  <law@redhat.com>
9085
9086         PR rtl-optimization/41619
9087         * caller-save.c (setup_save_areas): Break out code to determine
9088         which hard regs are live across calls by examining the reload chains
9089         so that it is always used.
9090         Eliminate code which checked REG_N_CALLS_CROSSED.
9091
9092 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
9093
9094         PR tree-optimization/47355
9095         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
9096         NOP has non-debug uses beyond PHIs in new_bb.
9097
9098 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
9099
9100         PR debug/47106
9101         * cfgexpand.c (account_used_vars_for_block): Only account vars
9102         that are annotated as used.
9103         (estimated_stack_frame_size): Don't set TREE_USED.
9104         * tree-dfa.c (create_var_ann): Mark variable as used.
9105
9106 2011-01-21  Richard Guenther  <rguenther@suse.de>
9107
9108         PR middle-end/47395
9109         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
9110
9111 2011-01-21  Richard Guenther  <rguenther@suse.de>
9112
9113         PR tree-optimization/47365
9114         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
9115         (vn_reference_lookup_pieces): Adjust.
9116         (vn_reference_lookup): Likewise.
9117         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
9118         (vn_reference_lookup_3): Only look through kills if in
9119         VN_WALKREWRITE mode.
9120         (vn_reference_lookup_pieces): Adjust.
9121         (vn_reference_lookup): Likewise.
9122         (visit_reference_op_load): Likewise.
9123         (visit_reference_op_store): Likewise.
9124         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
9125         (compute_avail): Likewise.
9126         (eliminate): Likewise.
9127
9128 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
9129
9130         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
9131         DECL_IGNORED_P non-reg vars if they are used.
9132
9133         PR tree-optimization/47391
9134         * varpool.c (const_value_known_p): Return false if
9135         decl is volatile.
9136
9137 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
9138
9139         PR bootstrap/47215
9140         * config/i386/i386.c (ix86_local_alignment): Handle
9141         case for va_list_type_node is nil.
9142         (ix86_canonical_va_list_type): Likewise.
9143
9144 2011-01-21  Alan Modra  <amodra@gmail.com>
9145
9146         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
9147         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
9148
9149 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9150
9151         * config/arm/arm.md (define_attr type): Rename f_load
9152         and f_store to f_fpa_load and f_fpa_store. Update.
9153         (write_conflict): Deal with rename fallout.
9154         (*push_fp_multi): Likewise.
9155         * config/arm/fpa.md (f_load): Use f_fpa_load.
9156         (f_store): Use f_fpa_store.
9157         (*movsf_fpa): Likewise.
9158         (*movdf_fpa): Likewise.
9159         (*movxf_fpa): Likewise.
9160         (*thumb2_movsf_fpa): Likewise.
9161         (*thumb2_movdf_fpa): Likewise.
9162         (*thumb2_movxf_fpa): Likewise.
9163         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
9164         f_loadd and f_stored.
9165         (*thumb2_movdi_vfp): Likewise.
9166         (*thumb2_movsf_vfp): Fix attribute to f_loads.
9167         (*thumb2_movsi_vfp): Likewise.
9168         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
9169         Use f_loads instead of f_load.
9170         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
9171
9172 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
9173
9174         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
9175         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
9176         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9177         (xtensa_mode_dependent_address_p): New function.
9178         (constantpool_address_p): Make static. Change return type to bool.
9179         Change argument type to const_rtx. Use CONST_INT_P predicate.
9180
9181 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
9182
9183         PR debug/46583
9184         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
9185
9186 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
9187
9188         PR debug/47283
9189         * cfgexpand.c (expand_debug_expr): Instead of generating
9190         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
9191         etc. handling.
9192
9193 2011-01-20  Richard Guenther  <rguenther@suse.de>
9194
9195         PR middle-end/47370
9196         * tree-inline.c (remap_gimple_op_r): Recurse manually for
9197         the pointer operand of MEM_REFs.
9198
9199 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
9200
9201         PR tree-optimization/46130
9202         * ipa-split.c (consider_split): If return_bb contains non-virtual
9203         PHIs other than for retval or if split_function would not adjust it,
9204         refuse to split.
9205
9206 2011-01-20  Richard Guenther  <rguenther@suse.de>
9207
9208         PR tree-optimization/47167
9209         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
9210         Revert previous change, only avoid enumeral type changes.
9211
9212 2011-01-19  Mike Stump  <mikestump@comcast.net>
9213
9214         * doc/tm.texi.in (BRANCH_COST): Englishify.
9215         * doc/tm.texi (BRANCH_COST): Likewise.
9216
9217 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
9218
9219         PR c++/47291
9220         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
9221         (gen_scheduled_generic_parms_dies): New functions.
9222         (gen_struct_or_union_type_die): Schedule template parameters DIEs
9223         generation for the end of CU compilation.
9224         (dwarf2out_finish): Generate template parameters DIEs here.
9225
9226 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
9227
9228         PR debug/46240
9229         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
9230         debug bind stmt on merge edges.
9231
9232 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
9233
9234         PR debug/47079
9235         PR debug/46724
9236         * function.c (instantiate_expr): Instantiate incoming rtl of
9237         implicit arguments, and recurse on VALUE_EXPRs.
9238         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
9239         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
9240
9241 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
9242
9243         * c-parser.c (c_parser_for_statement): Initialize
9244         collection_expression.
9245
9246 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
9247
9248         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
9249
9250 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
9251
9252         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
9253         (LINK_SHLIB_SPEC): Don't use %(link_path).
9254         (SUBTARGET_EXTRA_SPECS): Remove link_path.
9255
9256 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
9257
9258         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
9259         (NO_SHARED_LIB_SUPPORT): Remove.
9260         (LINK_SHLIB_SPEC): Remove one conditional definition.
9261
9262 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
9263
9264         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
9265         %{call_shared}.
9266         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
9267         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
9268         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
9269         %{call_shared} and conditionals on these options not being passed.
9270         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
9271         %{call_shared}.
9272
9273 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
9274
9275         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
9276         simplify.
9277
9278         * ipa-split.c: Spelling fixes.
9279
9280 2011-01-19  Richard Henderson  <rth@redhat.com>
9281
9282         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
9283         (*mulsi3): Likewise.
9284
9285         * longlong.h [__mn10300__] (count_leading_zeros): New.
9286         [__mn10300__] (umul_ppmm, smul_ppmm): New.
9287         [__mn10300__] (add_ssaaaa, subddmmss): New.
9288         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
9289         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
9290
9291 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9292
9293         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
9294
9295 2011-01-19  Richard Henderson  <rth@redhat.com>
9296
9297         * config/mn10300/mn10300.md (addsi3_flags): New.
9298         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
9299         (subsi3_flags, subc_internal, subdi3): New.
9300         (subdi3_internal, *subdi3_degenerate): New.
9301         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
9302
9303         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
9304         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
9305         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
9306         * config/mn10300/mn10300-protos.h: Update.
9307         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
9308         (return_ret): Likewise.  Rename from return_internal_regs.
9309         (return_internal): Remove.
9310
9311         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
9312         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
9313         (mn10300_legitimate_constant_p): Likewise.
9314         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
9315         (mn10300_frame_size): New.
9316         (mn10300_expand_prologue): Use it.
9317         (mn10300_expand_epilogue): Likewise.
9318         (mn10300_initial_offset): Likewise.
9319         * config/mn10300/mn10300-protos.h: Update.
9320         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
9321         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
9322         (prologue, epilogue, return_internal): Tidy output code.
9323         (mn10300_store_multiple_operation, return): Likewise.
9324         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
9325         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
9326         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
9327         (load_pic, am33_load_pic): New.
9328         (mn10300_load_pic0, mn10300_load_pic1): New.
9329
9330         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
9331         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
9332         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
9333         (cc_flags_for_mode, cc_flags_for_code): New.
9334         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
9335         overflow flag is not valid.  Validate that the flags we need
9336         for the comparison are valid.
9337         (mn10300_output_cmp): Remove.
9338         (mn10300_output_add): New.
9339         (mn10300_select_cc_mode): Use cc_flags_for_code.
9340         (mn10300_split_cbranch): New.
9341         (mn10300_match_ccmode): New.
9342         (mn10300_split_and_operand_count): New.
9343         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
9344         to the function.
9345         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
9346         (addsi3): ... here.  Use mn10300_output_add.
9347         (*addsi3_flags): New.
9348         (*am33_subsi3, *mn10300_subsi3): Merge...
9349         (subsi3): ... here.  Use attribute isa.
9350         (*subsi3_flags): New.
9351         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
9352         when possible.
9353         (*am33_andsi3, *mn10300_andsi3): Merge...
9354         (andsi3): ... here.
9355         (*andsi3_flags): New.
9356         (andsi3 splitters): New.
9357         (*am33_iorsi3, *mn10300_iorsi3): Merge...
9358         (iorsi3): ... here.
9359         (*iorsi3_flags): New.
9360         (*am33_xorsi3, *mn10300_xorsi3): Merge...
9361         (xorsi3): ... here.
9362         (*xorsi3_flags): New.
9363         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
9364         (one_cmplsi2): ... here.
9365         (*one_cmplsi2_flags): New.
9366         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
9367         instead of "dax" in constraints.  Use mn10300_split_cbranch.
9368         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
9369         use matching constraints to eliminate a self-comparison.
9370         (*integer_conditional_branch): Rename from integer_conditional_branch.
9371         Use int_mode_flags to match CC_REG.
9372         (*cbranchsi4_btst, *btstsi): New.
9373         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
9374         mn10300_split_cbranch.
9375         (*am33_cmpsf): Rename from am33_cmpsf.
9376         (*float_conditional_branch): Rename from float_conditional_branch.
9377         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
9378         (zero_extendqisi2): ... here.
9379         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
9380         (zero_extendhisi2): ... here.
9381         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
9382         (extendqisi2): ... here.
9383         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
9384         (extendhisi2): ... here.
9385         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
9386         (ashlsi3): ... here.
9387         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
9388         (lshrsi3): ... here.
9389         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
9390         (ashrsi3): ... here.
9391         (consecutive add peephole): Remove.
9392         * config/mn10300/predicates.md (label_ref_operand): New.
9393         (int_mode_flags): New.
9394         (CCZN_comparison_operator): New.
9395
9396         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
9397         (throughput_42_latency_43): New reservation.
9398         (mulsidi3, umulsidi3): New expanders.
9399         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
9400         the MDR register to allocation; separately allocate the low and
9401         high parts of the DImode result.
9402         (umulsidi3_internal): Similarly.
9403         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
9404         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
9405         (udivsi3, umodsi3): Remove.
9406         (udivmodsi4, divmodsi4): New expanders.
9407         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
9408         (*divmodsi4): Simiarly.
9409         (ext_internal): New.
9410
9411         * config/mn10300/constraints.md ("z"): New constraint.
9412         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
9413         (FIXED_REGISTERS): Don't fix MDR.
9414         (CALL_USED_REGSITERS): Reformat nicely.
9415         (REG_ALLOC_ORDER): Add MDR.
9416         (enum regclass): Add MDR_REGS.
9417         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
9418         (IRA_COVER_CLASSES): Add MDR_REGS.
9419         (REGNO_REG_CLASS): Handle MDR_REG.
9420         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
9421         (mn10300_register_move_cost): Likewise.
9422         * config/mn10300/mn10300.md (MDR_REG): New.
9423         (*movsi_internal): Handle moves to/from MDR_REGS.
9424
9425         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
9426         POST_MODIFY.
9427         (mn10300_secondary_reload): Tidy combination reload classes.
9428         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
9429         addresses for AM33.  Allow symbolic offsets for reg+imm.
9430         (mn10300_regno_in_class_p): New.
9431         (mn10300_legitimize_reload_address): New.
9432         * config/mn10300/mn10300.h (enum reg_class): Remove
9433         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
9434         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
9435         SP_OR_GENERAL_REGS.
9436         (REG_CLASS_NAMES): Update to match.
9437         (REG_CLASS_CONTENTS): Likewise.
9438         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
9439         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
9440         (REGNO_IN_RANGE_P): Remove.
9441         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
9442         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
9443         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
9444         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
9445         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
9446         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
9447         (REGNO_GENERAL_P): New.
9448         (HAVE_POST_MODIFY_DISP): New.
9449         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
9450         (LEGITIMIZE_RELOAD_ADDRESS): New.
9451         * config/mn10300/mn10300-protos.h: Update.
9452
9453         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
9454         DATA_REGS for AM33 stack-pointer destination.
9455         (mn10300_preferred_output_reload_class): Likewise.
9456         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
9457         into a form appropriate for ...
9458         (TARGET_SECONDARY_RELOAD): New.
9459         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
9460         * config/mn10300/mn10300-protos.h: Update.
9461         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
9462         reload_insi; use the "A" constraint for the scratch; handle AM33
9463         moves of sp to non-address registers.
9464
9465         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
9466         (*movqi_internal): ... here.
9467         (*am33_movhi, *mn10300_movhi): Merge into...
9468         (*movhi_internal): ... here.
9469         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
9470         as the source/destination of moves from/to SP.
9471         (movsf): Only allow for AM33-2.
9472         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
9473         any integer constant constraint.  Only allow for AM33-2.  Tidy
9474         all of the alternative outputs.
9475         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
9476         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
9477         for MN103.
9478         (udivsi3, umodsi3): New patterns for MN103 only.
9479
9480 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
9481
9482         * doc/tm.texi.in: Spell out that a lack of register class unions
9483         can lead to ICEs.
9484         * doc/tm.texi: Regenerate.
9485
9486 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
9487
9488         PR rtl-optimization/47337
9489         * dce.c (check_argument_store): New function.
9490         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
9491
9492         PR tree-optimization/47290
9493         * tree-eh.c (infinite_empty_loop_p): New function.
9494         (cleanup_empty_eh): Use it.
9495
9496 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
9497
9498         PR target/46997
9499         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
9500         (a64_expand_widen_sum): Ditto.
9501         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
9502         (vec_extract_evenodd_help): Ditto.
9503         (vec_extract_evenv4hi): Ditto.
9504         (vec_extract_oddv4hi): Ditto.
9505         (vec_extract_evenv2si): Ditto.
9506         (vec_extract_oddv2si): Ditto.
9507         (vec_extract_evenv2sf): Ditto.
9508         (vec_extract_oddv2sf): Ditto.
9509         (vec_pack_trunc_v4hi: Ditto.
9510         (vec_pack_trunc_v2si): Ditto.
9511         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
9512         (vec_interleave_highv8qi): Ditto.
9513         (mix1_r): Ditto.
9514         (vec_extract_oddv8qi): Ditto.
9515         (vec_interleave_lowv4hi): Ditto.
9516         (vec_interleave_highv4hi): Ditto.
9517         (vec_interleave_lowv2si): Ditto.
9518         (vec_interleave_highv2si): Ditto.
9519
9520 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9521
9522         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
9523         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
9524         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
9525         (pa_c_mode_for_suffix): New.
9526         (TARGET_EXPAND_BUILTIN): Define.
9527         (TARGET_C_MODE_FOR_SUFFIX): Define.
9528         (pa_builtins): Define.
9529         (pa_init_builtins): Register __float128 type and init new support
9530         builtins.
9531         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
9532         * config/pa/quadlib.c (_U_Qfcopysign): New.
9533
9534 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
9535
9536         PR middle-end/46894
9537         * explow.c (allocate_dynamic_stack_space): Do not assume more than
9538         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
9539         are defined.
9540
9541 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9542
9543         PR tree-optimization/47179
9544         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
9545         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
9546
9547 2011-01-18  Richard Guenther  <rguenther@suse.de>
9548
9549         PR rtl-optimization/47216
9550         * emit-rtl.c: Include tree-flow.h.
9551         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
9552         of replicating it with different semantics.
9553         * Makefile.in (emit-rtl.o): Adjust.
9554
9555 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9556
9557         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
9558         (cortex_a9_dp): Handle neon types correctly.
9559
9560 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
9561
9562         PR rtl-optimization/47299
9563         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
9564         subtarget.  Use normal multiplication if both operands are constants.
9565         * expmed.c (expand_widening_mult): Don't try to optimize constant
9566         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
9567         before using it.
9568
9569 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9570
9571         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
9572         spacing after 'e.g.', typos, comma, hyphenation.
9573
9574 2011-01-17  Richard Henderson  <rth@redhat.com>
9575
9576         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
9577         (rx_restricted_mem_operand): New.
9578         (rx_shift_operand): Use register_operand.
9579         (rx_source_operand, rx_compare_operand): Likewise.
9580         * config/rx/rx.md (addsi3_flags): New expander.
9581         (adddi3): Rewrite as expander.
9582         (adc_internal, *adc_flags, adddi3_internal): New patterns.
9583         (subsi3_flags): New expander.
9584         (subdi3): Rewrite as expander.
9585         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
9586
9587         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
9588         (rx_init_builtins): Remove sat builtin.
9589         (rx_expand_builtin): Likewise.
9590         * config/rx/rx.md (ssaddsi3): New.
9591         (*sat): Rename from sat.  Represent the CC_REG input.
9592
9593         * config/rx/predicates.md (rshift_operator): New.
9594         * config/rx/rx.c (rx_expand_insv): Remove.
9595         * config/rx/rx-protos.h: Update.
9596         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
9597         operand to the canonical position.
9598         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
9599         (*bitclr, *bitclr_in_memory): Similarly.
9600         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
9601         (insv): Retain the zero_extract in the expansion.
9602
9603         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
9604         (bswaphi2, bitinvert, revw): Likewise.
9605
9606         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
9607         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
9608         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
9609         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
9610         (bitset, bitset_in_memory): Likewise.
9611         (bitinvert, bitinvert_in_memory): Likewise.
9612         (bitclr, bitclr_in_memory): Likewise.
9613         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
9614         (rx_strend, rx_cmpstrn): Likewise.
9615         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
9616         (bitop peep2 patterns): Remove.
9617
9618         * config/rx/rx.c (rx_match_ccmode): New.
9619         * config/rx/rx-protos.h: Update.
9620         * config/rx/rx.md (abssi2): Clobber, don't set flags.
9621         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
9622         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
9623         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
9624         (fix_truncsfsi2, floatsisf2): Likewise.
9625         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
9626         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
9627         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
9628         (*subsi3_flags, *xorsi3_flags): New.
9629
9630         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
9631
9632         * config/rx/rx.c (rx_print_operand): Remove workaround for
9633         unsplit comparison operations.
9634
9635         * config/rx/rx.md (movsicc): Split after reload.
9636         (*movsicc): Merge *movsieq and *movsine via match_operator.
9637         (*stcc): New pattern.
9638
9639         * config/rx/rx.c (rx_float_compare_mode): Remove.
9640         * config/rx/rx.h (rx_float_compare_mode): Remove.
9641         * config/rx/rx.md (cstoresi4): Split after reload.
9642         (*sccc): New pattern.
9643
9644         * config/rx/predicates.md (label_ref_operand): New.
9645         (rx_z_comparison_operator): New.
9646         (rx_zs_comparison_operator): New.
9647         (rx_fp_comparison_operator): New.
9648         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
9649         Validate that the flags are set properly for the comparison.
9650         (rx_gen_cond_branch_template): Remove.
9651         (rx_cc_modes_compatible): Remove.
9652         (mode_from_flags): New.
9653         (flags_from_code): Rename from flags_needed_for_conditional.
9654         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
9655         (rx_select_cc_mode): Likewise.
9656         (rx_split_fp_compare): New.
9657         (rx_split_cbranch): New.
9658         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
9659         (*cbranchsi4): Use match_operator and rx_split_cbranch.
9660         (*cbranchsf4): Similarly.
9661         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
9662         match_operator and rx_split_cbranch.
9663         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
9664         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
9665         (*cmpsi): Rename from cmpsi.
9666         (*tstsi): Rename from tstsi.
9667         (*cmpsf): Rename from cmpsf; use CC_Fmode.
9668         (*conditional_branch): Rename from conditional_branch.
9669         (*reveresed_conditional_branch): Remove.
9670         (b<code>): Remove expander.
9671         * config/rx/rx-protos.h: Update.
9672
9673         * config/rx/rx.c (rx_compare_redundant): Remove.
9674         * config/rx/rx.md (cmpsi): Don't use it.
9675         * config/rx/rx-protos.h: Update.
9676
9677         * config/rx/rx-modes.def (CC_F): New mode.
9678         * config/rx/rx.c (rx_select_cc_mode): New.
9679         * config/rx/rx.h (SELECT_CC_MODE): Use it.
9680         * config/rx/rx-protos.h: Update.
9681
9682 2011-01-17  Richard Henderson  <rth@redhat.com>
9683
9684         * except.c (dump_eh_tree): Fix stray ; after for statement.
9685
9686 2011-01-17  Richard Guenther  <rguenther@suse.de>
9687
9688         PR tree-optimization/47313
9689         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
9690         handling before copying the body.  Properly deal with
9691         by-reference result in SSA form.
9692
9693 2011-01-17  Ian Lance Taylor  <iant@google.com>
9694
9695         PR target/47219
9696         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
9697         (struct_value_alias_set): Don't define.
9698         (sparc_option_override): Don't set sparc_sr_alias_set and
9699         struct_value_alias_set.
9700         (save_or_restore_regs): Use gen_frame_mem rather than calling
9701         set_mem_alias_set.
9702         (sparc_struct_value_rtx): Likewise.
9703
9704 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
9705
9706         PR target/47318
9707         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
9708         (_mm_maskstore_pd): Likewise.
9709         (_mm_maskload_ps): Likewise.
9710         (_mm_maskstore_ps): Likewise.
9711         (_mm256_maskload_pd): Change mask to __m256i.
9712         (_mm256_maskstore_pd): Likewise.
9713         (_mm256_maskload_ps): Likewise.
9714         (_mm256_maskstore_ps): Likewise.
9715
9716         * config/i386/i386-builtin-types.def: Updated.
9717         (ix86_expand_special_args_builtin): Likewise.
9718
9719         * config/i386/i386.c (bdesc_special_args): Update
9720         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
9721         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
9722         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
9723         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
9724
9725         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
9726         Use <avxpermvecmode> on mask register.
9727         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
9728
9729 2011-01-17  Olivier Hainque  <hainque@adacore.com>
9730             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
9731             Eric Botcazou  <ebotcazou@adacore.com>
9732
9733         PR target/46655
9734         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
9735         if <= USHRT_MAX in 32-bit mode.
9736
9737 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9738
9739         * doc/install.texi (Configuration, Specific): Wrap long
9740         lines in examples.  Allow line wrapping in long options
9741         and URLs where beneficial for PDF output.
9742
9743 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
9744
9745         * config/mips/mips.c (mips_classify_symbol): Don't return
9746         SYMBOL_PC_RELATIVE for nonlocal labels.
9747
9748 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
9749
9750         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
9751
9752 2011-01-15  Jan Hubicka  <jh@suse.cz>
9753
9754         PR tree-optimization/47276
9755         * ipa.c (function_and_variable_visibility): Do not try to mark alias
9756         declarations as needed.
9757
9758 2011-01-15  Martin Jambor  <mjambor@suse.cz>
9759
9760         * common.opt (fdevirtualize): New flag.
9761         * doc/invoke.texi (Option Summary): Document it.
9762         * opts.c (default_options_table): Add devirtualize flag.
9763         * ipa-prop.c (detect_type_change): Return immediately if
9764         devirtualize flag is not set.
9765         (detect_type_change_ssa): Likewise.
9766         (compute_known_type_jump_func): Likewise.
9767         (ipa_analyze_virtual_call_uses): Likewise.
9768
9769 2011-01-14  Martin Jambor  <mjambor@suse.cz>
9770
9771         PR tree-optimization/45934
9772         PR tree-optimization/46302
9773         * ipa-prop.c (type_change_info): New type.
9774         (stmt_may_be_vtbl_ptr_store): New function.
9775         (check_stmt_for_type_change): Likewise.
9776         (detect_type_change): Likewise.
9777         (detect_type_change_ssa): Likewise.
9778         (compute_complex_assign_jump_func): Check for dynamic type change.
9779         (compute_complex_ancestor_jump_func): Likewise.
9780         (compute_known_type_jump_func): Likewise.
9781         (compute_scalar_jump_functions): Likewise.
9782         (ipa_analyze_virtual_call_uses): Likewise.
9783         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
9784
9785 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9786
9787         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
9788         * config/i386/i386.opt (msse5): New Alias.
9789
9790 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9791
9792         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
9793         * config/sparc/linux64.h (CC1_SPEC): Likewise.
9794         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
9795         * config/sparc/sparc.h (CC1_SPEC): Likewise.
9796
9797 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9798
9799         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
9800         -mcpu options.
9801         * config/sparc/linux64.h (CC1_SPEC): Likewise.
9802         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
9803         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
9804         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
9805         Likewise.
9806         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
9807
9808 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9809
9810         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
9811
9812 2011-01-14  Mike Stump  <mikestump@comcast.net>
9813
9814         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
9815         * config/fr30/fr30.md: Likweise
9816         (movsi_push): Likewise.
9817         (movsi_pop): Likewise.
9818         (enter_func): Likewise.
9819         * config/moxie/moxie.md (movsi_push): Likewise.
9820         (movsi_pop): Likewise.
9821
9822 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9823
9824         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
9825         %{no_archive} %{exact_version}.
9826         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
9827         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
9828         %{no_archive} %{exact_version}.
9829         * config/mips/openbsd.h (LINK_SPEC): Likewise.
9830         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
9831         * config/mips/vxworks.h: Likewise.
9832
9833 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9834
9835         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
9836
9837 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9838
9839         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
9840         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
9841
9842 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9843
9844         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
9845         -nodefaultlib.
9846
9847 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9848
9849         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
9850         for mcpu not cpu.
9851         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
9852         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
9853         not cpu.
9854         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
9855         Don't handle -shlib.
9856
9857 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9858
9859         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
9860         (CC1_SPEC): Don't handle -profile.
9861
9862 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9863
9864         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
9865         * config/mips/mips.h (CC1_SPEC): Likewise.
9866
9867 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9868
9869         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
9870         * config/mips/mips.h (CC1_SPEC): Likewise.
9871
9872 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9873
9874         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
9875         * config/m32r/linux.h (LINK_SPEC): Likewise.
9876         * config/mips/linux.h (LINK_SPEC): Likewise.
9877         * config/mips/linux64.h (LINK_SPEC): Likewise.
9878         * config/sparc/linux.h (LINK_SPEC): Likewise.
9879         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
9880         LINK_SPEC): Likewise.
9881         * config/xtensa/linux.h (LINK_SPEC): Likewise.
9882
9883 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9884
9885         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
9886         %{version:-v}.
9887         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
9888
9889 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9890
9891         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
9892         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
9893
9894 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9895
9896         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
9897
9898 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9899
9900         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
9901         supports -Bstatic/-Bdynamic.
9902         * configure: Regenerate.
9903
9904 2011-01-14  Jan Hubicka  <jh@suse.cz>
9905             Jack Howarth  <howarth@bromo.med.uc.edu>
9906
9907         PR target/46037
9908         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
9909         when checking debug_info_level. Test write_symbols instead of
9910         debug_hooks->var_location when setting flag_var_tracking_uninit.
9911
9912 2011-01-14  Richard Guenther  <rguenther@suse.de>
9913
9914         PR tree-optimization/47179
9915         * target.def (ref_may_alias_errno): New target hook.
9916         * targhooks.h (default_ref_may_alias_errno): Declare.
9917         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
9918         (default_ref_may_alias_errno): New function.
9919         * target.h (struct ao_ref_s): Declare.
9920         * tree-ssa-alias.c: Include target.h.
9921         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
9922         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
9923         (targhooks.o): Likewise.
9924         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
9925         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
9926
9927 2011-01-14  Richard Guenther  <rguenther@suse.de>
9928
9929         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
9930
9931 2011-01-14  Richard Guenther  <rguenther@suse.de>
9932
9933         PR tree-optimization/47280
9934         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
9935         return CFG changes.
9936         (tree_ssa_forward_propagate_single_use_vars): Deal with
9937         CFG changes from associate_plusminus.
9938
9939 2011-01-14  Richard Guenther  <rguenther@suse.de>
9940
9941         PR middle-end/47281
9942         Revert
9943         2011-01-11  Richard Guenther  <rguenther@suse.de>
9944
9945         PR tree-optimization/46076
9946         * tree-ssa.c (useless_type_conversion_p): Conversions from
9947         unprototyped to empty argument list function types are useless.
9948
9949 2011-01-14  Richard Guenther  <rguenther@suse.de>
9950
9951         PR tree-optimization/47286
9952         * tree-ssa-structalias.c (new_var_info): Register variables are global.
9953
9954 2011-01-14  Martin Jambor  <mjambor@suse.cz>
9955
9956         PR middle-end/46823
9957         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
9958
9959 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
9960
9961         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
9962         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
9963         * config/xtensa/xtensa.c (xtensa_libcall_value,
9964         xtensa_function_value_regno_p): New functions.
9965         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
9966
9967 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
9968
9969         PR c++/47213
9970         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
9971         PE specific hook.
9972         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
9973         New function prototype.
9974         * config/i386/winnt.c (i386_pe_assemble_visibility):
9975         Warn only if attribute was specified by user.
9976
9977 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
9978
9979         PR target/47251
9980         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
9981         floating point.
9982         (floatunsdidf2_fcfidu): Ditto.
9983
9984 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9985
9986         * config/s390/s390.c (print_operand_address): Replace 'error' with
9987         'output_operand_lossage'.
9988         (print_operand): Likewise.
9989
9990 2011-01-13  Jeff Law  <law@redhat.com>
9991
9992         PR rtl-optimization/39077
9993         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
9994         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
9995         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
9996         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
9997         * gcse.c (prune_insertions_deletions): New function.
9998         (compute_pre_data): Use it.
9999
10000 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
10001
10002         PR debug/PR46973
10003         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
10004         static function.
10005         (prune_unused_types_mark): Use it.
10006
10007 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
10008
10009         PR rtl-optimization/45352
10010         * sel-sched.c: Update copyright years.
10011         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
10012         in the advancing loop when we have issued issue_rate insns.
10013
10014 2011-01-12  Richard Henderson  <rth@redhat.com>
10015
10016         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
10017         (TARGET_MD_ASM_CLOBBERS): New.
10018
10019         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
10020         (TARGET_DELEGITIMIZE_ADDRESS): New.
10021
10022         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
10023         (clzsi2, *bsch): New patterns.
10024
10025         * config/mn10300/mn10300.md (INT): New mode iterator.
10026         (*mov<INT>_clr): New pattern, and peep2 to generate it.
10027
10028         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
10029         flag_split_wide_types.
10030
10031         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
10032         (mn10300_trampoline_init): Rewrite without a template, an immediate
10033         load and a direct branch.
10034         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
10035
10036 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
10037
10038         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10039         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
10040         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
10041         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10042
10043 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
10044
10045         PR debug/47209
10046         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
10047         of type.
10048
10049 2011-01-12  Jan Hubicka  <jh@suse.cz>
10050
10051         PR driver/47244
10052         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
10053         (PLUGIN_COND_CLOSE): New macro.
10054         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
10055
10056 2011-01-12  Richard Guenther  <rguenther@suse.de>
10057
10058         PR lto/47259
10059         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
10060         register variables in a MEM_REF.
10061
10062 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
10063
10064         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
10065         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
10066         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
10067         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
10068         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
10069         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
10070         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
10071         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
10072         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
10073         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
10074         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
10075         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
10076         * config/gnu-user.h: New.  Copied from linux.h.
10077         (LINUX_TARGET_STARTFILE_SPEC): Rename to
10078         GNU_USER_TARGET_STARTFILE_SPEC.
10079         (LINUX_TARGET_ENDFILE_SPEC): Rename to
10080         GNU_USER_TARGET_ENDFILE_SPEC.
10081         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
10082         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
10083         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
10084         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
10085         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
10086         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
10087         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
10088         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
10089         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
10090         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
10091         * config/arm/linux-eabi.h (CC1_SPEC): Use
10092         GNU_USER_TARGET_CC1_SPEC.
10093         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
10094         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
10095         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
10096         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
10097         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
10098         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
10099         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
10100         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
10101
10102 2011-01-12  Richard Guenther  <rguenther@suse.de>
10103
10104         PR other/46946
10105         * doc/invoke.texi (ffast-math): Document it is turned on
10106         with -Ofast.
10107
10108 2011-01-12  Jan Hubicka  <jh@suse.cz>
10109
10110         PR tree-optimization/47233
10111         * opts.c (common_handle_option): Disable ipa-reference with profile
10112         feedback.
10113
10114 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
10115
10116         * c-parser.c (c_parser_objc_at_property_declaration): Improved
10117         error message.
10118
10119 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
10120
10121         * c-parser.c (c_lex_one_token): Updated and reindented some
10122         comments.  No changes in code.
10123
10124 2011-01-11  Ian Lance Taylor  <iant@google.com>
10125
10126         * godump.c (go_output_var): Don't output the variable if there is
10127         already a type with the same name.
10128
10129 2011-01-11  Ian Lance Taylor  <iant@google.com>
10130
10131         * godump.c (go_format_type): Don't generate float80.
10132
10133 2011-01-11  Richard Henderson  <rth@redhat.com>
10134
10135         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
10136         declaration.  Rewrite for both speed and size.
10137         (mn10300_address_cost_1): Remove.
10138         (mn10300_register_move_cost): New.
10139         (mn10300_memory_move_cost): New.
10140         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
10141         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
10142         extensions, shifts, BSWAP, CLZ.
10143         (mn10300_wide_const_load_uses_clr): Remove.
10144         (TARGET_REGISTER_MOVE_COST): New.
10145         (TARGET_MEMORY_MOVE_COST): New.
10146         * config/mn10300/mn10300-protos.h: Update.
10147         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
10148
10149         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
10150         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
10151         * config/mn10300/mn10300-protos.h: Update.
10152         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
10153         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
10154         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
10155         (*test_int_bitfield, *test_byte_bitfield): Remove.
10156         (*bit_test, *subreg_bit_test): Remove.
10157         * config/mn10300/predicates.md (const_8bit_operand): Remove.
10158
10159         * config/mn10300/constraints.md ("c"): Rename from "A".
10160         ("A", "D"): New constraint letters.
10161         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
10162         (fmssf4, fnmasf4, fnmssf4): Likewise.
10163
10164         * config/mn10300/mn10300.md (isa): New attribute.
10165         (enabled): New attribute.
10166
10167         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
10168         (abssf2, negsf2): Define only for hardware fp.
10169         (sqrtsf2): Reformat.
10170         (addsf3, subsf3, mulsf3): Merge expander and insn.
10171
10172         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
10173         (DEBUGGER_AUTO_OFFSET): Remove.
10174         (DEBUGGER_ARG_OFFSET): Remove.
10175
10176         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
10177         Emit register stores with the same offsets as the hardware.
10178         (mn10300_store_multiple_operation): Don't check that the register
10179         save offsets are monotonic.
10180         * config/mn10300/mn10300-protos.h: Update.
10181
10182         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
10183
10184         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
10185         in terms of the value on the stack, not the MDR register.
10186
10187 2011-01-11  Jan Hubicka  <jh@suse.cz>
10188
10189         PR lto/45721
10190         PR lto/45375
10191         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
10192         (symbol_alias_set_destroy, symbol_alias_set_contains,
10193         propagate_aliases_backward): Declare.
10194         * lto-streamer-out.c (struct sets): New sturcture.
10195         (trivally_defined_alias): New function.
10196         (output_alias_pair_p): Rewrite.
10197         (output_unreferenced_globals): Fix output of alias pairs.
10198         (produce_symtab): Likewise.
10199         * ipa.c (function_and_variable_visibility): Set weak alias destination
10200         as needed in lto.
10201         * varasm.c (symbol_alias_set_t): Remove.
10202         (symbol_alias_set_destroy): Export.
10203         (propagate_aliases_forward, propagate_aliases_backward): New functions
10204         based on ...
10205         (compute_visible_aliases): ... this one; remove.
10206         (trivially_visible_alias): New
10207         (trivially_defined_alias): New.
10208         (remove_unreachable_alias_pairs): Rewrite.
10209         (finish_aliases_1): Reorganize code checking if alias is defined.
10210         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
10211         in LTO mode.
10212
10213 2011-01-11  Richard Guenther  <rguenther@suse.de>
10214
10215         PR tree-optimization/46076
10216         * tree-ssa.c (useless_type_conversion_p): Conversions from
10217         unprototyped to empty argument list function types are useless.
10218
10219 2011-01-11  Richard Guenther  <rguenther@suse.de>
10220
10221         PR middle-end/45235
10222         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
10223         volatile MEMs as MEM_READONLY_P.
10224
10225 2011-01-11  Richard Guenther  <rguenther@suse.de>
10226
10227         PR tree-optimization/47239
10228         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
10229
10230 2011-01-11  Jeff Law  <law@redhat.com>
10231
10232         PR tree-optimization/47086
10233         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
10234         IVs from statements that might throw.
10235
10236 2011-01-10  Jan Hubicka  <jh@suse.cz>
10237
10238         PR lto/45375
10239         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
10240
10241 2011-01-10  Jan Hubicka  <jh@suse.cz>
10242
10243         PR lto/45375
10244         * profile.c (read_profile_edge_counts): Ignore profile inconistency
10245         when correcting profile.
10246
10247 2011-01-10  Jan Hubicka  <jh@suse.cz>
10248
10249         PR lto/46083
10250         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
10251         DECL_FINI_PRIORITY.
10252         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
10253         Restore DECL_FINI_PRIORITY.
10254
10255 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10256
10257         * doc/gimple.texi: Fix quoting of multi-word return values in
10258         @deftypefn statements.  Ensure presence of return value.  Wrap
10259         overlong @deftypefn lines.
10260         (is_gimple_operand, is_gimple_min_invariant_address): Remove
10261         descriptions of removed functions.
10262         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
10263         of multi-word return value in @deftypefn statement.
10264
10265 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10266
10267         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
10268         (Conditional Expressions, Logical Operators)
10269         (Statement and operand traversals): Do not indent smallexample
10270         code.  Fix duplicate function argument in example.
10271
10272 2011-01-10  Jeff Law  <law@redhat.com>
10273
10274         PR tree-optimization/47141
10275         * ipa-split.c (split_function): Handle case where we are
10276         returning a value and the return block has a virtual operand phi.
10277
10278 2011-01-10  Jan Hubicka  <jh@suse.cz>
10279
10280         PR tree-optimization/47234
10281         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
10282         (pass_feedback_split_functions): Declare.
10283         * passes.c (init_optimization_passes): Add ipa-split as subpass of
10284         tree-profile.
10285         * ipa-split.c (gate_split_functions): Update comments; disable
10286         split-functions for profile_arc_flag and branch_probabilities.
10287         (gate_feedback_split_functions): New function.
10288         (execute_feedback_split_functions): New function.
10289         (pass_feedback_split_functions): New global var.
10290
10291 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
10292
10293         PR lto/46760
10294         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
10295         calling gimple_call_set_cannot_inline.
10296
10297 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
10298
10299         * config/darwin-sections.def: Remove unused section.
10300
10301 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
10302
10303         PR c++/47218
10304         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
10305
10306 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
10307
10308         PR objc/47232
10309         * c-parser.c (c_parser_declaration_or_fndef): Improved
10310         error message.
10311
10312 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
10313
10314         * config/i386/winnt.c (i386_pe_start_function): Make sure
10315         to switch back to function's section.
10316
10317 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
10318
10319         PR gcc/46902
10320         PR testsuite/46912
10321         * plugin.c: Move include of dlfcn.h from here...
10322         * system.h: ... to here.
10323
10324 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10325
10326         * doc/cpp.texi (C++ Named Operators): Fix markup for header
10327         file name.
10328         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
10329         two extra empty pages in PDF output.
10330
10331 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
10332
10333         PR objc/47078
10334         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
10335         for error recovery purposes behave as if it was not specified so
10336         that the default type is usd.
10337
10338 2011-01-07  Jan Hubicka  <jh@suse.cz>
10339
10340         PR tree-optmization/46469
10341         * ipa.c (function_and_variable_visibility): Clear needed flags on
10342         nodes with external decls; handle weakrefs merging correctly.
10343
10344 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
10345
10346         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
10347         not false.
10348
10349 2011-01-07  Jan Hubicka  <jh@suse.cz>
10350
10351         * doc/invoke.texi: (-flto, -fuse-linker-plugin): Update defaults
10352         and no longer claim that gold is required for linker plugin.
10353         * configure: Regenerate.
10354         * gcc.c (PLUGIN_COND): New macro.
10355         (LINK_COMMAND_SPEC): Use it.
10356         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
10357         * config.in (HAVE_LTO_PLUGIN): New.
10358         * configure.ac (--with-lto-plugin): New parameter; autodetect
10359         HAVE_LTO_PLUGIN.
10360
10361 2011-01-07  Jan Hubicka  <jh@suse.cz>
10362
10363         PR tree-optimization/46367
10364         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
10365         when we can update original.
10366         (cgraph_mark_inline_edge): Sanity check.
10367         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
10368
10369 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10370
10371         * config/spu/spu.h (ASM_COMMENT_START): Define.
10372
10373 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
10374
10375         PR driver/42445
10376         * gcc.c (%>S): New.
10377         (SWITCH_KEEP_FOR_GCC): Likewise.
10378         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
10379         (do_spec_1): Handle "%>".
10380
10381         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
10382
10383 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
10384
10385         PR target/47201
10386         * config/i386/i386.c (ix86_delegitimize_address): If
10387         simplify_gen_subreg fails, return orig_x.
10388
10389         PR bootstrap/47187
10390         * value-prof.c (gimple_stringop_fixed_value): Handle
10391         lhs of the call properly.
10392
10393 2011-01-07  Jan Hubicka  <jh@suse.cz>
10394
10395         PR lto/45375
10396         * lto-opt.c (lto_reissue_options): Set flag_shlib.
10397
10398 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
10399
10400         * target.def (function_switched_text_sections): New hook.
10401         * doc/tm.texi: Regenerated.
10402         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
10403         * final.c (default_function_switched_text_sections): New.
10404         (final_scan_insn): Call function_switched_text_sections when a
10405         mid-function section change occurs.
10406         * output.h (default_function_switched_text_sections): Declare.
10407         * config/darwin-protos.h (darwin_function_switched_text_sections):
10408         Likewise.
10409         * config/darwin.c (darwin_function_switched_text_sections): New.
10410         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
10411
10412 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
10413
10414         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
10415         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
10416         the secondary code fragment when outputting for DWARF == 2.
10417
10418 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
10419
10420         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10421         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
10422         Remove.
10423         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
10424         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10425
10426 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
10427
10428         PR debug/46704
10429         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
10430         when it is not empty.
10431
10432 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
10433
10434         Bobcat Enablement
10435         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
10436         (case ${target}): Add btver1.
10437         * config/i386/driver-i386.c (host_detect_local_cpu): Let
10438         -march=native recognize btver1 processors.
10439         * config/i386/i386-c.c (ix86_target_macros_internal): Add
10440         btver1 def_and_undef
10441         * config/i386/i386.c (struct processor_costs btver1_cost): New
10442         btver1 cost table.
10443         (m_BTVER1): New definition.
10444         (m_AMD_MULTIPLE): Includes m_BTVER1.
10445         (initial_ix86_tune_features): Add btver1 tune.
10446         (processor_target_table): Add btver1 entry.
10447         (static const char *const cpu_names): Add btver1 entry.
10448         (software_prefetching_beneficial_p): Add btver1.
10449         (ix86_option_override_internal): Add btver1 instruction sets.
10450         (ix86_issue_rate): Add btver1.
10451         (ix86_adjust_cost): Add btver1.
10452         * config/i386/i386.h (TARGET_BTVER1): New definition.
10453         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
10454         (enum processor_type): Add PROCESSOR_BTVER1.
10455         * config/i386/i386.md (define_attr "cpu"): Add btver1.
10456
10457 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10458
10459         PR target/43309
10460         * config/i386/i386.c (legitimize_tls_address)
10461         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
10462         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
10463         (tls_initial_exec_64_sun): New pattern.
10464
10465 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
10466
10467         * doc/invoke.texi (Overall Options): Improve wording and markup
10468         of the description of -wrapper.
10469
10470 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
10471
10472         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
10473         rdynamic, threads): New Driver options.
10474
10475 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10476
10477         PR target/38118
10478         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
10479         if coming from .tdata.
10480         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
10481
10482 2011-01-06  Jan Hubicka  <jh@suse.cz>
10483
10484         PR lto/47188
10485         * collect2.c (main): Do not enable LTOmode when plugin is active.
10486
10487 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10488
10489         PR other/45915
10490         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
10491         --version output if supported.
10492         * configure: Regenerate.
10493
10494 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
10495
10496         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
10497         Driver options.
10498
10499 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
10500
10501         PR c/47150
10502         * c-convert.c (convert): When converting a complex expression
10503         other than COMPLEX_EXPR to a different complex type, ensure
10504         c_save_expr is called instead of save_expr, unless in_late_binary_op.
10505         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
10506         when converting COMPLEX_TYPE.
10507
10508 2011-01-06  Ira Rosen  <irar@il.ibm.com>
10509
10510         PR tree-optimization/47139
10511         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
10512         only the last reduction value is used outside the loop.  Update
10513         documentation.
10514
10515 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
10516
10517         * config/rtems.opt: New.
10518         * config.gcc (*-*-rtems*): Use rtems.opt.
10519
10520 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
10521
10522         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
10523         processors do not support 3DNow instructions.
10524
10525 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10526
10527         * config/spu/spu.c (spu_option_override): Set parameter
10528         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
10529
10530 2011-01-05  Jan Hubicka  <jh@suse.cz>
10531
10532         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
10533         at the command line.
10534
10535 2011-01-05  Martin Jambor  <mjambor@suse.cz>
10536
10537         PR lto/47162
10538         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
10539         deltas on streamed outgoing edges.
10540         (output_node_opt_summary): Output info for outgoing edges only when
10541         the node is in new parameter set.
10542         (output_cgraph_opt_summary): New parameter set, passed to the two
10543         aforementioned functions.  Update its forward declaration and its
10544         callee too.
10545
10546 2011-01-05  Tom Tromey  <tromey@redhat.com>
10547
10548         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
10549         operator to c_finish_omp_atomic.
10550         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
10551         (build_unary_op): Update.
10552         (build_modify_expr): Update.
10553         (build_asm_expr): Update.
10554
10555 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10556
10557         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
10558         newly inserted insns.
10559         (pad_bb): Likewise.
10560         (spu_emit_branch_hint): Likewise.
10561         (insert_hbrp_for_ilb_runout): Likewise.
10562         (spu_machine_dependent_reorg): Call df_finish_pass after
10563         schedule_insns returns.
10564
10565 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10566
10567         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
10568
10569 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
10570
10571         PR tree-optimization/47005
10572         * tree-sra.c (struct access): Add 'non_addressable' bit.
10573         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
10574         (decide_one_param_reduction): Return 0 if the parameter is passed by
10575         reference and one of the accesses in the group is non_addressable.
10576
10577 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
10578
10579         PR tree-optimization/47056
10580         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
10581         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
10582         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
10583
10584 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
10585
10586         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
10587         initializer.  Skip view conversions from aggregate types.
10588
10589 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
10590
10591         PR bootstrap/47055
10592         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
10593
10594 2011-01-04  Philipp Thomas  <pth@suse.de>
10595
10596         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
10597         obvious typo.
10598
10599 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10600
10601         * function.c (thread_prologue_and_epilogue_insns): Do not crash
10602         on empty epilogue sequences.
10603
10604 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
10605
10606         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
10607         non-static): New Driver options.
10608
10609 2011-01-04  Jie Zhang  <jie@codesourcery.com>
10610
10611         PR driver/47137
10612         * gcc.c (default_compilers[]): Set combinable field to 0
10613         for all assembly languages.
10614
10615 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
10616
10617         * config/mips/loongson3a.md: New file.
10618         * config/mips/mips.md: Include loongson3a.md.
10619         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
10620         TUNE_LOONGSON_3A.
10621
10622 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
10623
10624         PR middle-end/47017
10625         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
10626         instead of convert_memory_address_addr_space on the base expression.
10627
10628 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10629
10630         * config/spu/spu.c (spu_option_override): Update error text
10631         for bad -march= / -mtune= values.
10632
10633 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10634
10635         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
10636         if branch-hint optimization will be performed.
10637
10638 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
10639
10640         PR tree-optimization/47148
10641         * ipa-split.c (split_function): Convert arguments to
10642         DECL_ARG_TYPE if possible.
10643
10644         PR tree-optimization/47155
10645         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
10646         when computing uns.
10647
10648         PR rtl-optimization/47157
10649         * combine.c (try_combine): If undobuf.other_insn becomes
10650         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
10651         and set *new_direct_jump_p too.
10652
10653 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
10654
10655         PR tree-optimization/47021
10656         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
10657
10658 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
10659
10660         * gcc.c (process_command): Update copyright notice dates.
10661         * gcov.c (print_version): Likewise.
10662         * gcov-dump.c (print_version): Likewise.
10663         * mips-tfile.c (main): Likewise.
10664         * mips-tdump.c (main): Likewise.
10665
10666 2011-01-03  Martin Jambor  <mjambor@suse.cz>
10667
10668         PR tree-optimization/46801
10669         * tree-sra.c (type_internals_preclude_sra_p): Check whether
10670         aggregate fields start at byte boundary instead of the bit-field flag.
10671
10672 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
10673
10674         PR driver/47137
10675         * gcc.c (main): Revert revision 168407.
10676
10677 2011-01-03  Martin Jambor  <mjambor@suse.cz>
10678
10679         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
10680
10681 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10682
10683         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
10684         vector optab to expand vector/scalar shift, update gimple to vector.
10685
10686 2011-01-03  Martin Jambor  <mjambor@suse.cz>
10687
10688         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
10689         a thunk.
10690
10691 2011-01-03  Martin Jambor  <mjambor@suse.cz>
10692
10693         PR tree-optimization/46984
10694         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
10695         HOST_WIDE_INT.
10696         (cgraph_create_indirect_edge): Fixed line length.
10697         (cgraph_indirect_call_info): Declare.
10698         (cgraph_make_edge_direct) Update declaration.
10699         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
10700         (cgraph_create_indirect_edge): Use it.
10701         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
10702         callees.
10703         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
10704         the new thunk_delta representation.
10705         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
10706         HOST_WIDE_INT.
10707         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
10708         (ipa_read_indirect_edge_info): Likewise.
10709         * lto-cgraph.c (output_edge_opt_summary): New function.
10710         (output_node_opt_summary): Call it on all outgoing edges.
10711         (input_edge_opt_summary): New function.
10712         (input_node_opt_summary): Call it on all outgoing edges.
10713
10714 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
10715
10716         PR driver/47137
10717         * gcc.c (main): Don't check have_o when settting combine_inputs.
10718
10719 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
10720
10721         * regrename.c: Add general comment describing the pass.
10722         (struct du_head): Remove 'length' field.
10723         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
10724         (regrename_optimize): Do not sort chains.  Rework comments, add others.
10725         Force renaming to the preferred class (if any) in the first pass and do
10726         not consider registers that belong to it in the second pass.
10727         (create_new_chain): Do not set 'length' field.
10728         (scan_rtx_reg): Likewise.
10729
10730 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
10731
10732         PR tree-optimization/47140
10733         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
10734         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
10735         to bit_value_binop.
10736
10737         PR rtl-optimization/47028
10738         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
10739         parm_birth_insn instead of at the beginning of first bb.
10740
10741 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
10742
10743         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
10744         Remove the word "see" before "@pxref".
10745         * doc/rtl.texi: Remove the word "see" before "@pxref".
10746
10747 2011-01-01  Jan Hubicka  <jh@suse.cz>
10748
10749         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
10750         memory.
10751
10752 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
10753
10754         PR target/38662
10755         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
10756
10757 \f
10758 Copyright (C) 2011 Free Software Foundation, Inc.
10759
10760 Copying and distribution of this file, with or without modification,
10761 are permitted in any medium without royalty provided the copyright
10762 notice and this notice are preserved.