flat assembler
Message board for the users of flat assembler.
Index
> Compiler Internals > [fasmg] irpv too slow |
Author |
|
Tomasz Grysztar 21 Nov 2019, 15:39
Thank you! This looks like it might be a bug of some sort, I need to investigate closely.
|
|||
21 Nov 2019, 15:39 |
|
MaoKo 21 Nov 2019, 15:43
You're welcome : )
|
|||
21 Nov 2019, 15:43 |
|
Tomasz Grysztar 21 Nov 2019, 16:51
I found what has been causing the problem. Please try release iqvlf.
|
|||
21 Nov 2019, 16:51 |
|
MaoKo 22 Nov 2019, 02:37
Thx Tomasz it's work fine. But there is one thing that I can't understand and it's very weird.
Maybe I wrong, but probably there is a small issue with the time and unconditional macro expansion. With this code: Code: macro __private? end macro macro abc? repeat $10 if (1) esc __private else esc __private end if end repeat end macro repeat $20000 abc end repeat Are we agree that normally with or without the ! in __private the macro abc is the same? However the time spent is not. If I remove the "else", everything becomes normal again. I think that there is a thing with else. Whatever the else come from (match,rmatch) this is the same. I don't known. It's seem nothing, (about 2 sec) but with some case it's about a diff of 10 sec or plus. I hope Tomasz you can enlighten me : ). |
|||
22 Nov 2019, 02:37 |
|
Tomasz Grysztar 22 Nov 2019, 06:06
MaoKo wrote: Are we agree that normally with or without the ! in __private the macro abc is the same? However the time spent is not. In general, unconditional macros are certainly bad for performance, because they are evaluated everywhere. That's what they do. PS. I don't know if this could be applied to your specific case, but you could suppress the unconditional evaluation in the ELSE block by hiding it in a normal, "conditional" macro: Code: macro __private?! end macro macro hidden esc __private end macro macro abc? repeat $10 if (1) esc __private else hidden end if end repeat end macro repeat $20000 abc end repeat |
|||
22 Nov 2019, 06:06 |
|
MaoKo 23 Nov 2019, 20:27
Yes, I'm sorry. When writing this macro, I have totally forgot the expansion of "!" macro in else block .
I try to optimize as fast as possible my irps macro with different implementation. I hope I can gain few second with this. Thx. |
|||
23 Nov 2019, 20:27 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.