Speculative Loop Parallelization on LLVM IR


I worked on loop-optimizations techniques previously using ORC. Currently i see lots of research on speculative parallelization of
loops … specially because multicores [for embedded systems] is becoming popular. In other words, because you have
multiple cores, you can start some loops [Fast-Track] as if there is no or low data-dependence [Partial Parallel Loop-Nest].
The normal part is to check later if there was some violation and then rollback etc. [something like that … I dont think people want to hear the
full story here].

What do you guys think about the feasibility of "speculative run-time loop optimization’ using LLVM IR as base.
I know there are lots of issues to it -

  1. Loop transformation requires tools like PolyLib (Polyhedral analysis). They are too computationally expensive for
    run-time optimization.

  2. I am not clear how to launch threads at LLVM IR level (you do need to create new threads for some of these RT speculative loop parallelization techniques).

Is somebody already doing something like this? Does this proposal make sense even to start…

Best Regards