On Mon, Nov 27, 2017 at 5:58 PM, Jeff Law <l...@redhat.com> wrote:
> 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.

I don't see why a builtin is necessary, can the FE not see which one
is the global allocation function?
Anyways, there are no FE specific builtins, traditionally FEs have
used special keywords - you might
want to search for RID_BUILTIN_LAUNDER for example.

Richard.

> jeff

Reply via email to