OSDN Git Service

* config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-04-29  Alan Modra  <amodra@gmail.com>
2
3         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
4         unspec plus offset.  Tidy macho code.
5
6 2011-04-29  Martin Jambor  <mjambor@suse.cz>
7
8         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
9         node instead of a decl.  Update all callers.
10         * cgraph.h: Update declaration.
11
12 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
13
14         PR tree-optimization/48765
15         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
16         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
17         to indicate if loop aware SLP is being used.  Scan the statements
18         and update the vectorization factor according to the type of
19         vectorization before statement analysis.
20         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
21         pass it to vect_analyze_loop_operations.
22         (vectorizable_reduction): Set number of copies to 1 in case of pure
23         SLP statement.
24         * tree-vect-stmts.c (vectorizable_conversion,
25         vectorizable_assignment, vectorizable_shift,
26         vectorizable_operation, vectorizable_type_demotion,
27         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
28         Likewise.
29         (vectorizable_condition): Move the check that it is not SLP
30         vectorization before the number of copies check.
31         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
32         to vectorize the loop using SLP.
33
34 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
35
36         PR middle-end/48597
37         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
38         inline asm.
39
40 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
41
42         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
43         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
44         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
45         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
46         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
47         linux*.h headers.
48         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
49         Define.
50         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
51         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
52         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
53         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't
54         undefine.
55         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
56         REG_NAME.
57         * config/i386/linux.h (REG_NAME): Don't define.
58         * config/i386/linux64.h (REG_NAME): Don't define.
59         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
60         Undefine before defining.
61
62 2011-04-28  Jan Hubicka  <jh@suse.cz>
63
64         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take nonconstant_names
65         array.
66         (estimate_function_body_sizes): Build nonconstant_names array; handle
67         BUILT_IN_CONSTANT_P.
68
69 2011-04-28  Richard Guenther  <rguenther@suse.de>
70
71         PR bootstrap/48804
72         Revert
73         2011-04-28  Richard Guenther  <rguenther@suse.de>
74
75         * tree-ssa-structalias.c (solve_constraints): Build succ graph
76         as late as possible.
77  
78 2011-04-28  Richard Guenther  <rguenther@suse.de>
79
80         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
81         (debug_constraint): Do it here.
82         (dump_constraints): And here.
83         (rewrite_constraints): And here.
84         (dump_constraint_edge): Remove.
85         (dump_constraint_graph): Rewrite to produce DOT output.
86         (solve_constraints): Build succ graph as late as possible.
87         Dump constraint graphs before and after solving.
88
89 2011-04-28  Richard Guenther  <rguenther@suse.de>
90
91         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
92         New function split out from ...
93         (find_func_aliases): ... here.  Call it.
94         (find_func_aliases_for_call): Likewise.
95
96 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
97
98         * internal-fn.h (internal_fn_name_array): Declare.
99         (internal_fn_flags_array): Likewise.
100
101 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
102
103         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
104         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
105         Move from sse.md.
106         (ssemodefsuffix): Remove.
107         (ssevecmodesuffix): New mode attribute.
108         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
109         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
110         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
111         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
112         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
113         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
114         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
115         ssemodesuffix mode attribute.
116         (float splitters): Use ssevecmodesuffix mode attribute.
117         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
118         (sseinsmode): Rename from avxvecmode.
119         (avxsizesuffix): Rename from avxmodesuffix.
120         (sseintvecmode): Rename from avxpermvecmode.
121         (ssedoublevecmode): Rename from ssedoublesizemode.
122         (ssehalfvecmode): Rename from avxhalfvecmode.
123         (ssescalarmode): Rename from avxscalarmode.
124         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
125         templates for ssemodesuffix mode attribute.
126         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
127         mode attribute.
128
129         Adjust RTX patterns globally for renamed mode attributes.
130
131 2011-04-27  Jan Hubcika  <jh@suse.cz>
132
133         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
134         * ipa-inline-analysis.c: Include alloc-pool.h.
135         (edge_predicate_pool): New.
136         (trye_predicate_p): New function
137         (false_predicate_p): New function.
138         (add_clause): Sanity check that false clauses are "optimized";
139         never add clauses to predicate that is already known to be false.
140         (and_predicate): Use flase_predicate_p.
141         (evaulate_predicate): Rename to ...
142         (evaluate_predicate): ... this one; update all callers; assert
143         that false is not listed among possible truths.
144         (dump_predicate): Use true_predicate_p.
145         (account_size_time): Use false_predicate_p.
146         (evaulate_conditions_for_edge): Rename to ...
147         (evaluate_conditions_for_edge) ... this one.
148         (edge_set_predicate): New function.
149         (inline_edge_duplication_hook): Duplicate edge predicates.
150         (inline_edge_removal_hook): Free edge predicates.
151         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
152         (dump_inline_summary): Update.
153         (estimate_function_body_sizes): Set edge predicates.
154         (estimate_calls_size_and_time): Handle predicates.
155         (estimate_callee_size_and_time): Update.
156         (remap_predicate): Add toplev_predicate; update comment.
157         (remap_edge_predicates): New function.
158         (inline_merge_summary): Compute toplev predicate; update.
159         (read_predicate): New function.
160         (read_inline_edge_summary): Use it.
161         (inline_read_section): Likewise.
162         (write_predicate): New function.
163         (write_inline_edge_summary): Use it.
164         (inline_write_summary): Likewise.
165         (inline_free_summary): Free alloc pool and edge summary vec.
166
167 2011-04-27  Richard Guenther  <rguenther@suse.de>
168
169         * tree-ssa-structalias.c (changed_count): Remove.
170         (changed): Use a bitmap.
171         (unify_nodes): Adjust.
172         (do_sd_constraint): Likewise.
173         (do_ds_constraint): Likewise.
174         (do_complex_constraint): Likewise.
175         (solve_graph): Likewise.
176
177 2011-04-27  Jan Hubicka  <jh@suse.cz>
178
179         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
180
181 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
182
183         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
184         (avx_vperm2f128_*_operand): Ditto.
185         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
186         Use avx_vpermilp_parallel in insn condition.
187         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
188         Use avx_vperm2f128_parallel in insn condition.
189
190 2011-04-27  Richard Guenther  <rguenther@suse.de>
191
192         * Makefile.in (tree-ssa-structalias.o): Remove
193         gt-tree-ssa-structalias.h dependency.
194         (GTFILES): Remove tree-ssa-structalias.c.
195         * tree.c (allocate_decl_uid): New function.
196         (make_node_stat): Use it.
197         (copy_node_stat): Likewise.
198         * tree.h (allocate_decl_uid): Declare.
199         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
200         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
201         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
202         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
203         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
204         (struct heapvar_map): Likewise.
205         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
206         heapvar_insert): Likewise.
207         (make_heapvar_for): Rename to ...
208         (make_heapvar): ... this.  Simplify.
209         (fake_var_decl_obstack): New global var.
210         (build_fake_var_decl): New function.
211         (make_constraint_from_heapvar): Adjust.
212         (handle_lhs_call): Likewise.
213         (create_function_info_for): Likewise.
214         (intra_create_variable_infos): Likewise.
215         (init_alias_vars): Allocate fake_var_decl_obstack.
216         (init_alias_heapvars, delete_alias_heapvars): Remove.
217         (compute_points_to_sets): Do not call init_alias_heapvars.
218         (ipa_pta_execute): Likewise.
219         (delete_points_to_sets): Free fake_var_decl_obstack.
220
221 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
222
223         * config/spu/divmovti4.c (union qword_UTItype): New data type.
224         (si_from_UTItype, si_to_UTItype): New functions.
225         (__udivmodti4): Use them to implement type-punning.
226         * config/spu/multi3.c (union qword_TItype): New data type.
227         (si_from_TItype, si_to_TItype): New functions.
228         (__multi3): Use them to implement type-punning.
229
230 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
231
232         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
233
234 2011-04-27  Jan Hubicka  <jh@suse.cz>
235
236         * ipa-prop.c (function_insertion_hook_holder): New holder.
237         (ipa_add_new_function): New function.
238         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
239         Register/deregister holder.
240
241 2011-04-27  Richard Guenther  <rguenther@suse.de>
242
243         PR tree-optimization/48772
244         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
245
246 2011-04-27  Richard Guenther  <rguenther@suse.de>
247
248         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
249         TARGET_MEM_REF handling.
250
251 2011-04-27  Nick Clifton  <nickc@redhat.com>
252
253         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
254         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
255         (REG_CLASS_NAMES): Likewise.
256         (REG_CLASS_CONTENTS): Likewise.
257         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
258         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
259         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
260         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
261         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
262         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
263         duplicate register classes.
264         (frv_class_likely_spilled_p): Likewise.
265         (frv_register_move_cost): Likewise.
266
267         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
268         end of the regno_reg_class array.
269
270 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
271
272         PR c/48742
273         * c-typeck.c (build_binary_op): Don't wrap arguments if
274         int_operands is true.
275
276 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
277
278         PR target/48767
279         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
280         targetm.calls.must_pass_in_stack for void type.
281
282 2011-04-26  Jan Hubicka  <jh@suse.cz>
283
284         * cgraphbuild.c (build_cgraph_edges): Update call
285         of cgraph_create_edge and cgraph_create_indirect_edge.
286         * cgraph.c (cgraph_create_edge_including_clones,
287         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
288         cgraph_update_edges_for_call_stmt_node): Do not take nest
289         argument; do not initialize call_stmt_size/time.
290         (dump_cgraph_node): Do not dump nest.
291         (cgraph_clone_edge): Do not take loop_nest argument;
292         do not propagate it; do not clone call_stmt_size/time.
293         (cgraph_clone_node): Likewise.
294         (cgraph_create_virtual_clone): Update.
295         * cgraph.h (struct cgraph_edge): Remove
296         call_stmt_size/call_stmt_time/loop_nest.
297         (cgraph_create_edge, cgraph_create_indirect_edge,
298         cgraph_create_edge_including_clones, cgraph_clone_node): Update
299         prototype.
300         * tree-emutls.c (gen_emutls_addr): Update.
301         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
302         loop_nest; handle indirect calls, too.
303         (clone_inlined_nodes): Do not care about updating inline summaries.
304         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
305         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
306         stream call_stmt_size/call_stmt_time/loop_nest.
307         * ipa-inline.c (edge_badness): Update.
308         (ipa_inline): dump summaries after inlining.
309         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
310         New.
311         (inline_edge_summary): New function.
312         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
313         (inline_edge_removal_hook): Handle edge summaries.
314         (inline_edge_duplication_hook): New hook.
315         (inline_summary_alloc): Alloc hooks.
316         (initialize_growth_caches): Do not register removal hooks.
317         (free_growth_caches); Do not free removal hook.
318         (dump_inline_edge_summary): New function.
319         (dump_inline_summary): Use it.
320         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
321         (inline_update_callee_summaries): New function.
322         (inline_merge_summary): Use it.
323         (do_estimate_edge_time, do_estimate_edge_growth): Update.
324         (read_inline_edge_summary): New function.
325         (inline_read_section): Use it.
326         (write_inline_edge_summary): New function.
327         (inline_write_summary): Use it.
328         (inline_free_summary): Free edge new holders.
329         * tree-inline.c (copy_bb): Update.
330
331 2011-04-26  Jason Merrill  <jason@redhat.com>
332
333         * tree-eh.c (lower_try_finally_switch): Create the label along with
334         the CASE_LABEL_EXPR.
335
336 2011-04-26  David S. Miller  <davem@davemloft.net>
337             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
338
339         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
340         * configure: Regenerate.
341
342 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
343
344         PR target/48258
345         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
346         reduction.
347         (VEC_reduc): New code iterator and splitters for vector reduction.
348         (VEC_reduc_name): Ditto.
349         (VEC_reduc_rtx): Ditto.
350         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
351         (reduc_<VEC_reduc_name>_v4sf): Ditto.
352
353         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
354         support for extracting SF on VSX.
355
356         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
357         generating xscvspdp.
358         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
359         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
360         double add, minimum, maximum vector reduction.
361         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
362         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
363         optimize double vector reduction.
364         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
365
366 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
367
368         * config/fr30/fr30.h (inhibit_libc): Don't define.
369         * config/m32r/m32r-protos.h: Correct comment.
370         * config/v850/v850.h (GHS_default_section_names,
371         GHS_current_section_names): Use tree, not union tree_node *.
372
373 2011-04-26  Xinliang David Li  <davidxl@google.com>
374
375         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
376         * c-family/c-opts.c (c_common_handle_option): Set
377         warn_maybe_uninitialized.
378         * opts.c (common_handle_option): Ditto.
379         * common.opt:  New option.
380         * tree-ssa.c (warn_uninit): Add one more parameter.
381         (warn_uninitialized_var): Pass warning code.
382         * tree-flow.h: Interface change.
383
384
385 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
386
387         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
388         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
389         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
390
391 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
392
393         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
394         * config/mips/mips.opt (mmips-tfile): Remove.
395
396         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
397         mips-tdump reference to ...
398         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
399         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
400         reference by Tru64 UNIX.
401
402 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
403
404         PR debug/48768
405         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
406         is error_mark_node, set value to NULL.
407
408         PR tree-optimization/48734
409         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
410         if return value from maybe_fold_*_comparsions isn't something
411         the code is prepared to handle.
412
413 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
414
415         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
416         mode check.
417         (ext_QIreg_nomode_operands): Remove.
418         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
419         (*andsi_1): Ditto.
420         (*andhi_1): Ditto.
421
422 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
423
424         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
425
426 2011-04-26  Richard Guenther  <rguenther@suse.de>
427
428         * c-typeck.c (build_unary_op): Do not expand array-refs via
429         pointer arithmetic.  Only adjust qualifiers for function types.
430
431 2011-04-26  Richard Guenther  <rguenther@suse.de>
432
433         PR middle-end/48694
434         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
435         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
436         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
437         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
438
439 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
440
441         * c-family/c-common.c (struct c_common_resword): Add __underlying_type.
442         * c-family/c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
443         * doc/extend.texi: Document __underlying_type.
444
445 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
446
447         * config/rs6000/titan.md (automata_option "progress"): Remove.
448
449 2011-04-25  Jeff Law  <law@redhat.com>
450
451         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
452
453 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
454
455         * system.h (ENUM_BITFIELD): Remove.
456
457 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
458             Eric Botcazou <ebotcazou@adacore.com>
459
460         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
461         for STORE_FLAG_VALUE==-1 case.
462
463 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
464
465         PR target/43804
466         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
467         LEGITIMATE_PIC_OPERAND_P.
468
469 2011-04-24  Jan Hubicka  <jh@suse.cz>
470
471         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
472         WPA hack.
473         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
474         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
475         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
476         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
477         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
478         Sanity check predicate length.
479         (remap_predicate): Likewise; sanity check jump functions.
480         (inline_read_section, inline_write_summary): Sanity check
481         predicate length.
482
483 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
484
485         PR other/48748
486         * doc/extend.texi (Type Traits): Document __is_standard_layout,
487         __is_literal_type, and __is_trivial; update throughout about
488         possibly cv-qualified void types.
489
490 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
491
492         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
493         testsuite and make it version agnostic.
494
495 2011-04-22  Jan Hubicka  <jh@suse.cz>
496
497         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
498
499 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
500
501         PR c/48685
502         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
503         to VOID_TYPE even around MODIFY_EXPR.
504
505 2011-04-22  Mike Stump  <mikestump@comcast.net>
506
507         * gensupport.c (read_md_rtx): Fix typo in comment.
508         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
509         comment.
510
511 2011-04-22  Jan Hubicka  <jh@suse.cz>
512
513         * gengtype.c (open_base_files): Add ipa-inline.h include.
514         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
515         ipa-prop.c; update all uses.
516         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
517         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
518         merge summary of inlined function into former caller.
519         * ipa-inline.c (max_benefit): Remove.
520         (edge_badness): Compensate for removal of benefits.
521         (update_caller_keys): Use
522         reset_node_growth_cache/reset_edge_growth_cache.
523         (update_callee_keys): Likewise.
524         (update_all_callee_keys): Likewise.
525         (inline_small_functions): Do not collect max_benefit; do not reset
526         estimated_growth; call free_growth_caches and initialize_growth_caches.
527         * ipa-inline.h (struct condition, type clause_t, struct predicate,
528         struct size_time_entry): New structures.
529         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
530         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
531         and estimated_growth.
532         (edge_growth_cache_entry): New structure.
533         (node_growth_cache, edge_growth_cache): New global vars.
534         (estimate_growth): Turn into inline.
535         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
536         initialize_growth_caches, free_growth_caches): Declare.
537         (estimate_edge_growth): Rewrite.
538         (estimate_edge_time): Implement as inline cache lookup.
539         (reset_node_growth_cache, reset_edge_growth_cache): New inline
540         functions.
541         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
542         (NUM_CONDITIONS): New constant.
543         (predicate_conditions): New enum.
544         (IS_NOT_CONSTANT): New constant.
545         (edge_removal_hook_holder): New var.
546         (node_growth_cache, edge_growth_cache): New global vars.
547         (true_predicate, single_cond_predicate, false_predicate,
548         not_inlined_predicate, add_condition, add_clause, and_predicates,
549         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
550         dump_clause, dump_predicate, account_size_time,
551         evaulate_conditions_for_edge): New functions.
552         (inline_summary_alloc): Move to heap.
553         (inline_node_removal_hook): Clear condition and entry vectors.
554         (inline_edge_removal_hook): New function.
555         (initialize_growth_caches, free_growth_caches): New function.
556         (dump_inline_summary): Update.
557         (edge_execution_predicate): New function.
558         (will_be_nonconstant_predicate): New function.
559         (estimate_function_body_sizes): Compute BB and constantness predicates.
560         (compute_inline_parameters): Do not clear estimated_growth.
561         (estimate_edge_size_and_time): New function.
562         (estimate_calls_size_and_time): New function.
563         (estimate_callee_size_and_time): New function.
564         (remap_predicate): New function.
565         (inline_merge_summary): New function.
566         (do_estimate_edge_time): New function based on...
567         (estimate_edge_time): ... this one.
568         (do_estimate_edge_growth): New function.
569         (do_estimate_growth): New function based on....
570         (estimate_growth): ... this one.
571         (inline_analyze_function): Analyze after deciding on jump functions.
572         (inline_read_section): New function.
573         (inline_read_summary): Use it.
574         (inline_write_summary): Write all the new data.
575         * ipa-prop.c (ipa_get_param_decl_index): Export.
576         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
577         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
578         Declare.
579         (ipa_get_lattice): Move here from ipa-cp.c
580         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
581         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
582         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
583         cgraph_edge_inlinable_p): Remove.
584         * cgraphunit.c: Include ipainline.h
585         (cgraph_process_new_functions): Update call of
586         compute_inline_parameters.
587
588 2011-04-22  Richard Guenther  <rguenther@suse.de>
589
590         * tree.c (build_int_cst): Properly create canonicalized integer
591         constants.
592         (build_int_cst_type): Remove scary comments.
593
594 2011-04-22  Xinliang David Li  <davidxl@google.com>
595
596         * toplev.c (process_options): Enable -Werror=coverage-mismatch
597         by default when -Wno-error is not specified.
598         * opts-global.c (decode_options): Remove call to
599         control_warning_options.
600
601 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
602
603         PR tree-optimization/48717
604         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
605         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
606
607 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
608
609         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
610         definition where used.
611
612 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
613
614         PR c/48716
615         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
616         TREE_STATIC variables declared inside of some OpenMP construct.
617
618 2011-04-22  Martin Jambor  <mjambor@suse.cz>
619
620         PR middle-end/48585
621         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
622
623 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
624
625         PR c/36750
626         * c-typeck.c (pop_init_level): Do not warn about initializing
627         with ` = {0}'.
628
629 2011-04-22  Alan Modra  <amodra@gmail.com>
630
631         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
632         when returning call_cookie.
633         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
634         pointers, to functions with no more vector args than the current
635         function, and some non-local calls for ABI_V4.
636         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
637         sibcall_nonlocal_aix64): Combine to ..
638         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
639         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
640         (sibcall_value_nonlocal_aix<mode>): ..likewise.
641         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
642         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
643         operand.
644         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
645         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
646         sibcall_value_symbolic_64): Delete.
647
648 2011-04-21  Xinliang David Li  <davidxl@google.com>
649
650         * cgraph.h: Remove pid.
651         * cgraph.c: Remove pid.
652         * value-prof.c (init_node_map): New function.
653         (del_node_map): New function.
654         (find_func_by_funcdef_no): New function.
655         (gimple_ic_transform): Call new function.
656         * cgraphunit.c (cgraph_finalize_function): Remove pid.
657         * function.c (get_last_funcdef_no): New function.
658         * function.h (get_last_funcdef_no): New function.
659         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
660         to libgcov function.
661         (tree-profiling): Call node map init and delete function.
662
663 2011-04-21  Ian Lance Taylor  <iant@google.com>
664
665         * godump.c (go_format_type): Use exported Go name for anonymous
666         field name.
667
668 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
669
670         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
671         Call builtin_function_type_list instead of builtin_function_type.
672         (UNARY, BINARY, TRINARY, QUAD): Likewise.
673
674 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
675
676         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
677         build_function_type_list instead of build_function_type.
678         Delete variable `endlink'.
679
680 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
681
682         * config/s390/s390.c (s390_init_builtins): Call
683         build_function_type_list instead of build_function_type.
684
685 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
686
687         * config/ia64/ia64.c (ia64_init_builtins): Call
688         build_function_type_list instead of builtin_function_type.
689
690 2011-04-21  Easwaran Raman  <eraman@google.com>
691
692         * cfgexpand.c (stack_var): Remove OFFSET...
693         (add_stack_var): ...and its reference here...
694         (expand_stack_vars): ...and here.
695         (stack_var_cmp): Sort by descending order of size.
696         (partition_stack_vars): Change heuristic.
697         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
698         (dump_stack_var_partition): Add newline after each partition.
699
700 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
701             Jeff Law  <law@redhat.com>
702
703         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
704         * gengtype.c (matching_file_name_substitute): Likewise.
705
706 2011-04-21  Richard Guenther  <rguenther@suse.de>
707
708         PR lto/48703
709         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
710
711 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
712
713         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
714
715 2011-04-21  Richard Guenther  <rguenther@suse.de>
716
717         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
718         file name.
719
720 2011-04-21  Richard Guenther  <rguenther@suse.de>
721
722         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
723         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
724         Use DECL_P, not SSA_VAR_P.
725         (ptr_derefs_may_alias_p): Likewise.
726         (ptr_deref_may_alias_ref_p_1): Likewise.
727         (decl_refs_may_alias_p): Likewise.
728         (refs_may_alias_p_1): Likewise.
729         (ref_maybe_used_by_call_p_1): Likewise.
730         (call_may_clobber_ref_p_1): Likewise.
731         (indirect_ref_may_alias_decl_p): Assume indirect refrences
732         are either MEM_REF or TARGET_MEM_REF.
733         (indirect_refs_may_alias_p): Likewise.
734         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
735         for MEM_EXPR of indirect calls.
736
737 2011-04-21  Tristan Gingold  <gingold@adacore.com>
738
739         * vmsdbgout.c (write_srccorr): Compute file length from the string.
740         (dst_file_info_struct): Remove flen field.
741         (lookup_filename): Remove code that set flen field.
742
743 2011-04-21  Tristan Gingold  <gingold@adacore.com>
744
745         * config/ia64/ia64.c (ia64_start_function): Add a guard.
746
747 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
748
749         PR target/48708
750         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
751         vec_extract and vec_concat for non-SSE4_1 targets.
752
753 2011-04-21  Richard Guenther  <rguenther@suse.de>
754
755         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
756         return statements.
757
758 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
759
760         * config/i386/cygming.h (union tree_node, TREE): Don't define or
761         undefine.
762         (FILE): Don't undefine.
763
764 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
765
766         * config/alpha/alpha.c (struct machine_function): Use rtx, not
767         struct rtx_def *.
768         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
769         struct rtx_def *.
770         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
771         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
772         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
773         rtx_def *.
774         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
775         definitions where used.
776         * config/microblaze/microblaze.h (struct microblaze_args): Use
777         rtx, not struct rtx_def *.
778         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
779         rtx_def *.
780         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
781         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
782         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
783         not struct rtx_def *.
784         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
785         struct rtx_def *.
786         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
787         rtx_def *.
788         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
789
790 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
791
792         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
793         operand_equal_p to compare DR_BASE_ADDRESSes.
794         (vect_check_interleaving): Likewise.
795
796 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
797
798         PR target/46329
799         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
800         for all Neon struct constants.
801
802 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
803
804         * target.def (legitimate_constant_p): New hook.
805         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
806         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
807         * doc/tm.texi: Regenerate.
808         * hooks.h (hook_bool_mode_rtx_true): Declare.
809         * hooks.c (hook_bool_mode_rtx_true): Define.
810         * system.h (LEGITIMATE_CONSTANT_P): Poison.
811         * calls.c (precompute_register_parameters): Replace uses of
812         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
813         (emit_library_call_value_1): Likewise.
814         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
815         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
816         * ira-costs.c (scan_one_insn): Likewise.
817         * recog.c (general_operand, immediate_operand): Likewise.
818         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
819         * reload1.c (init_eliminable_invariants): Likewise.
820
821         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
822         mode argument.
823         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
824         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
825         argument.
826         (TARGET_LEGITIMATE_CONSTANT_P): Define.
827         * config/alpha/predicates.md (input_operand): Update call to
828         alpha_legitimate_constant_p.
829
830         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
831         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
832         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
833         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
834         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
835         (arm_legitimate_constant_p): New functions.
836         (arm_cannot_force_const_mem): Make static.
837
838         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
839
840         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
841         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
842         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
843         instead of bfin_legitimate_constant_p.
844         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
845         (TARGET_LEGITIMATE_CONSTANT_P): Define.
846
847         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
848
849         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
850
851         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
852         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
853         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
854         (frv_legitimate_constant_p): Make static.  Add a mode argument.
855
856         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
857         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
858         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
859
860         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
861         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
862         * config/i386/i386.c (legitimate_constant_p): Rename to...
863         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
864         argument.
865         (ix86_cannot_force_const_mem): Update accordingly.
866         (ix86_legitimate_address_p): Likewise.
867         (TARGET_LEGITIMATE_CONSTANT_P): Define.
868         * config/i386/i386.md: Update commentary.
869
870         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
871         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
872         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
873         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
874
875         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
876
877         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
878         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
879         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
880         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
881
882         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
883         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
884         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
885
886         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
887         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
888         (m32r_legitimate_constant_p): New function.
889
890         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
891         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
892         LEGITIMATE_CONSTANT_P.
893         (LEGITIMATE_CONSTANT_P): Delete.
894         * config/m68k/m68k.c (m68k_expand_prologue): Call
895         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
896         (m68k_legitimate_constant_p): New function.
897         * config/m68k/m68k.md: Update comments.
898
899         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
900         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
901         (mcore_legitimate_constant_p): New function.
902
903         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
904         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
905         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
906         Add a mode argument.
907         (mep_legitimate_address): Update accordingly.
908         (TARGET_LEGITIMATE_CONSTANT_P): Define.
909
910         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
911         Delete.
912         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
913         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
914         static.  Check OP's mode for VOIDmode.
915         (microblaze_legitimate_constant_p): New function.
916         (TARGET_LEGITIMATE_CONSTANT_P): Define.
917
918         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
919         * config/mips/mips.c (mips_legitimate_constant_p): New function.
920         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
921         (TARGET_LEGITIMATE_CONSTANT_P): Define.
922         * config/mips/predicates.md: Update comments.
923
924         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
925         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
926         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
927         (mmix_legitimate_constant_p): Make static, return a bool, and take
928         a mode argument.
929         (mmix_print_operand_address): Update accordingly.
930
931         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
932         Delete.
933         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
934         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
935         static.  Add a mode argument.
936         (TARGET_LEGITIMATE_CONSTANT_P): Define.
937
938         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
939
940         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
941         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
942         (pa_legitimate_constant_p): New function.
943
944         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
945
946         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
947         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
948         (pdp11_legitimate_constant_p): New function.
949
950         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
951         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
952         (rs6000_legitimate_constant_p): New function.
953
954         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
955         (rx_legitimate_constant_p): ...this.
956         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
957         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
958         (rx_legitimate_constant_p): ...this.
959         (TARGET_LEGITIMATE_CONSTANT_P): Define.
960         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
961
962         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
963         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
964         * config/s390/s390.c (legitimate_constant_p): Rename to...
965         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
966         and add a mode argument.
967         (TARGET_LEGITIMATE_CONSTANT_P): Define.
968
969         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
970
971         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
972         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
973         (sh_legitimate_constant_p): New function.
974
975         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
976         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
977         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
978         (legitimate_constant_p): Rename to...
979         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
980         argument.
981         (constant_address_p): Update accordingly.
982
983         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
984         argument and return a bool.
985         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
986         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
987         (spu_legitimate_constant_p): Add a mode argument and return a bool.
988         (spu_rtx_costs): Update accordingly.
989         * config/spu/predicates.md (vec_imm_operand): Likewise.
990
991         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
992
993         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
994         * config/v850/v850.c (v850_legitimate_constant_p): New function.
995         (TARGET_LEGITIMATE_CONSTANT_P): Define.
996
997         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
998         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
999         * config/vax/vax.c (legitimate_constant_p): Likewise.
1000
1001         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
1002         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1003         (xtensa_legitimate_constant_p): New function.
1004
1005 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
1006
1007         * target.def (cannot_force_const_mem): Add a mode argument.
1008         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
1009         * doc/tm.texi: Regenerate.
1010         * hooks.h (hook_bool_mode_rtx_false): Declare.
1011         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
1012         (hook_bool_mode_const_rtx_true): Likewise.
1013         (hook_bool_mode_rtx_false): New function.
1014         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
1015         to be non-VOID.  Update call to cannot_force_const_mem.
1016         (find_reloads): Update accordingly.
1017         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
1018         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
1019         argument.
1020         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
1021         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
1022         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
1023         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
1024         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
1025         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
1026         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
1027         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
1028         (m68k_cannot_force_const_mem): ...this new function.
1029         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
1030         argument.
1031         (mips_const_insns, mips_legitimize_const_move): Update calls.
1032         (mips_secondary_reload_class): Likewise.
1033         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
1034         (pa_cannot_force_const_mem): ...this new function.
1035         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
1036         (rs6000_cannot_force_const_mem): ...this new function.
1037         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
1038         argument.
1039         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
1040         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
1041         to...
1042         (xtensa_cannot_force_const_mem): ...this new function.
1043
1044 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
1045
1046         * config/mips/mips.c (mips16_build_function_stub): Call
1047         build_function_type_list instead of build_function_type.
1048         (mips16_build_call_stub): Likewise.
1049
1050 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
1051
1052         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
1053         instead of build_function_type.
1054
1055 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
1056
1057         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
1058         instead of build_function_type.
1059
1060 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
1061
1062         PR target/48678
1063         * config/i386/i386.md (insv): Change operand 0 constraint to
1064         "register_operand".  Change operand 1 and 2 constraint to
1065         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
1066         * config/i386/sse.md (sse4_1_pinsrb): Export.
1067         (sse2_pinsrw): Ditto.
1068         (sse4_1_pinsrd): Ditto.
1069         (sse4_1_pinsrq): Ditto.
1070         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
1071         * config/i386/i386.c (ix86_expand_pinsr): New.
1072
1073 2011-04-20  Easwaran Raman  <eraman@google.com>
1074
1075         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
1076         containing union type only with -fstrict-aliasing.
1077
1078 2011-04-20  Jim Meyering  <meyering@redhat.com>
1079
1080         Remove useless if-before-free tests.
1081         * calls.c (expand_call, save_area): Likewise.
1082         * cfgcleanup.c (try_forward_edges): Likewise.
1083         * collect2.c (collect_execute): Likewise.
1084         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
1085         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
1086         * coverage.c (coverage_checksum_string): Likewise.
1087         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
1088         * cselib.c (cselib_init): Likewise.
1089         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
1090         (df_set_clean_cfg): Likewise.
1091         * function.c (free_after_compilation): Likewise.
1092         * gcc.c (do_spec_1, main): Likewise.
1093         * gcov.c (create_file_names): Likewise.
1094         * gensupport.c (identify_predicable_attribute): Likewise.
1095         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
1096         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
1097         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
1098         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
1099         * ipa-pure-const.c (local_pure_const): Likewise.
1100         * ipa-reference.c (propagate): Likewise.
1101         * ira-costs.c (free_ira_costs): Likewise.
1102         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
1103         * matrix-reorg.c (mat_free): Likewise.
1104         * prefix.c (get_key_value): Likewise.
1105         * profile.c (compute_value_histograms): Likewise.
1106         * reload1.c (free_reg_equiv): Likewise.
1107         * sched-deps.c (free_deps): Likewise.
1108         * sel-sched-ir.c (fence_clear): Likewise.
1109         * sese.c (set_rename, if_region_set_false_region): Likewise.
1110         * tree-data-ref.c (free_rdg): Likewise.
1111         * tree-eh.c (lower_try_finally): Likewise.
1112         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
1113         * tree-ssa-live.c (delete_var_map): Likewise.
1114         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
1115         * tree-ssa-pre.c (phi_trans_add): Likewise.
1116
1117 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
1118
1119         PR tree-optimization/48611
1120         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
1121         beyond ERT_MUST_NOT_THROW region.
1122
1123 2011-04-20  Catherine Moore  <clm@codesourcery.com>
1124
1125         * config/mips/mips.opt (mfix-24k): New.
1126         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
1127         * config/mips/mips.md (length): Increase by 4 for stores if
1128         fixing 24K errata.
1129         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
1130         all noreorder if fixing 24K errata.
1131         * doc/invoke.texi: Document mfix-24k.
1132
1133 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
1134
1135         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
1136         quad-word modes, reduce to 9-bit index range when above 1016 limit.
1137
1138 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
1139
1140         * config/arm/arm.c (arm_gen_constant): Move movw support ....
1141         (const_ok_for_op): ... to here.
1142
1143 2011-04-20  Kai Tietz  <ktietz@redhat.com>
1144
1145         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
1146         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
1147
1148 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
1149
1150         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
1151
1152 2011-04-20  Richard Guenther  <rguenther@suse.de>
1153
1154         PR tree-optimization/47892
1155         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
1156         are if-convertible.
1157
1158 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
1159
1160         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
1161
1162 2011-04-20  Tristan Gingold  <gingold@adacore.com>
1163
1164         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
1165
1166 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
1167
1168         PR target/18145
1169
1170         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
1171         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
1172         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
1173         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
1174         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
1175
1176         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
1177         New prototype.
1178
1179         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
1180         (avr_asm_named_section, avr_asm_output_aligned_common,
1181         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
1182         New functions to update...
1183         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
1184         (avr_asm_init_sections): Overwrite section callbacks for
1185         data_section, bss_section.
1186         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
1187         from here to...
1188         (avr_file_end): ...here.
1189
1190 2011-04-20  Richard Guenther  <rguenther@suse.de>
1191
1192         PR middle-end/48695
1193         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
1194         objects and types here.  Adjust for their offset before comparing.
1195
1196 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
1197
1198         * tree-vect-stmts.c (vectorizable_store): Only chain one related
1199         statement per copy.
1200
1201 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
1202
1203         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
1204         (GIMPLE_H): Include $(INTERNAL_FN_H).
1205         (OBJS-common): Add internal-fn.o.
1206         (internal-fn.o): New rule.
1207         * internal-fn.def: New file.
1208         * internal-fn.h: Likewise.
1209         * internal-fn.c: Likewise.
1210         * gimple.h: Include internal-fn.h.
1211         (GF_CALL_INTERNAL): New gf_mask.
1212         (gimple_statement_call): Put fntype into a union with a new
1213         internal_fn field.
1214         (gimple_build_call_internal): Declare.
1215         (gimple_build_call_internal_vec): Likewise.
1216         (gimple_call_same_target_p): Likewise.
1217         (gimple_call_internal_p): New function.
1218         (gimple_call_internal_fn): Likewise.
1219         (gimple_call_fntype): Return null for internal calls.
1220         (gimple_call_set_fntype): Assert that the function is not internal.
1221         (gimple_call_set_fn): Likewise.
1222         (gimple_call_set_fndecl): Likewise.
1223         (gimple_call_set_internal_fn): New function.
1224         (gimple_call_addr_fndecl): Handle null functions.
1225         (gimple_call_return_type): Likewise null types.
1226         * gimple.c (gimple_build_call_internal_1): New function.
1227         (gimple_build_call_internal): Likewise.
1228         (gimple_build_call_internal_vec): Likewise.
1229         (gimple_call_same_target_p): Likewise.
1230         (gimple_call_flags): Handle calls to internal functions.
1231         (gimple_call_fnspec): New function.
1232         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
1233         (gimple_has_side_effects): Handle null functions.
1234         (gimple_rhs_has_side_effects): Likewise.
1235         (gimple_call_copy_skip_args): Handle calls to internal functions.
1236         * cfgexpand.c (expand_call_stmt): Likewise.
1237         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
1238         * gimple-fold.c (gimple_fold_call): Handle null functions.
1239         (gimple_fold_stmt_to_constant_1): Don't fold
1240         calls to internal functions.
1241         * gimple-low.c (gimple_check_call_args): Handle calls to internal
1242         functions.
1243         * gimple-pretty-print.c (dump_gimple_call): Likewise.
1244         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
1245         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
1246         (do_warn_unused_result): Likewise.
1247         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
1248         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
1249         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
1250         the target of a call.
1251         (initialize_hash_element): Update accordingly.
1252         (hashable_expr_equal_p): Use gimple_call_same_target_p.
1253         (iterative_hash_hashable_expr): Handle calls to internal functions.
1254         (print_expr_hash_elt): Likewise.
1255         * tree-ssa-pre.c (can_value_number_call): Likewise.
1256         (eliminate): Handle null functions.
1257         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
1258         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
1259         (find_func_aliases): Likewise.
1260         * value-prof.c (gimple_ic_transform): Likewise.
1261         (gimple_indirect_call_to_profile): Likewise.
1262         * lto-streamer-in.c (input_gimple_stmt): Likewise.
1263         * lto-streamer-out.c (output_gimple_stmt): Likewise.
1264
1265 2011-04-19  Jan Hubicka  <jh@suse.cz>
1266
1267         * ipa-inline-transform.c (save_inline_function_body): Add comments.
1268         * ipa-inline.c (inline_small_functions): Compute summaries first,
1269         populate heap later.
1270
1271 2011-04-19  Jan Hubicka  <jh@suse.cz>
1272
1273         * cgraph.h (save_inline_function_body): Remove.
1274         * ipa-inline-transform.c: New file, broke out of...
1275         * ipa-inline.c: ... this one; Update toplevel comment.
1276         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
1277         make global.
1278         (update_noncloned_frequencies): Move to ipa-inline-transform.c
1279         (cgraph_mark_inline_edge): Rename to inline_call; move to
1280         ipa-inline-transform.c.
1281         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
1282         move to ipa-inline-transform.c
1283         (recursive_inlining, inline_small_functions, flatten_function,
1284         ipa_inline, inline_always_inline_functions,
1285         early_inline_small_functions): Update.
1286         (inline_transform): Move to ipa-inline-transform.c.
1287         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
1288         Declare.
1289         * Makefile.in (ipa-inline-transform.o): New file.
1290         * cgraphunit.c (save_inline_function_body): Move to
1291         ipa-inline-transform.c
1292
1293 2011-04-19  DJ Delorie  <dj@redhat.com>
1294
1295         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
1296         registers if we already know there aren't any.
1297         (m32c_emit_epilogue): Don't emit a barrier here.
1298         (m32c_emit_eh_epilogue): Likewise.
1299         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
1300         operands at expand time.
1301         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
1302         int" wchar type.
1303         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
1304         duplicates.  Provide aliases instead.
1305         * config/m32c/prologue.md (eh_return): Emit a barrier here.
1306         (eh_epilogue): Add a "(return)" here as a hint to other parts of
1307         the compiler.
1308
1309 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
1310
1311         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
1312         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
1313         (general_or_i64_p, sparc_register_move_cost): New function.
1314
1315 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1316
1317         * doc/install.texi (Configuration, --enable-threads): Remove mach.
1318         Add lynx, mipssde.  Sort table.
1319
1320 2011-04-19  Xinliang David Li  <davidxl@google.com>
1321
1322         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
1323         not negative.
1324
1325 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
1326
1327         PR target/48678
1328         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
1329         is a SUBREG with non-MODE_INT mode inside of it.
1330
1331 2011-04-19  Martin Jambor  <mjambor@suse.cz>
1332
1333         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
1334         also according to actual contants.
1335         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
1336         (gimple_fold_call): Use it.
1337         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
1338
1339 2011-04-19  Martin Jambor  <mjambor@suse.cz>
1340
1341         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
1342         non-pointer assignments.
1343
1344 2011-04-19  Martin Jambor  <mjambor@suse.cz>
1345
1346         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
1347         account anc_offset and otr_type from the indirect edge info.
1348         * ipa-prop.c (get_ancestor_addr_info): New function.
1349         (compute_complex_ancestor_jump_func): Assignment analysis moved to
1350         get_ancestor_addr_info, call it.
1351         (ipa_note_param_call): Do not initialize information about polymorphic
1352         calls, return the indirect call graph edge.  Remove the last
1353         parameter, adjust all callers.
1354         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
1355         parameters.  Initialize polymorphic information in the indirect edge.
1356
1357 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
1358
1359         PR lto/48148
1360         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
1361         the types if they have different enumeration identifiers.
1362
1363 2011-04-19  Jan Hubicka  <jh@suse.cz>
1364
1365         * cgraph.h (cgraph_optimize_for_size_p): Declare.
1366         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
1367         * predict.c (cgraph_optimize_for_size_p): Break out from ...
1368         (optimize_function_for_size_p) ... here.
1369
1370 2011-04-19  Richard Guenther  <rguenther@suse.de>
1371
1372         PR lto/48207
1373         * tree.c (free_lang_data): Do not reset the decl-assembler-name
1374         langhook.
1375
1376 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
1377
1378         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
1379         if DECL_NO_INLINE_WARNING_P is set on the function.
1380
1381 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
1382
1383         PR fortran/47976
1384         * reload1.c (inc_for_reload): Return void. All callers changed.
1385         (emit_input_reload_insns): Don't try to delete previous output
1386         reloads to a register, or record spill_reg_store for autoincs.
1387
1388 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
1389
1390         * gengtype.h: Updated copyright year.
1391         (struct input_file_st): Add inpisplugin field.
1392         (type_fileloc): New function.
1393         * gengtype.c
1394         (write_typed_struct_alloc_def): Add gcc_assert.
1395         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
1396         (write_typed_alloc_defns): Don't output for plugin files.
1397         (input_file_by_name): Clear inpisplugin field.
1398         (main): Set inpisplugin field for plugin files.
1399
1400 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
1401
1402         * gengtype-state.c (string_eq): New.
1403         (read_state): Use string_eq instead of strcmp when creating the
1404         state_ident_tab.
1405
1406 2011-04-19  Wei Guozhi  <carrot@google.com>
1407
1408         PR target/47855
1409         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
1410         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
1411         linkage.
1412         * config/arm/constraints.md (Uu): New constraint.
1413         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
1414
1415 2011-04-19  Tristan Gingold  <gingold@adacore.com>
1416
1417         * config.gcc (-*-*-*vms): Added.
1418         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
1419         definitions moved.
1420         * config/vms/vms-ld.c: New file.
1421         * config/vms/vms-ar.c: New file.
1422         * config/vms/t-vmsnative: New file.
1423
1424 2011-04-18  Xinliang David Li  <davidxl@google.com>
1425
1426         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
1427
1428 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
1429
1430         PR middle-end/48661
1431         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
1432         if TREE_TYPE (v) is non-NULL.
1433
1434         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
1435         gimple_get_virt_mehtod_for_binfo.
1436         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
1437         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
1438         callers.
1439         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
1440
1441 2011-04-18  Michael Matz  <matz@suse.de>
1442             Steve Ellcey  <sje@cup.hp.com>
1443
1444         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
1445         use its mode as source mode if it isn't VOIDmode.
1446
1447 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
1448
1449         * doc/passes.texi: Fill crossref nodes.
1450
1451 2011-04-18  Jim Meyering  <meyering@redhat.com>
1452
1453         Fix doubled-word typos in comments and strings
1454         * config/alpha/vms-unwind.h: s/for for/for/
1455         * config/arm/unwind-arm.h: Likewise.
1456         * config/microblaze/microblaze.c: Likewise.
1457         * config/sh/constraints.md: s/in in/in/
1458         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
1459
1460 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
1461
1462         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
1463         (AVX_FLOAT_MODE_P): Ditto.
1464         (AVX128_VEC_FLOAT_MODE_P): Ditto.
1465         (AVX256_VEC_FLOAT_MODE_P): Ditto.
1466         (AVX_VEC_FLOAT_MODE_P): Ditto.
1467         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
1468         (UNSPEC_MASKSTORE): Ditto.
1469         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
1470         Merge from <sse>_movmsk<ssemodesuffix> and
1471         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
1472         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
1473         iterator.
1474         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
1475         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
1476         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
1477
1478 2011-04-18  Jan Hubicka  <jh@suse.cz>
1479
1480         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
1481
1482         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
1483         (want_inline_function_called_once_p): Break out the logic from
1484         ipa_inline.
1485         (edge_badness): Ensure that profile is not misupdated.
1486         (lookup_recursive_calls): Prioritize by call frequencies.
1487         (inline_small_functions): Move program size estimates here;
1488         actually process whole queue even when unit growth has been
1489         met. (to properly compute inline_failed reasons and for the
1490         case unit size decrease.) Revisit comments on recursive inlining.
1491         (ipa_inline): Remove unit summary code; first inline hot calls
1492         of functions called once, cold calls next.
1493         (order, nnodes): Remove unused variables.
1494         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
1495         (GTFILES): Remove ipa-inline.c
1496         * sel-sched.c (fill_insns): Silence uninitialized var warning.
1497
1498 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1499
1500         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
1501
1502 2011-04-18  Jie Zhang  <jie@codesourcery.com>
1503             Richard Earnshaw  <rearnsha@arm.com>
1504
1505         * arm.c (neon_builtin_type_bits): Remove.
1506         (typedef enum neon_builtin_mode): New.
1507         (T_MAX): Don't define.
1508         (typedef enum neon_builtin_datum): Remove bits, codes[],
1509         num_vars and base_fcode.  Add mode, code and fcode.
1510         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
1511         VAR10): Change accordingly.
1512         (neon_builtin_data[]): Change accordingly
1513         (arm_init_neon_builtins): Change accordingly.
1514         (neon_builtin_compare): Remove.
1515         (locate_neon_builtin_icode): Remove.
1516         (arm_expand_neon_builtin): Change accordingly.
1517
1518         * arm.h (enum arm_builtins): Move to ...
1519         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
1520
1521         * arm.c (arm_builtin_decl): Declare.
1522         (TARGET_BUILTIN_DECL): Define.
1523         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
1524         (arm_builtin_decls[]): New.
1525         (arm_init_neon_builtins): Store builtin declarations in
1526         arm_builtin_decls[].
1527         (arm_init_tls_builtins): Likewise.
1528         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
1529         (arm_builtin_decl): New.
1530
1531 2011-04-18  Richard Guenther  <rguenther@suse.de>
1532
1533         * tree.c (upper_bound_in_type): Build properly canonicalized
1534         INTEGER_CSTs.
1535         (lower_bound_in_type): Likewise.
1536
1537 2011-04-18  Richard Guenther  <rguenther@suse.de>
1538
1539         * gimple.h (gimple_call_addr_fndecl): New function.
1540         (gimple_call_fndecl): Use it.
1541         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
1542         for direct calls.
1543         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
1544         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
1545
1546 2011-04-18  Richard Guenther  <rguenther@suse.de>
1547
1548         PR middle-end/48650
1549         * tree.c (build_string): STRING_CST is now derived from tree_typed.
1550
1551 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1552
1553         PR lto/48492
1554         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
1555         DECL_IN_CONSTANT_POOL without RTL.
1556
1557 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
1558             Ira Rosen  <ira.rosen@linaro.org>
1559
1560         PR target/48252
1561         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
1562         to match neon_vzip/vuzp/vtrn_internal.
1563         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
1564         outputs explicitly dependent on both inputs.
1565         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
1566
1567 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
1568
1569         PR tree-optimization/48616
1570         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
1571         whether the shift is by scalar or vector based on whether all SLP
1572         scalar stmts have the same rhs.
1573
1574 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
1575
1576         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
1577         memory operands.
1578
1579 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
1580
1581         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
1582         registers.
1583
1584 2011-04-17  Jan Hubicka  <jh@suse.cz>
1585
1586         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
1587         * cgrpahunit.c (cgraph_finalize_function): Do not set
1588         finalized_by_frontend.
1589         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
1590         finalized_by_frontend.
1591
1592 2011-04-17  Jan Hubicka  <jh@suse.cz>
1593
1594         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
1595         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
1596         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
1597         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
1598         method.
1599         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
1600         gimple-fold.c
1601         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
1602
1603 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
1604
1605         PR lto/48538
1606         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
1607         is non-null before accessing it.
1608         (input_cgraph): Remove trailing spaces.
1609
1610 2011-04-17  Revital Eres  <revital.eres@linaro.org>
1611
1612         * params.def (sms-min-sc): New param flag.
1613         * modulo-sched.c (sms_schedule): Use it.
1614         * doc/invoke.texi (sms-min-sc): Document it.
1615
1616 2011-04-17  Jan Hubicka  <jh@suse.cz>
1617
1618         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
1619         present, also set gimple_call_set_cannot_inline.
1620         * ipa-inline.c: Update toplevel comment.
1621         (MAX_TIME): Remove.
1622         (cgraph_clone_inlined_nodes): Fix linebreaks.
1623         (cgraph_check_inline_limits): Restructure to ...
1624         (caller_growth_limits): ... this one; be more tolerant
1625         on growth in nested inline chains; add explanatory comment;
1626         fix stack accounting thinko introduced by previous patch.
1627         (cgraph_default_inline_p): Remove.
1628         (report_inline_failed_reason): New function.
1629         (can_inline_edge_p): New function.
1630         (can_early_inline_edge_p): New function.
1631         (leaf_node_p): Move upwards in file.
1632         (want_early_inline_function_p): New function.
1633         (want_inline_small_function_p): New function.
1634         (want_inline_self_recursive_call_p): New function.
1635         (cgraph_edge_badness): Rename to ...
1636         (edge_badness) ... this one; fix linebreaks.
1637         (update_edge_key): Update call of edge_baddness; add
1638         detailed dump about queue updates.
1639         (update_caller_keys): Use can_inline_edge_p and
1640         want_inline_small_function_p.
1641         (cgraph_decide_recursive_inlining): Rename to...
1642         (recursive_inlining): Use can_inline_edge_p and
1643         want_inline_self_recursive_call_p; simplify and remove no longer
1644         valid FIXME.
1645         (cgraph_set_inline_failed): Remove.
1646         (add_new_edges_to_heap): Use can_inline_edge_p and
1647         want_inline_small_function_p.
1648         (cgraph_decide_inlining_of_small_functions): Rename to ...
1649         (inline_small_functions): ... this one; cleanup; use
1650         can/want predicates; cleanup debug ouput; work edges till fibheap
1651         is exhausted and do not stop once unit growth is reached; remove
1652         later loop processing remaining edges.
1653         (cgraph_flatten): Rename to ...
1654         (flatten_function): ... this one; use can_inline_edge_p
1655         and can_early_inline_edge_p predicates.
1656         (cgraph_decide_inlining): Rename to ...
1657         (ipa_inline): ... this one; remove unreachable nodes before
1658         inlining functions called once; simplify the pass.
1659         (cgraph_perform_always_inlining): Rename to ...
1660         (inline_always_inline_functions): ... this one; use
1661         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
1662         (cgraph_decide_inlining_incrementally): Rename to ...
1663         (early_inline_small_functions): ... this one; simplify
1664         using new predicates; cleanup; make dumps prettier.
1665         (cgraph_early_inlining): Rename to ...
1666         (early_inliner): newer inline regular functions into always-inlines;
1667         fix updating of call stmt summaries.
1668         (pass_early_inline): Update for new names.
1669         (inline_transform): Fix formating.
1670         (gate_cgraph_decide_inlining): Rename to ...
1671         (pass_ipa_inline): ... this one.
1672         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
1673         * ipa-inline-analysis.c (dump_inline_summary): Update.
1674         (compute_inline_parameters): Do not compute disregard_inline_limits;
1675         look for mismatching arguments.
1676         (estimate_growth): Fix handlig of non-trivial self recursion.
1677         (inline_read_summary): Do not read info->disregard_inline_limits.
1678         (inline_write_summary): Do not write info->disregard_inline_limits.
1679         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
1680         and move all checks into can_inline_edge_p predicate; re-enable code
1681         comparing optimization levels.
1682         (expand_call_inline): Do not test inline_forbidden_into_p.
1683         * Makefile.in (ipa-inline.o): Update arguments.
1684
1685 2011-04-17  Revital Eres  <revital.eres@linaro.org>
1686
1687         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
1688
1689 2011-04-17  Revital Eres  <revital.eres@linaro.org>
1690
1691         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
1692
1693 2011-04-17  Michael Matz  <matz@suse.de>
1694
1695         PR tree-optimization/48622
1696         PR lto/48645
1697         * ipa-inline-analysis.c (inline_read_summary): Read size/time
1698         in same order as they're written.
1699
1700 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1701
1702         * config/pa/predicates.md: Reorganize and simplify predicates.
1703         Eliminate duplicate code checks.
1704         (arith_operand): Rename to arith14_operand
1705         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
1706         * config/pa/pa.md: Use renamed operands.
1707         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
1708         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
1709         arith11_operand, adddi3_operand, indexed_memory_operand,
1710         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
1711         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
1712         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
1713         move_dest_operand, move_src_operand, prefetch_cc_operand,
1714         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
1715         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
1716         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
1717         div_operand, int5_operand, movb_comparison_operator,
1718         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
1719         arith_double_operand, ireg_operand, lhs_lshift_operand,
1720         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
1721         integer_store_memory_operand): Likewise.
1722         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
1723         (integer_store_memory_operand, read_only_operand,
1724         function_label_operand, borx_reg_operand,
1725         non_hard_reg_operand): Likewise.
1726         (eq_neq_comparison_operator): Delete unused operator.
1727         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
1728         function_label_operand.
1729         (emit_move_sequence): Likewise.
1730
1731 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
1732
1733         * config/i386/sse.md (sseunpackmode): New mode attribute.
1734         (ssepackmode): Ditto.
1735         (vec_pack_trunc_<mode>): Macroize expander from
1736         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
1737         (vec_unpacks_lo_<mode>): Macroize expander from
1738         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1739         (vec_unpacks_hi_<mode>): Macroize expander from
1740         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1741         (vec_unpacku_lo_<mode>): Macroize expander from
1742         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1743         (vec_unpacku_hi_<mode>): Macroize expander from
1744         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1745         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
1746         ix86_expand_sse4_unpack.
1747         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
1748
1749 2011-04-16  Jan Hubicka  <jh@suse.cz>
1750
1751         * cgraphbuild.c: Include ipa-inline.h.
1752         (reset_inline_failed): Use initialize_inline_failed.
1753         * cgraph.c: Include ipa-inline.h.
1754         (cgraph_create_node_1): Do not initialize estimated_growth.
1755         (initialize_inline_failed): More to ipa-inline-analysis.c
1756         (dump_cgraph_node): Do not dump inline flags.
1757         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
1758         and disregard_inline_limits flags.
1759         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
1760         time, size, estimated_growth.
1761         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
1762         Update.
1763         * cgraphunit.c (cgraph_decide_is_function_needed): Use
1764         DECL_DISREGARD_INLINE_LIMITS.
1765         (cgraph_analyze_function): Do not initialize
1766         node->local.disregard_inline_limits.
1767         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
1768         inlinable, versionable and disregard_inline_limits.
1769         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
1770         cgraph_check_inline_limits, cgraph_default_inline_p,
1771         cgraph_edge_badness, update_caller_keys, update_callee_keys,
1772         add_new_edges_to_heap): Update.
1773         (cgraph_decide_inlining_of_small_function): Update; set
1774         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
1775         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
1776         cgraph_decide_inlining_incrementally): Update.
1777         * ipa-inline.h (inline_summary): Add inlinable, versionable,
1778         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
1779         time, size and estimated_growth parameters.
1780         (estimate_edge_growth): Update.
1781         (initialize_inline_failed): Declare.
1782         * ipa-split.c: Include ipa-inline.h
1783         (execute_split_functions): Update.
1784         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
1785         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
1786         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
1787         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
1788         estimated_growth to INT_MIN.
1789         (inline_node_duplication_hook): Likewise.
1790         (dump_inline_summary): Dump new fields.
1791         (compute_inline_parameters): Update.
1792         (estimate_edge_time, estimate_time_after_inlining,
1793         estimate_size_after_inlining, estimate_growth, inline_read_summary,
1794         inline_write_summary):
1795         (initialize_inline_failed): Move here from cgraph.c.
1796         * tree-sra.c: Include ipa-inline.h.
1797         (ipa_sra_preliminary_function_checks): Update.
1798         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
1799         ipa-inline.h.
1800
1801 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
1802
1803         * config/i386/sse.md (V16): New mode iterator.
1804         (VI1, VI8): Ditto.
1805         (AVXMODEQI, AVXMODEDI): Remove.
1806         (sse2, sse3): New mode attribute.
1807         (mov<mode>): Use V16 mode iterator.
1808         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
1809         (push<mode>1): Use V16 mode iterator.
1810         (movmisalign<mode>): Ditto.
1811         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
1812         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
1813         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
1814         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
1815         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
1816         avx_movdqu<avxmodesuffix>.
1817         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
1818         *avx_movdqu<avxmodesuffix>.
1819         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
1820         avx_lddqu<avxmodesuffix>.
1821         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
1822         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
1823         avx_movnt<AVXMODEDI:mode>.
1824         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
1825         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
1826
1827 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
1828
1829         PR target/48629
1830         * haifa-sched.c (prune_ready_list, schedule_block): Use
1831         sched_pressure_p rather than flag_sched_pressure.
1832
1833 2011-04-15  Pat Haugen <pthaugen@us.ibm.com>
1834
1835         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
1836         cgraph_get_node instead of cgraph_get_create_node.
1837
1838 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
1839
1840         * cfgexpand.c (expand_debug_expr): Use
1841         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
1842
1843 2011-04-15  Michael Matz  <matz@suse.de>
1844
1845         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
1846         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
1847         * function.c (gimplify_parameters): Ditto.
1848         * gimplify.c (gimplify_vla_decl): Ditto.
1849
1850         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
1851         (gimple_call_set_alloca_for_var): New inline function.
1852         (gimple_call_alloca_for_var_p): Ditto.
1853         * gimple.c (gimple_build_call_from_tree): Remember
1854         CALL_ALLOCA_FOR_VAR_P state.
1855         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
1856
1857         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
1858         calls if they were for VLA objects.
1859
1860 2011-04-15  Martin Jambor  <mjambor@suse.cz>
1861
1862         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
1863         of ADR_EXPRs.
1864
1865 2011-04-15  Martin Jambor  <mjambor@suse.cz>
1866
1867         PR middle-end/48601
1868         * tree-emutls.c (lower_emutls_function_body): Call
1869         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
1870         result is non-NULL.
1871
1872 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1873
1874         * c-decl.c (detect_field_duplicates): Call
1875         objc_detect_field_duplicates instead of objc_get_interface_ivars.
1876
1877 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
1878
1879         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
1880         * gimple.c (gimple_asm_clobbers_memory_p): Define.
1881         * ipa-pure-const.c (check_stmt): Call it.
1882         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
1883
1884 2011-04-15  Richard Guenther  <rguenther@suse.de>
1885
1886         PR tree-optimization/48290
1887         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
1888         Properly decide inhibiting propagation based on the valueized
1889         operand.  Do loop-closed SSA form preserving here ...
1890         (init_copy_prop): ... not here.
1891
1892 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
1893
1894         PR target/48612
1895         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
1896         (*ieee_smax<mode>3): Likewise.
1897
1898 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1899
1900         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
1901         Replace match_operand with match_dup for the third operand in
1902         these expanders.
1903
1904 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
1905
1906         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
1907         to track processing of conditionals.  Update all callers.
1908         (try_combine, simplify_if_then_else): Update.
1909
1910 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
1911
1912         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
1913         -fsched-pressure.
1914
1915 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
1916
1917         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
1918         instead of match_operand for operand 3.
1919
1920 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
1921
1922         * recog.h (insn_operand_data): Add an "allows_mem" field.
1923         * genoutput.c (output_operand_data): Initialize it.
1924         * optabs.c (maybe_legitimize_operand_same_code): New function.
1925         (maybe_legitimize_operand): Use it when matching the original
1926         op->value.
1927
1928 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
1929
1930         * gimplify.c: Fix issues in comments throughout.
1931         (voidify_wrapper_expr): Fix long line.
1932         (build_stack_save_restore): Likewise.
1933         (gimplify_loop_expr): Likewise.
1934         (gimplify_compound_lval): Likewise.
1935         (gimplify_init_ctor_eval): Likewise.
1936         (gimplify_modify_expr_rhs): Likewise.
1937         (omp_notice_threadprivate_variable): Likewise.
1938
1939 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
1940
1941         * cfgexpand.c (expand_call_stmt): Convert the function type to the
1942         original one if this is not a builtin function.
1943
1944 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
1945
1946         PR target/48605
1947         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
1948         offset it as needed based on top 2 bits in operands[3], change
1949         MEM mode to SFmode and mask those 2 bits away from operands[3].
1950
1951 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
1952
1953         * c-parser.c (c_parser_objc_protocol_definition): Updated for
1954         change from objc_declare_protocols() to objc_declare_protocol().
1955
1956 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
1957
1958         * config/i386/sse.md (sse4_1): New mode attribute.
1959         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
1960         avx_blend<ssemodesuffix><avxmodesuffix> and
1961         sse4_1_blend<ssemodesuffix> using VF mode iterator.
1962         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
1963         avx_blendv<ssemodesuffix><avxmodesuffix> and
1964         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
1965         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
1966         avx_dp<ssemodesuffix><avxmodesuffix> and
1967         sse4_1_dp<ssemodesuffix> using VF mode iterator.
1968         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
1969         (sse4_1_packusdw): Merge with *avx_packusdw.
1970         (sse4_1_pblendvb): Merge with *avx_pblendvb.
1971         (sse4_1_pblendw): Merge with *avx_pblendw.
1972         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
1973         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
1974         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
1975         VF mode iterator.
1976         (sse4_1_round<ssescalarmodesuffix>): Merge with
1977         *avx_round<ssescalarmodesuffix>.
1978         (aesenc): Merge with *avx_aesenc.
1979         (aesenclast): Merge with *avx_aesenclast.
1980         (aesdec): Merge with *avx_aesdec.
1981         (aesdeclast): Merge with *avx_aesdeclast.
1982         (pclmulqdq): Merge with *pclmulqdq.
1983         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
1984         New predicate.
1985         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
1986
1987 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
1988
1989         PR middle-end/48608
1990         * cfgexpand.c (get_decl_align_unit): Renamed to ...
1991         (align_local_variable): This.  Update DECL_ALIGN.
1992         (add_stack_var): Updated.
1993         (expand_one_stack_var): Likewise.
1994
1995 2011-04-14  Richard Guenther  <rguenther@suse.de>
1996
1997         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
1998         Remove.
1999         (dse_initialize_block_local_data, dse_leave_block,
2000         record_voperand_set, get_stmt_uid): Likewise.
2001         (dse_possible_dead_store_p): Allow any kind of killing stmt.
2002         (dse_optimize_stmt): Remove voperand set handling code.
2003         Simplify and improve to handle any kind of killing stmt.
2004         (dse_record_phi): Remove.
2005         (dse_enter_block): Simplify.
2006         (tree_ssa_dse): Likewise.
2007         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
2008
2009 2011-04-14  Jan Hubicka  <jh@suse.cz>
2010
2011         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
2012         * cgraph.h (struct inline_summary): Move to ipa-inline.h
2013         (cgraph_local_info): Remove inline_summary.
2014         * ipa-cp.c: Include ipa-inline.h.
2015         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
2016         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
2017         accesor.
2018         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
2019         (input_overwrite_node): Do not set inline summary.
2020         (input_node): Do not stream inline summary.
2021         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
2022         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
2023         growth; we do not have inline parameters computed for that anyway.
2024         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
2025         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
2026         (inline_summary_t): New type and VECtor.
2027         (debug_inline_summary, dump_inline_summaries): Declare.
2028         (inline_summary): Use VOCtor.
2029         (estimate_edge_growth): Kill hack computing call stmt size directly.
2030         * lto-section-in.c (lto_section_name): Add inline section.
2031         * ipa-inline-analysis.c: Include lto-streamer.h
2032         (node_removal_hook_holder, node_duplication_hook_holder): New holders
2033         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
2034         (inline_summary_vec): Define.
2035         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
2036         dump_inline_summaries): New functions.
2037         (estimate_function_body_sizes): Properly compute size/time of outgoing
2038         calls.
2039         (compute_inline_parameters): Alloc inline_summary; do not compute
2040         size/time of incomming calls.
2041         (estimate_edge_time): Avoid missing time summary hack.
2042         (inline_read_summary): Read inline summary info.
2043         (inline_write_summary): Write inline summary info.
2044         (inline_free_summary): Free all hooks and inline summary vector.
2045         * lto-streamer.h: Add LTO_section_inline_summary section.
2046         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
2047         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
2048
2049 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
2050
2051         * tree-vectorizer.h (vect_strided_store_supported): Add a
2052         HOST_WIDE_INT argument.
2053         (vect_strided_load_supported): Likewise.
2054         (vect_permute_store_chain): Return void.
2055         (vect_transform_strided_load): Likewise.
2056         (vect_permute_load_chain): Delete.
2057         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
2058         count argument.  Check that the count is a power of two.
2059         (vect_strided_load_supported): Likewise.
2060         (vect_permute_store_chain): Return void.  Update after above changes.
2061         Assert that the access is supported.
2062         (vect_permute_load_chain): Likewise.
2063         (vect_transform_strided_load): Return void.
2064         * tree-vect-stmts.c (vectorizable_store): Update calls after
2065         above interface changes.
2066         (vectorizable_load): Likewise.
2067         (vect_analyze_stmt): Don't check for strided powers of two here.
2068
2069 2011-04-14  Richard Guenther  <rguenther@suse.de>
2070
2071         PR tree-optimization/48590
2072         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
2073         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
2074         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
2075         BUILT_IN_STACK_SAVE.
2076         * tree-ssa-dce.c (propagate_necessity): Handle
2077         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
2078
2079 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
2080
2081         * c-parser.c (c_parser_objc_class_declaration): Updated call to
2082         objc_declare_class.
2083
2084 2011-04-14  Richard Guenther  <rguenther@suse.de>
2085
2086         * tree.h (get_object_alignment_1): Declare.
2087         * builtins.c (get_object_alignment_1): Split out worker from ...
2088         (get_object_alignment): ... here.
2089         * fold-const.c (get_pointer_modulus_and_residue): Use
2090         get_object_alignment_1.
2091
2092 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
2093
2094         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
2095         type parameter.
2096         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
2097         parameter.  Generalise code to handle arrays as well as vectors.
2098         (vect_setup_realignment): Update accordingly.
2099         * tree-vect-stmts.c (vectorizable_store): Likewise.
2100         (vectorizable_load): Likewise.
2101
2102 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
2103
2104         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
2105         within the per-copy loop.
2106
2107 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
2108
2109         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
2110         in the dump file.
2111
2112 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
2113
2114         * doc/options.texi (Negative): Explicitly mention that the
2115         Negative chain must be circular.
2116
2117 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
2118
2119         * function.h (block_chainon): Declare.
2120         * function.c (block_chainon): Define.
2121
2122 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
2123             Eric Weddington  <eric.weddington@atmel.com>
2124             Georg-Johann Lay <avr@gjlay.de>
2125
2126         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
2127         New Includes
2128         (avr_init_builtins, avr_expand_builtin,
2129         avr_expand_delay_cycles, avr_expand_unop_builtin,
2130         avr_expand_binop_builtin ): New functions.
2131         (avr_builtin_id): New enum
2132         (struct avr_builtin_description): New struct
2133         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
2134         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
2135
2136         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
2137         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
2138         UNSPECV_DELAY_CYCLES): new enumeration values
2139         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
2140         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
2141         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
2142         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
2143         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
2144         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
2145         "fmulsu"): New insns
2146
2147         * config/avr/avr-c.c: fix line endings
2148         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
2149         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
2150         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
2151         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
2152         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
2153
2154         * doc/extend.texi (AVR Built-in Functions): New node
2155         (Target Builtins): Add documentation of AVR
2156         built-in functions.
2157
2158 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
2159
2160         PR target/44643
2161         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
2162         alone. Error if non-const data has attribute progmem.
2163
2164 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
2165
2166         * tree.h (struct tree_constructor): Include tree_typed instead of
2167         tree_common.
2168         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
2169         TS_TYPED instead of TS_COMMON.
2170
2171 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
2172
2173         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
2174         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
2175         (sse2_psadbw): Merge with *avx_psadbw.
2176         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
2177         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
2178         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
2179         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
2180         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
2181         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
2182         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
2183         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
2184         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
2185         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
2186         (ssse3_palignrti): Merge with *avx_palignrti.
2187
2188 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
2189
2190         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
2191         * tree-ssanames.c (fini_ssanames): VEC_free it.
2192         (make_ssa_name_fn): Update for VECness of free_ssanames.
2193         (release_ssa_name, release_dead_ssa_names): Likewise.
2194         * tree.h (struct tree_ssa_name): Include tree_typed instead of
2195         tree_common.
2196         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
2197         TS_TYPED instead of TS_COMMON.
2198
2199 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
2200
2201         * postreload-gcse.c (gcse_after_reload_main): Add calls to
2202         statistics_counter_event.
2203         * tree-ssa-copyrename.c (stats): Define.
2204         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
2205         statistics_counter_event.
2206         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
2207         (bswap_stats, widen_mul_stats): Define.
2208         (insert_reciprocals): Increment rdivs_inserted.
2209         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
2210         rfuncs_inserted.  Add calls to statistics_counter_event.
2211         (execute_cse_sincos_1): Increment inserted.
2212         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
2213         statistics_counter_event.
2214         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
2215         of bswap_stats.  Add calls to statistics_counter_event.
2216         (convert_mult_to_widen): Increment widen_mults_inserted.
2217         (convert_plusminus_to_widen): Increment maccs_inserted.
2218         (convert_mult_to_fma): Increment fmas_inserted.
2219         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
2220         calls to statistics_counter_event.
2221
2222 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
2223
2224         PR rtl-optimization/48455
2225         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
2226         `temp_costs->mem_cost'.
2227
2228 2011-04-13  Jan Hubicka  <jh@suse.cz>
2229
2230         * ipa-inline.h: New file.
2231         * ipa-inline-analysis.c: New file. Broken out of ...
2232         * ipa-inline.c: ... this file; update toplevel comment;
2233         include ipa-inline.h
2234         (inline_summary): Move to ipa-inline.h
2235         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
2236         ipa-inline-analysis.c.
2237         (cgraph_estimate_time_after_inlining): Rename to
2238         estiamte_time_after_inlining; move to ipa-inline-analysis.c
2239         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
2240         to estimate_edge_growth.
2241         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
2242         rename to estimate_size_after_inlining.
2243         (cgraph_mark_inline_edge): Update for new naming convention.
2244         (cgraph_check_inline_limits): Likewise.
2245         (cgraph_edge_badness): Likewise.
2246         (cgraph_decide_recursive_inlining): Likewise.
2247         (cgraph_decide_inlining_of_small_functions): Likewise.
2248         (cgraph_decide_inlining_incrementally): Likewise.
2249         (cgraph_estimate_growth): Rename to estimate_growth; move to
2250         ipa-inline-analysis.c.
2251         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
2252         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
2253         (compute_inline_parameters): Likewise.
2254         (compute_inline_parameters_for_current): Likewise.
2255         (pass_inline_parameters): Likewise.
2256         (inline_indirect_intraprocedural_analysis): Likewise.
2257         (analyze_function): Rename to inline_analyze_function; likewise.
2258         (add_new_function): Move to ipa-inline-analysis.c.
2259         (inline_generate_summary): Likewise.
2260         (inline_read_summary): Likewise.
2261         (inline_write_summary): Likewise.
2262         * Makefile.in (ipa-inline-analysis.c): New file.
2263
2264 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2265
2266         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
2267         * configure: Regenerate.
2268
2269 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
2270
2271         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
2272         instead of tree_common.
2273         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
2274         Likewise.
2275         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
2276         TS_TYPED rather than TS_COMMON.
2277         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
2278
2279 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
2280
2281         PR target/45263
2282         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
2283         r20 around calls of __tablejump_elpm__
2284
2285 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
2286
2287         PR middle-end/48591
2288         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
2289         NULL.
2290         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
2291
2292 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
2293
2294         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
2295         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
2296         (cfi_vec): New typedef.
2297         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
2298         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
2299         (cie_cfi_vec): New static variable.
2300         (cie_cfi_head): Delete.
2301         (add_cfi): Accept a cfi_vec * as first argument. All callers and
2302         declaration changed. Use vector rather than list operations.
2303         (new_cfi): Don't initialize the dw_cfi_next field.
2304         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
2305         rather than list operations.
2306         (lookup_cfa): Use vector rather than list operations.
2307         (output_cfis): New argument upto. Accept a cfi_vec rather than
2308         a dw_cfi_ref list head as argument. All callers changed.
2309         Iterate over the vector using upto as a maximum index.
2310         (output_all_cfis): New static function.
2311         (output_fde): Use vector rather than list operations. Use the
2312         new upto argument for output_cfis rather than manipulating a
2313         list.
2314         (dwarf2out_begin_prologue): Change initializations to match
2315         new struct members.
2316         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
2317         from the vector length rather than searching for the end of a list.
2318         Use output_all_cfis.
2319         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
2320
2321 2011-04-13  Nick Clifton  <nickc@redhat.com>
2322
2323         * config/rx/rx.md (movmemsi): Do not use this pattern when
2324         volatile pointers are involved.
2325
2326 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
2327
2328         * config/i386/sse.md (pinsrbits): Remove.
2329         (sse2_packsswb): Merge with *avx_packsswb.
2330         (sse2_packssdw): Merge with *avx_packssdw.
2331         (sse2_packuswb): Merge with *avx_packuswb.
2332         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
2333         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
2334         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
2335         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
2336         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
2337         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
2338         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
2339         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
2340         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
2341         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
2342         (sse2_loadld): Merge with *avx_loadld.
2343         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
2344         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
2345         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
2346         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
2347         (vec_concatv2di): Merge with *vec_concatv2di_avx.
2348
2349 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
2350
2351         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
2352         calling TREE_CHAIN.
2353         * print-tree.c (print_node): Likewise.
2354         * tree-inline.c (copy_tree_r): Likewise.
2355         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
2356         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
2357         instead of TS_COMMON.
2358         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
2359         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
2360         (copy_node_stat): Zero TREE_CHAIN only if necessary.
2361         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
2362         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
2363         ...and these...
2364         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
2365         * tree.h: ...here.
2366         (TREE_CHAIN): Check for a TS_COMMON structure.
2367         (TREE_TYPE): Check for a TS_TYPED structure.
2368
2369 2011-04-12  Pat Haugen <pthaugen@us.ibm.com>
2370
2371         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
2372         cgraph_get_create_node instead of cgraph_node.
2373
2374 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
2375
2376         * c-parser.c (c_parser_initelt): Updated call to
2377         objc_build_message_expr.
2378         (c_parser_postfix_expression): Likewise.
2379
2380 2011-04-12  Kai Tietz  <ktietz@redhat.com>
2381
2382         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
2383         MASK_MS_BITFIELD_LAYOUT bit.
2384
2385 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
2386
2387         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
2388         assert it is always true.
2389         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
2390         moves.
2391
2392 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
2393
2394         * c-parser.c (c_lex_one_token): Rewritten conditional used when
2395         compiling Objective-C to be more efficient.
2396
2397 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
2398
2399         * opts-common.c (decode_cmdline_options_to_array): Remove variable
2400         argv_copied.
2401
2402 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
2403
2404         * recog.h, genoutput.c, optabs.c: Revert last patch.
2405
2406 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2407
2408         PR target/48090
2409         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
2410
2411 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
2412
2413         * recog.h (insn_operand_data): Add an "allows_mem" field.
2414         * genoutput.c (output_operand_data): Initialize it.
2415         * optabs.c (maybe_legitimize_operand_same_code): New function.
2416         (maybe_legitimize_operand): Use it when matching the original
2417         op->value.
2418
2419 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
2420
2421         * genpreds.c (process_define_predicate): Move most processing
2422         to gensupport.c.  Continue to validate the expression.
2423         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
2424         (process_define_predicate): Move processing to gensupport.c.
2425         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
2426         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
2427         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
2428         argument.
2429         (valid_predicate_name_p): New function, split out from old
2430         genpreds.c:process_define_predicate.
2431         (process_define_predicate): New function, combining code from
2432         old genpreds.c and genrecog.c functions.
2433         (process_rtx): Call it for DEFINE_PREDICATE and
2434         DEFINE_SPECIAL_PREDICATE.
2435
2436 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
2437
2438         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
2439         size of a '%A' memory reference.
2440         (T_DREG, T_QREG): New neon_builtin_type_bits.
2441         (arm_init_neon_builtins): Assert that the load and store operands
2442         are neon_struct_operands.
2443         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
2444         (NEON_ARG_MEMORY): New builtin_arg.
2445         (neon_dereference_pointer): New function.
2446         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
2447         Handle NEON_ARG_MEMORY.
2448         (arm_expand_neon_builtin): Update after above interface changes.
2449         Use NEON_ARG_MEMORY for loads and stores.
2450         * config/arm/predicates.md (neon_struct_operand): New predicate.
2451         * config/arm/iterators.md (V_two_elem): Tweak formatting.
2452         (V_three_elem): Use BLKmode for accesses that have no associated mode.
2453         (V_four_elem): Tweak formatting.
2454         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
2455         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
2456         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
2457         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
2458         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
2459         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
2460         (neon_vst4<mode>): Replace pointer operand with a memory operand.
2461         Use %A in the output template.
2462         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
2463         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
2464         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
2465         the width of the memory access.  Remove post-increment.
2466         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
2467
2468 2011-04-12  Nick Clifton  <nickc@redhat.com>
2469
2470         * config/v850/v850.c (expand_prologue): Do not use the CALLT
2471         instruction for interrupt handlers if the target is the basic V850
2472         architecture.
2473         (expand_epilogue): Likewise.
2474
2475 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
2476
2477         PR rtl-optimization/48549
2478         * combine.c (propagate_for_debug): Also stop after BB_END of
2479         this_basic_block.  Process LAST and just stop processing after it.
2480         (combine_instructions): If last_combined_insn has been deleted,
2481         set last_combined_insn to its PREV_INSN.
2482
2483 2011-04-12  Richard Guenther  <rguenther@suse.de>
2484
2485         PR tree-optimization/46076
2486         * gimple.h (struct gimple_statement_call): Add fntype field.
2487         (gimple_call_fntype): Adjust.
2488         (gimple_call_set_fntype): New function.
2489         * gimple.c (gimple_build_call_1): Set the call function type.
2490         * gimplify.c (gimplify_call_expr): Preserve the function
2491         type the frontend used for the call.
2492         (gimplify_modify_expr): Likewise.
2493         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
2494         function type.
2495         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
2496         function type.
2497         * tree-ssa.c (useless_type_conversion_p): Function pointer
2498         conversions are useless.
2499
2500 2011-04-12  Martin Jambor  <mjambor@suse.cz>
2501
2502         * cgraph.h (cgraph_node): Remove function declaration.
2503         (cgraph_create_node): Declare.
2504         (cgraph_get_create_node): Likewise.
2505         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
2506         Updated all callers.
2507         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
2508         the decl does not already exist.  Call cgraph_get_create_node instead
2509         of cgraph_node.
2510         (cgraph_get_create_node): New function.
2511         (cgraph_same_body_alias): Update comment.
2512         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
2513         assert it does not return NULL.
2514         (cgraph_update_edges_for_call_stmt): Likewise.
2515         (cgraph_clone_edge): Likewise.
2516         (cgraph_create_virtual_clone): Likewise.
2517         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
2518         instead of cgraph_node.
2519         (cgraph_add_new_function): Call cgraph_create_node or
2520         cgraph_get_create_node instead of cgraph_node.
2521         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
2522         instead of cgraph_node.
2523         (record_eh_tables): Likewise.
2524         (mark_address): Likewise.
2525         (mark_load): Likewise.
2526         (build_cgraph_edges): Call cgraph_get_create_node instead
2527         of cgraph_node.
2528         (rebuild_cgraph_edges): Likewise.
2529         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
2530         instead of cgraph_node.
2531         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
2532         cgraph_node.
2533         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
2534         cgraph_create_node instead of cgraph_node.
2535         * c-decl.c (finish_function): Call cgraph_get_create_node instead
2536         of cgraph_node.
2537         * lto-cgraph.c (input_node): Likewise.
2538         * lto-streamer-in.c (input_function): Likewise.
2539         * varasm.c (mark_decl_referenced): Likewise.
2540         (assemble_alias): Likewise.
2541
2542 2011-04-12  Martin Jambor  <mjambor@suse.cz>
2543
2544         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
2545         instead of cgraph_node and assert it does not return NULL.
2546         * lto-streamer-in.c (lto_read_body): Likewise.
2547         * omp-low.c (new_omp_context): Likewise.
2548         (create_task_copyfn): Likewise.
2549         * tree-emutls.c (lower_emutls_function_body): Likewise.
2550         * matrix-reorg.c (transform_allocation_sites): Likewise.
2551
2552 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
2553
2554         PR c/48552
2555         * c-typeck.c (build_asm_expr): Error out on attempts to use
2556         void type outputs or inputs for constraints that allow reg or
2557         don't allow memory.
2558
2559 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
2560             Richard Earnshaw  <rearnsha@arm.com>
2561
2562         PR target/48250
2563         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
2564         to use sign-magnitude offsets. Reject unsupported unaligned
2565         cases. Add detailed description in comments.
2566         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
2567         condition from TARGET_32BIT to TARGET_ARM.
2568
2569 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
2570
2571         * tree.h (struct typed_tree): New.
2572         (struct tree_common): Include it instead of tree_base.
2573         (TREE_TYPE): Update for new location of type field.
2574         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
2575         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
2576         (union tree_node): Add typed field.
2577         * treestruct.def (TS_TYPED): New.
2578         * lto-streamer.c (check_handled_ts_structures): Handle it.
2579         * tree.c (MARK_TS_TYPED): New macro.
2580         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
2581
2582 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
2583
2584         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
2585         (force_nonfallthru): Do not alter the loop nest if no basic block
2586         was created.
2587
2588 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
2589
2590         * config/i386/sse.md (VI): New mode iterator.
2591         (SSEMODEI): Remove.
2592         (AVX256MODEI): Ditto.
2593         (AVXMODEF4P): Ditto.
2594         (avxvecpsmode): Ditto.
2595         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
2596         (sse2_andnot<mode>3): New expander.
2597         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
2598         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
2599         (<any_logic:code><mode>3): Use VI mode iterator.
2600         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
2601         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
2602         (*andnottf3): Handle AVX three-operand constraints.
2603         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
2604
2605 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2606             Robert Millan  <rmh@gnu.org>
2607
2608         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
2609         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
2610         GNU_USER_DYNAMIC_LINKER64): Define.
2611         (REG_NAME): Don't undefine.
2612         (MD_UNWIND_SUPPORT): Undefine.
2613         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
2614         (REG_NAME): Don't undefine.
2615         (MD_UNWIND_SUPPORT): Undefine.
2616         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
2617
2618 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2619
2620         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
2621         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
2622
2623 2011-04-11  Xinliang David Li  <davidxl@google.com>
2624
2625         * value-profile.c (check_ic_target): New function.
2626         (gimple_ic_transform): Sanity check indirect call target.
2627         * gimple-low.c (gimple_check_call_args): Interface change.
2628         (gimple_check_call_matching_types): New function.
2629         * tree-inline.c (tree_can_inline_p): Call new function.
2630
2631 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
2632
2633         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
2634         tree-pretty-print.h & realmpfr.h.
2635
2636 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
2637
2638         PR middle-end/48464
2639         * ira.c (setup_pressure_classes): Fix typo in loop condition.
2640         (setup_allocno_and_important_classes): Ditto.
2641
2642 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2643
2644         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
2645         GNU_USER_DYNAMIC_LINKER.
2646         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
2647         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2648         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
2649         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2650         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
2651         GNU_USER_TARGET_OS_CPP_BUILTINS.
2652         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
2653         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2654         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
2655         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2656         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
2657         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2658         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
2659         GNU_USER_TARGET_OS_CPP_BUILTINS.
2660         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2661         GNU_USER_DYNAMIC_LINKER.
2662         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2663         GNU_USER_TARGET_OS_CPP_BUILTINS.
2664         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
2665         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2666         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
2667         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2668         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
2669         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
2670         GNU_USER_DYNAMIC_LINKER64): Remove.
2671         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
2672         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2673         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2674         GNU_USER_DYNAMIC_LINKER.
2675         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2676         GNU_USER_TARGET_OS_CPP_BUILTINS.
2677         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2678         GNU_USER_TARGET_OS_CPP_BUILTINS.
2679         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
2680         to GNU_USER_TARGET_OS_CPP_BUILTINS.
2681         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2682         GNU_USER_TARGET_OS_CPP_BUILTINS.
2683         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
2684         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
2685         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
2686         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
2687         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2688         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2689         GNU_USER_DYNAMIC_LINKER.
2690         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
2691         GNU_USER_TARGET_OS_CPP_BUILTINS.
2692         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
2693         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2694         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2695         GNU_USER_DYNAMIC_LINKER.
2696         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
2697         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2698         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
2699         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2700         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2701         GNU_USER_DYNAMIC_LINKER.
2702         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
2703         GNU_USER_DYNAMIC_LINKERN32.
2704         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
2705         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
2706         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
2707         GNU_USER_DYNAMIC_LINKER32.
2708         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
2709         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2710         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2711         GNU_USER_DYNAMIC_LINKER.
2712         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
2713         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2714         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
2715         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2716         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2717         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
2718         GNU_USER_DYNAMIC_LINKER32.
2719         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
2720         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
2721         GNU_USER_DYNAMIC_LINKER.
2722         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
2723         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2724         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
2725         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
2726         GNU_USER_DYNAMIC_LINKER64.
2727         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
2728         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2729         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2730         GNU_USER_DYNAMIC_LINKER.
2731         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
2732         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2733         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2734         GNU_USER_DYNAMIC_LINKER.
2735         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
2736         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2737         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
2738         GNU_USER_DYNAMIC_LINKER32.
2739         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
2740         GNU_USER_DYNAMIC_LINKER64.
2741         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
2742         GNU_USER_DYNAMIC_LINKER64.
2743         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
2744         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2745         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
2746         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2747         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2748
2749 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2750
2751         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
2752         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
2753         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
2754         GNU_USER_DYNAMIC_LINKER.
2755         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
2756         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
2757         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
2758         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
2759         GNU_USER_DYNAMIC_LINKER64.
2760         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
2761         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
2762         GNU_USER_LINK_EMULATION.
2763         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
2764         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
2765         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
2766         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
2767         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
2768         CPP_SPEC, CC1_SPEC): Remove.
2769         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
2770         (GNU_USER_DYNAMIC_LINKER): Define.
2771         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
2772         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
2773         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
2774         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
2775         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
2776         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
2777         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
2778         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
2779         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
2780         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
2781         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
2782         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
2783         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
2784         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
2785         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
2786         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
2787         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2788         GNU_USER_DYNAMIC_LINKER.
2789         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2790         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
2791         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2792         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
2793         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2794         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
2795         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
2796         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
2797         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
2798         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
2799
2800 2011-04-11  Kai Tietz  <ktietz@redhat.com>
2801
2802         PR target/9601
2803         PR target/11772
2804         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
2805         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
2806         comment.
2807         (ix86_is_msabi_thiscall): Removed.
2808         (ix86_is_type_thiscall): Likewise.
2809         (ix86_get_callcvt): New function.
2810         (ix86_comp_type_attributes): Simplify check.
2811         (ix86_function_regparm): Use ix86_get_callcvt for calling
2812         convention attribute checks.
2813         (ix86_return_pops_args): Likewise.
2814         (ix86_static_chain): Likewise.
2815         (x86_this_parameter): Likewise.
2816         (x86_output_mi_thunk): Likewise.
2817         (ix86_function_type_abi): Optimize check for types without attributes.
2818         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
2819         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
2820         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
2821         by flag-values.
2822         (IX86_BASE_CALLCVT): Helper macro.
2823         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
2824         Use ix86_get_callcvt for calling convention attribute checks and avoid
2825         symbol-decoration for stdcall in TARGET_RTD case.
2826         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
2827         Likewise.
2828         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
2829         for declaration.
2830
2831 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
2832
2833         * config/i386/sse.md (VI_128): New mode iterator.
2834         (VI12_128): Rename from SSEMODE12.
2835         (VI14_128): Rename from SSEMODE14.
2836         (VI124_128): New mode iterator.
2837         (VI24_128): Rename from SSEMODE248.
2838         (VI248_128): Rename from SSEMODE248.
2839         (SSEMODE124C8): Remove.
2840         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
2841         (*sse2_<plusminus_insn><mode>3): Merge with
2842         *avx_<plusminus_insn><mode>3.
2843         (*mulv8hi3): Merge with *avx_mulv8hi3.
2844         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
2845         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
2846         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
2847         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
2848         (ashr<mode>3): Merge with *avx_ashr<mode>3.
2849         (lshr<mode>3): Merge with *avx_lshr<mode>3.
2850         (ashl<mode>3): Merge with *avx_ashl<mode>3.
2851         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
2852         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
2853         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
2854         (*<smaxmin:code>v8hi3): Ditto.
2855         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
2856         (*<smaxmin:code>v16qi3): Ditto.
2857         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
2858         (*sse2_eq<mode>3): Ditto.
2859         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
2860         (*sse2_gt<mode>3): Ditto.
2861         (vcondv2di): Split out of vcond<mode>.
2862         (vconduv2di): Split out of vcondu<mode>.
2863
2864 2011-04-11  Richard Guenther  <rguenther@suse.de>
2865
2866         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
2867         before calling tree_low_cst.
2868
2869 2011-04-11  Richard Guenther  <rguenther@suse.de>
2870
2871         * stor-layout.c (layout_type): Compute all array index size operations
2872         in the original type.
2873         (initialize_sizetypes): Add comment.
2874         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
2875
2876 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2877
2878         * common.opt (Tbss=, Tdata=, Ttext=): New options.
2879
2880 2011-04-11  Martin Jambor  <mjambor@suse.cz>
2881
2882         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
2883         of cgraph_node, handle NULL return value.
2884         (cgraph_global_info): Likewise.
2885         (cgraph_rtl_info): Likewise.
2886         * tree-inline.c (estimate_num_insns): Likewise.
2887         * gimplify.c (unshare_body): Likewise.
2888         (unvisit_body): Likewise.
2889         (gimplify_body): Likewise.
2890         * predict.c (optimize_function_for_size_p): Likewise.
2891         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
2892         (call_may_clobber_ref_p_1): Likewise.
2893         * varasm.c (function_section_1): Likewise.
2894         (assemble_start_function): Likewise.
2895
2896 2011-04-11  Martin Jambor  <mjambor@suse.cz>
2897
2898         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
2899         of cgraph_node.
2900         * final.c (rest_of_clean_state): Likewise.
2901         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
2902         * passes.c (pass_init_dump_file): Likewise.
2903         (execute_all_ipa_transforms): Likewise.
2904         (function_called_by_processed_nodes_p): Likewise.
2905         * predict.c (maybe_hot_frequency_p): Likewise.
2906         (probably_never_executed_bb_p): Likewise.
2907         (compute_function_frequency): Likewise.
2908         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
2909         (unnest_nesting_tree_1): Likewise.
2910         (lower_nested_functions): Likewise.
2911         * tree-optimize.c (execute_fixup_cfg): Likewise.
2912         (tree_rest_of_compilation): Likewise.
2913         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
2914         * tree-sra.c (ipa_early_sra): Likewise.
2915         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
2916         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
2917         * ipa.c (record_cdtor_fn): Likewise.
2918         * ipa-inline.c (cgraph_early_inlining): Likewise.
2919         (compute_inline_parameters_for_current): Likewise.
2920         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
2921         * ipa-pure-const.c (local_pure_const): Likewise.
2922         * ipa-split.c (split_function): Likewise.
2923         (execute_split_functions): Likewise.
2924         * cgraphbuild.c (build_cgraph_edges): Likewise.
2925         (rebuild_cgraph_edges): Likewise.
2926         (cgraph_rebuild_references): Likewise.
2927         (remove_cgraph_callee_edges): Likewise.
2928         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
2929         (verify_cgraph_node): Likewise.
2930         (cgraph_analyze_functions): Likewise.
2931         (cgraph_preserve_function_body_p): Likewise.
2932         (save_inline_function_body): Likewise.
2933         (save_inline_function_body): Likewise.
2934         * tree-inline.c (copy_bb): Likewise.
2935         (optimize_inline_calls): Likewise.
2936
2937 2011-04-11  Martin Jambor  <mjambor@suse.cz>
2938
2939         PR tree-optimization/48195
2940         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
2941         ipa_check_create_edge_args.
2942         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
2943         ipa_check_create_edge_args.
2944         * ipa-inline.c (inline_generate_summary): Do not call
2945         ipa_check_create_node_params and ipa_check_create_edge_args.
2946         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
2947         ipa_check_create_edge_args.
2948
2949 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
2950
2951         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
2952         instead of loop.
2953         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
2954         * function.c (record_hard_reg_sets): Likewise.
2955         * ira.c (compute_regs_asm_clobbered): Likewise.
2956         * sched-deps.c (sched_analyze_1): Likewise.
2957         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
2958
2959 2011-04-09  Xinliang David Li  <davidxl@google.com>
2960
2961         PR tree-optimization/PR48484
2962         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
2963         has_valid_pred lazily
2964
2965 2011-04-09  Duncan Sands  <baldrick@free.fr>
2966
2967         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
2968
2969 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2970
2971         * combine.c (combine_validate_cost): Adjust comments.  Set registered
2972         cost of I0 to zero at the end, if any.
2973
2974 2011-04-08  Xinliang David Li  <davidxl@google.com>
2975
2976         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
2977         to insane profile data.
2978
2979 2011-04-08  Xinliang David Li  <davidxl@google.com>
2980
2981         * ipa-cp.c (ipcp_update_profiling): Correct
2982          negative scale factor due to insane profile data.
2983
2984 2011-04-08  Xinliang David Li  <davidxl@google.com>
2985
2986         * final.c (dump_basic_block_info): New function.
2987         (final): Dump basic block.
2988         (final_scan_insn): Remove old dump.
2989
2990 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
2991
2992         PR target/47829
2993         * config.gcc (i386-*-freebsd): Disable unwind table generation for
2994         crtbegin/crtend.
2995
2996 2011-04-08  Michael Matz  <matz@suse.de>
2997
2998         PR middle-end/48389
2999         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
3000         functions.
3001         (rebuild_jump_labels): Call rebuild_jump_labels_1.
3002         * rtl.h (rebuild_jump_labels_chain): Declare.
3003         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
3004         insns inserted on edges.
3005
3006 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
3007
3008         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
3009         * config/arm/arm-arches.def: New.
3010         * config/arm/arm-opts.h: New.
3011         * config/arm/genopt.sh: New.
3012         * config/arm/arm-tables.opt: New (generated).
3013         * config/arm/arm.c (arm_handle_option, arm_target_help,
3014         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
3015         (all_architectures): Get most table contents from arm-arches.def.
3016         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
3017         arm_selected_tune here.
3018         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
3019         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
3020         (march=, mcpu=, mtune=): Use Enum and Var.
3021         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
3022         (arm.o): Update dependencies.
3023
3024 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
3025
3026         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
3027         of header_file.
3028         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
3029         (write_typed_alloc_defns): Likewise.
3030         (main): Calls write_typed_alloc_defns with output_header.
3031
3032 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
3033
3034         PR inline-asm/48435
3035         * ira-color.c (setup_profitable_hard_regs): Add comments.
3036         Don't take prohibited hard regs into account.
3037         (setup_conflict_profitable_regs): Rename to
3038         get_conflict_profitable_regs.
3039         (check_hard_reg_p): Check prohibited hard regs.
3040
3041 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
3042
3043         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
3044         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
3045         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
3046
3047 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3048
3049         PR target/48366
3050         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
3051         move from floating point to shift amount register.
3052         (emit_move_sequence): Remove secondary reload support for floating
3053         point to shift amount amount register copies.
3054         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
3055         amount register copies.
3056         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
3057         register, return false if mode isn't a scalar integer mode.
3058         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
3059
3060 2011-04-08  Richard Guenther  <rguenther@suse.de>
3061
3062         * gimple.c (gimple_call_flags): Remove kludge.
3063
3064 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
3065
3066         * sel-sched.c (sel_region_init): Move call to
3067         sel_setup_region_sched_flags after setup_current_loop_nest.
3068
3069 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
3070
3071         PR rtl-optimization/48272
3072         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
3073         init_insn_reg_pressure_info.  Adjust a caller.
3074         * sched-int.h (init_insn_reg_pressure_info): Declare.
3075         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
3076         when sched-pressure is enabled.
3077
3078 2011-04-08  Richard Guenther  <rguenther@suse.de>
3079
3080         * gimple.c (gimple_set_modified): Do not queue calls to
3081         MODIFIED_NORETURN_CALLS here ...
3082         * tree-ssa-operands.c (update_stmt_operands): ... but here.
3083
3084 2011-04-08  Richard Guenther  <rguenther@suse.de>
3085
3086         PR lto/48467
3087         * toplev.c (lang_dependent_init): Do not open asm_out_file
3088         in WPA mode, nor perform debug machinery initialization.
3089         (finalize): Do not unlink asm_out_file in WPA mode.
3090
3091 2011-04-08  Richard Guenther  <rguenther@suse.de>
3092
3093         * gimple.h (gimple_call_fntype): New function.
3094         (gimple_call_return_type): Use it.
3095         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
3096         * gimple-low.c (gimple_check_call_args): Likewise.
3097         * gimple.c (gimple_call_flags): Likewise.
3098         (gimple_call_arg_flags): Likewise.
3099         (gimple_call_return_flags): Likewise.
3100         * tree-cfg.c (verify_gimple_call): Likewise.
3101         (do_warn_unused_result): Likewise.
3102         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
3103         * value-prof.c (gimple_ic_transform): Fix fndecl check.
3104
3105 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
3106
3107         PR rtl-optimization/48235
3108         * sel-sched.c (code_motion_process_successors): Recompute the last
3109         insn in basic block if control flow changed.
3110         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
3111         Update condition for ilist_remove.
3112
3113 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
3114
3115         PR rtl-optimization/48302
3116         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
3117         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
3118         it to record added preheader blocks.
3119         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
3120         on to sel_add_loop_preheaders.
3121         (sel_region_init): Move call to setup_current_loop_nest after
3122         sel_init_bbs.
3123
3124 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
3125
3126         PR target/48273
3127         * cfgloop.h (loop_has_exit_edges): New helper.
3128         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
3129         non-clonable.
3130         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
3131         that have no exit edges.
3132
3133 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
3134
3135         PR rtl-optimization/48442
3136         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
3137         all callers.  Adjust assert.
3138
3139 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
3140
3141         PR tree-optimization/48377
3142         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
3143         is_packed to true even for types with smaller TYPE_ALIGN than
3144         TYPE_SIZE.
3145
3146 2011-04-08  Richard Guenther  <rguenther@suse.de>
3147
3148         PR bootstrap/48513
3149         * doc/tm.texi: Re-generate.
3150
3151 2011-04-08  Wei Guozhi  <carrot@google.com>
3152
3153         PR target/47855
3154         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
3155         * config/arm/arm.c (arm_attr_length_push_multi): New function.
3156         * config/arm/arm.md (*push_multi): Change the length computation to
3157         call a C function.
3158
3159 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
3160
3161         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
3162         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
3163         * doc/tm.texi: Regenerate.
3164         * system.h (ASM_OUTPUT_BSS): Poison.
3165         * varasm.c (asm_output_bss): Remove function.
3166         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
3167
3168         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
3169         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
3170         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
3171         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
3172         Likewise.
3173         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
3174         Likewise.
3175         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
3176         Likewise.
3177         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
3178
3179 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
3180
3181         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
3182         EnumValue lines.
3183
3184 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
3185
3186         * config/m68k/m68k.c (m68k_handle_option): Don't handle
3187         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
3188         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
3189         OPT_mcpu32.
3190         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
3191         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
3192         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
3193         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
3194         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
3195         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
3196         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
3197         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
3198         options.  Don't map other m68k options manually.  Don't handle
3199         old-style options as canonical.
3200         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
3201         * doc/install.texi (m68k-*-*): Document binutils version requirement.
3202
3203 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
3204
3205         * basic-block.h (force_nonfallthru): Move to...
3206         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
3207         (force_nonfallthru): ...here.
3208         * cfghooks.c (force_nonfallthru): New function.
3209         * cfgrtl.c (force_nonfallthru): Rename into...
3210         (rtl_force_nonfallthru): ...this.
3211         (commit_one_edge_insertion): Do not set AUX field.
3212         (commit_edge_insertions): Do not discover new basic blocks.
3213         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
3214         (cfg_layout_rtl_cfg_hooks): Likewise.
3215         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
3216         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
3217         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
3218
3219 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
3220
3221         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
3222         Remove macros.
3223
3224 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
3225
3226         * config/i386/sse.md: Update copyright year.
3227         (avxcvtvecmode): Remove.
3228         (sse_movhlps): Merge with *avx_movhlps.
3229         (sse_movlhps): Merge with *avx_movlhps.
3230         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
3231         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
3232         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
3233         (sse_loadhps): Merge with *avx_loadhps.
3234         (sse_storelps): Merge with *avx_storelps.
3235         (sse_loadlps): Merge with *avx_loadlps.
3236         (sse_movss): Merge with *avx_movss.
3237         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
3238         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
3239         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
3240         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
3241         (vec_set<mode>_0): Ditto.
3242         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
3243         (sse4_1_insertps): Merge with *avx_insertps.
3244         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
3245         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
3246         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
3247         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
3248         (sse2_storehpd): Merge with *avx_storehpd.
3249         (sse2_loadhpd): Merge with *avx_loadhpd.
3250         (sse2_loadlpd): Merge with *avx_loadlpd.
3251         (sse2_movsd): Merge with *avx_movsd.
3252         (*vec_concatv2df): Merge with *vec_concatv2df.
3253
3254 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
3255
3256         PR debug/48343
3257         * combine.c (combine_instructions): Add last_combined_insn,
3258         update it if insn is after it, pass it to all try_combine calls.
3259         (try_combine): Add last_combined_insn parameter, pass it instead of
3260         i3 to propagate_for_debug.
3261
3262 2011-04-07  Nick Clifton  <nickc@redhat.com>
3263
3264         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
3265         to handle MDR <-> data register transfers.
3266         (movhi_internal): Likewise.
3267
3268 2011-04-07  Alan Modra  <amodra@gmail.com>
3269
3270         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
3271         previous stack info.
3272
3273 2011-04-07  Tom de Vries  <tom@codesourcery.com>
3274
3275         PR target/43920
3276         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
3277         flow_find_cross_jump.  Swap variables to implement backward replacement.
3278         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
3279
3280 2011-04-07  Tom de Vries  <tom@codesourcery.com>
3281
3282         PR target/43920
3283         * cfgcleanup.c (walk_to_nondebug_insn): New function.
3284         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
3285         and bb2.
3286         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
3287         src1 or src2.  Redirect edges to the last basic block.  Update
3288         frequency and count on multiple basic blocks in case of fallthru.
3289
3290 2011-04-07  Tom de Vries  <tom@codesourcery.com>
3291
3292         PR target/43920
3293         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
3294         function.
3295         (old_insns_match_p): Change return type.  Replace return false/true
3296         with return dir_none/dir_both.  Use can_replace_by.
3297         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
3298         direction from dir_p.  Register replacement direction in dir, last_dir
3299         and afterlast_dir.  Handle new return type of old_insns_match_p using
3300         merge_dir.  Return replacement direction in dir_p.
3301         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
3302         return type of old_insns_match_p.
3303         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
3304         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
3305         flow_find_cross_jump.
3306         * basic-block.h (enum replace_direction): New type.
3307         (flow_find_cross_jump): Add parameter to declaration.
3308
3309 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
3310
3311         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
3312         (AVXMODEDCVTPS2DQ): Ditto.
3313         (VEC_FLOAT_MODE): Ditto.
3314         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
3315         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
3316         (<any_logic:code><mode>3): Use VF mode iterator.
3317         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
3318         Use VF mode iterator.
3319         (copysign<mode>3): Use VF mode iterator.
3320         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
3321         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
3322         (*<any_logic:code><MODEF:mode>3): Merge with
3323         *avx_<any_logic:code><MODEF:mode>3.
3324         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
3325         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
3326         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
3327         (avx_cvtdq2ps<avxmodesuffix>): Remove.
3328         (sse2_cvtdq2ps): Use %v modifier.
3329         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
3330         (avx_cvtps2dq<avxmodesuffix>): Remove.
3331         (sse2_cvtps2dq): Use %v modifier.
3332         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
3333         (avx_cvttps2dq<avxmodesuffix>): Remove.
3334         (sse2_cvttps2dq): Use %v modifier.
3335         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
3336         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
3337         (sse2_cvtsd2siq): Fix insn template.
3338         (sse2_cvtsd2siq_2): Ditto.
3339         (sse2_cvttsd2siq): Ditto.
3340         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
3341         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
3342
3343 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
3344
3345         * gcov-io.c: Use GCC Runtime Library Exception.
3346
3347 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
3348
3349         PR debug/48466
3350         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
3351         as base_reg whatever register reg has been eliminated to, instead
3352         of hardcoding STACK_POINTER_REGNUM.
3353
3354 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
3355
3356         * doc/tm.texi.in: Document C target hooks as separate from general
3357         target hooks.
3358         * doc/tm.texi: Regenerate.
3359         * genhooks.c (struct hook_desc): Add docname field.
3360         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
3361         docname field.
3362         (hook_array): Include c-target.def.
3363         (emit_documentation): Use docname field in output.
3364         (emit_init_macros): Take docname argument.  Only emit definitions
3365         for hooks matching docname.
3366         (main): Expect additional arguments in all cases.  Pass argument
3367         to emit_init_macros.
3368         * target.def: Move initial macro definitions and comments to
3369         target-hooks-macros.h.
3370         (gcc_targetcm): Move to c-family/c-target.def.
3371         * target.h (targetcm): Move declaration to c-family/c-target.h.
3372         * targhooks.c (default_handle_c_option): Move to
3373         c-family/c-opts.c.
3374         * targhooks.h (default_handle_c_option): Move declaration to
3375         c-family/c-common.h.
3376         * target-hooks-macros.h: New file.
3377         * config.gcc (target_has_targetcm): Define and use to add to
3378         c_target_objs and cxx_target_objs.
3379         * config/default-c.c: New file.
3380         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
3381         of target.h and target-def.h.
3382         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
3383         (darwin_objc_construct_string, darwin_cfstring_ref_p,
3384         darwin_check_cfstring_format_arg): Make static.
3385         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
3386         TARGET_STRING_OBJECT_REF_TYPE_P,
3387         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
3388         * config/darwin-protos.h (darwin_objc_construct_string,
3389         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
3390 &nb