[fpc-devel] Pure function Wiki page
R0b0t1
r030t1 at gmail.com
Mon Jul 9 04:33:12 CEST 2018
n Sun, Jul 8, 2018 at 9:07 PM, Dmitry Boyarintsev
<skalogryz.lists at gmail.com> wrote:
>
> On Sun, Jul 8, 2018 at 8:15 PM, J. Gareth Moreton
> <gareth at moreton-family.com> wrote:
>>
>> Yes, if any parameters are variables, then the function is not evaluated.
>> My intention is that the purity of a function is only determined when it
>> comes to evaluating it in an expression, but because of how complex
>> functions can become, the "pure" directive hints to the compiler that the
>> given function is pure and it should attempt the laborous task of evaluating
>> it, rather than the opposite approach of attempting to evaluate all
>> functions with constant actual parameters and potentially increasing the
>> compilation time by several orders of magnitude (don't forget it might be
>> attempting to do the same thing with system functions if the project is
>> undergoing a full build).
>
>
> if FPC assembler reader powerful enough to analyze and trust assembler
> functions marked as pure?
>
At which stages is optimization done? GCC's backend optimizes each
step in compilation (as I am aware), i.e. GENERIC -> GIMPLE -> RTL ->
assembly. Many optimizations work best or are only possible at a
certain stage.
The various representations are also what makes analysis efficient.
Most optimization passes do not happen on assembly.
More information about the fpc-devel
mailing list