From: | Soumyadeep Chakraborty <sochakraborty(at)pivotal(dot)io> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: WIP: expression evaluation improvements |
Date: | 2019-10-28 06:46:22 |
Message-ID: | CADwEdorWg4_wgvPM=nL8_umavPOevM0Ej=ve35=a0OvUniV2Kg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi Andres,
Apologies, I realize my understanding of symbol resolution and the
referenced_functions mechanism wasn't correct. Thank you for your very
helpful
explanations.
> There's also a related edge-case where are unable to figure out a symbol
> name in llvm_function_reference(), and then resort to creating a global
> variable pointing to the function.
Indeed.
> If indeed the only case this is being hit is language PL handlers, it
> might be better to instead work out the symbol name for that handler -
> we should be able to get that via pg_language.lanplcallfoid.
I took a stab at this (on top of your patch set):
v1-0001-Resolve-PL-handler-names-for-JITed-code-instead-o.patch
> Which cases are you talking about here? Because I don't think there's
> any others where would know a symbol name to add to referenced_functions
> in the first place?
I had misunderstood the intent of referenced_functions.
> I do want to benefit from getting accurate signatures for patch
> [PATCH v2 26/32] WIP: expression eval: relative pointer suppport
> I had a number of cases where I passed the wrong parameters, and llvm
> couldn't tell me...
I took a stab:
v1-0001-Rely-on-llvmjit_types-for-building-EvalFunc-calls.patch
On a separate note, I had submitted a patch earlier to optimize functions
earlier
in accordance to the code comment:
/*
* Do function level optimization. This could be moved to the point where
* functions are emitted, to reduce memory usage a bit.
*/
LLVMInitializeFunctionPassManager(llvm_fpm);
Refer:
https://www.postgresql.org/message-id/flat/CAE-ML+_OE4-sHvn0AA_qakc5qkZvQvainxwb1ztuuT67SPMegw(at)mail(dot)gmail(dot)com
I have rebased that patch on top of your patch set. Here it is:
v2-0001-Optimize-generated-functions-earlier-to-lower-mem.patch
--
Soumyadeep
Attachment | Content-Type | Size |
---|---|---|
v2-0001-Optimize-generated-functions-earlier-to-lower-mem.patch | application/octet-stream | 6.7 KB |
v1-0001-Rely-on-llvmjit_types-for-building-EvalFunc-calls.patch | application/octet-stream | 18.9 KB |
v1-0001-Resolve-PL-handler-names-for-JITed-code-instead-o.patch | application/octet-stream | 4.6 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Amit Kapila | 2019-10-28 06:50:34 | Re: [HACKERS] Block level parallel vacuum |
Previous Message | Michael Paquier | 2019-10-28 06:22:54 | Re: [DOC] Fix for the missing pg_stat_progress_cluster view phase column value |