> On 22 May 2024, at 12:12, XChy <xxs_...@outlook.com> wrote:
> 
>> How is the memset in select_rtable_names_for_explain a dead-store? Even 
>> memset calls could be optimized away from the EXPLAIN codepath I have a 
>> feeling it
>> would have to be many in a tight loop for it to be measurable even?

> For the first question, I don't mean that the memset is the dead store.

Gotcha

> I mean that the stores with value "0" after the memset are dead:
> ``` 
>     dpns.subplans = NIL;
>     dpns.ctes = NIL;
>     dpns.appendrels = NULL;
> ```
> since the memset has written zeroes to the object "dpns", and these members 
> are known to be zero.

They are known to be zero, but that's not entirely equivalent though is it?
NIL is defined as ((List *) NULL) and NULL is typically defined as ((void *)
0), so sizeof(0) would be the size of an int and sizeof(NULL) would be the size
of a void pointer.

--
Daniel Gustafsson



Reply via email to