This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] propagate malloc attribute in ipa-pure-const pass


> 2017-10-13  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
> 
> 	* cgraph.h (set_malloc_flag): Declare.
> 	* cgraph.c (set_malloc_flag_1): New function.
> 	(set_malloc_flag): Likewise.
> 	* ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee.
> 	* ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to
> 	false.
> 	(read_ipa_call_summary): Add support for reading is_return_callee.
> 	(write_ipa_call_summary): Stream is_return_callee.
> 	* ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary.
> 	* ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h,
> 	ipa-prop.h, ipa-fnsummary.h.
> 	(pure_const_names): Change to static.
> 	(malloc_state_e): Define.
> 	(malloc_state_names): Define.
> 	(funct_state_d): Add field malloc_state.
> 	(varying_state): Set malloc_state to STATE_MALLOC_BOTTOM.
> 	(check_retval_uses): New function.
> 	(malloc_candidate_p): Likewise.
> 	(analyze_function): Add support for malloc attribute.
> 	(pure_const_write_summary): Stream malloc_state.
> 	(pure_const_read_summary): Add support for reading malloc_state.
> 	(dump_malloc_lattice): New function.
> 	(propagate_malloc): New function.
> 	(ipa_pure_const::execute): Call propagate_malloc and
> 	ipa_free_fn_summary.
> 	(pass_local_pure_const::execute): Add support for malloc attribute.
> 	* ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro.
> 
> testsuite/
> 	* gcc.dg/ipa/propmalloc-1.c: New test-case.
> 	* gcc.dg/ipa/propmalloc-2.c: Likewise.
> 	* gcc.dg/ipa/propmalloc-3.c: Likewise.

OK.
Perhaps we could also add -Wsuggest-sttribute=malloc and mention it in changes.html?

Thanks,
Honza


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]