|Re: [hatari-devel] Hatari profiler updates and CPU cycle questions|
[ Thread Index |
| More lists.tuxfamily.org/hatari-devel Archives
- To: hatari-devel@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [hatari-devel] Hatari profiler updates and CPU cycle questions
- From: Douglas Little <doug694@xxxxxxxxxxxxxx>
- Date: Thu, 31 Jan 2013 09:39:01 +0000
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:content-type; bh=/2YF9wXLx28KVElB6+QSK26+SocSOW3ZUK7XH925z84=; b=uArC6A0eGKRbrorTkfjzcItS4JWxhvNeYOT/A4c6g1Ned4JgI6CvAxvmkMWdUdgqfM pfAWDMxOo9ydh3Es4Pvjre3xG7IiiEGeiMt1DEl/com2ck0gIhDWH+z3toigPSZ6wQSP 8Ggo2tVhHXRrDNPelLiE/kpIzFHmUv0d6sc9sz/IqZQ2sF7TonBTiLtsTpTBLpv8Gjec lgKosV/uznQQyhpuDSRcB92yDUMnVv7dEzPJUXyRgn+DLlRaNWWnNgbLB+v5D/6XuXJo eVQNrJYEC+C9U0BNv+GYO4uG5INT0EnBg18fUy7zVyMk0DODf7SJxMoRonG6REaIDMlR BXOA==
v4.4.5 i.e. it probably does less aggressive optimizations than
your newer GCC version. I think GCC 4.5 started using extra aliasing
optimizations at higher optimization levels.
strict aliasing optimisations are supposed to be restricted to -O2 upwards, although I have been through the GCC options handling code in the past and 'inconsistent' is a good word for it all :-)
Do you see any compiler warnings from code under src/debug/ directory
if you rebuild those objects?
I saw no warnings to stdout/stderr while compiling... however I don't know if CMAKE is shuffling them to a logfile somewhere. Do you know if I should look elsewhere for warning output?
On x86 encountering GCC bugs is are really rare/corner case
due to better testing. On ARM they're not so rare...
Yes, I found similar experience. :-)
CMake / Hatari defaults to -O3.
When you have extra time, you might try whether the bug goes away
- if yes, please try also with -O2,
- if not, try with -O0.
I had tried this already, and the bug surfaces with any level above -O0 (that is: -O/-O1, -O2, -O3)
That should give a fairly good pointer on whether and what what
kind of optimizations trigger the issue.
I had started subdividing the -fopts for -O but I didn't get very far before trying the patch (divided them in roughly half - and the bug still occurred). I can continue with that but GCC's optimization groups and overrides are very inconsistent and I would not be surprised to find it still happens even with all of the opts manually switched off. :-)