Hi,

Attached is a patchset to refactor heapgettup(), heapgettup_pagemode(),
and heapgetpage(). heapgettup() and heapgettup_pagemode() have a lot of
duplicated code, confusingly nested if statements, and unnecessary local
variables. While working on a feature for the AIO/DIO patchset, I
noticed that it was difficult to add new code to heapgettup() and
heapgettup_pagemode() because of how the functions are written.

I've taken a stab at refactoring them -- without generating less
efficient code or causing regressions. I'm interested if people find it
more readable and if those with more assembly expertise see issues (new
branches added which are not highly predictable, etc). I took a look at
the assembly for those symbols compiled at O2 but am not experienced
enough at analysis to come to any conclusions.

- Melanie

Attachment: v1-0002-Turn-HeapKeyTest-macro-into-function.patch
Description: Binary data

Attachment: v1-0001-Remove-breaks-in-HeapTupleSatisfiesVisibility.patch
Description: Binary data

Attachment: v1-0003-Refactor-heapgettup-and-heapgetpage.patch
Description: Binary data

Reply via email to