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.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to