Hi,

On 2023-07-17 09:55:07 +0800, Zhang Mingli wrote:
> LGTM and I have a fool question:
>
>       if (likely(all_visible))
>       {
>               if (likely(!check_serializable))
>                       scan->rs_ntuples = heapgetpage_collect(scan, snapshot, 
> page, buffer,
>                                                                               
>                    block, lines, 1, 0);
>               else
>                       scan->rs_ntuples = heapgetpage_collect(scan, snapshot, 
> page, buffer,
>                                                                               
>                    block, lines, 1, 1);
>       }
>       else
>       {
>               if (likely(!check_serializable))
>                       scan->rs_ntuples = heapgetpage_collect(scan, snapshot, 
> page, buffer,
>                                                                               
>                    block, lines, 0, 0);
>               else
>                       scan->rs_ntuples = heapgetpage_collect(scan, snapshot, 
> page, buffer,
>                                                                               
>                    block, lines, 0, 1);
>
>
> Does it make sense to combine if else condition and put it to the incline 
> function’s param?
>
> Like:
> scan->rs_ntuples = heapgetpage_collect(scan, snapshot, page, buffer,
>                                                                               
>                    block, lines, all_visible, check_serializable);

I think that makes it less likely that the compiler actually generates a
constant-folded version for each of the branches. Perhaps worth some
experimentation.

Greetings,

Andres Freund


Reply via email to