On 11/27/2017 02:22 AM, Dominik Inführ wrote:
> Thanks for all the reviews! I’ve revised the patch, the operator_delete_flag
> is now stored in tree_decl_with_vis (there already seem to be some
> FUNCTION_DECL-flags in there). I’ve also added the option -fallocation-dce to
> disable this optimization. It bootstraps and no regressions on aarch64 and
> x86_64.
>
> The problem with this patch is what Marc noticed: it omits too many
> allocations. The C++ standard seems to only allow to omit "replaceable global
> allocation functions (18.6.1.1, 18.6.1.2)”. So e.g. no class-specific or
> user-defined allocations. I am not sure what’s the best way to implement
> this. Just checking the function declarations might not be enough and seems
> more like a hack. The better way seems to introduce a __builtin_operator_new
> like Marc mentioned. In which way would you implement this? Could you please
> give me some pointers here to look at?
Just a nit. Make sure to mention BZ 23383 in your ChangeLog entry.
Like this:
c++/23383
* tree-core.h (blah blah): What changed.
Jakub and Richi probably have a better understanding of the builtin
mechanisms than I do. I'll leave it for them to comment on how best to
proceed there.
jeff