[Mesa-dev] r600g: status of my work on the shader optimization

Christian König deathsimple at vodafone.de
Sat Feb 16 05:18:08 PST 2013


Am 15.02.2013 22:25, schrieb Vadim Girlin:
> On 02/15/2013 03:22 PM, Christian König wrote:
>> Am 15.02.2013 12:00, schrieb Vadim Girlin:
>>> [SNIP]
>>> Heaven 3.0, all settings high/enabled, 1280x720, HD5750:
>>>   default backend : 20.0 fps
>>>   llvm backend    : 18.8 fps
>>>   r600-sb         : 38.0 fps
>>
>> Quite impressive. What's actually doing better than the LLVM backend?
>>
>
> It's hard to say exactly, I haven't looked into it yet. I guess one of 
> the basic differences comes from the fact that LLVM performs many 
> optimizations with the generic algorithms on the LLVM IR without the 
> knowledge of the target architecture, while everything in my branch is 
> done on the target ISA level. Another thing is that in my IR 
> structured control flow is represented explicitly, there is no need 
> for complex analysis passes on CFG to get this information, to find 
> the loops etc. And this knowledge also helps.

Regarding LLVM CFG, have you looked at my rework of the CFG structurizer 
for SI?

It's basic goal is to structurize the CFG on an LLVM IR level, instead 
of waiting with that till we already have machine instructions. It makes 
detection of if/then/else and loop constructs in the LLVM IR much more 
trivial and was designed with exactly the CFG problems you're describing 
in mind.

Tom is currently working on bringing this to R600 as well and so 
replacing the old structurizer. That should allow you to apply your 
optimizations on LLVM IR as well.

Christian.


More information about the mesa-dev mailing list