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