Note on sdcc

A General Discussion forum for TI calculators

Moderator: MaxCoderz Staff

User avatar
Halifax
Sir Posts-A-Lot
Posts: 225
Joined: Mon 01 Jan, 2007 10:39 am
Location: Pennsylvania, US

Post by Halifax »

King Harold wrote:
Halifax wrote:Yes, floating point math is tedious.

Uhh, but I have no idea what you just said. There is more of a process to C compilation, then I think you really realize. Why don't you try writing down a few examples of C yourself, and see how you would optimize them. Is the process to time consuming? Not at all possible to do in a compiler?

Believe me it is harder than you think.
Oh no it isn't, I know full well how hard it is. But then, I never said I could write a better compiler/optimizer. Other people should (there are bound to be people who can)

Well isn't that what tools are for? Do tedious work for you?
If it doesn't, I'd consider it useless. If the work is not tedious, I could just as well do it myself.

Anyway, if people can write fast/good assembly, then in theory compilers could too. So why don't they? Because their developers just aim for something that works instead of something that is good? Because that is easier? Imo they miss the point.
King_Harold: You are obviously disillusioned, and you don't know the work involved. Technology is not even close to advanced enough to write a compiler that can produce code that is "handwritten". Even on a 3 Ghz processor the compiler would be slow enough to make you want to kill yourself. Of course someone can do it for proof of concept, but that defeats the whole point.

It is comparable to the common wall of raytracing for realtime games. It just simply isn't going to happen in either one of our lifetimes. Really you should think of all the steps your brain goes through to produce that optimized handwritten code.

I think you will be amazed that the fuzzy logic is simply to great to simulate with a compiler. Talk to the makers of GCC if you don't believe me.
King Harold
Calc King
Posts: 1513
Joined: Sat 05 Aug, 2006 7:22 am

Post by King Harold »

Ok so I had typed a lot already and suddenly I remembered I was just making a note about sdcc's output! :P

No I am not disillusioned, if something is possible, then it is. There is not something as "half possible".
Did I say it would be nice and fast? No look:
in theory compilers could too
And you even admit it's true ;)

I also didn't promise manageability, but then, assembly is always a nightmare to manage.. be it handwritten or compiler-generated.

So, as I said before, I don't hate sdcc or anything, but it could be a bit better..

Anyway halifax, just out of interest, what would your compiler have generated? Something better probably, right?
User avatar
Halifax
Sir Posts-A-Lot
Posts: 225
Joined: Mon 01 Jan, 2007 10:39 am
Location: Pennsylvania, US

Post by Halifax »

That is a guaranteed yes. Mainly because my compiler eliminates stack frames, and also goes through many more intermediate steps than SDCC. For example 2 high-level passes are performed with 1 low-level pseudo assembly pass, and then a target-dependent pass. This makes for 4 optimization passes with constant folding, and in-lining, and all the other bells and whistles.
User avatar
Timendus
Calc King
Posts: 1729
Joined: Sun 23 Jan, 2005 12:37 am
Location: Netherlands
Contact:

Post by Timendus »

Soooo... why aren't we using it yet? :)
http://clap.timendus.com/ - The Calculator Link Alternative Protocol
http://api.timendus.com/ - Make your life easier, leave the coding to the API
http://vera.timendus.com/ - The calc lover's OS
User avatar
elfprince13
Sir Posts-A-Lot
Posts: 234
Joined: Sun 11 Dec, 2005 2:21 am
Contact:

Post by elfprince13 »

King_Harold:
because human brains are far more complex and better at making arbitrary mental connections than a computer.
Halifax wrote: It is comparable to the common wall of raytracing for realtime games. It just simply isn't going to happen in either one of our lifetimes.
actually, good idea for a comparison, but real time ray-tracing at least will certainly happen in our lifetime, likely even while we are still on silicon processors. Its one of those things that huge multi-core processors are really good at doing.

