Displaying 4 results from an estimated 4 matches for "gomp_parallel_start".
2012 Jul 12
4
[LLVMdev] Documentation about converting GIMPLE IR to LLVM IR in LLVM-GCC/DragonEgg
Dear All,
I am trying to understand the process followed for converting GIMPLE IR to
LLVM IR in LLVM-GCC/DragonEgg - more importantly conversion of OpenMP
extended GIMPLE IR to LLVM IR. It would be great if anybody points me to
some documentation before I my-self delve into the understanding of related
source code.
--
Cheers
-mahesha
-------------- next part --------------
An HTML attachment
2012 Jul 13
0
[LLVMdev] Fwd: Documentation about converting GIMPLE IR to LLVM IR in LLVM-GCC/DragonEgg
....omp_data_i to i32**
>> %1 = load i32** %0, align 8
>> %2 = getelementptr inbounds %struct..omp_data_s.2* %.omp_data_o.3, i64
>> 0, i32 0
>> store i32* %1, i32** %2, align 8
>> %3 = bitcast %struct..omp_data_s.2* %.omp_data_o.3 to i8*
>> call void @GOMP_parallel_start(void (i8*)* @foo._omp_fn.2, i8* %3, i32
>> 0)
>> nounwind
>> call void @foo._omp_fn.2(i8* %3) nounwind uwtable
>> call void @GOMP_parallel_end() nounwind
>> ret void
>> }
>>
>> declare void @GOMP_parallel_start(void (i8*)*, i8*, i32) nounwind...
2012 Jun 16
1
[LLVMdev] How to Run OpenMP application Using "lli"
...rg-dragonegg-emit-ir and -flto works for creating llvm
bitcode that can be run with lli. Thanks to Nick for the suggestion.
Now, trying to run an OpenMP hello world program.
llvm-gcc -fopenmp p_hello.c -flto -S -o p_hello.ll
lli p_hello.ll
output: LLVM ERROR: Program used external function 'GOMP_parallel_start'
which could not be resolved!
I am guessing that I have to link libgomp.a somehow but want to know the
correct way to do it.
Other way around using gcc:
llvm-gcc -fopenmp p_hello.c -flto -S -o p_hello.ll
llc p_hello.ll
gcc -fopenmp p_hello.s -o p_hello
./p_hello
output:
Hello World
Hello W...
2007 Nov 29
2
[LLVMdev] LLVM and OpenMP
...4
%tmp = getelementptr %struct..omp_data_s.1* %.omp_data_o.3, i32
0, i32 0 ; <i32**> [#uses=1]
store i32* %sum, i32** %tmp, align 8
%.omp_data_o.31 = bitcast %struct..omp_data_s.1* %.omp_data_o.3
to i8* ; <i8*> [#uses=2]
call void @GOMP_parallel_start( void (i8*)* @main.omp_fn.0, i8*
%.omp_data_o.31, i32 0 ) nounwind
call void @main.omp_fn.0( i8* %.omp_data_o.31 )
call void @GOMP_parallel_end( ) nounwind
%tmp3 = load i32* %sum, align 4 ; <i32> [#uses=1]
%tmp5 = call i32 (i8*, ...)* @printf( i8* getel...