Re: [fpc-devel] Difficulty in specifying record alignment

2019-10-21 Thread Florian Klämpfl
Am 21.10.19 um 00:57 schrieb J. Gareth Moreton: Hi everyone, I'm trying to make some optimisation improvements to UComplex so the compiler can take advantage of SSE2 or AVX features without needing to write specialised code (other than using the "vectorcall" directive under Win64).  I am havi

Re: [fpc-devel] Difficulty in specifying record alignment

2019-10-21 Thread J. Gareth Moreton
On 21/10/2019 20:00, Florian Klämpfl wrote: What's the problem with {$push} {$codealign RECORDMIN=16} type complex = record   re : real;   im : real; end; {$pop} ? Hi Florian, I tried that, but that puts each individual field on a 16-byte boundary (an

Re: [fpc-devel] Difficulty in specifying record alignment

2019-10-21 Thread Florian Klämpfl
Am 21.10.19 um 21:42 schrieb J. Gareth Moreton: On 21/10/2019 20:00, Florian Klämpfl wrote: What's the problem with {$push} {$codealign RECORDMIN=16} type complex = record   re : real;   im : real; end; {$pop} ? Hi Florian, I tried that, but that puts

Re: [fpc-devel] Difficulty in specifying record alignment

2019-10-21 Thread J. Gareth Moreton
I'm going to have to keep trying.  So far that gets me the following (some debug lines I inserted into the compiler): record UCOMPLEX.complex - alignment = 8 - aggregatealignment = 8 - structalignment = 8 - size = 16 I was wrong about what I said about RECORDMIN=16... the alignment fields are

Re: [fpc-devel] Difficulty in specifying record alignment

2019-10-21 Thread J. Gareth Moreton
Okay, I got the values to 16 at last!  I needed to include {$PACKRECORDS C} as well.  It's ultimately very fiddly though. Gareth aka. Kit On 21/10/2019 22:53, J. Gareth Moreton wrote: I'm going to have to keep trying.  So far that gets me the following (some debug lines I inserted into the co

[fpc-devel] Language semantic suggesion regarding static methods

2019-10-21 Thread J. Gareth Moreton
Hi everyone, This is a very low-level semantic issue, but I'm not particularly keen on how static methods are defined in classes. *class function *StaticMethod: Integer; *static;* What's wrong with it? Well, it's an issue of consistency that gets me, plus 'static' is only valid as part of a

Re: [fpc-devel] Difficulty in specifying record alignment... and more compiler optimisation shenanigans!

2019-10-21 Thread J. Gareth Moreton
This is a long read, so strap in! Well, I finally got it to work - the required type defintion was as follows: {$push} {$codealign RECORDMIN=16} {$PACKRECORDS C}   { This record forces "complex" to be aligned to a 16-byte boundary }   type align_dummy = record     filler: array[0..1] of real;  

Re: [fpc-devel] Difficulty in specifying record alignment

2019-10-21 Thread J. Gareth Moreton
Optimisations to uComplex ready for wider-scale testing: https://bugs.freepascal.org/view.php?id=36202 Gareth aka. Kit -- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus ___ fpc-devel maillist -

Re: [fpc-devel] Language semantic suggesion regarding static methods

2019-10-21 Thread Sven Barth via fpc-devel
Am 22.10.2019 um 01:19 schrieb J. Gareth Moreton: This is a very low-level semantic issue, but I'm not particularly keen on how static methods are defined in classes. Not being "keen" on an existing, established syntax is not reason enough to change it. Please also note (to probably annoy y

Re: [fpc-devel] Language semantic suggesion regarding static methods

2019-10-21 Thread J. Gareth Moreton
Fair enough.  Thanks Sven.  It just seemed to be a bit of an anomaly in my eyes.  (The ambiguity shouldn't be an issue because of the semicolon following directives) Just something I thought I'd bring up. Gareth aka. Kit On 22/10/2019 06:17, Sven Barth via fpc-devel wrote: Am 22.10.2019 um

Re: [fpc-devel] Language semantic suggesion regarding static methods

2019-10-21 Thread Sven Barth via fpc-devel
J. Gareth Moreton schrieb am Di., 22. Okt. 2019, 07:21: > Fair enough. Thanks Sven. It just seemed to be a bit of an anomaly in my > eyes. (The ambiguity shouldn't be an issue because of the semicolon > following directives) > The parser will only know whether it's a directive or part of the