I suggest you do a youtube search for real time ray tracing demos.
or just look at this page;
http://www.ps3vault.com/playstaiton-3-r ... acing-1234
Really you should think of all the steps your brain goes through to produce that optimized handwritten code.
the point is, he probably can't, human brains are amazing at making intuitive leaps, something computers can't do very well, for the reason that they concentrate really well and we don't. Our brains wander, and for sheer number crunching that doesn't work very well, but for creative things like optimizing it actually helps.
King Harold
Calc King
Posts: 1513
Joined: Sat 05 Aug, 2006 7:22 am

Post by King Harold »

elfprince13 wrote:King_Harold:
because human brains are far more complex and better at making arbitrary mental connections than a computer.
Which only means it will take a while longer

But I thought we'd dropped this? Halifax' own compiler is atleast 4 times as good as sdcc, and I only said "why can't compilers be as good as humans" to complain about compilers, not to ask why they aren't.
But now we're there anyway, a compiler could in theory brute-force the best solution, which can obviously take some time (until you tell it to stop probably), but for a release build that time is well spend..
User avatar
Halifax
Sir Posts-A-Lot
Posts: 225
Joined: Mon 01 Jan, 2007 10:39 am
Location: Pennsylvania, US

Post by Halifax »

elfprince13 wrote:King_Harold:
because human brains are far more complex and better at making arbitrary mental connections than a computer.
Halifax wrote: It is comparable to the common wall of raytracing for realtime games. It just simply isn't going to happen in either one of our lifetimes.
actually, good idea for a comparison, but real time ray-tracing at least will certainly happen in our lifetime, likely even while we are still on silicon processors. Its one of those things that huge multi-core processors are really good at doing.

I suggest you do a youtube search for real time ray tracing demos.
or just look at this page;
http://www.ps3vault.com/playstaiton-3-r ... acing-1234
Really you should think of all the steps your brain goes through to produce that optimized handwritten code.
the point is, he probably can't, human brains are amazing at making intuitive leaps, something computers can't do very well, for the reason that they concentrate really well and we don't. Our brains wander, and for sheer number crunching that doesn't work very well, but for creative things like optimizing it actually helps.
Elfprince: I have heard about all of this. I think you need to check up on your information though because at GDC(game developers conference) 07 many highly acclaimed people spoke on the topic. Such as Intel, Unreal Engine 3 programmer, Doom 3 engine programmer, and some other notables. They stated clearly in plain words that real-time raytracing, referring to 30 FPS and 60 FPS games, will never be reached within our lifetime.

King_Harold: I wouldn't say 4 times better, maybe 2 times. But yes you are right, I just wouldn't want to be the person to brute force that ;)

Timendus: It is still in production. :P

Either way to use my compiler it will all depend on your computer setup. If you want fast compilation, then you should use low optimization settings, which will require less decisions and branching. For example you can basically customize the compilation process anyway you want.

Personally I would compile with no optimization settings if you are just trying to get something to work, but for a release I would do one last compilation with all optimizations ,that respectively apply to your program, on.

More information can be found at omnimaga.org
User avatar
DJ_O
Calc King
Posts: 2323
Joined: Mon 20 Dec, 2004 6:47 pm
Location: Quebec (Canada)
Contact:

Post by DJ_O »

darn this model look so realistic, they gotta make better processors and optimize the techniques to make it fast enough to be playable ^^
ImageImageImageImage
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

Halifax wrote:at GDC(game developers conference) 07 many highly acclaimed people spoke on the topic. Such as Intel, Unreal Engine 3 programmer, Doom 3 engine programmer, and some other notables. They stated clearly in plain words that real-time raytracing, referring to 30 FPS and 60 FPS games, will never be reached within our lifetime.
Many highly acclaimed people made utterly ridiculous predictions in the past. ;) And I don't really understand it in this case, since raytracing is a kind of algorithm that very easily lends itself to parallelisation, so it is even less bound by technological barriers than most applications. I'd hardly dare to predict anything about computing in 50 years considering how far it got in the first 50...
User avatar
Halifax
Sir Posts-A-Lot
Posts: 225
Joined: Mon 01 Jan, 2007 10:39 am
Location: Pennsylvania, US

Post by Halifax »

CoBB: That may be so, but seriously the amount of time it would take for one ray to get finished in a 1,000,000 polygon level, like what are present today, would take immensely long to do reflection, refraction, deflection, and all the other stuff. Let alone the fact it would take 786,432(1024x768) to 480,000(800x600) rays on reasonable resolutions. Updating at 30 fps that would be 23,592,960 to 14,400,000 rays per second. That is absolutely ridiculous.

