1 2011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
3 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
5 2011-05-07 Jan Hubicka <jh@suse.cz>
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.
13 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
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.
24 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
26 PR tree-optimization/48837
27 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
28 when accumulator transformation is performed.
30 2011-05-06 Jan Hubicka <jh@suse.cz>
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.
38 2011-05-06 Jan Hubicka <jh@suse.cz>
40 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
42 2011-05-06 Jan Hubicka <jh@suse.cz>
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):
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.
79 2011-05-06 Joseph Myers <joseph@codesourcery.com>
81 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
82 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
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.
92 2011-05-06 Cary Coutant <ccoutant@google.com>
94 * dwarf2out.c (contains_subprogram_definition): New function.
95 (should_move_die_to_comdat): Call it.
97 2011-05-06 Jeff Law <law@redhat.com>
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.
105 2011-05-06 Alan Modra <amodra@gmail.com>
108 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
109 const0_rtx as the arg to the dummy __tls_get_addr libcall.
111 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
113 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
114 constraint modifier to "r".
116 2011-05-06 Joseph Myers <joseph@codesourcery.com>
118 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
119 fall through for OPT_mcmodel_.
121 2011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
123 * config/s390/s390.c (s390_asm_trampoline_template): Comment
125 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
127 2011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
130 * config/arm/arm.opt (marm): Document it.
131 (mthumb): Reject negative variant.
133 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
136 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
137 Fix typo in "ccvt" variable name.
139 2011-05-06 Tristan Gingold <gingold@adacore.com>
142 * config/vms/vms-ar.c (main): Remove cwd variable.
144 2011-05-06 Jakub Jelinek <jakub@redhat.com>
147 * var-tracking.c (prepare_call_arguments): Move else before #endif.
149 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
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.
159 2011-05-05 Jason Merrill <jason@redhat.com>
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
167 2011-05-05 Joseph Myers <joseph@codesourcery.com>
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.
173 2011-05-05 Bernd Schmidt <bernds@codesourcery.com>
175 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
178 2011-05-05 Steve Ellcey <sje@cup.hp.com>
180 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
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.
191 2011-05-05 Jakub Jelinek <jakub@redhat.com>
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
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.
204 2011-05-05 Julian Brown <julian@codesourcery.com>
206 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
207 parenthesis in D-register case.
209 2011-05-05 Joseph Myers <joseph@codesourcery.com>
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.
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.
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
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.
265 2011-05-05 Michael Matz <matz@suse.de>
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.
284 2011-05-05 Richard Guenther <rguenther@suse.de>
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.
292 2011-05-05 Jakub Jelinek <jakub@redhat.com>
294 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
296 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
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.
314 2011-05-05 Uros Bizjak <ubizjak@gmail.com>
316 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
318 (*movdf_internal): Ditto.
319 (*movdf_internal_nointeger): Ditto.
320 (*movsf_internal): Ditto.
322 2011-05-05 Joseph Myers <joseph@codesourcery.com>
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
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
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.
348 2011-05-05 Michael Hope <michael.hope@linaro.org>
351 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
354 2011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
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.
360 2011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
362 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
363 targetm.asm_out.print_operand.
364 * config/sol2.c: Include target.h.
366 2011-05-04 Jan Hubicka <jh@suse.cz>
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
376 2011-05-04 Bernd Schmidt <bernds@codesourcery.com>
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.
382 2011-05-04 Tobias Burnus <burnus@net-b.de>
385 * doc/invoke.texi (Ofast): Document that it
386 enables Fortran's -fno-protect-parens.
388 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
390 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
392 2011-05-04 Eric Botcazou <ebotcazou@adacore.com>
394 * stor-layout.c (variable_size): Do not issue errors.
396 2011-05-04 Richard Guenther <rguenther@suse.de>
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.
404 2011-05-04 Richard Guenther <rguenther@suse.de>
406 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
408 * c-typeck.c (really_start_incremental_init): Use bitsize_int
409 for constructor indices.
410 (push_init_level): Likewise.
412 2011-05-04 Richard Guenther <rguenther@suse.de>
414 * explow.c (promote_mode): Move variable declarations before code.
416 2011-05-04 Nathan Froyd <froydnj@codesourcery.com>
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.
425 2011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
427 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
428 before setting STMT_VINFO_TYPE.
430 2011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
432 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
433 instead of spu_pass_by_reference.
435 2011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
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
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.
445 * doc/tm.texi: Document that TYPE argument might be NULL.
447 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
449 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
451 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
454 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
456 2011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
458 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
459 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
461 * mips-tfile.c: ... here.
462 Don't include coretypes.h, tm.h, filenames.h.
463 (saber_stop): Remove definition and all calls.
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.
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.
480 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
483 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
484 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
486 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
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.
495 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
498 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
500 2011-05-04 Nick Clifton <nickc@redhat.com>
502 * config/mn10300/mn10300.c: Include cfgloop.h.
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.
525 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
528 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
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.
536 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
538 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
540 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
542 2011-05-04 Richard Guenther <rguenther@suse.de>
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.
582 2011-05-03 Mark Wielaard <mjw@redhat.com>
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.
594 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
597 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
599 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
603 * combine.c (try_combine): Skip debug insns at m_split tests.
605 2011-04-26 Mark Wielaard <mjw@redhat.com>
608 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
609 when info_section_emitted.
611 2011-05-03 Joseph Myers <joseph@codesourcery.com>
613 * config/mips/mips-opts.h: New.
614 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
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
620 * config/mips/mips.h (enum mips_code_readable_setting): Move to
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.
631 2011-05-03 Jan Hubicka <jh@suse.cz>
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):
653 * passes.c (ipa_write_summaries): Update.
655 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
658 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
659 bf542/bf544/bf547/bf548/bf549.
661 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
663 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
665 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
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.
673 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
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.
682 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
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.
688 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
690 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
691 instead of build_function_type.
693 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
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.
700 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
702 * config/sh/sh.c (sh_media_init_builtins): Call
703 build_function_type_list instead of build_function_type.
705 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
707 * config/sparc/sparc.c (sparc_file_end): Call
708 build_function_type_list instead of build_function_type.
710 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
712 * config/alpha/alpha.c (alpha_init_builtins): Call
713 build_function_type_list instead of build_function_type.
715 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
717 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
718 build_function_type_list instead of build_function_type.
720 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
722 * config/iq2000/i2000.c (iq2000_init_builtins): Call
723 build_function_type_list instead of build_function_type.
724 Delete `endlink' variable.
726 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
728 * config/avr/avr.c (avr_init_builtins): Call
729 build_function_type_list instead of build_function_type.
731 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
733 * config/picochip/picochip.c (picochip_init_builtins): Call
734 build_function_type_list instead of build_function_type.
735 Delete `endlink' variable.
737 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
739 * config/bfin/bfin.c (bfin_init_builtins): Call
740 build_function_type_list instead of build_function_type.
742 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
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.
748 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
751 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
752 libbffastfp overrides libgcc when -mfast-fp.
754 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
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
761 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
763 Originally From Bernd Schmidt
764 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
767 2011-05-03 Jeff Law <law@redhat.com>
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
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.
779 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
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.
788 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
789 Jakub Jelinek <jakub@redhat.com>
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.
795 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
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.
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):
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
821 2011-05-03 Richard Guenther <rguenther@suse.de>
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.
828 2011-05-03 Richard Guenther <rguenther@suse.de>
830 * c-decl.c (grokdeclarator): Instead of looking at
831 TREE_OVERFLOW check if the constant fits in the index type.
833 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
835 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
836 (vec_store_lanes<mode><mode>): Likewise.
838 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
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
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.
869 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
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.
881 2011-05-03 Eric Botcazou <ebotcazou@adacore.com>
884 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
885 for -fstack-check if the size to allocate is negative.
887 2011-05-02 Lawrence Crowl <crowl@google.com>
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
892 (timevar_cond_stop): New for stopping a timer when it was not already
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.
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.
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.
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.
919 * c-decl.c (c_write_global_declarations): Add start/stop of
920 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
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.
927 2011-05-02 Jason Merrill <jason@redhat.com>
930 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
932 2011-05-02 Simon Martin <simartin@users.sourceforge.net>
935 * c-decl.c (finish_decl): Only create a composite if the types are
938 2011-05-02 Joseph Myers <joseph@codesourcery.com>
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.
953 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
955 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
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.
967 2011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
970 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
971 inputs match the output.
973 2011-05-02 Andreas Schwab <schwab@linux-m68k.org>
976 * config/m68k/m68k.c (m68k_expand_prologue): Set
977 current_function_static_stack_size.
979 2011-05-02 Jan Hubicka <jh@suse.cz>
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.
986 2011-05-02 Joseph Myers <joseph@codesourcery.com>
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
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.
1011 2011-05-02 Richard Guenther <rguenther@suse.de>
1013 * varasm.c (output_constructor_regular_field): Compute zero-based
1014 index with double-ints. Make sure to ICE instead of producing
1016 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
1017 in asserts. Properly use a signed type.
1019 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
1021 * config/i386/sse.md (V): New mode iterator.
1022 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
1024 (V_256): Rename from AVX256MODE.
1025 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
1026 condition to all users.
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
1046 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
1048 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
1049 xop_pcmov_<mode>256. Use V mode iterator.
1051 Adjust RTX patterns globally for renamed mode attributes.
1053 2011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
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.
1059 2011-05-02 Richard Guenther <rguenther@suse.de>
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.
1065 2011-05-02 Jan Hubicka <jh@suse.cz>
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
1077 2011-05-02 Richard Guenther <rguenther@suse.de>
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.
1083 2011-05-01 Jan Hubicka <jh@suse.cz>
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
1090 (dump_inline_summary): Export.
1091 (debug_inline_summary): Declare as DEBUG_FUNCTION.
1093 2011-05-01 Anatoly Sokolov <aesok@post.ru>
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
1100 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
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
1108 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
1109 memory_move_cost call.
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.
1115 2011-04-30 Jan Hubicka <jh@suse.cz>
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.
1122 2011-04-30 Jan Hubicka <jh@suse.cz>
1124 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
1127 2011-04-30 Anatoly Sokolov <aesok@post.ru>
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
1140 2011-04-30 Jan Hubicka <jh@suse.cz>
1143 * ipa-inline.c (early_inliner): Disable when doing late
1144 addition of function.
1146 2011-04-30 Jakub Jelinek <jakub@redhat.com>
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
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
1177 (resolve_addr): Call mark_base_types.
1178 (dwarf2out_finish): Call move_marked_base_types.
1180 PR tree-optimization/48809
1181 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
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.
1187 2011-04-29 Jeff Law <law@redhat.com>
1189 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
1191 2011-04-29 Martin Jambor <mjambor@suse.cz>
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
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.
1221 (ipa-inline.o): Likewise.
1223 2011-04-29 Jan Hubicka <jh@suse.cz>
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
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.
1245 2011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
1247 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
1249 2011-04-27 Xinliang David Li <davidxl@google.com>
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.
1256 2011-04-29 Richard Guenther <rguenther@suse.de>
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
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.
1282 2011-04-29 Richard Guenther <rguenther@suse.de>
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.
1307 2011-04-29 Richard Guenther <rguenther@suse.de>
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
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.
1316 2011-04-29 Michael Matz <matz@suse.de>
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.
1322 2011-04-29 Richard Guenther <rguenther@suse.de>
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
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.
1337 2011-04-29 Richard Guenther <rguenther@suse.de>
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.
1343 2011-04-29 Alexandre Oliva <aoliva@redhat.com>
1345 * haifa-sched.c (last_nondebug_scheduled_insn): New.
1346 (rank_for_schedule): Use it.
1347 (schedule_block): Set it.
1349 2011-04-28 David Li <davidxl@google.com>
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.
1375 2011-04-29 Alan Modra <amodra@gmail.com>
1377 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
1378 unspec plus offset. Tidy macho code.
1380 2011-04-29 Martin Jambor <mjambor@suse.cz>
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.
1386 2011-04-28 Ira Rosen <ira.rosen@linaro.org>
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
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):
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.
1408 2011-04-28 Jakub Jelinek <jakub@redhat.com>
1411 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
1414 2011-04-28 Joseph Myers <joseph@codesourcery.com>
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
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
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.
1434 2011-04-28 Jan Hubicka <jh@suse.cz>
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.
1441 2011-04-28 Richard Guenther <rguenther@suse.de>
1445 2011-04-28 Richard Guenther <rguenther@suse.de>
1447 * tree-ssa-structalias.c (solve_constraints): Build succ graph
1448 as late as possible.
1450 2011-04-28 Richard Guenther <rguenther@suse.de>
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.
1461 2011-04-28 Richard Guenther <rguenther@suse.de>
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.
1468 2011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
1470 * internal-fn.h (internal_fn_name_array): Declare.
1471 (internal_fn_flags_array): Likewise.
1473 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
1475 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
1476 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
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
1501 Adjust RTX patterns globally for renamed mode attributes.
1503 2011-04-27 Jan Hubcika <jh@suse.cz>
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.
1539 2011-04-27 Richard Guenther <rguenther@suse.de>
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.
1549 2011-04-27 Jan Hubicka <jh@suse.cz>
1551 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
1553 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
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.
1562 2011-04-27 Richard Guenther <rguenther@suse.de>
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.
1593 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
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.
1602 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1604 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
1606 2011-04-27 Jan Hubicka <jh@suse.cz>
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.
1613 2011-04-27 Richard Guenther <rguenther@suse.de>
1615 PR tree-optimization/48772
1616 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
1618 2011-04-27 Richard Guenther <rguenther@suse.de>
1620 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
1621 TARGET_MEM_REF handling.
1623 2011-04-27 Nick Clifton <nickc@redhat.com>
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.
1639 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
1640 end of the regno_reg_class array.
1642 2011-04-27 Jakub Jelinek <jakub@redhat.com>
1645 * c-typeck.c (build_binary_op): Don't wrap arguments if
1646 int_operands is true.
1648 2011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
1651 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
1652 targetm.calls.must_pass_in_stack for void type.
1654 2011-04-26 Jan Hubicka <jh@suse.cz>
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
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):
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.
1703 2011-04-26 Jason Merrill <jason@redhat.com>
1705 * tree-eh.c (lower_try_finally_switch): Create the label along with
1706 the CASE_LABEL_EXPR.
1708 2011-04-26 David S. Miller <davem@davemloft.net>
1709 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1711 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
1712 * configure: Regenerate.
1714 2011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
1717 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
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.
1725 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
1726 support for extracting SF on VSX.
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.
1738 2011-04-26 Joseph Myers <joseph@codesourcery.com>
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 *.
1745 2011-04-26 Xinliang David Li <davidxl@google.com>
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.
1757 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
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.
1763 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1765 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
1766 * config/mips/mips.opt (mmips-tfile): Remove.
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.
1774 2011-04-26 Jakub Jelinek <jakub@redhat.com>
1777 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
1778 is error_mark_node, set value to NULL.
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.
1785 2011-04-26 Uros Bizjak <ubizjak@gmail.com>
1787 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
1789 (ext_QIreg_nomode_operands): Remove.
1790 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
1794 2011-04-26 Andrew Stubbs <ams@codesourcery.com>
1796 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
1798 2011-04-26 Richard Guenther <rguenther@suse.de>
1800 * c-typeck.c (build_unary_op): Do not expand array-refs via
1801 pointer arithmetic. Only adjust qualifiers for function types.
1803 2011-04-26 Richard Guenther <rguenther@suse.de>
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.
1811 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
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.
1817 2011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
1819 * config/rs6000/titan.md (automata_option "progress"): Remove.
1821 2011-04-25 Jeff Law <law@redhat.com>
1823 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
1825 2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
1827 * system.h (ENUM_BITFIELD): Remove.
1829 2011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
1830 Eric Botcazou <ebotcazou@adacore.com>
1832 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
1833 for STORE_FLAG_VALUE==-1 case.
1835 2011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
1838 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
1839 LEGITIMATE_PIC_OPERAND_P.
1841 2011-04-24 Jan Hubicka <jh@suse.cz>
1843 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
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
1855 2011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
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.
1862 2011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
1864 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
1865 testsuite and make it version agnostic.
1867 2011-04-22 Jan Hubicka <jh@suse.cz>
1869 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
1871 2011-04-23 Jakub Jelinek <jakub@redhat.com>
1874 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
1875 to VOID_TYPE even around MODIFY_EXPR.
1877 2011-04-22 Mike Stump <mikestump@comcast.net>
1879 * gensupport.c (read_md_rtx): Fix typo in comment.
1880 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
1883 2011-04-22 Jan Hubicka <jh@suse.cz>
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
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):
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.
1960 2011-04-22 Richard Guenther <rguenther@suse.de>
1962 * tree.c (build_int_cst): Properly create canonicalized integer
1964 (build_int_cst_type): Remove scary comments.
1966 2011-04-22 Xinliang David Li <davidxl@google.com>
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.
1973 2011-04-22 Jakub Jelinek <jakub@redhat.com>
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.
1979 2011-04-22 Joseph Myers <joseph@codesourcery.com>
1981 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
1982 definition where used.
1984 2011-04-22 Jakub Jelinek <jakub@redhat.com>
1987 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
1988 TREE_STATIC variables declared inside of some OpenMP construct.
1990 2011-04-22 Martin Jambor <mjambor@suse.cz>
1993 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
1995 2011-04-22 Alexander Monakov <amonakov@ispras.ru>
1998 * c-typeck.c (pop_init_level): Do not warn about initializing
2001 2011-04-22 Alan Modra <amodra@gmail.com>
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
2016 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
2017 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
2018 sibcall_value_symbolic_64): Delete.
2020 2011-04-21 Xinliang David Li <davidxl@google.com>
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.
2035 2011-04-21 Ian Lance Taylor <iant@google.com>
2037 * godump.c (go_format_type): Use exported Go name for anonymous
2040 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
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.
2046 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
2048 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
2049 build_function_type_list instead of build_function_type.
2050 Delete variable `endlink'.
2052 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
2054 * config/s390/s390.c (s390_init_builtins): Call
2055 build_function_type_list instead of build_function_type.
2057 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
2059 * config/ia64/ia64.c (ia64_init_builtins): Call
2060 build_function_type_list instead of builtin_function_type.
2062 2011-04-21 Easwaran Raman <eraman@google.com>
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.
2072 2011-04-21 Dimitrios Apostolou <jimis@gmx.net>
2073 Jeff Law <law@redhat.com>
2075 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
2076 * gengtype.c (matching_file_name_substitute): Likewise.
2078 2011-04-21 Richard Guenther <rguenther@suse.de>
2081 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
2083 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
2085 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
2087 2011-04-21 Richard Guenther <rguenther@suse.de>
2089 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
2092 2011-04-21 Richard Guenther <rguenther@suse.de>
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.
2109 2011-04-21 Tristan Gingold <gingold@adacore.com>
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.
2115 2011-04-21 Tristan Gingold <gingold@adacore.com>
2117 * config/ia64/ia64.c (ia64_start_function): Add a guard.
2119 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
2122 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
2123 vec_extract and vec_concat for non-SSE4_1 targets.
2125 2011-04-21 Richard Guenther <rguenther@suse.de>
2127 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
2130 2011-04-21 Joseph Myers <joseph@codesourcery.com>
2132 * config/i386/cygming.h (union tree_node, TREE): Don't define or
2134 (FILE): Don't undefine.
2136 2011-04-21 Joseph Myers <joseph@codesourcery.com>
2138 * config/alpha/alpha.c (struct machine_function): Use rtx, not
2140 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
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
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
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
2158 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
2160 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
2162 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
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.
2168 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
2171 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
2172 for all Neon struct constants.
2174 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
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.
2193 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
2195 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
2196 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
2198 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2199 * config/alpha/predicates.md (input_operand): Update call to
2200 alpha_legitimate_constant_p.
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.
2210 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
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.
2219 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
2221 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
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.
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.
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
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.
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.
2247 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
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.
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.
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.
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.
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.
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.
2282 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
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.
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.
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
2301 (mmix_print_operand_address): Update accordingly.
2303 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
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.
2310 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
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.
2316 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
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.
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.
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.
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.
2341 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
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.
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
2353 (constant_address_p): Update accordingly.
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.
2363 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
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.
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.
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.
2377 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
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
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
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
2411 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
2412 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
2414 (xtensa_cannot_force_const_mem): ...this new function.
2416 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
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.
2422 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
2424 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
2425 instead of build_function_type.
2427 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
2429 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
2430 instead of build_function_type.
2432 2011-04-20 Uros Bizjak <ubizjak@gmail.com>
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.
2445 2011-04-20 Easwaran Raman <eraman@google.com>
2447 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
2448 containing union type only with -fstrict-aliasing.
2450 2011-04-20 Jim Meyering <meyering@redhat.com>
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.
2489 2011-04-20 Jakub Jelinek <jakub@redhat.com>
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.
2495 2011-04-20 Catherine Moore <clm@codesourcery.com>
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
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.
2505 2011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
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.
2510 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
2512 * config/arm/arm.c (arm_gen_constant): Move movw support ....
2513 (const_ok_for_op): ... to here.
2515 2011-04-20 Kai Tietz <ktietz@redhat.com>
2517 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
2518 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
2520 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
2522 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
2524 2011-04-20 Richard Guenther <rguenther@suse.de>
2526 PR tree-optimization/47892
2527 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
2530 2011-04-20 Eric Botcazou <ebotcazou@adacore.com>
2532 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
2534 2011-04-20 Tristan Gingold <gingold@adacore.com>
2536 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
2538 2011-04-20 Georg-Johann Lay <avr@gjlay.de>
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.
2548 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
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
2560 (avr_file_end): ...here.
2562 2011-04-20 Richard Guenther <rguenther@suse.de>
2565 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2566 objects and types here. Adjust for their offset before comparing.
2568 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
2570 * tree-vect-stmts.c (vectorizable_store): Only chain one related
2573 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
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
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
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.
2637 2011-04-19 Jan Hubicka <jh@suse.cz>
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.
2643 2011-04-19 Jan Hubicka <jh@suse.cz>
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;
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):
2661 * Makefile.in (ipa-inline-transform.o): New file.
2662 * cgraphunit.c (save_inline_function_body): Move to
2663 ipa-inline-transform.c
2665 2011-04-19 DJ Delorie <dj@redhat.com>
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
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
2681 2011-04-19 Anatoly Sokolov <aesok@post.ru>
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.
2687 2011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2689 * doc/install.texi (Configuration, --enable-threads): Remove mach.
2690 Add lynx, mipssde. Sort table.
2692 2011-04-19 Xinliang David Li <davidxl@google.com>
2694 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
2697 2011-04-19 Jakub Jelinek <jakub@redhat.com>
2700 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
2701 is a SUBREG with non-MODE_INT mode inside of it.
2703 2011-04-19 Martin Jambor <mjambor@suse.cz>
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.
2711 2011-04-19 Martin Jambor <mjambor@suse.cz>
2713 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
2714 non-pointer assignments.
2716 2011-04-19 Martin Jambor <mjambor@suse.cz>
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.
2729 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
2732 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
2733 the types if they have different enumeration identifiers.
2735 2011-04-19 Jan Hubicka <jh@suse.cz>
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.
2742 2011-04-19 Richard Guenther <rguenther@suse.de>
2745 * tree.c (free_lang_data): Do not reset the decl-assembler-name
2748 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
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.
2753 2011-04-19 Bernd Schmidt <bernds@codesourcery.com>
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.
2760 2011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
2762 * gengtype.h: Updated copyright year.
2763 (struct input_file_st): Add inpisplugin field.
2764 (type_fileloc): New function.
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.
2772 2011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
2774 * gengtype-state.c (string_eq): New.
2775 (read_state): Use string_eq instead of strcmp when creating the
2778 2011-04-19 Wei Guozhi <carrot@google.com>
2781 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
2782 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
2784 * config/arm/constraints.md (Uu): New constraint.
2785 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
2787 2011-04-19 Tristan Gingold <gingold@adacore.com>
2789 * config.gcc (-*-*-*vms): Added.
2790 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
2792 * config/vms/vms-ld.c: New file.
2793 * config/vms/vms-ar.c: New file.
2794 * config/vms/t-vmsnative: New file.
2796 2011-04-18 Xinliang David Li <davidxl@google.com>
2798 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
2800 2011-04-18 Jakub Jelinek <jakub@redhat.com>
2803 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
2804 if TREE_TYPE (v) is non-NULL.
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
2811 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
2813 2011-04-18 Michael Matz <matz@suse.de>
2814 Steve Ellcey <sje@cup.hp.com>
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.
2819 2011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
2821 * doc/passes.texi: Fill crossref nodes.
2823 2011-04-18 Jim Meyering <meyering@redhat.com>
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.
2832 2011-04-18 Uros Bizjak <ubizjak@gmail.com>
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
2846 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
2847 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
2848 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
2850 2011-04-18 Jan Hubicka <jh@suse.cz>
2852 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
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
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.
2870 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
2872 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
2874 2011-04-18 Jie Zhang <jie@codesourcery.com>
2875 Richard Earnshaw <rearnsha@arm.com>
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.
2890 * arm.h (enum arm_builtins): Move to ...
2891 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
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.
2903 2011-04-18 Richard Guenther <rguenther@suse.de>
2905 * tree.c (upper_bound_in_type): Build properly canonicalized
2907 (lower_bound_in_type): Likewise.
2909 2011-04-18 Richard Guenther <rguenther@suse.de>
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
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.
2918 2011-04-18 Richard Guenther <rguenther@suse.de>
2921 * tree.c (build_string): STRING_CST is now derived from tree_typed.
2923 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
2926 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
2927 DECL_IN_CONSTANT_POOL without RTL.
2929 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
2930 Ira Rosen <ira.rosen@linaro.org>
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.
2939 2011-04-18 Jakub Jelinek <jakub@redhat.com>
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.
2946 2011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
2948 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
2951 2011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
2953 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
2956 2011-04-17 Jan Hubicka <jh@suse.cz>
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.
2964 2011-04-17 Jan Hubicka <jh@suse.cz>
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
2971 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
2973 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
2975 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
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.
2982 2011-04-17 Revital Eres <revital.eres@linaro.org>
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.
2988 2011-04-17 Jan Hubicka <jh@suse.cz>
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.
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
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.
3057 2011-04-17 Revital Eres <revital.eres@linaro.org>
3059 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
3061 2011-04-17 Revital Eres <revital.eres@linaro.org>
3063 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
3065 2011-04-17 Michael Matz <matz@suse.de>
3067 PR tree-optimization/48622
3069 * ipa-inline-analysis.c (inline_read_summary): Read size/time
3070 in same order as they're written.
3072 2011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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.
3103 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
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.
3121 2011-04-16 Jan Hubicka <jh@suse.cz>
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):
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
3173 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
3175 * config/i386/sse.md (V16): New mode iterator.
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.
3199 2011-04-16 Bernd Schmidt <bernds@codesourcery.com>
3202 * haifa-sched.c (prune_ready_list, schedule_block): Use
3203 sched_pressure_p rather than flag_sched_pressure.
3205 2011-04-15 Pat Haugen <pthaugen@us.ibm.com>
3207 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
3208 cgraph_get_node instead of cgraph_get_create_node.
3210 2011-04-15 Jakub Jelinek <jakub@redhat.com>
3212 * cfgexpand.c (expand_debug_expr): Use
3213 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
3215 2011-04-15 Michael Matz <matz@suse.de>
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.
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.
3229 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
3230 calls if they were for VLA objects.
3232 2011-04-15 Martin Jambor <mjambor@suse.cz>
3234 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
3237 2011-04-15 Martin Jambor <mjambor@suse.cz>
3240 * tree-emutls.c (lower_emutls_function_body): Call
3241 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
3244 2011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
3246 * c-decl.c (detect_field_duplicates): Call
3247 objc_detect_field_duplicates instead of objc_get_interface_ivars.
3249 2011-04-15 Nathan Froyd <froydnj@codesourcery.com>
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.
3256 2011-04-15 Richard Guenther <rguenther@suse.de>
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.
3264 2011-04-15 H.J. Lu <hongjiu.lu@intel.com>
3267 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
3268 (*ieee_smax<mode>3): Likewise.
3270 2011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3272 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
3273 Replace match_operand with match_dup for the third operand in
3276 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
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.
3282 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
3284 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
3287 2011-04-15 Georg-Johann Lay <avr@gjlay.de>
3289 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
3290 instead of match_operand for operand 3.
3292 2011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
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
3300 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
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.
3311 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
3313 * cfgexpand.c (expand_call_stmt): Convert the function type to the
3314 original one if this is not a builtin function.
3316 2011-04-14 Jakub Jelinek <jakub@redhat.com>
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].
3323 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
3325 * c-parser.c (c_parser_objc_protocol_definition): Updated for
3326 change from objc_declare_protocols() to objc_declare_protocol().
3328 2011-04-14 Uros Bizjak <ubizjak@gmail.com>
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
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):
3357 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
3359 2011-04-14 H.J. Lu <hongjiu.lu@intel.com>
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.
3367 2011-04-14 Richard Guenther <rguenther@suse.de>
3369 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
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.
3381 2011-04-14 Jan Hubicka <jh@suse.cz>
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
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.