OSDN Git Service

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