[LLVMdev] Questions on Parallelism and Data Dependence Analysis

Eli Friedman eli.friedman at gmail.com
Wed Dec 24 19:48:56 PST 2008


On Wed, Dec 24, 2008 at 6:11 PM, Wenzhi Tao <linus_wind at zju.edu.cn> wrote:
> Hi, I have two questions about llvm, and expect your reply very much.
>
> 1. Is there any plan of llvm to support Thread-Level Parallelism by using
> OpenMP, MPI, pthread or llvm-defined directives?
>     If automatic parallelism exploring is very hard, what is the key
> problem? We can't get the precise data dependence
>     information at compile-time?

AFAIK, OpenMP, MPI, and pthreads should all work just fine with LLVM.
Automatically parallelizing code is a fundamentally difficult problem
for many reasons which I won't go into as it's only tangentially
relevant to LLVM.

> 2. Can I use the functions provided by llvm to get the real data
> dependence(Read After Write) info on basic block level directly?
>    In other words, can I get the task graph(node: task viewed as basic block
> or more coarse grain, edge: real data dependence)
>    from sequential program using llvm to explore task-level parallelism by
> some proposed task scheduling algorithm?

I don't think there's anything quite like that.  There is
MemoryDependenceAnalysis; that returns the dependencies for an
individual instruction.

-Eli



More information about the llvm-dev mailing list