Also that may be true, but I would give the Crytek engine programmers credit since they have dealt with parallelism with the CryENGINE2.

Throw in a Gears of War/Unreal 3/Crysis 2/Resistance map into 3DS max/Maya/Blender on a 1337 overclocked Intel Quadcore, and see how long it takes to render.

I will pay $1 million to everyone on this forum if I am still alive when real-time 30 fps raytracing occurs. That means no hacks, no replacements, all raytracing, and everything that is done now is done with the raytracer
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

Halifax wrote:Also that may be true, but I would give the Crytek engine programmers credit since they have dealt with parallelism with the CryENGINE2.
They are programmers, not physicists or circuit designers. No-one can tell what kind of technology we will possess in a few decades.
User avatar
Halifax
Sir Posts-A-Lot
Posts: 225
Joined: Mon 01 Jan, 2007 10:39 am
Location: Pennsylvania, US

Post by Halifax »

CoBB: And what are you saying about programmers? For your information Insomniac Games stays in close contact with STI to stay on top of new technology, and what to do with technology now such as the CELL processor.

Also did you read my post? Intel even gave their view on the topic, and they agreed! Now they are circuit designers, are they not? They said themselves that complications are soon to come as you push it further than quad-core, such as cache management and interaction, and parallelism. Mainly, it is going to be a beast to code good for. Although I have to commend Insomniac Games for taking advantage of the CELL processor and programming good with it, especially with their implementation of cylinder collision in their physics engine.
Liazon
Calc Guru
Posts: 962
Joined: Thu 27 Oct, 2005 8:28 pm

Post by Liazon »

i think realtime raytracing may become viable as long as people keep on working on ray processing units. though the current methods are at an advantage when it comes to industry support and industry spending.

but regardless, who's going to work on the art? sure, being able to do lots and lots of polygons is nice, but what's the use if it takes up so much space and doesn't look that much nicer anyways? or the physics/lighting just don't improve that much? A lot of it comes down to artistic teams and 3D modelers if you ask me. I commend them for just being artists.

btw Halifax, i don't think you'd know where to send the checks ^^
Image Image Image
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

Halifax wrote:Also did you read my post? Intel even gave their view on the topic, and they agreed! Now they are circuit designers, are they not?
Sorry, yes, my eye slipped over this way too short name. ;) Still, I maintain that no-one can make sensible predictions for such a long term, even if they are leaders in current technology.
Halifax wrote:They said themselves that complications are soon to come as you push it further than quad-core, such as cache management and interaction, and parallelism.
I’m aware of those problems, but that only applies to general purpose processors. If you give up that generality and take a specific problem class, you can find significantly more efficient solutions.
Halifax wrote:Mainly, it is going to be a beast to code good for.
Well, if one can only think in terms of imperative programming... :P
Liazon wrote:but regardless, who's going to work on the art? sure, being able to do lots and lots of polygons is nice, but what's the use if it takes up so much space and doesn't look that much nicer anyways?
Why would one use polygons in a raytracer? They are hard to deal with mathematically.
User avatar
Halifax
Sir Posts-A-Lot
Posts: 225
Joined: Mon 01 Jan, 2007 10:39 am
Location: Pennsylvania, US

Post by Halifax »

Who wouldn't use polygons?

Also Liazon the benefit of raytracing isn't lots and lots of polygons, it is in fact photorealistic pictures, although I think those have already been achieved(look at GT5 HD)

Either way there are so many more advances to be done other than just graphics with the advent of new technology. For example, real realistic AI that is living. Cars that go down the street, turn the corner, and are still there when you turn the corner 5 seconds later. Realistic schedules.

Also physics can still be improved by far, considering most physics engines don't even have cylinder collision yet.

Also the main thing I want to see improved is particle engines! Real smoke effects that don't use cheap billboarding that is easily seen.

Overall those are the things I want to see improved instead of graphics

@CoBB: I see your point.

Right now though I am so happy with the graphics that are already here.
Post Reply