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