-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compiler Flags: -Ofast
and -flto=full
#106
base: dev
Are you sure you want to change the base?
Conversation
a747950
to
d0f7778
Compare
I won't touch the Mac's compilation flags anymore, as it's too easy to make the compilation fail; it will be a second-class citizen until #99 is implemented |
What is the intention behind each of these flags? |
9b878eb
to
3b1d4a2
Compare
I was going to clean it up after i woke up, i was using some to try to reduce the size of the binary, but they didn't prove effective in mkxp-z.
|
And, did it reduce the compilation times? If yes, by how much? |
Hi, thanks for the PR, really appreciate it. It's fine to ignore macOS for the time being, I've done the same elsewhere. One trivial concern, and one bigger one (but both of them should be resolvable):
Let me know if you have any trouble resolving either of the above things, I'm happy to help as needed. (And sorry it took a while for me to reply.) |
It looks like threaded surfaces are primarily CPU-bound and are a major bottleneck in some use cases (e.g. mine). I'm planning to test them to see whether tweaking the compiler optimization flags makes any difference there. I'm also planning to test whether GCC vs Clang makes a major difference. (As noted, my prediction is that LTO + |
-Ofast
and -flto=full
In addition to threaded surfaces (as noted above), we probably also should test #148 with the various optimization flags, since that PR is likely to expose a lot of previously unnoticed CPU bottlenecks. |
Add
-pipe
to CFLAGSReplace
-O3
with-Ofast
Stop using
-flto
only for Ruby and useflto=full
for everything