Page 1 of 1

GNU superoptimizer?

Posted: Sat 10 Jan, 2009 9:33 pm
by King Harold
I've been wanting to get it for years but it seems like the GNU community really likes to ignore silly windows users like me. So I haven't been able to find the windows binaries..
Does anyone know where they are? (do they exist at all?)
They're allowed to be AMD64 binaries, they have even less of a chance of existing, but there is a 1 in a few billion chance that it's the only windows binary available..

(small C-rant)
The source will not do. It is C. It's impossible to compile. There will always be some obscure header missing or some obscure GCC-specific extension that is not available in MSVC. Really, I don't get how Linux users get by..
(/small rant)

Re: GNU superoptimizer?

Posted: Sun 11 Jan, 2009 1:50 am
by benryves
"For years" sounds about right, I mean - 1992 technology? ;)

I tried to compile it here myself with MSVC, but on top of the myriad warnings it hit 100 macro-expansion related errors before deciding the source was too broken and gave up. You may have better luck building it yourself in GCC under Cygwin, but that's rather more effort than I'm inclined to put into it this evening. :(

Re: GNU superoptimizer?

Posted: Sun 11 Jan, 2009 2:06 am
by King Harold
Oh well thanx for trying anyway :)
My little rant was not entirely out of place ..

I guess "portable C code" has really come to mean "works on GCC and GCC is portable" :(

Re: GNU superoptimizer?

Posted: Mon 18 May, 2009 6:23 pm
by Halifax
Well..MSVC doesn't exactly support the standard either, so I would just go with the lesser of two evils. It's not that hard to get GCC up and running on Windows. And if you really don't feel like doing it yourself, then just download Code::Blocks with the MinGW install.

Re: GNU superoptimizer?

Posted: Mon 18 May, 2009 7:04 pm
by King Harold
I tried but it's all painful. Looks like it's for linux users who are forced to work on windows for some reason..

Re: GNU superoptimizer?

Posted: Tue 19 May, 2009 3:25 am
by Halifax
Wait, are you talking about MinGW or Code::Blocks? At any rate, if you were talking about Code::Blocks, then honestly what does MSVC offer over it? I've had no problems with Vista when I downloaded the installer and installed Code::Blocks with MinGW included. The debugger works like a charm and there are a lot of great features that Code::Blocks offers that can be taken advantage of.

I've used both MSVC and Code::Blocks as an IDE for development and find Code::Blocks to be much more effective when trying to get something done.

Re: GNU superoptimizer?

Posted: Tue 19 May, 2009 12:18 pm
by King Harold
MinGW so I guess Code::Blocks works better? I'll give it a try then

Re: GNU superoptimizer?

Posted: Wed 20 May, 2009 3:57 am
by Halifax
Yup, it was as I thought. You were talking about using MinGW from the command-line shell.

Just remember, Code::Blocks is just an IDE that handles all the low-level things]. So you are still using MinGW through Code::Blocks, but you just don't have to worry yourself with the all the jargon that comes along with it. Same goes for any of the other IDEs that support GCC, they're usually using MinGW. At any rate, Code::Blocks is a pluggable IDE, meaning that, if you have the MSVC compiler currently installed, then you can "plug it in" any time you want. (Code::Blocks allows you to switch between compilers seamlessly.)

So yeah, I hope you do try it out.

By the way, I had a look at what I think was the GNU superoptimizer, and it appears to make extensive use of inline assembly code. It may have been x86, I don't know, I didn't get a close enough look. But if it isn't, good luck. I definitely don't think it was x64 though., either.

Re: GNU superoptimizer?

Posted: Wed 20 May, 2009 9:22 am
by King Harold
It's ok if it's 32bit only, I can translate to 64bit myself if needed - usually (for small pieces) the instruction sequence would be the same but with other registers
I'll give it a try as soon as I can, which is not too soon due to some deadlines and exams this week (and next week as well)