OSDN Git Service

bf01f7bf4681d34376011e79425aecb5afc16782
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-05-07  Jan Hubicka  <jh@suse.cz>
2
3         * ipa-inline-transform.c (inline_call): Account when program size decreases.
4         * ipa-inline.c (relative_time_benefit): New function.
5         (edge_badness): Reorganize to be power 2 based; fix
6         thinko when computing badness for negative growth; update
7         comments to match reality; better dumps.
8
9 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
10
11         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
12         type to bool and adjust comment.
13         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
14         (fold_mathfn_compare): Remove calls to global_bindings_p.
15         (fold_inf_compare): Likewise.
16         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
17         * c-tree.h (global_bindings_p): Adjust prototype.
18         * c-decl.c (global_bindings_p): Return bool and simplify.
19
20 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
21
22         PR tree-optimization/48837
23         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
24         when accumulator transformation is performed.
25
26 2011-05-06  Jan Hubicka  <jh@suse.cz>
27
28         * i386.h (ix86_tune_indices): Add X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
29         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macor.
30         * i386.c (initial_ix86_tune_features): Add X86_SOFTARE_PREFETCHING_BENEFICIAL.
31         (software_prefetching_beneficial_p): Remove predicate.
32         (ix86_option_override_internal): Use new macro.
33
34 2011-05-06  Jan Hubicka  <jh@suse.cz>
35
36         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
37
38 2011-05-06  Jan Hubicka  <jh@suse.cz>
39
40         * cgraph.c (cgraph_add_thunk): Create real function node instead
41         of alias node; finalize it and mark needed/reachale; arrange visibility
42         to be right and add it into the corresponding same comdat group list.
43         (dump_cgraph_node): Dump thunks.
44         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
45         cgraph_function_with_gimple_body_p, cgraph_first_function_with_gimple_body,
46         cgraph_next_function_with_gimple_body): New functions.
47         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
48         New macros.
49         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
50         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
51         * cgraphunit.c (cgraph_finalize_function): Only look into possible
52         devirtualization when optimizing.
53         (verify_cgraph_node): Verify thunks.
54         (cgraph_analyze_function): Analyze thunks.
55         (cgraph_mark_functions_to_output): Output thunks only in combination
56         with function they are assigned to.
57         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
58         alias into normal node.
59         (assemble_thunks): New functoin.
60         (cgraph_expand_function): Use it.
61         * lto-cgraph.c (lto_output_node): Stream thunks.
62         (input_overwrite_node): Stream in thunks.
63         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
64         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
65         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
66         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
67         (inline_analyze_function): Do not care about thunk jump functions.
68         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
69         * ipa-prop.c (ipa_prop_write_jump_functions): Use cgraph_function_with_gimple_body_p.
70         * passes.c (do_per_function_toporder): Use cgraph_function_with_gimple_body_p.
71         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
72         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
73         (function_called_by_processed_nodes_p): Likewise.
74
75 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
76
77         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
78         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
79         entries.
80         (mabi=): Replace with separate entries for mabi=altivec,
81         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
82         mabi=ieeelongdouble and mabi=ibmlongdouble.
83         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
84         check for -mabi=spe without SPE ABI support here.
85         (rs6000_handle_option): Replace OPT_mabi_ handling with
86         OPT_mabi_altivec and OPT_mabi_spe handling.
87
88 2011-05-06  Cary Coutant  <ccoutant@google.com>
89
90         * dwarf2out.c (contains_subprogram_definition): New function.
91         (should_move_die_to_comdat): Call it.
92
93 2011-05-06  Jeff Law  <law@redhat.com>
94
95         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
96         remove_ctrl_stmt_and_useless_edges.
97         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
98         (fixup_template_block, thread_single_edge): Likewise.
99         (mark_threaded_blocks): Use THREAD_TARGET.
100
101 2011-05-06  Alan Modra  <amodra@gmail.com>
102
103         PR target/48900
104         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
105         const0_rtx as the arg to the dummy __tls_get_addr libcall.
106
107 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
108
109         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
110         constraint modifier to "r".
111
112 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
113
114         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
115         fall through for OPT_mcmodel_.
116
117 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
118
119         * config/s390/s390.c (s390_asm_trampoline_template): Comment
120         instruction sizes.
121         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
122
123 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
124
125       PR target/47930
126       * config/arm/arm.opt (marm): Document it.
127       (mthumb): Reject negative variant.
128
129 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
130
131         PR target/48898
132         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
133         Fix typo in "ccvt" variable name.
134
135 2011-05-06  Tristan Gingold  <gingold@adacore.com>
136
137         PR target/48895
138         * config/vms/vms-ar.c (main): Remove cwd variable.
139
140 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
141
142         PR debug/48902
143         * var-tracking.c (prepare_call_arguments): Move else before #endif.
144
145 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
146
147         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
148         * gimplify.c (gimplify_switch_expr): Likewise.
149         * omp-low.c (expand_omp_sections): Likewise.
150         * tree-eh.c (lower_try_finally_switch): Likewise.
151         (lower_eh_dispatch): Likewise.
152         * tree.h (build_case_label): Declare.
153         * tree.c (build_case_label): Define.
154
155 2011-05-05  Jason Merrill  <jason@redhat.com>
156
157         PR c++/40975
158         * tree-inline.c (copy_tree_r): Use copy_statement_list.
159         (copy_statement_list): Don't recurse.
160         * stor-layout.c (copy_self_referential_tree_r): Don't allow
161         STATEMENT_LIST.
162
163 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
164
165         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
166         through from -mfpu= handling.
167         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
168
169 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
170
171         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
172         POST_MODIFY.
173
174 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
175
176         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
177         for 11.31.
178         (hppa[12]*-*-hpux11*): Ditto.
179         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
180         * config/ia64/hpux-unix2003.h: New.
181         * config/pa/pa-hpux1131.opt: New.
182         * config/pa/pa-hpux1131.h: New.
183         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
184         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
185         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
186
187 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
188
189         PR debug/48853
190         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
191         instead of mode as 3rd argument to recursive call.
192         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
193         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
194         VOIDmode.
195         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
196         don't give up if mode is Pmode and mem_mode is not VOIDmode.
197         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
198         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
199
200 2011-05-05  Julian Brown  <julian@codesourcery.com>
201
202         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
203         parenthesis in D-register case.
204
205 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
206
207         * opt-functions.awk (var_type_struct): Handle Enum options.
208         * optc-gen.awk: Don't check range of variables of character type.
209         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
210         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
211         rs6000_sdata_name, rs6000_explicit_options): Remove.
212         (rs6000_option_override_internal): Check for -malign-power here.
213         Use global_options_set instead of rs6000_explicit_options.
214         (rs6000_parse_fpu_option): Remove.
215         (rs6000_handle_option): Access variables via opts and opts_set
216         pointers.  Use error_at and warning_at.  Add fall-through
217         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
218         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
219         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
220         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
221         here.  Don't use rs6000_parse_fpu_option.
222         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
223         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
224         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
225         (mrecip=): Use Var.
226         (mspe): Use Var and Save.
227         (mtraceback=): Use Enum and Var.
228         (rs6000_traceback_type): New Enum and EnumValue entries.
229         (mfloat-gprs=): Use Enum, Var and Save.
230         (rs6000_float_gprs): New Enum and EnumValue entries.
231         (mlong-double-): use Var and Save.
232         (msched-costly-dep=, minsert-sched-nops=): Use Var.
233         (malign-): Use Enum and Var.
234         (rs6000_alignment_flags): New Enum and EnumValue entries.
235         (mfpu=): Use Enum.
236         (fpu_type_t): New Enum and EnumValue entries.
237         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
238         global_options_set instead of rs6000_explicit_options.
239         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
240         global_options_set instead of rs6000_explicit_options.
241         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
242         global_options_set instead of rs6000_explicit_options.
243         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
244         global_options_set instead of rs6000_explicit_options.
245         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
246         global_options_set instead of rs6000_explicit_options.
247         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
248         global_options_set instead of rs6000_explicit_options.
249         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
250         definition.
251         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
252         global_options_set instead of rs6000_explicit_options.
253         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
254         (rs6000_cmodel): New Enum and EnumValue entries.
255         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
256         global_options_set instead of rs6000_explicit_options.
257         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
258         (mtls-size=): Use Enum and Var.
259         (rs6000_tls_size): New Enum and EnumValue entries.
260
261 2011-05-05  Michael Matz  <matz@suse.de>
262
263         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
264         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
265         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
266         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
267         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
268         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
269         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
270         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
271         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
272         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
273         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
274         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
275         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
276         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
277         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
278         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
279
280 2011-05-05  Richard Guenther  <rguenther@suse.de>
281
282         * expmed.c (expand_variable_shift): Rename to ...
283         (expand_shift_1): ... this.  Take an expanded shift amount.
284         For rotates recurse directly not building trees for the shift amount.
285         (expand_variable_shift): Wrap around expand_shift_1.
286         (expand_shift): Adjust.
287
288 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
289
290         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
291
292 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
293
294         * tree.h (get_pending_sizes): Remove prototype.
295         (put_pending_size): Likewise.
296         (put_pending_sizes): Likewise.
297         * stor-layout.c (pending_sizes): Delete.
298         (get_pending_sizes): Likewise.
299         (put_pending_size): Likewise.
300         (put_pending_sizes): Likewise.
301         (variable_size): Do not call put_pending_size and tidy up.
302         * function.h (struct function): Remove dont_save_pending_sizes_p.
303         * lto-streamer-in.c (input_function): Do not stream it.
304         * lto-streamer-out.c (output_function): Likewise.
305         * tree-inline.c (initialize_cfun): Do not copy it.
306         * c-decl.c (store_parm_decls): Do not set it.
307         * omp-low.c (create_task_copyfn): Likewise.
308         * tree-optimize.c (tree_rest_of_compilation): Likewise.
309
310 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
311
312         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
313         conditions.
314         (*movdf_internal): Ditto.
315         (*movdf_internal_nointeger): Ditto.
316         (*movsf_internal): Ditto.
317
318 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
319
320         * c-decl.c (finish_decl): Don't call get_pending_sizes.
321         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
322         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
323         (c_variable_size): Remove.
324         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
325         call put_pending_sizes.
326         (get_parm_info): Add parameter expr.  Use it to set
327         arg_info->pending_sizes.
328         (store_parm_decls): Use arg_info->pending_sizes instead or calling
329         get_pending_sizes.
330         * c-parser.c (c_parser_parms_declarator): Update call to
331         c_parser_parms_list_declarator.
332         (c_parser_parms_list_declarator): Take parameter expr.  Update
333         call to push_parm_decl.  Update recursive call.  Don't call
334         get_pending_sizes.  Update calls to get_parm_info.
335         (c_parser_objc_method_definition): Update calls to
336         c_parser_objc_method_decl and objc_start_method_definition.
337         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
338         (c_parser_objc_method_decl): Add parameter expr.  Update call to
339         grokparm.
340         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
341         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
342         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
343
344 2011-05-05  Michael Hope  <michael.hope@linaro.org>
345
346         PR pch/45979
347         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
348         __ARM_EABI__ hosts.
349
350 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
351
352         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
353         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
354         (spu_output_mi_thunk): New function.
355
356 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
357
358         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
359         targetm.asm_out.print_operand.
360         * config/sol2.c: Include target.h.
361
362 2011-05-04  Jan Hubicka  <jh@suse.cz>
363
364         * ipa-inline.c (reset_edge_caches): New function.
365         (update_caller_keys): Add check_inlinablity_for; do not
366         reset edge caches; remove now unnecesary loop.
367         (update_callee_keys): Add comments; reset node_growth_cache of callee.
368         (update_all_callee_keys): Likewise.
369         (inline_small_functions): Sanity check cache; update code
370         recomputing it.
371
372 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
373
374         PR rtl-optimization/47612
375         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
376         as the last insn of the sequence to be moved.
377
378 2011-05-04  Tobias Burnus  <burnus@net-b.de>
379
380         PR fortran/48864
381         * doc/invoke.texi (Ofast): Document that it
382         enables Fortran's -fno-protect-parens.
383
384 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
385
386         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
387
388 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
389
390         * stor-layout.c (variable_size): Do not issue errors.
391
392 2011-05-04  Richard Guenther  <rguenther@suse.de>
393
394         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
395         for array-ref indices.
396         (tree_coverage_counter_addr): Likewise.
397         (build_fn_info_type): Use size_int for index types.
398         (build_gcov_info): Likewise.
399
400 2011-05-04  Richard Guenther  <rguenther@suse.de>
401
402         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
403         to build_int_cst.
404         * c-typeck.c (really_start_incremental_init): Use bitsize_int
405         for constructor indices.
406         (push_init_level): Likewise.
407
408 2011-05-04  Richard Guenther  <rguenther@suse.de>
409
410         * explow.c (promote_mode): Move variable declarations before code.
411
412 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
413
414         * tree.h (build_function_type_array): Declare.
415         (build_varargs_function_type_array): Declare.
416         (build_function_type_vec, build_varargs_function_type_vec): Define.
417         * tree.c (build_function_type_array_1): New function.
418         (build_function_type_array): New function.
419         (build_varargs_function_type_array): New function.
420
421 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
422
423         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
424         before setting STMT_VINFO_TYPE.
425
426 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
427
428         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
429         instead of spu_pass_by_reference.
430
431 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
432
433         * calls.c (emit_library_call_value_1): Invoke
434         promote_function_mode hook on libcall arguments.
435         * explow.c (promote_function_mode, promote_mode): Handle TYPE
436         argument being NULL.
437         * targhooks.c (default_promote_function_mode): Lisewise.
438         * config/s390/s390.c (s390_promote_function_mode): Likewise.
439         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
440
441         * doc/tm.texi: Document that TYPE argument might be NULL.
442
443 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
444
445         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
446
447 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
448
449         From Bernd Schmidt
450         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
451
452 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
453
454         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
455         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
456         Move ...
457         * mips-tfile.c: ... here.
458         Don't include coretypes.h, tm.h, filenames.h.
459         (saber_stop): Remove definition and all calls.
460         [__SABER__]: Remove.
461         (__LINE__): Remove default.
462         (Size_t, Ptrdiff_t): Remove definitions.
463         Replace by size_t, ptrdiff_t.
464         [!MIPS_DEBUGGING_INFO]: Remove.
465         (SHASH_SIZE, THASH_SIZE): Remove defaults.
466         (progname): Add const.
467         (STATIC): Remove.
468         Replace all uses by static.
469         (ALIGN_SYMTABLE_OFFSET): Remove default.
470         * mips-tdump.c: Don't include coretypes.h, tm.h.
471         Remove !MIPS_IS_STAB guard.
472         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
473         $(TM_H), filenames.h dependencies.
474         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
475
476 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
477
478         From Jie Zhang
479         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
480         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
481
482 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
483
484         From Bernd Schmidt
485         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
486         account and save/restore RETS.
487         (PROFILE_BEFORE_PROLOGUE): Define.
488         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
489         the push insn to use predecrement.
490
491 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
492
493         From Jie Zhang
494         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
495
496 2011-05-04  Nick Clifton  <nickc@redhat.com>
497
498         * config/mn10300/mn10300.c: Include cfgloop.h.
499         (DUMP): New macro.
500         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
501         Lcc or a FLcc insn into the instruction stream.
502         (mn10300_block_contains_call): New function.  Returns true if the
503         given basic block contains a CALL insn.
504         (mn10300_loop_contains_call_insn): New function.  Returns true if
505         the given loop contains a CALL insn.
506         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
507         to use the SETLB and Lcc or FLcc insns.
508         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
509         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
510         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
511         disable the SETLB optimization.
512         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
513         __SETLB__ or __NO_SETLB__.
514         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
515         (movsf_internal): Handle MDR register.
516         (cmpsi): Make visible.
517         (setlb): New pattern.
518         (Lcc): New pattern.
519         (FLcc): New pattern.
520
521 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
522
523         PR target/48860
524         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
525         for reg<->xmm moves.
526         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
527         (vec_concatv2di_rex64_sse): Ditto.
528         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
529         (*vec_extractv2di_1_rex64): Ditto.
530
531         Revert:
532         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
533
534         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
535         reg<->xmm moves.
536         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
537
538 2011-05-04  Richard Guenther  <rguenther@suse.de>
539
540         * tree.h (int_const_binop): Remove notrunc argument.
541         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
542         create integer constants that are properly truncated.
543         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
544         (const_binop): Remove zero notrunc argument to int_const_binop.
545         (size_binop_loc): Likewise.
546         (fold_div_compare): Likewise.
547         (maybe_canonicalize_comparison_1): Likewise.
548         (fold_comparison): Likewise.
549         (fold_binary_loc): Likewise.
550         (multiple_of_p): Likewise.
551         * expr.c (store_constructor): Likewise.
552         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
553         (maybe_fold_stmt_addition): Likewise.
554         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
555         * stor-layout.c (layout_type): Likewise.
556         * tree-data-ref.c (tree_fold_divides_p): Likewise.
557         * tree-sra.c (build_ref_for_offset): Likewise.
558         (build_user_friendly_ref_for_offset): Likewise.
559         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
560         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
561         * tree-ssa-loop-niter.c (inverse): Likewise.
562         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
563         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
564         * tree-switch-conversion.c (check_range): Likewise.
565         (build_constructors): Likewise.
566         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
567         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
568         (extract_range_from_assert): Likewise.
569         (vrp_int_const_binop): Likewise.
570         (extract_range_from_binary_expr): Likewise.
571         (extract_range_from_unary_expr): Likewise.
572         (check_array_ref): Likewise.
573         (find_case_label_range): Likewise.
574         (simplify_div_or_mod_using_ranges): Likewise.
575         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
576         comparing case labels for merging.
577
578 2011-05-03  Mark Wielaard  <mjw@redhat.com>
579
580         * dwarf2out.c (debug_str_hash_forced): Removed.
581         (gen_label_for_indirect_string): Removed.
582         (get_debug_string_label): Removed.
583         (AT_string_form): Generate label directly.
584         (output_indirect_string): Test indirect_string_node for
585         DW_FORM_strp instead of checking label and refcount.
586         (prune_indirect_string): Removed.
587         (prune_unused_types): Don't check debug_str_hash_forced or
588         call prune_indirect_string.
589
590 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
591
592         PR other/48093
593         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
594
595 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
596
597         PR debug/47994
598         PR debug/47919
599         * combine.c (try_combine): Skip debug insns at m_split tests.
600
601 2011-04-26  Mark Wielaard  <mjw@redhat.com>
602
603         PR42288
604         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
605         when info_section_emitted.
606
607 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
608
609         * config/mips/mips-opts.h: New.
610         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
611         to mips-opts.h.
612         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
613         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
614         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
615         via opts pointer.
616         * config/mips/mips.h (enum mips_code_readable_setting): Move to
617         mips-opts.h.
618         (mips_abi, mips_code_readable): Don't declare.
619         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
620         (mabi=): Use Enum and Var.
621         (mips_abi): New Enum and EnumValue entries.
622         (mcode-readable=): Use Enum and Var.
623         (mips_code_readable_setting): New Enum and EnumValue entries.
624         (mr10k-cache-barrier=): Use Enum and Var.
625         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
626
627 2011-05-03  Jan Hubicka  <jh@suse.cz>
628
629         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
630         replace hash by pointer map.
631         (cgraph_node_set_element_def, cgraph_node_set_element,
632         const_cgraph_node_set_element, varpool_node_set_element_def,
633         varpool_node_set_element, const_varpool_node_set_element): Remove.
634         (free_cgraph_node_set, free_varpool_node_set): New function.
635         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
636         * tree-emutls.c: Free varpool node set.
637         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
638         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
639         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
640         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
641         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
642         Move here from ipa.c; implement using pointer_map
643         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
644         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
645         debug_cgraph_node_set, varpool_node_set_new,
646         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
647         dump_varpool_node_set, debug_varpool_node_set):
648         Move to ipa-uitls.c.
649         * passes.c (ipa_write_summaries): Update.
650
651 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
652
653         From Mike Frysinger:
654         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
655         bf542/bf544/bf547/bf548/bf549.
656
657 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
658
659         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
660
661 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
662
663         From Bernd Schmidt:
664         * config/bfin/bfin.md (MOVCC): New mode_macro.
665         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
666         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
667         comments from generated assembly.
668
669 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
670
671         From Bernd Schmidt
672         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
673         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
674         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
675         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
676         * config/bfin/lib1funcs.asm (___muldi3): New function.
677
678 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
679
680         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
681         build_function_type_list instead of build_function_type.
682         Rearrange initialization of `args' to do so.
683
684 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
685
686         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
687         instead of build_function_type.
688
689 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
690
691         * config/rs6000/rs6000.c (spe_init_builtins): Call
692         build_function_type_list instead of build_function_type.
693         (paired_init_builtins, altivec_init_builtins): Likewise.
694         (builtin_function_type): Likewise.
695
696 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
697
698         * config/sh/sh.c (sh_media_init_builtins): Call
699         build_function_type_list instead of build_function_type.
700
701 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
702
703         * config/sparc/sparc.c (sparc_file_end): Call
704         build_function_type_list instead of build_function_type.
705
706 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
707
708         * config/alpha/alpha.c (alpha_init_builtins): Call
709         build_function_type_list instead of build_function_type.
710
711 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
712
713         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
714         build_function_type_list instead of build_function_type.
715
716 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
717
718         * config/iq2000/i2000.c (iq2000_init_builtins): Call
719         build_function_type_list instead of build_function_type.
720         Delete `endlink' variable.
721
722 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
723
724         * config/avr/avr.c (avr_init_builtins): Call
725         build_function_type_list instead of build_function_type.
726
727 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
728
729         * config/picochip/picochip.c (picochip_init_builtins): Call
730         build_function_type_list instead of build_function_type.
731         Delete `endlink' variable.
732
733 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
734
735         * config/bfin/bfin.c (bfin_init_builtins): Call
736         build_function_type_list instead of build_function_type.
737
738 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
739
740         From Bernd Schmidt
741         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
742         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
743
744 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
745
746         From Jie Zhang:
747         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
748         libbffastfp overrides libgcc when -mfast-fp.
749
750 2011-05-03  Stuart Henderson <shenders@gcc.gnu.org>
751
752         Originally from Bernd Schmidt
753         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
754         * config/bfin/bfin.c (override_options): Test it and error if
755         TARGET_FDPIC.
756
757 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
758
759         Originally From Bernd Schmidt
760         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
761         FD-PIC.
762
763 2011-05-03  Jeff Law  <law@redhat.com>
764
765         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
766         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
767         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
768         than accessing AUX field directly.  Free the AUX field before
769         clearing it.
770         (thread_block, thread_through_loop_header): Likewise.
771         (thread_single_edge, mark_threaded_blocks): Likewise.
772         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
773         (register_jump_thread): Do not attempt to thread to a NULL edge.
774
775 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
776
777         * function.c (init_function_start): Call decide_function_section.
778         * varasm.c (decide_function_section): New function.
779         (assemble_start_function): When not using
780         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
781         or first_function_block_is_cold.
782         * rtl.h (decide_function_section): Declare.
783
784 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
785             Jakub Jelinek  <jakub@redhat.com>
786
787         PR target/48774
788         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
789         only succeed if req_mode is the same as set_mode.
790
791 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
792
793         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
794         * genemit.c (gen_exp): Handle RETURN.
795         * emit-rtl.c (verify_rtx_sharing): Likewise.
796         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
797         * rtl.c (copy_rtx): RETURN is shared.
798         * rtl.h (enum global_rtl_index): Add GR_RETURN.
799         (ret_rtx): New.
800         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
801         * config/s390/s390.c (s390_emit_epilogue): Likewise.
802         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
803         * config/cris/cris.c (cris_expand_return): Likewise.
804         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
805         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
806         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
807         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
808         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
809         Likewise.
810         * config/v850/v850.c (expand_epilogue): Likewise.
811         * config/bfin/bfin.c (bfin_expand_call): Likewise.
812         * config/arm/arm.md (epilogue): Likewise.
813         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
814         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
815         variable to ret_reg.
816
817 2011-05-03  Richard Guenther  <rguenther@suse.de>
818
819         PR lto/48846
820         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
821         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
822         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
823
824 2011-05-03  Richard Guenther  <rguenther@suse.de>
825
826         * c-decl.c (grokdeclarator): Instead of looking at
827         TREE_OVERFLOW check if the constant fits in the index type.
828
829 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
830
831         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
832         (vec_store_lanes<mode><mode>): Likewise.
833
834 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
835
836         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
837         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
838         convert_optab_index values.
839         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
840         * genopinit.c (optabs): Initialize the new optabs.
841         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
842         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
843         (expand_STORE_LANES): New functions.
844         * tree.h (build_array_type_nelts): Declare.
845         * tree.c (build_array_type_nelts): New function.
846         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
847         (vect_model_load_cost): Likewise.
848         (vect_store_lanes_supported, vect_load_lanes_supported)
849         (vect_record_strided_load_vectors): Declare.
850         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
851         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
852         (vect_transform_strided_load): Split out statement recording into...
853         (vect_record_strided_load_vectors): ...this new function.
854         * tree-vect-stmts.c (create_vector_array, read_vector_array)
855         (write_vector_array, create_array_ref): New functions.
856         (vect_model_store_cost): Add store_lanes_p argument.
857         (vect_model_load_cost): Add load_lanes_p argument.
858         (vectorizable_store): Try to use store-lanes functions for
859         interleaved stores.
860         (vectorizable_load): Likewise load-lanes and loads.
861         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
862         to vect_model_store_cost.
863         (vect_build_slp_tree): Likewise vect_model_load_cost.
864
865 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
866
867         * hooks.h (hook_bool_mode_uhwi_false): Declare.
868         * hooks.c (hook_bool_mode_uhwi_false): New function.
869         * target.def (array_mode_supported_p): New hook.
870         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
871         * doc/tm.texi: Regenerate.
872         * stor-layout.c (mode_for_array): New function.
873         (layout_type): Use it.
874         * config/arm/arm.c (arm_array_mode_supported_p): New function.
875         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
876
877 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
878
879         PR target/48723
880         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
881         for -fstack-check if the size to allocate is negative.
882
883 2011-05-02  Lawrence Crowl  <crowl@google.com>
884
885         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
886         (timevar_cond_start): New for starting a timer only when it is not
887         already running.
888         (timevar_cond_stop): New for stopping a timer when it was not already
889         running.
890
891         * timevar.c (timevar_stop): Enable start/stop timers to start again.
892         (timevar_cond_start): New as above.
893         (timevar_cond_stop): New as above.
894
895         * timevar.def: Add start/stop timers for compiler phases,
896         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
897         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
898         and TV_PHASE_FINALIZE.
899         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
900         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
901         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
902         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
903         Make unused TV_OVERLOAD into a start/stop timer.
904
905         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
906         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
907         to indicate that they are start/stop timers.
908
909         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
910         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
911         Move initialization to do_compile.
912         (do_compile): Add initialization from above.
913         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
914
915         * c-decl.c (c_write_global_declarations): Add start/stop of
916         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
917
918         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
919         or TV_PARSE_INLINE, as appropriate.
920         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
921         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
922
923 2011-05-02  Jason Merrill  <jason@redhat.com>
924
925         PR c++/40975
926         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
927
928 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
929
930         PR c/35445
931         * c-decl.c (finish_decl): Only create a composite if the types are
932         compatible.
933
934 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
935
936         * config/fr30/fr30-protos.h (Mmode): Don't define.
937         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
938         definition where used.
939         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
940         define.  Expand definitions where used.
941         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
942         Expand definitions where used.
943         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
944         rx_function_arg, rx_function_arg_advance,
945         rx_function_arg_boundary): Expand definitions of those macros.
946         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
947         definition where used.
948
949 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
950
951         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
952         reg<->xmm moves.
953         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
954         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
955         with *movv2sf_internal_rex64_avx.
956         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
957         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
958         Use %v prefix in insn mnemonic to handle TARGET_AVX.
959         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
960         "vex" in "prefix" attribute calculation.
961         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
962
963 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
964
965         PR target/47951
966         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
967         inputs match the output.
968
969 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
970
971         PR target/47955
972         * config/m68k/m68k.c (m68k_expand_prologue): Set
973         current_function_static_stack_size.
974
975 2011-05-02   Jan Hubicka  <jh@suse.cz>
976
977         * lto-streamer.c (lto_streamer_cache_insert_1,
978         lto_streamer_cache_lookup, lto_streamer_cache_create,
979         lto_streamer_cache_delete): Use pointer map instead of hashtable.
980         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
981
982 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
983
984         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
985         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
986         config/m68k/t-opts: New files.
987         * config/m68k/m68k-tables.opt: New file (generated).
988         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
989         extra_options and m68k/t-opts to tmake_file.
990         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
991         (all_isas): Initialize using m68k-isas.def.
992         (all_microarchs): Initialize using m68k-microarchs.def.
993         (m68k_find_selection): Remove.
994         (m68k_handle_option): Don't assert that global structures are in
995         use.  Use error_at.  Access variables via opts pointer.  Don't
996         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
997         directly for -m68020-40 and -m68020-60.
998         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
999         m68k_tune_entry here.
1000         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
1001         to m68k-opts.h.
1002         (m68k_library_id_string): Remove declaration.
1003         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
1004         (m68k_library_id_string): New Variable.
1005         (march=, mcpu=, mtune=): Use Enum and Var.
1006
1007 2011-05-02  Richard Guenther  <rguenther@suse.de>
1008
1009         * varasm.c (output_constructor_regular_field): Compute zero-based
1010         index with double-ints.  Make sure to ICE instead of producing
1011         wrong code.
1012         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
1013         in asserts.  Properly use a signed type.
1014
1015 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
1016
1017         * config/i386/sse.md (V): New mode iterator.
1018         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
1019         TARGET_SSE2.
1020         (V_256): Rename from AVX256MODE.
1021         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
1022         condition to all users.
1023         (VF1): Ditto.
1024         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
1025         condition to all users.
1026         (VF_128): Make V4SF mode unconditional.
1027         (VF_256): Rename from AVX256MODEF2P.
1028         (VI4F_128): Rename from SSEMODE4S.
1029         (VI8F_128): Rename from SSEMODE2D.
1030         (VI4F_256): Rename from AVX256MODE8P.
1031         (VI8F_256): Rename from AVX256MODE4P.
1032         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
1033         (ssescalarmodesuffix): Remove SF and DF modes.
1034         (SSEMODE124): Remove.
1035         (SSEMODE1248): Ditto.
1036         (SSEMODEF2P): Ditto.
1037         (AVXMODEF2P): Ditto.
1038         (AVXMODEFDP): Ditto.
1039         (AVXMODEFSP): Ditto.
1040         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
1041         unconditional.
1042         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
1043         unconditional.
1044         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
1045         xop_pcmov_<mode>256.  Use V mode iterator.
1046
1047         Adjust RTX patterns globally for renamed mode attributes.
1048
1049 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1050
1051         * haifa-sched.c (sched_emit_insn): Emit insn before first
1052         non-scheduled insn.  Inform back-end about new insn.  Add
1053         new insn to scheduled_insns list.
1054
1055 2011-05-02  Richard Guenther  <rguenther@suse.de>
1056
1057         PR tree-optimization/48822
1058         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
1059         (process_scc): Indicate which iteration we start.
1060
1061 2011-05-02  Jan Hubicka  <jh@suse.cz>
1062
1063         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
1064         (lto_section_overrun): New.
1065         * lto-section-out.c (append_block): Rename to ...
1066         (lto_append_block): ... this one; export.
1067         (lto_output_1_stream): Move lto lto-streamer.h
1068         (lto_output_data_stream): Update.
1069         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
1070         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
1071         functions.
1072
1073 2011-05-02  Richard Guenther  <rguenther@suse.de>
1074
1075         * tree.c (tree_code_counts): New global array.
1076         (record_node_allocation_statistics): Count individual tree codes.
1077         (dump_tree_statistics): Dump individual code stats.
1078
1079 2011-05-01  Jan Hubicka  <jh@suse.cz>
1080
1081         * ipa-inline.c (caller_growth_limits): Fix thinko when
1082         looking for largest stack frame.
1083         * ipa-inline.h (dump_inline_summary): Declare.
1084         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
1085         on stack usage.
1086         (dump_inline_summary): Export.
1087         (debug_inline_summary): Declare as DEBUG_FUNCTION.
1088
1089 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
1090
1091         * reginfo.c (memory_move_cost): Change rclass argument type form
1092         'enum reg_class' to reg_class_t.
1093         * reload.h (memory_move_cost): Update prototype.
1094         * postreload.c reload_cse_simplify_set): Change type dclass var to
1095         reg_class_t.
1096         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
1097         Update prototype.
1098         (ira_allocate_and_set_costs): Change aclass argument type form
1099         'enum reg_class' to reg_class_t.
1100         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
1101         Change aclass argument type to reg_class_t.
1102         (update_conflict_hard_reg_costs): Change type aclass and pref vars
1103         to reg_class_t.
1104         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
1105         memory_move_cost call.
1106
1107         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
1108         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
1109         Change type tmp var to reg_class_t.
1110
1111 2011-04-30  Jan Hubicka  <jh@suse.cz>
1112
1113         * ipa-inline.c (can_inline_edge_p): Disregard limits when
1114         inlining into function with flatten attribute.
1115         (want_inline_small_function_p): Be more realistic about inlining
1116         cold calls where callee size grows.
1117
1118 2011-04-30  Jan Hubicka  <jh@suse.cz>
1119
1120         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
1121         flags.
1122
1123 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
1124
1125         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
1126         PRINT_OPERAND_PUNCT_VALID_P): Remove.
1127         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
1128         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
1129         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
1130         (print_operand): Rename to...
1131         (sparc_print_operand): ...this. Make static. Adjust
1132         sparc_print_operand function call.
1133         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
1134         functions.
1135
1136 2011-04-30  Jan Hubicka  <jh@suse.cz>
1137
1138         PR middle-end/48752
1139         * ipa-inline.c (early_inliner): Disable when doing late
1140         addition of function.
1141
1142 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
1143
1144         * dwarf2out.c (get_address_mode): New inline.
1145         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
1146         if not dwarf_strict emit
1147         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
1148         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
1149         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
1150         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
1151         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
1152         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
1153         mem_loc_descriptor callers.
1154         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
1155         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
1156         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
1157         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
1158         (base_types): New variable.
1159         (get_base_type_offset, calc_base_type_die_sizes,
1160         base_type_for_mode, mark_base_types, base_type_cmp,
1161         move_marked_base_types): New functions.
1162         (calc_die_sizes): Assert that die_offset is 0 or equal to
1163         next_die_offset.
1164         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
1165         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
1166         callers.  If not dwarf_strict, call mem_loc_descriptor even for
1167         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
1168         (gen_subprogram_die): Don't give up on call site parameters
1169         with non-integral or large integral modes.  Adjust
1170         mem_loc_descriptor callers.
1171         (prune_unused_types): Call prune_unused_types_mark on base_types
1172         vector entries.
1173         (resolve_addr): Call mark_base_types.
1174         (dwarf2out_finish): Call move_marked_base_types.
1175
1176         PR tree-optimization/48809
1177         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
1178         type.
1179         (gen_inbound_check): Don't compute index_expr - range_min in utype
1180         again, instead reuse SSA_NAME initialized in build_arrays.
1181         Remove two useless gsi_for_stmt calls.
1182
1183 2011-04-29  Jeff Law  <law@redhat.com>
1184
1185         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
1186
1187 2011-04-29  Martin Jambor  <mjambor@suse.cz>
1188
1189         * cgraph.h (cgraph_postorder): Remove declaration.
1190         * ipa-utils.h (ipa_free_postorder_info): Declare.
1191         (ipa_reverse_postorder): Likewise.
1192         * cgraphunit.c: Include ipa-utils.h.
1193         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
1194         * ipa-inline.c: Include ipa-utils.h.
1195         (ipa_inline): Update call to ipa_reverse_postorder.
1196         * ipa-pure-const.c (propagate_pure_const): Update call to
1197         ipa_reduced_postorder and ipa_print_order.  Call
1198         ipa_free_postorder_info to clean up.
1199         (propagate_nothrow): Likewise.
1200         * ipa-reference.c (propagate): Removed a useless call to
1201         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
1202         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
1203         * ipa.c: Include ipa-utils.h.
1204         (ipa_profile): Update call to ipa_reverse_postorder.
1205         (cgraph_postorder): Moved to...
1206         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
1207         (ipa_utils_print_order): Renamed to ipa_print_order.
1208         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
1209         comments.
1210         (ipa_free_postorder_info): New function.
1211         * passes.c: Include ipa-utils.h.
1212         (do_per_function_toporder): Update call to ipa_reverse_postorder.
1213         (ipa_write_summaries): Likewise.
1214         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
1215         (cgraphunit.o): Likewise.
1216         (ipa.o): Likewise.
1217         (ipa-inline.o): Likewise.
1218
1219 2011-04-29  Jan Hubicka  <jh@suse.cz>
1220
1221         * gcc.dg/tree-ssa/inline-10.c: New testcase.
1222         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
1223         * ipa-inline.h (clause_t): Turn into unsigned int.
1224         * ipa-inline-analysis.c (add_clause): Do more simplification.
1225         (and_predicates): Shortcut more cases.
1226         (predicates_equal_p): Move forward; check that clauses are properly
1227         ordered.
1228         (or_predicates): Shortcut more cases.
1229         (edge_execution_predicate): Rewrite as...
1230         (set_cond_stmt_execution_predicate): ... this function; handle
1231         __builtin_constant_p.
1232         (set_switch_stmt_execution_predicate): New .
1233         (compute_bb_predicates): New.
1234         (will_be_nonconstant_predicate): Update TODO.
1235         (estimate_function_body_sizes): Use compute_bb_predicates
1236         and free them later, always try to estimate if stmt is constant.
1237         (estimate_time_after_inlining, estimate_size_after_inlining):
1238         Gracefully handle optimized out edges.
1239         (read_predicate): Fix off by one error.
1240
1241 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1242
1243         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
1244
1245 2011-04-27  Xinliang David Li  <davidxl@google.com>
1246
1247         * tree-profile.c (init_ic_make_global_vars): Set
1248         tls attribute on ic vars.
1249         * coverage.c (coverage_end_function): Initialize
1250         function_list with zero.
1251
1252 2011-04-29  Richard Guenther  <rguenther@suse.de>
1253
1254         * builtins.c (fold_builtin_classify_type): Use integer_type_node
1255         for the type of the result.
1256         (fold_builtin_isascii): Likewise.
1257         (fold_builtin_toascii): Use integer_type_node where appropriate.
1258         (fold_builtin_logb): Likewise.
1259         (fold_builtin_frexp): Likewise.
1260         (fold_builtin_strstr): Likewise.
1261         (fold_builtin_strpbrk): Likewise.
1262         (fold_builtin_fputs): Likewise.
1263         (fold_builtin_sprintf): Likewise.
1264         (fold_builtin_snprintf): Likewise.
1265         (fold_builtin_printf): Likewise.
1266         (do_mpfr_remquo): Use a proper type for the assigned constant.
1267         (do_mpfr_lgamma_r): Likewise.
1268         * dwarf2out.c (resolve_one_addr): Use size_int.
1269         * except.c (init_eh): Likewise.
1270         (assign_filter_values): Use integer_type_node for filter values.
1271         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
1272         indices.
1273         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
1274         for EH region numbers.
1275         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
1276         for the shift amount.
1277
1278 2011-04-29  Richard Guenther  <rguenther@suse.de>
1279
1280         * expr.h (expand_shift): Rename to ...
1281         (expand_variable_shift): ... this.
1282         (expand_shift): Take a constant shift amount.
1283         * expmed.c (expand_shift): Rename to ...
1284         (expand_variable_shift): ... this.
1285         (expand_shift): New wrapper around expand_variable_shift.
1286         * expr.c (convert_move, emit_group_load_1, emit_group_store,
1287         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
1288         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
1289         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
1290         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
1291         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
1292         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
1293         emit_store_flag_1, emit_store_flag): Likewise.
1294         * builtins.c (expand_builtin_signbit): Likewise.
1295         * calls.c (load_register_parameters): Likewise.
1296         * function.c (assign_parm_setup_block): Likewise.
1297         * lower-subreg.c (resolve_shift_zext): Likewise.
1298         * optabs.c (widen_bswap, expand_abs_nojump,
1299         expand_one_cmpl_abs_nojump, expand_float): Likewise.
1300         * spu/spu.c (spu_expand_extv): Likewise.
1301         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
1302
1303 2011-04-29  Richard Guenther  <rguenther@suse.de>
1304
1305         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
1306         for the remapped region number.
1307         * predict.c (build_predict_expr): Use integer_type_node for the
1308         predict kind.
1309         * fold-const.c (fold_binary_loc): Use integer_type_node for
1310         the shift amount.  Use a proper type for the PLUS_EXPR operand.
1311
1312 2011-04-29  Michael Matz  <matz@suse.de>
1313
1314         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
1315         other trees that just builtins.
1316         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
1317
1318 2011-04-29  Richard Guenther  <rguenther@suse.de>
1319
1320         * tree-nested.c (get_trampoline_type): Use size_int.
1321         (get_nl_goto_field): Likewise.
1322         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
1323         for all indexes.
1324         (lower_eh_constructs_2): Likewise.
1325         (lower_resx): Likewise.
1326         (lower_eh_dispatch): Likewise.
1327         * tree-mudflap.c (mf_build_string): Use size_int.
1328         (mudflap_register_call): Use integer_type_node for the flag.
1329         (mudflap_enqueue_constant): Use size_int.
1330         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
1331         instead of rebuilding it.
1332
1333 2011-04-29  Richard Guenther  <rguenther@suse.de>
1334
1335         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
1336         Handle OBJ_TYPE_REF.
1337         (find_func_aliases_for_call): Use it more consistently.
1338
1339 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
1340
1341         * haifa-sched.c (last_nondebug_scheduled_insn): New.
1342         (rank_for_schedule): Use it.
1343         (schedule_block): Set it.
1344
1345 2011-04-28  David Li  <davidxl@google.com>
1346
1347         * tree.c (crc32_string): Use crc32_byte.
1348         (crc32_byte): New function.
1349         * tree.h (crc32_byte): New function.
1350         * gcov.c (read_graph_file): Handle new cfg_cksum.
1351         (read_count_file): Ditto.
1352         * profile.c (instrument_values): Ditto.
1353         (get_exec_counts): Ditto.
1354         (read_profile_edge_counts): Ditto.
1355         (compute_branch_probabilities): Ditto.
1356         (compute_value_histograms): Ditto.
1357         (branch_prob): Ditto.
1358         (end_branch_prob): Ditto.
1359         * coverage.c (read_counts_file): Ditto.
1360         (get_coverage_counts): Ditto.
1361         (tree_coverage_counter_addr): Ditto.
1362         (coverage_checksum_string): Ditto.
1363         (coverage_begin_output): Ditto.
1364         (coverage_end_function): Ditto.
1365         (build_fn_info_type): Ditto.
1366         (build_fn_info_value): Ditto.
1367         * libgcov.c (gcov_exit): Ditto.
1368         * gcov-dump.c (tag_function): Ditto.
1369         (compute_checksum): Remove.
1370
1371 2011-04-29  Alan Modra  <amodra@gmail.com>
1372
1373         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
1374         unspec plus offset.  Tidy macho code.
1375
1376 2011-04-29  Martin Jambor  <mjambor@suse.cz>
1377
1378         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
1379         node instead of a decl.  Update all callers.
1380         * cgraph.h: Update declaration.
1381
1382 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
1383
1384         PR tree-optimization/48765
1385         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
1386         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
1387         to indicate if loop aware SLP is being used.  Scan the statements
1388         and update the vectorization factor according to the type of
1389         vectorization before statement analysis.
1390         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
1391         pass it to vect_analyze_loop_operations.
1392         (vectorizable_reduction): Set number of copies to 1 in case of pure
1393         SLP statement.
1394         * tree-vect-stmts.c (vectorizable_conversion,
1395         vectorizable_assignment, vectorizable_shift,
1396         vectorizable_operation, vectorizable_type_demotion,
1397         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
1398         Likewise.
1399         (vectorizable_condition): Move the check that it is not SLP
1400         vectorization before the number of copies check.
1401         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
1402         to vectorize the loop using SLP.
1403
1404 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
1405
1406         PR middle-end/48597
1407         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
1408         inline asm.
1409
1410 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
1411
1412         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
1413         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
1414         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
1415         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
1416         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
1417         linux*.h headers.
1418         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
1419         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
1420         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
1421         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
1422         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
1423         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
1424         REG_NAME.
1425         * config/i386/linux.h (REG_NAME): Don't define.
1426         * config/i386/linux64.h (REG_NAME): Don't define.
1427         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
1428         Undefine before defining.
1429
1430 2011-04-28  Jan Hubicka  <jh@suse.cz>
1431
1432         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
1433         nonconstant_names array.
1434         (estimate_function_body_sizes): Build nonconstant_names array; handle
1435         BUILT_IN_CONSTANT_P.
1436
1437 2011-04-28  Richard Guenther  <rguenther@suse.de>
1438
1439         PR bootstrap/48804
1440         Revert
1441         2011-04-28  Richard Guenther  <rguenther@suse.de>
1442
1443         * tree-ssa-structalias.c (solve_constraints): Build succ graph
1444         as late as possible.
1445
1446 2011-04-28  Richard Guenther  <rguenther@suse.de>
1447
1448         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
1449         (debug_constraint): Do it here.
1450         (dump_constraints): And here.
1451         (rewrite_constraints): And here.
1452         (dump_constraint_edge): Remove.
1453         (dump_constraint_graph): Rewrite to produce DOT output.
1454         (solve_constraints): Build succ graph as late as possible.
1455         Dump constraint graphs before and after solving.
1456
1457 2011-04-28  Richard Guenther  <rguenther@suse.de>
1458
1459         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
1460         New function split out from ...
1461         (find_func_aliases): ... here.  Call it.
1462         (find_func_aliases_for_call): Likewise.
1463
1464 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1465
1466         * internal-fn.h (internal_fn_name_array): Declare.
1467         (internal_fn_flags_array): Likewise.
1468
1469 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
1470
1471         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
1472         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
1473         Move from sse.md.
1474         (ssemodefsuffix): Remove.
1475         (ssevecmodesuffix): New mode attribute.
1476         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
1477         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
1478         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
1479         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
1480         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
1481         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
1482         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
1483         ssemodesuffix mode attribute.
1484         (float splitters): Use ssevecmodesuffix mode attribute.
1485         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
1486         (sseinsmode): Rename from avxvecmode.
1487         (avxsizesuffix): Rename from avxmodesuffix.
1488         (sseintvecmode): Rename from avxpermvecmode.
1489         (ssedoublevecmode): Rename from ssedoublesizemode.
1490         (ssehalfvecmode): Rename from avxhalfvecmode.
1491         (ssescalarmode): Rename from avxscalarmode.
1492         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
1493         templates for ssemodesuffix mode attribute.
1494         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
1495         mode attribute.
1496
1497         Adjust RTX patterns globally for renamed mode attributes.
1498
1499 2011-04-27  Jan Hubcika  <jh@suse.cz>
1500
1501         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
1502         * ipa-inline-analysis.c: Include alloc-pool.h.
1503         (edge_predicate_pool): New.
1504         (trye_predicate_p): New function
1505         (false_predicate_p): New function.
1506         (add_clause): Sanity check that false clauses are "optimized";
1507         never add clauses to predicate that is already known to be false.
1508         (and_predicate): Use flase_predicate_p.
1509         (evaulate_predicate): Rename to ...
1510         (evaluate_predicate): ... this one; update all callers; assert
1511         that false is not listed among possible truths.
1512         (dump_predicate): Use true_predicate_p.
1513         (account_size_time): Use false_predicate_p.
1514         (evaulate_conditions_for_edge): Rename to ...
1515         (evaluate_conditions_for_edge) ... this one.
1516         (edge_set_predicate): New function.
1517         (inline_edge_duplication_hook): Duplicate edge predicates.
1518         (inline_edge_removal_hook): Free edge predicates.
1519         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
1520         (dump_inline_summary): Update.
1521         (estimate_function_body_sizes): Set edge predicates.
1522         (estimate_calls_size_and_time): Handle predicates.
1523         (estimate_callee_size_and_time): Update.
1524         (remap_predicate): Add toplev_predicate; update comment.
1525         (remap_edge_predicates): New function.
1526         (inline_merge_summary): Compute toplev predicate; update.
1527         (read_predicate): New function.
1528         (read_inline_edge_summary): Use it.
1529         (inline_read_section): Likewise.
1530         (write_predicate): New function.
1531         (write_inline_edge_summary): Use it.
1532         (inline_write_summary): Likewise.
1533         (inline_free_summary): Free alloc pool and edge summary vec.
1534
1535 2011-04-27  Richard Guenther  <rguenther@suse.de>
1536
1537         * tree-ssa-structalias.c (changed_count): Remove.
1538         (changed): Use a bitmap.
1539         (unify_nodes): Adjust.
1540         (do_sd_constraint): Likewise.
1541         (do_ds_constraint): Likewise.
1542         (do_complex_constraint): Likewise.
1543         (solve_graph): Likewise.
1544
1545 2011-04-27  Jan Hubicka  <jh@suse.cz>
1546
1547         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
1548
1549 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
1550
1551         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
1552         (avx_vperm2f128_*_operand): Ditto.
1553         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
1554         Use avx_vpermilp_parallel in insn condition.
1555         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
1556         Use avx_vperm2f128_parallel in insn condition.
1557
1558 2011-04-27  Richard Guenther  <rguenther@suse.de>
1559
1560         * Makefile.in (tree-ssa-structalias.o): Remove
1561         gt-tree-ssa-structalias.h dependency.
1562         (GTFILES): Remove tree-ssa-structalias.c.
1563         * tree.c (allocate_decl_uid): New function.
1564         (make_node_stat): Use it.
1565         (copy_node_stat): Likewise.
1566         * tree.h (allocate_decl_uid): Declare.
1567         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
1568         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
1569         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
1570         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
1571         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
1572         (struct heapvar_map): Likewise.
1573         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
1574         heapvar_insert): Likewise.
1575         (make_heapvar_for): Rename to ...
1576         (make_heapvar): ... this.  Simplify.
1577         (fake_var_decl_obstack): New global var.
1578         (build_fake_var_decl): New function.
1579         (make_constraint_from_heapvar): Adjust.
1580         (handle_lhs_call): Likewise.
1581         (create_function_info_for): Likewise.
1582         (intra_create_variable_infos): Likewise.
1583         (init_alias_vars): Allocate fake_var_decl_obstack.
1584         (init_alias_heapvars, delete_alias_heapvars): Remove.
1585         (compute_points_to_sets): Do not call init_alias_heapvars.
1586         (ipa_pta_execute): Likewise.
1587         (delete_points_to_sets): Free fake_var_decl_obstack.
1588
1589 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1590
1591         * config/spu/divmovti4.c (union qword_UTItype): New data type.
1592         (si_from_UTItype, si_to_UTItype): New functions.
1593         (__udivmodti4): Use them to implement type-punning.
1594         * config/spu/multi3.c (union qword_TItype): New data type.
1595         (si_from_TItype, si_to_TItype): New functions.
1596         (__multi3): Use them to implement type-punning.
1597
1598 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1599
1600         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
1601
1602 2011-04-27  Jan Hubicka  <jh@suse.cz>
1603
1604         * ipa-prop.c (function_insertion_hook_holder): New holder.
1605         (ipa_add_new_function): New function.
1606         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
1607         Register/deregister holder.
1608
1609 2011-04-27  Richard Guenther  <rguenther@suse.de>
1610
1611         PR tree-optimization/48772
1612         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
1613
1614 2011-04-27  Richard Guenther  <rguenther@suse.de>
1615
1616         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
1617         TARGET_MEM_REF handling.
1618
1619 2011-04-27  Nick Clifton  <nickc@redhat.com>
1620
1621         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
1622         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
1623         (REG_CLASS_NAMES): Likewise.
1624         (REG_CLASS_CONTENTS): Likewise.
1625         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
1626         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
1627         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
1628         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
1629         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
1630         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
1631         duplicate register classes.
1632         (frv_class_likely_spilled_p): Likewise.
1633         (frv_register_move_cost): Likewise.
1634
1635         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
1636         end of the regno_reg_class array.
1637
1638 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
1639
1640         PR c/48742
1641         * c-typeck.c (build_binary_op): Don't wrap arguments if
1642         int_operands is true.
1643
1644 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
1645
1646         PR target/48767
1647         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
1648         targetm.calls.must_pass_in_stack for void type.
1649
1650 2011-04-26  Jan Hubicka  <jh@suse.cz>
1651
1652         * cgraphbuild.c (build_cgraph_edges): Update call
1653         of cgraph_create_edge and cgraph_create_indirect_edge.
1654         * cgraph.c (cgraph_create_edge_including_clones,
1655         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
1656         cgraph_update_edges_for_call_stmt_node): Do not take nest
1657         argument; do not initialize call_stmt_size/time.
1658         (dump_cgraph_node): Do not dump nest.
1659         (cgraph_clone_edge): Do not take loop_nest argument;
1660         do not propagate it; do not clone call_stmt_size/time.
1661         (cgraph_clone_node): Likewise.
1662         (cgraph_create_virtual_clone): Update.
1663         * cgraph.h (struct cgraph_edge): Remove
1664         call_stmt_size/call_stmt_time/loop_nest.
1665         (cgraph_create_edge, cgraph_create_indirect_edge,
1666         cgraph_create_edge_including_clones, cgraph_clone_node): Update
1667         prototype.
1668         * tree-emutls.c (gen_emutls_addr): Update.
1669         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
1670         loop_nest; handle indirect calls, too.
1671         (clone_inlined_nodes): Do not care about updating inline summaries.
1672         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
1673         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
1674         stream call_stmt_size/call_stmt_time/loop_nest.
1675         * ipa-inline.c (edge_badness): Update.
1676         (ipa_inline): dump summaries after inlining.
1677         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
1678         New.
1679         (inline_edge_summary): New function.
1680         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
1681         (inline_edge_removal_hook): Handle edge summaries.
1682         (inline_edge_duplication_hook): New hook.
1683         (inline_summary_alloc): Alloc hooks.
1684         (initialize_growth_caches): Do not register removal hooks.
1685         (free_growth_caches); Do not free removal hook.
1686         (dump_inline_edge_summary): New function.
1687         (dump_inline_summary): Use it.
1688         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
1689         (inline_update_callee_summaries): New function.
1690         (inline_merge_summary): Use it.
1691         (do_estimate_edge_time, do_estimate_edge_growth): Update.
1692         (read_inline_edge_summary): New function.
1693         (inline_read_section): Use it.
1694         (write_inline_edge_summary): New function.
1695         (inline_write_summary): Use it.
1696         (inline_free_summary): Free edge new holders.
1697         * tree-inline.c (copy_bb): Update.
1698
1699 2011-04-26  Jason Merrill  <jason@redhat.com>
1700
1701         * tree-eh.c (lower_try_finally_switch): Create the label along with
1702         the CASE_LABEL_EXPR.
1703
1704 2011-04-26  David S. Miller  <davem@davemloft.net>
1705             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1706
1707         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
1708         * configure: Regenerate.
1709
1710 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
1711
1712         PR target/48258
1713         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
1714         reduction.
1715         (VEC_reduc): New code iterator and splitters for vector reduction.
1716         (VEC_reduc_name): Ditto.
1717         (VEC_reduc_rtx): Ditto.
1718         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
1719         (reduc_<VEC_reduc_name>_v4sf): Ditto.
1720
1721         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
1722         support for extracting SF on VSX.
1723
1724         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
1725         generating xscvspdp.
1726         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
1727         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
1728         double add, minimum, maximum vector reduction.
1729         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
1730         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
1731         optimize double vector reduction.
1732         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
1733
1734 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
1735
1736         * config/fr30/fr30.h (inhibit_libc): Don't define.
1737         * config/m32r/m32r-protos.h: Correct comment.
1738         * config/v850/v850.h (GHS_default_section_names,
1739         GHS_current_section_names): Use tree, not union tree_node *.
1740
1741 2011-04-26  Xinliang David Li  <davidxl@google.com>
1742
1743         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
1744         * c-family/c-opts.c (c_common_handle_option): Set
1745         warn_maybe_uninitialized.
1746         * opts.c (common_handle_option): Ditto.
1747         * common.opt:  New option.
1748         * tree-ssa.c (warn_uninit): Add one more parameter.
1749         (warn_uninitialized_var): Pass warning code.
1750         * tree-flow.h: Interface change.
1751
1752
1753 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1754
1755         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
1756         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
1757         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
1758
1759 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1760
1761         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
1762         * config/mips/mips.opt (mmips-tfile): Remove.
1763
1764         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
1765         mips-tdump reference to ...
1766         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
1767         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
1768         reference by Tru64 UNIX.
1769
1770 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
1771
1772         PR debug/48768
1773         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
1774         is error_mark_node, set value to NULL.
1775
1776         PR tree-optimization/48734
1777         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
1778         if return value from maybe_fold_*_comparsions isn't something
1779         the code is prepared to handle.
1780
1781 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
1782
1783         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
1784         mode check.
1785         (ext_QIreg_nomode_operands): Remove.
1786         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
1787         (*andsi_1): Ditto.
1788         (*andhi_1): Ditto.
1789
1790 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
1791
1792         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
1793
1794 2011-04-26  Richard Guenther  <rguenther@suse.de>
1795
1796         * c-typeck.c (build_unary_op): Do not expand array-refs via
1797         pointer arithmetic.  Only adjust qualifiers for function types.
1798
1799 2011-04-26  Richard Guenther  <rguenther@suse.de>
1800
1801         PR middle-end/48694
1802         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
1803         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
1804         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
1805         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
1806
1807 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
1808
1809         * c-family/c-common.c (struct c_common_resword): Add __underlying_type.
1810         * c-family/c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
1811         * doc/extend.texi: Document __underlying_type.
1812
1813 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
1814
1815         * config/rs6000/titan.md (automata_option "progress"): Remove.
1816
1817 2011-04-25  Jeff Law  <law@redhat.com>
1818
1819         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
1820
1821 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
1822
1823         * system.h (ENUM_BITFIELD): Remove.
1824
1825 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
1826             Eric Botcazou  <ebotcazou@adacore.com>
1827
1828         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
1829         for STORE_FLAG_VALUE==-1 case.
1830
1831 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
1832
1833         PR target/43804
1834         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
1835         LEGITIMATE_PIC_OPERAND_P.
1836
1837 2011-04-24  Jan Hubicka  <jh@suse.cz>
1838
1839         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
1840         WPA hack.
1841         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
1842         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
1843         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
1844         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
1845         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
1846         Sanity check predicate length.
1847         (remap_predicate): Likewise; sanity check jump functions.
1848         (inline_read_section, inline_write_summary): Sanity check
1849         predicate length.
1850
1851 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
1852
1853         PR other/48748
1854         * doc/extend.texi (Type Traits): Document __is_standard_layout,
1855         __is_literal_type, and __is_trivial; update throughout about
1856         possibly cv-qualified void types.
1857
1858 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
1859
1860         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
1861         testsuite and make it version agnostic.
1862
1863 2011-04-22  Jan Hubicka  <jh@suse.cz>
1864
1865         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
1866
1867 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
1868
1869         PR c/48685
1870         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
1871         to VOID_TYPE even around MODIFY_EXPR.
1872
1873 2011-04-22  Mike Stump  <mikestump@comcast.net>
1874
1875         * gensupport.c (read_md_rtx): Fix typo in comment.
1876         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
1877         comment.
1878
1879 2011-04-22  Jan Hubicka  <jh@suse.cz>
1880
1881         * gengtype.c (open_base_files): Add ipa-inline.h include.
1882         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
1883         ipa-prop.c; update all uses.
1884         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
1885         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
1886         merge summary of inlined function into former caller.
1887         * ipa-inline.c (max_benefit): Remove.
1888         (edge_badness): Compensate for removal of benefits.
1889         (update_caller_keys): Use
1890         reset_node_growth_cache/reset_edge_growth_cache.
1891         (update_callee_keys): Likewise.
1892         (update_all_callee_keys): Likewise.
1893         (inline_small_functions): Do not collect max_benefit; do not reset
1894         estimated_growth; call free_growth_caches and initialize_growth_caches.
1895         * ipa-inline.h (struct condition, type clause_t, struct predicate,
1896         struct size_time_entry): New structures.
1897         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
1898         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
1899         and estimated_growth.
1900         (edge_growth_cache_entry): New structure.
1901         (node_growth_cache, edge_growth_cache): New global vars.
1902         (estimate_growth): Turn into inline.
1903         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
1904         initialize_growth_caches, free_growth_caches): Declare.
1905         (estimate_edge_growth): Rewrite.
1906         (estimate_edge_time): Implement as inline cache lookup.
1907         (reset_node_growth_cache, reset_edge_growth_cache): New inline
1908         functions.
1909         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
1910         (NUM_CONDITIONS): New constant.
1911         (predicate_conditions): New enum.
1912         (IS_NOT_CONSTANT): New constant.
1913         (edge_removal_hook_holder): New var.
1914         (node_growth_cache, edge_growth_cache): New global vars.
1915         (true_predicate, single_cond_predicate, false_predicate,
1916         not_inlined_predicate, add_condition, add_clause, and_predicates,
1917         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
1918         dump_clause, dump_predicate, account_size_time,
1919         evaulate_conditions_for_edge): New functions.
1920         (inline_summary_alloc): Move to heap.
1921         (inline_node_removal_hook): Clear condition and entry vectors.
1922         (inline_edge_removal_hook): New function.
1923         (initialize_growth_caches, free_growth_caches): New function.
1924         (dump_inline_summary): Update.
1925         (edge_execution_predicate): New function.
1926         (will_be_nonconstant_predicate): New function.
1927         (estimate_function_body_sizes): Compute BB and constantness predicates.
1928         (compute_inline_parameters): Do not clear estimated_growth.
1929         (estimate_edge_size_and_time): New function.
1930         (estimate_calls_size_and_time): New function.
1931         (estimate_callee_size_and_time): New function.
1932         (remap_predicate): New function.
1933         (inline_merge_summary): New function.
1934         (do_estimate_edge_time): New function based on...
1935         (estimate_edge_time): ... this one.
1936         (do_estimate_edge_growth): New function.
1937         (do_estimate_growth): New function based on....
1938         (estimate_growth): ... this one.
1939         (inline_analyze_function): Analyze after deciding on jump functions.
1940         (inline_read_section): New function.
1941         (inline_read_summary): Use it.
1942         (inline_write_summary): Write all the new data.
1943         * ipa-prop.c (ipa_get_param_decl_index): Export.
1944         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
1945         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
1946         Declare.
1947         (ipa_get_lattice): Move here from ipa-cp.c
1948         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
1949         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
1950         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
1951         cgraph_edge_inlinable_p): Remove.
1952         * cgraphunit.c: Include ipainline.h
1953         (cgraph_process_new_functions): Update call of
1954         compute_inline_parameters.
1955
1956 2011-04-22  Richard Guenther  <rguenther@suse.de>
1957
1958         * tree.c (build_int_cst): Properly create canonicalized integer
1959         constants.
1960         (build_int_cst_type): Remove scary comments.
1961
1962 2011-04-22  Xinliang David Li  <davidxl@google.com>
1963
1964         * toplev.c (process_options): Enable -Werror=coverage-mismatch
1965         by default when -Wno-error is not specified.
1966         * opts-global.c (decode_options): Remove call to
1967         control_warning_options.
1968
1969 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
1970
1971         PR tree-optimization/48717
1972         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
1973         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
1974
1975 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
1976
1977         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
1978         definition where used.
1979
1980 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
1981
1982         PR c/48716
1983         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
1984         TREE_STATIC variables declared inside of some OpenMP construct.
1985
1986 2011-04-22  Martin Jambor  <mjambor@suse.cz>
1987
1988         PR middle-end/48585
1989         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
1990
1991 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
1992
1993         PR c/36750
1994         * c-typeck.c (pop_init_level): Do not warn about initializing
1995         with ` = {0}'.
1996
1997 2011-04-22  Alan Modra  <amodra@gmail.com>
1998
1999         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
2000         when returning call_cookie.
2001         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
2002         pointers, to functions with no more vector args than the current
2003         function, and some non-local calls for ABI_V4.
2004         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
2005         sibcall_nonlocal_aix64): Combine to ..
2006         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
2007         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
2008         (sibcall_value_nonlocal_aix<mode>): ..likewise.
2009         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
2010         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
2011         operand.
2012         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
2013         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
2014         sibcall_value_symbolic_64): Delete.
2015
2016 2011-04-21  Xinliang David Li  <davidxl@google.com>
2017
2018         * cgraph.h: Remove pid.
2019         * cgraph.c: Remove pid.
2020         * value-prof.c (init_node_map): New function.
2021         (del_node_map): New function.
2022         (find_func_by_funcdef_no): New function.
2023         (gimple_ic_transform): Call new function.
2024         * cgraphunit.c (cgraph_finalize_function): Remove pid.
2025         * function.c (get_last_funcdef_no): New function.
2026         * function.h (get_last_funcdef_no): New function.
2027         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
2028         to libgcov function.
2029         (tree-profiling): Call node map init and delete function.
2030
2031 2011-04-21  Ian Lance Taylor  <iant@google.com>
2032
2033         * godump.c (go_format_type): Use exported Go name for anonymous
2034         field name.
2035
2036 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
2037
2038         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
2039         Call builtin_function_type_list instead of builtin_function_type.
2040         (UNARY, BINARY, TRINARY, QUAD): Likewise.
2041
2042 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
2043
2044         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
2045         build_function_type_list instead of build_function_type.
2046         Delete variable `endlink'.
2047
2048 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
2049
2050         * config/s390/s390.c (s390_init_builtins): Call
2051         build_function_type_list instead of build_function_type.
2052
2053 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
2054
2055         * config/ia64/ia64.c (ia64_init_builtins): Call
2056         build_function_type_list instead of builtin_function_type.
2057
2058 2011-04-21  Easwaran Raman  <eraman@google.com>
2059
2060         * cfgexpand.c (stack_var): Remove OFFSET...
2061         (add_stack_var): ...and its reference here...
2062         (expand_stack_vars): ...and here.
2063         (stack_var_cmp): Sort by descending order of size.
2064         (partition_stack_vars): Change heuristic.
2065         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
2066         (dump_stack_var_partition): Add newline after each partition.
2067
2068 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
2069             Jeff Law  <law@redhat.com>
2070
2071         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
2072         * gengtype.c (matching_file_name_substitute): Likewise.
2073
2074 2011-04-21  Richard Guenther  <rguenther@suse.de>
2075
2076         PR lto/48703
2077         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
2078
2079 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
2080
2081         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
2082
2083 2011-04-21  Richard Guenther  <rguenther@suse.de>
2084
2085         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
2086         file name.
2087
2088 2011-04-21  Richard Guenther  <rguenther@suse.de>
2089
2090         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
2091         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
2092         Use DECL_P, not SSA_VAR_P.
2093         (ptr_derefs_may_alias_p): Likewise.
2094         (ptr_deref_may_alias_ref_p_1): Likewise.
2095         (decl_refs_may_alias_p): Likewise.
2096         (refs_may_alias_p_1): Likewise.
2097         (ref_maybe_used_by_call_p_1): Likewise.
2098         (call_may_clobber_ref_p_1): Likewise.
2099         (indirect_ref_may_alias_decl_p): Assume indirect refrences
2100         are either MEM_REF or TARGET_MEM_REF.
2101         (indirect_refs_may_alias_p): Likewise.
2102         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
2103         for MEM_EXPR of indirect calls.
2104
2105 2011-04-21  Tristan Gingold  <gingold@adacore.com>
2106
2107         * vmsdbgout.c (write_srccorr): Compute file length from the string.
2108         (dst_file_info_struct): Remove flen field.
2109         (lookup_filename): Remove code that set flen field.
2110
2111 2011-04-21  Tristan Gingold  <gingold@adacore.com>
2112
2113         * config/ia64/ia64.c (ia64_start_function): Add a guard.
2114
2115 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
2116
2117         PR target/48708
2118         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
2119         vec_extract and vec_concat for non-SSE4_1 targets.
2120
2121 2011-04-21  Richard Guenther  <rguenther@suse.de>
2122
2123         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
2124         return statements.
2125
2126 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
2127
2128         * config/i386/cygming.h (union tree_node, TREE): Don't define or
2129         undefine.
2130         (FILE): Don't undefine.
2131
2132 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
2133
2134         * config/alpha/alpha.c (struct machine_function): Use rtx, not
2135         struct rtx_def *.
2136         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
2137         struct rtx_def *.
2138         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2139         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
2140         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
2141         rtx_def *.
2142         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
2143         definitions where used.
2144         * config/microblaze/microblaze.h (struct microblaze_args): Use
2145         rtx, not struct rtx_def *.
2146         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
2147         rtx_def *.
2148         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
2149         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
2150         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
2151         not struct rtx_def *.
2152         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
2153         struct rtx_def *.
2154         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
2155         rtx_def *.
2156         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
2157
2158 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
2159
2160         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
2161         operand_equal_p to compare DR_BASE_ADDRESSes.
2162         (vect_check_interleaving): Likewise.
2163
2164 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
2165
2166         PR target/46329
2167         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
2168         for all Neon struct constants.
2169
2170 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
2171
2172         * target.def (legitimate_constant_p): New hook.
2173         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
2174         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
2175         * doc/tm.texi: Regenerate.
2176         * hooks.h (hook_bool_mode_rtx_true): Declare.
2177         * hooks.c (hook_bool_mode_rtx_true): Define.
2178         * system.h (LEGITIMATE_CONSTANT_P): Poison.
2179         * calls.c (precompute_register_parameters): Replace uses of
2180         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
2181         (emit_library_call_value_1): Likewise.
2182         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
2183         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
2184         * ira-costs.c (scan_one_insn): Likewise.
2185         * recog.c (general_operand, immediate_operand): Likewise.
2186         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
2187         * reload1.c (init_eliminable_invariants): Likewise.
2188
2189         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
2190         mode argument.
2191         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
2192         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
2193         argument.
2194         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2195         * config/alpha/predicates.md (input_operand): Update call to
2196         alpha_legitimate_constant_p.
2197
2198         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
2199         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
2200         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
2201         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2202         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
2203         (arm_legitimate_constant_p): New functions.
2204         (arm_cannot_force_const_mem): Make static.
2205
2206         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
2207
2208         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
2209         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
2210         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
2211         instead of bfin_legitimate_constant_p.
2212         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
2213         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2214
2215         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
2216
2217         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
2218
2219         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
2220         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
2221         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2222         (frv_legitimate_constant_p): Make static.  Add a mode argument.
2223
2224         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
2225         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
2226         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
2227
2228         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
2229         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
2230         * config/i386/i386.c (legitimate_constant_p): Rename to...
2231         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
2232         argument.
2233         (ix86_cannot_force_const_mem): Update accordingly.
2234         (ix86_legitimate_address_p): Likewise.
2235         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2236         * config/i386/i386.md: Update commentary.
2237
2238         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
2239         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
2240         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2241         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
2242
2243         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
2244
2245         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
2246         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
2247         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2248         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
2249
2250         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
2251         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
2252         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
2253
2254         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
2255         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2256         (m32r_legitimate_constant_p): New function.
2257
2258         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
2259         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
2260         LEGITIMATE_CONSTANT_P.
2261         (LEGITIMATE_CONSTANT_P): Delete.
2262         * config/m68k/m68k.c (m68k_expand_prologue): Call
2263         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
2264         (m68k_legitimate_constant_p): New function.
2265         * config/m68k/m68k.md: Update comments.
2266
2267         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
2268         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2269         (mcore_legitimate_constant_p): New function.
2270
2271         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
2272         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
2273         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
2274         Add a mode argument.
2275         (mep_legitimate_address): Update accordingly.
2276         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2277
2278         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
2279         Delete.
2280         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
2281         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
2282         static.  Check OP's mode for VOIDmode.
2283         (microblaze_legitimate_constant_p): New function.
2284         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2285
2286         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
2287         * config/mips/mips.c (mips_legitimate_constant_p): New function.
2288         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
2289         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2290         * config/mips/predicates.md: Update comments.
2291
2292         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
2293         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
2294         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2295         (mmix_legitimate_constant_p): Make static, return a bool, and take
2296         a mode argument.
2297         (mmix_print_operand_address): Update accordingly.
2298
2299         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
2300         Delete.
2301         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2302         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
2303         static.  Add a mode argument.
2304         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2305
2306         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
2307
2308         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
2309         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2310         (pa_legitimate_constant_p): New function.
2311
2312         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
2313
2314         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
2315         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2316         (pdp11_legitimate_constant_p): New function.
2317
2318         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
2319         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2320         (rs6000_legitimate_constant_p): New function.
2321
2322         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
2323         (rx_legitimate_constant_p): ...this.
2324         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
2325         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
2326         (rx_legitimate_constant_p): ...this.
2327         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2328         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
2329
2330         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
2331         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
2332         * config/s390/s390.c (legitimate_constant_p): Rename to...
2333         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
2334         and add a mode argument.
2335         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2336
2337         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
2338
2339         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
2340         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2341         (sh_legitimate_constant_p): New function.
2342
2343         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
2344         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
2345         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2346         (legitimate_constant_p): Rename to...
2347         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
2348         argument.
2349         (constant_address_p): Update accordingly.
2350
2351         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
2352         argument and return a bool.
2353         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
2354         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2355         (spu_legitimate_constant_p): Add a mode argument and return a bool.
2356         (spu_rtx_costs): Update accordingly.
2357         * config/spu/predicates.md (vec_imm_operand): Likewise.
2358
2359         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
2360
2361         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
2362         * config/v850/v850.c (v850_legitimate_constant_p): New function.
2363         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2364
2365         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
2366         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
2367         * config/vax/vax.c (legitimate_constant_p): Likewise.
2368
2369         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
2370         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2371         (xtensa_legitimate_constant_p): New function.
2372
2373 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
2374
2375         * target.def (cannot_force_const_mem): Add a mode argument.
2376         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
2377         * doc/tm.texi: Regenerate.
2378         * hooks.h (hook_bool_mode_rtx_false): Declare.
2379         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
2380         (hook_bool_mode_const_rtx_true): Likewise.
2381         (hook_bool_mode_rtx_false): New function.
2382         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
2383         to be non-VOID.  Update call to cannot_force_const_mem.
2384         (find_reloads): Update accordingly.
2385         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
2386         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
2387         argument.
2388         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
2389         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
2390         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
2391         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
2392         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
2393         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
2394         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
2395         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
2396         (m68k_cannot_force_const_mem): ...this new function.
2397         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
2398         argument.
2399         (mips_const_insns, mips_legitimize_const_move): Update calls.
2400         (mips_secondary_reload_class): Likewise.
2401         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
2402         (pa_cannot_force_const_mem): ...this new function.
2403         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
2404         (rs6000_cannot_force_const_mem): ...this new function.
2405         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
2406         argument.
2407         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
2408         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
2409         to...
2410         (xtensa_cannot_force_const_mem): ...this new function.
2411
2412 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
2413
2414         * config/mips/mips.c (mips16_build_function_stub): Call
2415         build_function_type_list instead of build_function_type.
2416         (mips16_build_call_stub): Likewise.
2417
2418 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
2419
2420         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
2421         instead of build_function_type.
2422
2423 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
2424
2425         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
2426         instead of build_function_type.
2427
2428 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
2429
2430         PR target/48678
2431         * config/i386/i386.md (insv): Change operand 0 constraint to
2432         "register_operand".  Change operand 1 and 2 constraint to
2433         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
2434         * config/i386/sse.md (sse4_1_pinsrb): Export.
2435         (sse2_pinsrw): Ditto.
2436         (sse4_1_pinsrd): Ditto.
2437         (sse4_1_pinsrq): Ditto.
2438         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
2439         * config/i386/i386.c (ix86_expand_pinsr): New.
2440
2441 2011-04-20  Easwaran Raman  <eraman@google.com>
2442
2443         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
2444         containing union type only with -fstrict-aliasing.
2445
2446 2011-04-20  Jim Meyering  <meyering@redhat.com>
2447
2448         Remove useless if-before-free tests.
2449         * calls.c (expand_call, save_area): Likewise.
2450         * cfgcleanup.c (try_forward_edges): Likewise.
2451         * collect2.c (collect_execute): Likewise.
2452         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
2453         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
2454         * coverage.c (coverage_checksum_string): Likewise.
2455         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
2456         * cselib.c (cselib_init): Likewise.
2457         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
2458         (df_set_clean_cfg): Likewise.
2459         * function.c (free_after_compilation): Likewise.
2460         * gcc.c (do_spec_1, main): Likewise.
2461         * gcov.c (create_file_names): Likewise.
2462         * gensupport.c (identify_predicable_attribute): Likewise.
2463         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
2464         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
2465         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
2466         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
2467         * ipa-pure-const.c (local_pure_const): Likewise.
2468         * ipa-reference.c (propagate): Likewise.
2469         * ira-costs.c (free_ira_costs): Likewise.
2470         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
2471         * matrix-reorg.c (mat_free): Likewise.
2472         * prefix.c (get_key_value): Likewise.
2473         * profile.c (compute_value_histograms): Likewise.
2474         * reload1.c (free_reg_equiv): Likewise.
2475         * sched-deps.c (free_deps): Likewise.
2476         * sel-sched-ir.c (fence_clear): Likewise.
2477         * sese.c (set_rename, if_region_set_false_region): Likewise.
2478         * tree-data-ref.c (free_rdg): Likewise.
2479         * tree-eh.c (lower_try_finally): Likewise.
2480         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
2481         * tree-ssa-live.c (delete_var_map): Likewise.
2482         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
2483         * tree-ssa-pre.c (phi_trans_add): Likewise.
2484
2485 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
2486
2487         PR tree-optimization/48611
2488         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
2489         beyond ERT_MUST_NOT_THROW region.
2490
2491 2011-04-20  Catherine Moore  <clm@codesourcery.com>
2492
2493         * config/mips/mips.opt (mfix-24k): New.
2494         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
2495         * config/mips/mips.md (length): Increase by 4 for stores if
2496         fixing 24K errata.
2497         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
2498         all noreorder if fixing 24K errata.
2499         * doc/invoke.texi: Document mfix-24k.
2500
2501 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
2502
2503         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2504         quad-word modes, reduce to 9-bit index range when above 1016 limit.
2505
2506 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
2507
2508         * config/arm/arm.c (arm_gen_constant): Move movw support ....
2509         (const_ok_for_op): ... to here.
2510
2511 2011-04-20  Kai Tietz  <ktietz@redhat.com>
2512
2513         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
2514         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
2515
2516 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
2517
2518         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
2519
2520 2011-04-20  Richard Guenther  <rguenther@suse.de>
2521
2522         PR tree-optimization/47892
2523         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
2524         are if-convertible.
2525
2526 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
2527
2528         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
2529
2530 2011-04-20  Tristan Gingold  <gingold@adacore.com>
2531
2532         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
2533
2534 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
2535
2536         PR target/18145
2537
2538         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
2539         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
2540         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
2541         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
2542         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
2543
2544         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
2545         New prototype.
2546
2547         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
2548         (avr_asm_named_section, avr_asm_output_aligned_common,
2549         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
2550         New functions to update...
2551         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
2552         (avr_asm_init_sections): Overwrite section callbacks for
2553         data_section, bss_section.
2554         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
2555         from here to...
2556         (avr_file_end): ...here.
2557
2558 2011-04-20  Richard Guenther  <rguenther@suse.de>
2559
2560         PR middle-end/48695
2561         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2562         objects and types here.  Adjust for their offset before comparing.
2563
2564 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
2565
2566         * tree-vect-stmts.c (vectorizable_store): Only chain one related
2567         statement per copy.
2568
2569 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
2570
2571         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
2572         (GIMPLE_H): Include $(INTERNAL_FN_H).
2573         (OBJS-common): Add internal-fn.o.
2574         (internal-fn.o): New rule.
2575         * internal-fn.def: New file.
2576         * internal-fn.h: Likewise.
2577         * internal-fn.c: Likewise.
2578         * gimple.h: Include internal-fn.h.
2579         (GF_CALL_INTERNAL): New gf_mask.
2580         (gimple_statement_call): Put fntype into a union with a new
2581         internal_fn field.
2582         (gimple_build_call_internal): Declare.
2583         (gimple_build_call_internal_vec): Likewise.
2584         (gimple_call_same_target_p): Likewise.
2585         (gimple_call_internal_p): New function.
2586         (gimple_call_internal_fn): Likewise.
2587         (gimple_call_fntype): Return null for internal calls.
2588         (gimple_call_set_fntype): Assert that the function is not internal.
2589         (gimple_call_set_fn): Likewise.
2590         (gimple_call_set_fndecl): Likewise.
2591         (gimple_call_set_internal_fn): New function.
2592         (gimple_call_addr_fndecl): Handle null functions.
2593         (gimple_call_return_type): Likewise null types.
2594         * gimple.c (gimple_build_call_internal_1): New function.
2595         (gimple_build_call_internal): Likewise.
2596         (gimple_build_call_internal_vec): Likewise.
2597         (gimple_call_same_target_p): Likewise.
2598         (gimple_call_flags): Handle calls to internal functions.
2599         (gimple_call_fnspec): New function.
2600         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
2601         (gimple_has_side_effects): Handle null functions.
2602         (gimple_rhs_has_side_effects): Likewise.
2603         (gimple_call_copy_skip_args): Handle calls to internal functions.
2604         * cfgexpand.c (expand_call_stmt): Likewise.
2605         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
2606         * gimple-fold.c (gimple_fold_call): Handle null functions.
2607         (gimple_fold_stmt_to_constant_1): Don't fold
2608         calls to internal functions.
2609         * gimple-low.c (gimple_check_call_args): Handle calls to internal
2610         functions.
2611         * gimple-pretty-print.c (dump_gimple_call): Likewise.
2612         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
2613         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
2614         (do_warn_unused_result): Likewise.
2615         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
2616         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
2617         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
2618         the target of a call.
2619         (initialize_hash_element): Update accordingly.
2620         (hashable_expr_equal_p): Use gimple_call_same_target_p.
2621         (iterative_hash_hashable_expr): Handle calls to internal functions.
2622         (print_expr_hash_elt): Likewise.
2623         * tree-ssa-pre.c (can_value_number_call): Likewise.
2624         (eliminate): Handle null functions.
2625         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
2626         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
2627         (find_func_aliases): Likewise.
2628         * value-prof.c (gimple_ic_transform): Likewise.
2629         (gimple_indirect_call_to_profile): Likewise.
2630         * lto-streamer-in.c (input_gimple_stmt): Likewise.
2631         * lto-streamer-out.c (output_gimple_stmt): Likewise.
2632
2633 2011-04-19  Jan Hubicka  <jh@suse.cz>
2634
2635         * ipa-inline-transform.c (save_inline_function_body): Add comments.
2636         * ipa-inline.c (inline_small_functions): Compute summaries first,
2637         populate heap later.
2638
2639 2011-04-19  Jan Hubicka  <jh@suse.cz>
2640
2641         * cgraph.h (save_inline_function_body): Remove.
2642         * ipa-inline-transform.c: New file, broke out of...
2643         * ipa-inline.c: ... this one; Update toplevel comment.
2644         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
2645         make global.
2646         (update_noncloned_frequencies): Move to ipa-inline-transform.c
2647         (cgraph_mark_inline_edge): Rename to inline_call; move to
2648         ipa-inline-transform.c.
2649         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
2650         move to ipa-inline-transform.c
2651         (recursive_inlining, inline_small_functions, flatten_function,
2652         ipa_inline, inline_always_inline_functions,
2653         early_inline_small_functions): Update.
2654         (inline_transform): Move to ipa-inline-transform.c.
2655         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
2656         Declare.
2657         * Makefile.in (ipa-inline-transform.o): New file.
2658         * cgraphunit.c (save_inline_function_body): Move to
2659         ipa-inline-transform.c
2660
2661 2011-04-19  DJ Delorie  <dj@redhat.com>
2662
2663         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
2664         registers if we already know there aren't any.
2665         (m32c_emit_epilogue): Don't emit a barrier here.
2666         (m32c_emit_eh_epilogue): Likewise.
2667         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
2668         operands at expand time.
2669         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
2670         int" wchar type.
2671         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
2672         duplicates.  Provide aliases instead.
2673         * config/m32c/prologue.md (eh_return): Emit a barrier here.
2674         (eh_epilogue): Add a "(return)" here as a hint to other parts of
2675         the compiler.
2676
2677 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
2678
2679         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
2680         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
2681         (general_or_i64_p, sparc_register_move_cost): New function.
2682
2683 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2684
2685         * doc/install.texi (Configuration, --enable-threads): Remove mach.
2686         Add lynx, mipssde.  Sort table.
2687
2688 2011-04-19  Xinliang David Li  <davidxl@google.com>
2689
2690         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
2691         not negative.
2692
2693 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
2694
2695         PR target/48678
2696         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
2697         is a SUBREG with non-MODE_INT mode inside of it.
2698
2699 2011-04-19  Martin Jambor  <mjambor@suse.cz>
2700
2701         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
2702         also according to actual contants.
2703         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
2704         (gimple_fold_call): Use it.
2705         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
2706
2707 2011-04-19  Martin Jambor  <mjambor@suse.cz>
2708
2709         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
2710         non-pointer assignments.
2711
2712 2011-04-19  Martin Jambor  <mjambor@suse.cz>
2713
2714         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
2715         account anc_offset and otr_type from the indirect edge info.
2716         * ipa-prop.c (get_ancestor_addr_info): New function.
2717         (compute_complex_ancestor_jump_func): Assignment analysis moved to
2718         get_ancestor_addr_info, call it.
2719         (ipa_note_param_call): Do not initialize information about polymorphic
2720         calls, return the indirect call graph edge.  Remove the last
2721         parameter, adjust all callers.
2722         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
2723         parameters.  Initialize polymorphic information in the indirect edge.
2724
2725 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
2726
2727         PR lto/48148
2728         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
2729         the types if they have different enumeration identifiers.
2730
2731 2011-04-19  Jan Hubicka  <jh@suse.cz>
2732
2733         * cgraph.h (cgraph_optimize_for_size_p): Declare.
2734         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
2735         * predict.c (cgraph_optimize_for_size_p): Break out from ...
2736         (optimize_function_for_size_p) ... here.
2737
2738 2011-04-19  Richard Guenther  <rguenther@suse.de>
2739
2740         PR lto/48207
2741         * tree.c (free_lang_data): Do not reset the decl-assembler-name
2742         langhook.
2743
2744 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
2745
2746         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
2747         if DECL_NO_INLINE_WARNING_P is set on the function.
2748
2749 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
2750
2751         PR fortran/47976
2752         * reload1.c (inc_for_reload): Return void. All callers changed.
2753         (emit_input_reload_insns): Don't try to delete previous output
2754         reloads to a register, or record spill_reg_store for autoincs.
2755
2756 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
2757
2758         * gengtype.h: Updated copyright year.
2759         (struct input_file_st): Add inpisplugin field.
2760         (type_fileloc): New function.
2761         * gengtype.c
2762         (write_typed_struct_alloc_def): Add gcc_assert.
2763         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
2764         (write_typed_alloc_defns): Don't output for plugin files.
2765         (input_file_by_name): Clear inpisplugin field.
2766         (main): Set inpisplugin field for plugin files.
2767
2768 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
2769
2770         * gengtype-state.c (string_eq): New.
2771         (read_state): Use string_eq instead of strcmp when creating the
2772         state_ident_tab.
2773
2774 2011-04-19  Wei Guozhi  <carrot@google.com>
2775
2776         PR target/47855
2777         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
2778         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
2779         linkage.
2780         * config/arm/constraints.md (Uu): New constraint.
2781         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
2782
2783 2011-04-19  Tristan Gingold  <gingold@adacore.com>
2784
2785         * config.gcc (-*-*-*vms): Added.
2786         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
2787         definitions moved.
2788         * config/vms/vms-ld.c: New file.
2789         * config/vms/vms-ar.c: New file.
2790         * config/vms/t-vmsnative: New file.
2791
2792 2011-04-18  Xinliang David Li  <davidxl@google.com>
2793
2794         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
2795
2796 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
2797
2798         PR middle-end/48661
2799         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
2800         if TREE_TYPE (v) is non-NULL.
2801
2802         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
2803         gimple_get_virt_mehtod_for_binfo.
2804         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
2805         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
2806         callers.
2807         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
2808
2809 2011-04-18  Michael Matz  <matz@suse.de>
2810             Steve Ellcey  <sje@cup.hp.com>
2811
2812         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
2813         use its mode as source mode if it isn't VOIDmode.
2814
2815 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
2816
2817         * doc/passes.texi: Fill crossref nodes.
2818
2819 2011-04-18  Jim Meyering  <meyering@redhat.com>
2820
2821         Fix doubled-word typos in comments and strings
2822         * config/alpha/vms-unwind.h: s/for for/for/
2823         * config/arm/unwind-arm.h: Likewise.
2824         * config/microblaze/microblaze.c: Likewise.
2825         * config/sh/constraints.md: s/in in/in/
2826         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
2827
2828 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
2829
2830         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
2831         (AVX_FLOAT_MODE_P): Ditto.
2832         (AVX128_VEC_FLOAT_MODE_P): Ditto.
2833         (AVX256_VEC_FLOAT_MODE_P): Ditto.
2834         (AVX_VEC_FLOAT_MODE_P): Ditto.
2835         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
2836         (UNSPEC_MASKSTORE): Ditto.
2837         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
2838         Merge from <sse>_movmsk<ssemodesuffix> and
2839         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
2840         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
2841         iterator.
2842         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
2843         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
2844         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
2845
2846 2011-04-18  Jan Hubicka  <jh@suse.cz>
2847
2848         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
2849
2850         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
2851         (want_inline_function_called_once_p): Break out the logic from
2852         ipa_inline.
2853         (edge_badness): Ensure that profile is not misupdated.
2854         (lookup_recursive_calls): Prioritize by call frequencies.
2855         (inline_small_functions): Move program size estimates here;
2856         actually process whole queue even when unit growth has been
2857         met. (to properly compute inline_failed reasons and for the
2858         case unit size decrease.) Revisit comments on recursive inlining.
2859         (ipa_inline): Remove unit summary code; first inline hot calls
2860         of functions called once, cold calls next.
2861         (order, nnodes): Remove unused variables.
2862         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
2863         (GTFILES): Remove ipa-inline.c
2864         * sel-sched.c (fill_insns): Silence uninitialized var warning.
2865
2866 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2867
2868         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
2869
2870 2011-04-18  Jie Zhang  <jie@codesourcery.com>
2871             Richard Earnshaw  <rearnsha@arm.com>
2872
2873         * arm.c (neon_builtin_type_bits): Remove.
2874         (typedef enum neon_builtin_mode): New.
2875         (T_MAX): Don't define.
2876         (typedef enum neon_builtin_datum): Remove bits, codes[],
2877         num_vars and base_fcode.  Add mode, code and fcode.
2878         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
2879         VAR10): Change accordingly.
2880         (neon_builtin_data[]): Change accordingly
2881         (arm_init_neon_builtins): Change accordingly.
2882         (neon_builtin_compare): Remove.
2883         (locate_neon_builtin_icode): Remove.
2884         (arm_expand_neon_builtin): Change accordingly.
2885
2886         * arm.h (enum arm_builtins): Move to ...
2887         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
2888
2889         * arm.c (arm_builtin_decl): Declare.
2890         (TARGET_BUILTIN_DECL): Define.
2891         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
2892         (arm_builtin_decls[]): New.
2893         (arm_init_neon_builtins): Store builtin declarations in
2894         arm_builtin_decls[].
2895         (arm_init_tls_builtins): Likewise.
2896         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
2897         (arm_builtin_decl): New.
2898
2899 2011-04-18  Richard Guenther  <rguenther@suse.de>
2900
2901         * tree.c (upper_bound_in_type): Build properly canonicalized
2902         INTEGER_CSTs.
2903         (lower_bound_in_type): Likewise.
2904
2905 2011-04-18  Richard Guenther  <rguenther@suse.de>
2906
2907         * gimple.h (gimple_call_addr_fndecl): New function.
2908         (gimple_call_fndecl): Use it.
2909         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
2910         for direct calls.
2911         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
2912         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
2913
2914 2011-04-18  Richard Guenther  <rguenther@suse.de>
2915
2916         PR middle-end/48650
2917         * tree.c (build_string): STRING_CST is now derived from tree_typed.
2918
2919 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2920
2921         PR lto/48492
2922         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
2923         DECL_IN_CONSTANT_POOL without RTL.
2924
2925 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
2926             Ira Rosen  <ira.rosen@linaro.org>
2927
2928         PR target/48252
2929         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
2930         to match neon_vzip/vuzp/vtrn_internal.
2931         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
2932         outputs explicitly dependent on both inputs.
2933         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
2934
2935 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
2936
2937         PR tree-optimization/48616
2938         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
2939         whether the shift is by scalar or vector based on whether all SLP
2940         scalar stmts have the same rhs.
2941
2942 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
2943
2944         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
2945         memory operands.
2946
2947 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
2948
2949         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
2950         registers.
2951
2952 2011-04-17  Jan Hubicka  <jh@suse.cz>
2953
2954         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
2955         * cgrpahunit.c (cgraph_finalize_function): Do not set
2956         finalized_by_frontend.
2957         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
2958         finalized_by_frontend.
2959
2960 2011-04-17  Jan Hubicka  <jh@suse.cz>
2961
2962         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
2963         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
2964         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
2965         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
2966         method.
2967         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
2968         gimple-fold.c
2969         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
2970
2971 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
2972
2973         PR lto/48538
2974         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
2975         is non-null before accessing it.
2976         (input_cgraph): Remove trailing spaces.
2977
2978 2011-04-17  Revital Eres  <revital.eres@linaro.org>
2979
2980         * params.def (sms-min-sc): New param flag.
2981         * modulo-sched.c (sms_schedule): Use it.
2982         * doc/invoke.texi (sms-min-sc): Document it.
2983
2984 2011-04-17  Jan Hubicka  <jh@suse.cz>
2985
2986         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
2987         present, also set gimple_call_set_cannot_inline.
2988         * ipa-inline.c: Update toplevel comment.
2989         (MAX_TIME): Remove.
2990         (cgraph_clone_inlined_nodes): Fix linebreaks.
2991         (cgraph_check_inline_limits): Restructure to ...
2992         (caller_growth_limits): ... this one; be more tolerant
2993         on growth in nested inline chains; add explanatory comment;
2994         fix stack accounting thinko introduced by previous patch.
2995         (cgraph_default_inline_p): Remove.
2996         (report_inline_failed_reason): New function.
2997         (can_inline_edge_p): New function.
2998         (can_early_inline_edge_p): New function.
2999         (leaf_node_p): Move upwards in file.
3000         (want_early_inline_function_p): New function.
3001         (want_inline_small_function_p): New function.
3002         (want_inline_self_recursive_call_p): New function.
3003         (cgraph_edge_badness): Rename to ...
3004         (edge_badness) ... this one; fix linebreaks.
3005         (update_edge_key): Update call of edge_baddness; add
3006         detailed dump about queue updates.
3007         (update_caller_keys): Use can_inline_edge_p and
3008         want_inline_small_function_p.
3009         (cgraph_decide_recursive_inlining): Rename to...
3010         (recursive_inlining): Use can_inline_edge_p and
3011         want_inline_self_recursive_call_p; simplify and remove no longer
3012         valid FIXME.
3013         (cgraph_set_inline_failed): Remove.
3014         (add_new_edges_to_heap): Use can_inline_edge_p and
3015         want_inline_small_function_p.
3016         (cgraph_decide_inlining_of_small_functions): Rename to ...
3017         (inline_small_functions): ... this one; cleanup; use
3018         can/want predicates; cleanup debug ouput; work edges till fibheap
3019         is exhausted and do not stop once unit growth is reached; remove
3020         later loop processing remaining edges.
3021         (cgraph_flatten): Rename to ...
3022         (flatten_function): ... this one; use can_inline_edge_p
3023         and can_early_inline_edge_p predicates.
3024         (cgraph_decide_inlining): Rename to ...
3025         (ipa_inline): ... this one; remove unreachable nodes before
3026         inlining functions called once; simplify the pass.
3027         (cgraph_perform_always_inlining): Rename to ...
3028         (inline_always_inline_functions): ... this one; use
3029         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
3030         (cgraph_decide_inlining_incrementally): Rename to ...
3031         (early_inline_small_functions): ... this one; simplify
3032         using new predicates; cleanup; make dumps prettier.
3033         (cgraph_early_inlining): Rename to ...
3034         (early_inliner): newer inline regular functions into always-inlines;
3035         fix updating of call stmt summaries.
3036         (pass_early_inline): Update for new names.
3037         (inline_transform): Fix formating.
3038         (gate_cgraph_decide_inlining): Rename to ...
3039         (pass_ipa_inline): ... this one.
3040         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
3041         * ipa-inline-analysis.c (dump_inline_summary): Update.
3042         (compute_inline_parameters): Do not compute disregard_inline_limits;
3043         look for mismatching arguments.
3044         (estimate_growth): Fix handlig of non-trivial self recursion.
3045         (inline_read_summary): Do not read info->disregard_inline_limits.
3046         (inline_write_summary): Do not write info->disregard_inline_limits.
3047         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
3048         and move all checks into can_inline_edge_p predicate; re-enable code
3049         comparing optimization levels.
3050         (expand_call_inline): Do not test inline_forbidden_into_p.
3051         * Makefile.in (ipa-inline.o): Update arguments.
3052
3053 2011-04-17  Revital Eres  <revital.eres@linaro.org>
3054
3055         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
3056
3057 2011-04-17  Revital Eres  <revital.eres@linaro.org>
3058
3059         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
3060
3061 2011-04-17  Michael Matz  <matz@suse.de>
3062
3063         PR tree-optimization/48622
3064         PR lto/48645
3065         * ipa-inline-analysis.c (inline_read_summary): Read size/time
3066         in same order as they're written.
3067
3068 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3069
3070         * config/pa/predicates.md: Reorganize and simplify predicates.
3071         Eliminate duplicate code checks.
3072         (arith_operand): Rename to arith14_operand
3073         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
3074         * config/pa/pa.md: Use renamed operands.
3075         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
3076         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
3077         arith11_operand, adddi3_operand, indexed_memory_operand,
3078         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
3079         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
3080         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
3081         move_dest_operand, move_src_operand, prefetch_cc_operand,
3082         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
3083         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
3084         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
3085         div_operand, int5_operand, movb_comparison_operator,
3086         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
3087         arith_double_operand, ireg_operand, lhs_lshift_operand,
3088         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
3089         integer_store_memory_operand): Likewise.
3090         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
3091         (integer_store_memory_operand, read_only_operand,
3092         function_label_operand, borx_reg_operand,
3093         non_hard_reg_operand): Likewise.
3094         (eq_neq_comparison_operator): Delete unused operator.
3095         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
3096         function_label_operand.
3097         (emit_move_sequence): Likewise.
3098
3099 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
3100
3101         * config/i386/sse.md (sseunpackmode): New mode attribute.
3102         (ssepackmode): Ditto.
3103         (vec_pack_trunc_<mode>): Macroize expander from
3104         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
3105         (vec_unpacks_lo_<mode>): Macroize expander from
3106         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3107         (vec_unpacks_hi_<mode>): Macroize expander from
3108         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3109         (vec_unpacku_lo_<mode>): Macroize expander from
3110         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3111         (vec_unpacku_hi_<mode>): Macroize expander from
3112         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3113         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
3114         ix86_expand_sse4_unpack.
3115         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
3116
3117 2011-04-16  Jan Hubicka  <jh@suse.cz>
3118
3119         * cgraphbuild.c: Include ipa-inline.h.
3120         (reset_inline_failed): Use initialize_inline_failed.
3121         * cgraph.c: Include ipa-inline.h.
3122         (cgraph_create_node_1): Do not initialize estimated_growth.
3123         (initialize_inline_failed): More to ipa-inline-analysis.c
3124         (dump_cgraph_node): Do not dump inline flags.
3125         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
3126         and disregard_inline_limits flags.
3127         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
3128         time, size, estimated_growth.
3129         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
3130         Update.
3131         * cgraphunit.c (cgraph_decide_is_function_needed): Use
3132         DECL_DISREGARD_INLINE_LIMITS.
3133         (cgraph_analyze_function): Do not initialize
3134         node->local.disregard_inline_limits.
3135         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
3136         inlinable, versionable and disregard_inline_limits.
3137         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
3138         cgraph_check_inline_limits, cgraph_default_inline_p,
3139         cgraph_edge_badness, update_caller_keys, update_callee_keys,
3140         add_new_edges_to_heap): Update.
3141         (cgraph_decide_inlining_of_small_function): Update; set
3142         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
3143         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
3144         cgraph_decide_inlining_incrementally): Update.
3145         * ipa-inline.h (inline_summary): Add inlinable, versionable,
3146         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
3147         time, size and estimated_growth parameters.
3148         (estimate_edge_growth): Update.
3149         (initialize_inline_failed): Declare.
3150         * ipa-split.c: Include ipa-inline.h
3151         (execute_split_functions): Update.
3152         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
3153         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
3154         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
3155         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
3156         estimated_growth to INT_MIN.
3157         (inline_node_duplication_hook): Likewise.
3158         (dump_inline_summary): Dump new fields.
3159         (compute_inline_parameters): Update.
3160         (estimate_edge_time, estimate_time_after_inlining,
3161         estimate_size_after_inlining, estimate_growth, inline_read_summary,
3162         inline_write_summary):
3163         (initialize_inline_failed): Move here from cgraph.c.
3164         * tree-sra.c: Include ipa-inline.h.
3165         (ipa_sra_preliminary_function_checks): Update.
3166         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
3167         ipa-inline.h.
3168
3169 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
3170
3171         * config/i386/sse.md (V16): New mode iterator.
3172         (VI1, VI8): Ditto.
3173         (AVXMODEQI, AVXMODEDI): Remove.
3174         (sse2, sse3): New mode attribute.
3175         (mov<mode>): Use V16 mode iterator.
3176         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
3177         (push<mode>1): Use V16 mode iterator.
3178         (movmisalign<mode>): Ditto.
3179         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
3180         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
3181         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
3182         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
3183         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
3184         avx_movdqu<avxmodesuffix>.
3185         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
3186         *avx_movdqu<avxmodesuffix>.
3187         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
3188         avx_lddqu<avxmodesuffix>.
3189         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
3190         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
3191         avx_movnt<AVXMODEDI:mode>.
3192         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
3193         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
3194
3195 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
3196
3197         PR target/48629
3198         * haifa-sched.c (prune_ready_list, schedule_block): Use
3199         sched_pressure_p rather than flag_sched_pressure.
3200
3201 2011-04-15  Pat Haugen <pthaugen@us.ibm.com>
3202
3203         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
3204         cgraph_get_node instead of cgraph_get_create_node.
3205
3206 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
3207
3208         * cfgexpand.c (expand_debug_expr): Use
3209         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
3210
3211 2011-04-15  Michael Matz  <matz@suse.de>
3212
3213         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
3214         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
3215         * function.c (gimplify_parameters): Ditto.
3216         * gimplify.c (gimplify_vla_decl): Ditto.
3217
3218         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
3219         (gimple_call_set_alloca_for_var): New inline function.
3220         (gimple_call_alloca_for_var_p): Ditto.
3221         * gimple.c (gimple_build_call_from_tree): Remember
3222         CALL_ALLOCA_FOR_VAR_P state.
3223         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
3224
3225         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
3226         calls if they were for VLA objects.
3227
3228 2011-04-15  Martin Jambor  <mjambor@suse.cz>
3229
3230         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
3231         of ADR_EXPRs.
3232
3233 2011-04-15  Martin Jambor  <mjambor@suse.cz>
3234
3235         PR middle-end/48601
3236         * tree-emutls.c (lower_emutls_function_body): Call
3237         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
3238         result is non-NULL.
3239
3240 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
3241
3242         * c-decl.c (detect_field_duplicates): Call
3243         objc_detect_field_duplicates instead of objc_get_interface_ivars.
3244
3245 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
3246
3247         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
3248         * gimple.c (gimple_asm_clobbers_memory_p): Define.
3249         * ipa-pure-const.c (check_stmt): Call it.
3250         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
3251
3252 2011-04-15  Richard Guenther  <rguenther@suse.de>
3253
3254         PR tree-optimization/48290
3255         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
3256         Properly decide inhibiting propagation based on the valueized
3257         operand.  Do loop-closed SSA form preserving here ...
3258         (init_copy_prop): ... not here.
3259
3260 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
3261
3262         PR target/48612
3263         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
3264         (*ieee_smax<mode>3): Likewise.
3265
3266 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3267
3268         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
3269         Replace match_operand with match_dup for the third operand in
3270         these expanders.
3271
3272 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
3273
3274         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
3275         to track processing of conditionals.  Update all callers.
3276         (try_combine, simplify_if_then_else): Update.
3277
3278 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
3279
3280         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
3281         -fsched-pressure.
3282
3283 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
3284
3285         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
3286         instead of match_operand for operand 3.
3287
3288 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
3289
3290         * recog.h (insn_operand_data): Add an "allows_mem" field.
3291         * genoutput.c (output_operand_data): Initialize it.
3292         * optabs.c (maybe_legitimize_operand_same_code): New function.
3293         (maybe_legitimize_operand): Use it when matching the original
3294         op->value.
3295
3296 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
3297
3298         * gimplify.c: Fix issues in comments throughout.
3299         (voidify_wrapper_expr): Fix long line.
3300         (build_stack_save_restore): Likewise.
3301         (gimplify_loop_expr): Likewise.
3302         (gimplify_compound_lval): Likewise.
3303         (gimplify_init_ctor_eval): Likewise.
3304         (gimplify_modify_expr_rhs): Likewise.
3305         (omp_notice_threadprivate_variable): Likewise.
3306
3307 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
3308
3309         * cfgexpand.c (expand_call_stmt): Convert the function type to the
3310         original one if this is not a builtin function.
3311
3312 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
3313
3314         PR target/48605
3315         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
3316         offset it as needed based on top 2 bits in operands[3], change
3317         MEM mode to SFmode and mask those 2 bits away from operands[3].
3318
3319 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
3320
3321         * c-parser.c (c_parser_objc_protocol_definition): Updated for
3322         change from objc_declare_protocols() to objc_declare_protocol().
3323
3324 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
3325
3326         * config/i386/sse.md (sse4_1): New mode attribute.
3327         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
3328         avx_blend<ssemodesuffix><avxmodesuffix> and
3329         sse4_1_blend<ssemodesuffix> using VF mode iterator.
3330         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
3331         avx_blendv<ssemodesuffix><avxmodesuffix> and
3332         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
3333         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
3334         avx_dp<ssemodesuffix><avxmodesuffix> and
3335         sse4_1_dp<ssemodesuffix> using VF mode iterator.
3336         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
3337         (sse4_1_packusdw): Merge with *avx_packusdw.
3338         (sse4_1_pblendvb): Merge with *avx_pblendvb.
3339         (sse4_1_pblendw): Merge with *avx_pblendw.
3340         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
3341         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
3342         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
3343         VF mode iterator.
3344         (sse4_1_round<ssescalarmodesuffix>): Merge with
3345         *avx_round<ssescalarmodesuffix>.
3346         (aesenc): Merge with *avx_aesenc.
3347         (aesenclast): Merge with *avx_aesenclast.
3348         (aesdec): Merge with *avx_aesdec.
3349         (aesdeclast): Merge with *avx_aesdeclast.
3350         (pclmulqdq): Merge with *pclmulqdq.
3351         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
3352         New predicate.
3353         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
3354
3355 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
3356
3357         PR middle-end/48608
3358         * cfgexpand.c (get_decl_align_unit): Renamed to ...
3359         (align_local_variable): This.  Update DECL_ALIGN.
3360         (add_stack_var): Updated.
3361         (expand_one_stack_var): Likewise.
3362
3363 2011-04-14  Richard Guenther  <rguenther@suse.de>
3364
3365         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
3366         Remove.
3367         (dse_initialize_block_local_data, dse_leave_block,
3368         record_voperand_set, get_stmt_uid): Likewise.
3369         (dse_possible_dead_store_p): Allow any kind of killing stmt.
3370         (dse_optimize_stmt): Remove voperand set handling code.
3371         Simplify and improve to handle any kind of killing stmt.
3372         (dse_record_phi): Remove.
3373         (dse_enter_block): Simplify.
3374         (tree_ssa_dse): Likewise.
3375         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
3376
3377 2011-04-14  Jan Hubicka  <jh@suse.cz>
3378
3379         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
3380         * cgraph.h (struct inline_summary): Move to ipa-inline.h
3381         (cgraph_local_info): Remove inline_summary.
3382         * ipa-cp.c: Include ipa-inline.h.
3383         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
3384         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
3385         accesor.
3386         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
3387         (input_overwrite_node): Do not set inline summary.
3388         (input_node): Do not stream inline summary.
3389         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
3390         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
3391         growth; we do not have inline parameters computed for that anyway.
3392         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
3393         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
3394         (inline_summary_t): New type and VECtor.
3395         (debug_inline_summary, dump_inline_summaries): Declare.
3396         (inline_summary): Use VOCtor.
3397         (estimate_edge_growth): Kill hack computing call stmt size directly.
3398         * lto-section-in.c (lto_section_name): Add inline section.
3399         * ipa-inline-analysis.c: Include lto-streamer.h
3400         (node_removal_hook_holder, node_duplication_hook_holder): New holders
3401         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
3402         (inline_summary_vec): Define.
3403         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
3404         dump_inline_summaries): New functions.
3405         (estimate_function_body_sizes): Properly compute size/time of outgoing
3406         calls.
3407         (compute_inline_parameters): Alloc inline_summary; do not compute
3408         size/time of incomming calls.
3409         (estimate_edge_time): Avoid missing time summary hack.
3410         (inline_read_summary): Read inline summary info.
3411         (inline_write_summary): Write inline summary info.
3412         (inline_free_summary): Free all hooks and inline summary vector.
3413         * lto-streamer.h: Add LTO_section_inline_summary section.
3414         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
3415         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
3416
3417 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
3418
3419         * tree-vectorizer.h (vect_strided_store_supported): Add a
3420         HOST_WIDE_INT argument.
3421         (vect_strided_load_supported): Likewise.
3422         (vect_permute_store_chain): Return void.
3423         (vect_transform_strided_load): Likewise.
3424         (vect_permute_load_chain): Delete.
3425         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
3426         count argument.  Check that the count is a power of two.
3427         (vect_strided_load_supported): Likewise.
3428         (vect_permute_store_chain): Return void.  Update after above changes.
3429         Assert that the access is supported.
3430         (vect_permute_load_chain): Likewise.
3431         (vect_transform_strided_load): Return void.
3432         * tree-vect-stmts.c (vectorizable_store): Update calls after
3433         above interface changes.
3434         (vectorizable_load): Likewise.
3435         (vect_analyze_stmt): Don't check for strided powers of two here.
3436
3437 2011-04-14  Richard Guenther  <rguenther@suse.de>
3438
3439         PR tree-optimization/48590
3440         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
3441         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
3442         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
3443         BUILT_IN_STACK_SAVE.
3444         * tree-ssa-dce.c (propagate_necessity): Handle
3445         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
3446
3447 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
3448
3449         * c-parser.c (c_parser_objc_class_declaration): Updated call to
3450         objc_declare_class.
3451
3452 2011-04-14  Richard Guenther  <rguenther@suse.de>
3453
3454         * tree.h (get_object_alignment_1): Declare.
3455         * builtins.c (get_object_alignment_1): Split out worker from ...
3456         (get_object_alignment): ... here.
3457         * fold-const.c (get_pointer_modulus_and_residue): Use
3458         get_object_alignment_1.
3459
3460 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
3461
3462         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
3463         type parameter.
3464         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
3465         parameter.  Generalise code to handle arrays as well as vectors.
3466         (vect_setup_realignment): Update accordingly.
3467         * tree-vect-stmts.c (vectorizable_store): Likewise.
3468         (vectorizable_load): Likewise.
3469
3470 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
3471
3472         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
3473         within the per-copy loop.
3474
3475 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
3476
3477         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
3478         in the dump file.
3479
3480 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
3481
3482         * doc/options.texi (Negative): Explicitly mention that the
3483         Negative chain must be circular.
3484
3485 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
3486
3487         * function.h (block_chainon): Declare.
3488         * function.c (block_chainon): Define.
3489
3490 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
3491             Eric Weddington  <eric.weddington@atmel.com>
3492             Georg-Johann Lay <avr@gjlay.de>
3493
3494         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
3495         New Includes
3496         (avr_init_builtins, avr_expand_builtin,
3497         avr_expand_delay_cycles, avr_expand_unop_builtin,
3498         avr_expand_binop_builtin ): New functions.
3499         (avr_builtin_id): New enum
3500         (struct avr_builtin_description): New struct
3501         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
3502         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
3503
3504         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
3505         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
3506         UNSPECV_DELAY_CYCLES): new enumeration values
3507         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
3508         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
3509         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
3510         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
3511         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
3512         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
3513         "fmulsu"): New insns
3514
3515         * config/avr/avr-c.c: fix line endings
3516         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
3517         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
3518         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
3519         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
3520         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
3521
3522         * doc/extend.texi (AVR Built-in Functions): New node
3523         (Target Builtins): Add documentation of AVR
3524         built-in functions.
3525
3526 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
3527
3528         PR target/44643
3529         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
3530         alone. Error if non-const data has attribute progmem.
3531
3532 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
3533
3534         * tree.h (struct tree_constructor): Include tree_typed instead of
3535         tree_common.
3536         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
3537         TS_TYPED instead of TS_COMMON.
3538
3539 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
3540
3541         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
3542         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
3543         (sse2_psadbw): Merge with *avx_psadbw.
3544         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
3545         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
3546         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
3547         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
3548         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
3549         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
3550         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
3551         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
3552         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
3553         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
3554         (ssse3_palignrti): Merge with *avx_palignrti.
3555
3556 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
3557
3558         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
3559         * tree-ssanames.c (fini_ssanames): VEC_free it.
3560         (make_ssa_name_fn): Update for VECness of free_ssanames.
3561         (release_ssa_name, release_dead_ssa_names): Likewise.
3562         * tree.h (struct tree_ssa_name): Include tree_typed instead of
3563         tree_common.
3564         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
3565         TS_TYPED instead of TS_COMMON.
3566
3567 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
3568
3569         * postreload-gcse.c (gcse_after_reload_main): Add calls to
3570         statistics_counter_event.
3571         * tree-ssa-copyrename.c (stats): Define.
3572         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
3573         statistics_counter_event.
3574         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
3575         (bswap_stats, widen_mul_stats): Define.
3576         (insert_reciprocals): Increment rdivs_inserted.
3577         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
3578         rfuncs_inserted.  Add calls to statistics_counter_event.
3579         (execute_cse_sincos_1): Increment inserted.
3580         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
3581         statistics_counter_event.
3582         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
3583         of bswap_stats.  Add calls to statistics_counter_event.
3584         (convert_mult_to_widen): Increment widen_mults_inserted.
3585         (convert_plusminus_to_widen): Increment maccs_inserted.
3586         (convert_mult_to_fma): Increment fmas_inserted.
3587         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
3588         calls to statistics_counter_event.
3589
3590 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
3591
3592         PR rtl-optimization/48455
3593         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
3594         `temp_costs->mem_cost'.
3595
3596 2011-04-13  Jan Hubicka  <jh@suse.cz>
3597
3598         * ipa-inline.h: New file.
3599         * ipa-inline-analysis.c: New file. Broken out of ...
3600         * ipa-inline.c: ... this file; update toplevel comment;
3601         include ipa-inline.h
3602         (inline_summary): Move to ipa-inline.h
3603         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
3604         ipa-inline-analysis.c.
3605         (cgraph_estimate_time_after_inlining): Rename to
3606         estiamte_time_after_inlining; move to ipa-inline-analysis.c
3607         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
3608         to estimate_edge_growth.
3609         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
3610         rename to estimate_size_after_inlining.
3611         (cgraph_mark_inline_edge): Update for new naming convention.
3612         (cgraph_check_inline_limits): Likewise.
3613         (cgraph_edge_badness): Likewise.
3614         (cgraph_decide_recursive_inlining): Likewise.
3615         (cgraph_decide_inlining_of_small_functions): Likewise.
3616         (cgraph_decide_inlining_incrementally): Likewise.
3617         (cgraph_estimate_growth): Rename to estimate_growth; move to
3618         ipa-inline-analysis.c.
3619         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
3620         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
3621         (compute_inline_parameters): Likewise.
3622         (compute_inline_parameters_for_current): Likewise.
3623         (pass_inline_parameters): Likewise.
3624         (inline_indirect_intraprocedural_analysis): Likewise.
3625         (analyze_function): Rename to inline_analyze_function; likewise.
3626         (add_new_function): Move to ipa-inline-analysis.c.
3627         (inline_generate_summary): Likewise.
3628         (inline_read_summary): Likewise.
3629         (inline_write_summary): Likewise.
3630         * Makefile.in (ipa-inline-analysis.c): New file.
3631
3632 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3633
3634         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
3635         * configure: Regenerate.
3636
3637 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
3638
3639         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
3640         instead of tree_common.
3641         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
3642         Likewise.
3643         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
3644         TS_TYPED rather than TS_COMMON.
3645         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
3646
3647 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
3648
3649         PR target/45263
3650         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
3651         r20 around calls of __tablejump_elpm__
3652
3653 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
3654
3655         PR middle-end/48591
3656         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
3657         NULL.
3658         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
3659
3660 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
3661
3662         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
3663         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
3664         (cfi_vec): New typedef.
3665         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
3666         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
3667         (cie_cfi_vec): New static variable.
3668         (cie_cfi_head): Delete.
3669         (add_cfi): Accept a cfi_vec * as first argument. All callers and
3670         declaration changed. Use vector rather than list operations.
3671         (new_cfi): Don't initialize the dw_cfi_next field.
3672         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
3673         rather than list operations.
3674         (lookup_cfa): Use vector rather than list operations.
3675         (output_cfis): New argument upto. Accept a cfi_vec rather than
3676         a dw_cfi_ref list head as argument. All callers changed.
3677         Iterate over the vector using upto as a maximum index.
3678         (output_all_cfis): New static function.
3679         (output_fde): Use vector rather than list operations. Use the
3680         new upto argument for output_cfis rather than manipulating a
3681         list.
3682         (dwarf2out_begin_prologue): Change initializations to match
3683         new struct members.
3684         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
3685         from the vector length rather than searching for the end of a list.
3686         Use output_all_cfis.
3687         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
3688
3689 2011-04-13  Nick Clifton  <nickc@redhat.com>
3690
3691         * config/rx/rx.md (movmemsi): Do not use this pattern when
3692         volatile pointers are involved.
3693
3694 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
3695
3696         * config/i386/sse.md (pinsrbits): Remove.
3697         (sse2_packsswb): Merge with *avx_packsswb.
3698         (sse2_packssdw): Merge with *avx_packssdw.
3699         (sse2_packuswb): Merge with *avx_packuswb.
3700         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
3701         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
3702         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
3703         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
3704         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
3705         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
3706         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
3707         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
3708         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
3709         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
3710         (sse2_loadld): Merge with *avx_loadld.
3711         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
3712         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
3713         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
3714         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
3715         (vec_concatv2di): Merge with *vec_concatv2di_avx.
3716
3717 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
3718
3719         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
3720         calling TREE_CHAIN.
3721         * print-tree.c (print_node): Likewise.
3722         * tree-inline.c (copy_tree_r): Likewise.
3723         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
3724         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
3725         instead of TS_COMMON.
3726         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
3727         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
3728         (copy_node_stat): Zero TREE_CHAIN only if necessary.
3729         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
3730         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
3731         ...and these...
3732         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
3733         * tree.h: ...here.
3734         (TREE_CHAIN): Check for a TS_COMMON structure.
3735         (TREE_TYPE): Check for a TS_TYPED structure.
3736
3737 2011-04-12  Pat Haugen <pthaugen@us.ibm.com>
3738
3739         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
3740         cgraph_get_create_node instead of cgraph_node.
3741
3742 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
3743
3744         * c-parser.c (c_parser_initelt): Updated call to
3745         objc_build_message_expr.
3746         (c_parser_postfix_expression): Likewise.
3747
3748 2011-04-12  Kai Tietz  <ktietz@redhat.com>
3749
3750         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
3751         MASK_MS_BITFIELD_LAYOUT bit.
3752
3753 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
3754
3755         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
3756         assert it is always true.
3757         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
3758         moves.
3759
3760 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
3761
3762         * c-parser.c (c_lex_one_token): Rewritten conditional used when
3763         compiling Objective-C to be more efficient.
3764
3765 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
3766
3767         * opts-common.c (decode_cmdline_options_to_array): Remove variable
3768         argv_copied.
3769
3770 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
3771
3772         * recog.h, genoutput.c, optabs.c: Revert last patch.
3773
3774 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3775
3776         PR target/48090
3777         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
3778
3779 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
3780
3781         * recog.h (insn_operand_data): Add an "allows_mem" field.
3782         * genoutput.c (output_operand_data): Initialize it.
3783         * optabs.c (maybe_legitimize_operand_same_code): New function.
3784         (maybe_legitimize_operand): Use it when matching the original
3785         op->value.
3786
3787 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
3788
3789         * genpreds.c (process_define_predicate): Move most processing
3790         to gensupport.c.  Continue to validate the expression.
3791         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
3792         (process_define_predicate): Move processing to gensupport.c.
3793         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
3794         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
3795         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
3796         argument.
3797         (valid_predicate_name_p): New function, split out from old
3798         genpreds.c:process_define_predicate.
3799         (process_define_predicate): New function, combining code from
3800         old genpreds.c and genrecog.c functions.
3801         (process_rtx): Call it for DEFINE_PREDICATE and
3802         DEFINE_SPECIAL_PREDICATE.
3803
3804 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
3805
3806         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
3807         size of a '%A' memory reference.
3808         (T_DREG, T_QREG): New neon_builtin_type_bits.
3809         (arm_init_neon_builtins): Assert that the load and store operands
3810         are neon_struct_operands.
3811         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
3812         (NEON_ARG_MEMORY): New builtin_arg.
3813         (neon_dereference_pointer): New function.
3814         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
3815         Handle NEON_ARG_MEMORY.
3816         (arm_expand_neon_builtin): Update after above interface changes.
3817         Use NEON_ARG_MEMORY for loads and stores.
3818         * config/arm/predicates.md (neon_struct_operand): New predicate.
3819         * config/arm/iterators.md (V_two_elem): Tweak formatting.
3820         (V_three_elem): Use BLKmode for accesses that have no associated mode.
3821         (V_four_elem): Tweak formatting.
3822         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
3823         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
3824         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
3825         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
3826         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
3827         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
3828         (neon_vst4<mode>): Replace pointer operand with a memory operand.
3829         Use %A in the output template.
3830         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
3831         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
3832         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
3833         the width of the memory access.  Remove post-increment.
3834         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
3835
3836 2011-04-12  Nick Clifton  <nickc@redhat.com>
3837
3838         * config/v850/v850.c (expand_prologue): Do not use the CALLT
3839         instruction for interrupt handlers if the target is the basic V850
3840         architecture.
3841         (expand_epilogue): Likewise.
3842
3843 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
3844
3845         PR rtl-optimization/48549
3846         * combine.c (propagate_for_debug): Also stop after BB_END of
3847         this_basic_block.  Process LAST and just stop processing after it.
3848         (combine_instructions): If last_combined_insn has been deleted,
3849         set last_combined_insn to its PREV_INSN.
3850
3851 2011-04-12  Richard Guenther  <rguenther@suse.de>
3852
3853         PR tree-optimization/46076
3854         * gimple.h (struct gimple_statement_call): Add fntype field.
3855         (gimple_call_fntype): Adjust.
3856         (gimple_call_set_fntype): New function.
3857         * gimple.c (gimple_build_call_1): Set the call function type.
3858         * gimplify.c (gimplify_call_expr): Preserve the function
3859         type the frontend used for the call.
3860         (gimplify_modify_expr): Likewise.
3861         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
3862         function type.
3863         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
3864         function type.
3865         * tree-ssa.c (useless_type_conversion_p): Function pointer
3866         conversions are useless.
3867
3868 2011-04-12  Martin Jambor  <mjambor@suse.cz>
3869
3870         * cgraph.h (cgraph_node): Remove function declaration.
3871         (cgraph_create_node): Declare.
3872         (cgraph_get_create_node): Likewise.
3873         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
3874         Updated all callers.
3875         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
3876         the decl does not already exist.  Call cgraph_get_create_node instead
3877         of cgraph_node.
3878         (cgraph_get_create_node): New function.
3879         (cgraph_same_body_alias): Update comment.
3880         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
3881         assert it does not return NULL.
3882         (cgraph_update_edges_for_call_stmt): Likewise.
3883         (cgraph_clone_edge): Likewise.
3884         (cgraph_create_virtual_clone): Likewise.
3885         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
3886         instead of cgraph_node.
3887         (cgraph_add_new_function): Call cgraph_create_node or
3888         cgraph_get_create_node instead of cgraph_node.
3889         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
3890         instead of cgraph_node.
3891         (record_eh_tables): Likewise.
3892         (mark_address): Likewise.
3893         (mark_load): Likewise.
3894         (build_cgraph_edges): Call cgraph_get_create_node instead
3895         of cgraph_node.
3896         (rebuild_cgraph_edges): Likewise.
3897         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
3898         instead of cgraph_node.
3899         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
3900         cgraph_node.
3901         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
3902         cgraph_create_node instead of cgraph_node.
3903         * c-decl.c (finish_function): Call cgraph_get_create_node instead
3904         of cgraph_node.
3905         * lto-cgraph.c (input_node): Likewise.
3906         * lto-streamer-in.c (input_function): Likewise.
3907         * varasm.c (mark_decl_referenced): Likewise.
3908         (assemble_alias): Likewise.
3909
3910 2011-04-12  Martin Jambor  <mjambor@suse.cz>
3911
3912         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
3913         instead of cgraph_node and assert it does not return NULL.
3914         * lto-streamer-in.c (lto_read_body): Likewise.
3915         * omp-low.c (new_omp_context): Likewise.
3916         (create_task_copyfn): Likewise.
3917         * tree-emutls.c (lower_emutls_function_body): Likewise.
3918         * matrix-reorg.c (transform_allocation_sites): Likewise.
3919
3920 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
3921
3922         PR c/48552
3923         * c-typeck.c (build_asm_expr): Error out on attempts to use
3924         void type outputs or inputs for constraints that allow reg or
3925         don't allow memory.
3926
3927 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
3928             Richard Earnshaw  <rearnsha@arm.com>
3929
3930         PR target/48250
3931         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
3932         to use sign-magnitude offsets. Reject unsupported unaligned
3933         cases. Add detailed description in comments.
3934         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
3935         condition from TARGET_32BIT to TARGET_ARM.
3936
3937 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
3938
3939         * tree.h (struct typed_tree): New.
3940         (struct tree_common): Include it instead of tree_base.
3941         (TREE_TYPE): Update for new location of type field.
3942         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
3943         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
3944         (union tree_node): Add typed field.
3945         * treestruct.def (TS_TYPED): New.
3946         * lto-streamer.c (check_handled_ts_structures): Handle it.
3947         * tree.c (MARK_TS_TYPED): New macro.
3948         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
3949
3950 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
3951
3952         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
3953         (force_nonfallthru): Do not alter the loop nest if no basic block
3954         was created.
3955
3956 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
3957
3958         * config/i386/sse.md (VI): New mode iterator.
3959         (SSEMODEI): Remove.
3960         (AVX256MODEI): Ditto.
3961         (AVXMODEF4P): Ditto.
3962         (avxvecpsmode): Ditto.
3963         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
3964         (sse2_andnot<mode>3): New expander.
3965         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
3966         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
3967         (<any_logic:code><mode>3): Use VI mode iterator.
3968         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
3969         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
3970         (*andnottf3): Handle AVX three-operand constraints.
3971         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
3972
3973 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
3974             Robert Millan  <rmh@gnu.org>