Instead of generating llvm.mem.parallel_loop_access metadata, generate llvm.access.group on instructions and llvm.loop.parallel_accesses on loops. There is one access group per generated loop.
This is clang part of D52116.
Paths
| Differential D52117
Generate llvm.loop.parallel_accesses instead of llvm.mem.parallel_loop_access metadata. ClosedPublic Authored by Meinersbur on Sep 14 2018, 12:04 PM.
Details
Summary Instead of generating llvm.mem.parallel_loop_access metadata, generate llvm.access.group on instructions and llvm.loop.parallel_accesses on loops. There is one access group per generated loop. This is clang part of D52116.
Diff Detail
Event TimelineMeinersbur added a parent revision: D52116: Introduce llvm.loop.parallel_accesses and llvm.access.group metadata.. Herald added subscribers: llvm-commits, dexonsmith, steven_wu and 2 others. · View Herald TranscriptSep 26 2018, 4:04 AM Comment Actions I glimpsed over this without spotting anything crucial. My Clang code base knowledge is a bit lightweight though so you might want to wait for an another reviewer. On the other hand, the semantics seem to be retained so it might be safe to commit this in case the tests still pass. We need to remember to update pocl to produce this format then.
This revision is now accepted and ready to land.Oct 3 2018, 11:20 PM
Meinersbur marked an inline comment as done. Comment Actions
Comment Actions
Comment Actions Minor typo noted below, but otherwise, LGTM (to avoid any misunderstanding: this should be committed after the LLVM change lands).
Closed by commit rC349823: [CodeGen] Generate llvm.loop.parallel_accesses instead of llvm.mem. (authored by Meinersbur). · Explain WhyDec 20 2018, 1:28 PM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 179141 lib/CodeGen/CGLoopInfo.h
lib/CodeGen/CGLoopInfo.cpp
test/CodeGenCXX/pragma-loop-safety-imperfectly_nested.cpp
test/CodeGenCXX/pragma-loop-safety-nested.cpptest/CodeGenCXX/pragma-loop-safety-outer.cpp
test/CodeGenCXX/pragma-loop-safety.cpp
test/OpenMP/for_codegen.cpp
test/OpenMP/for_simd_codegen.cpp
test/OpenMP/loops_explicit_clauses_codegen.cpp
test/OpenMP/ordered_codegen.cpp
test/OpenMP/parallel_for_simd_codegen.cpp
test/OpenMP/schedule_codegen.cpp
test/OpenMP/simd_codegen.cpp
test/OpenMP/simd_metadata.c
test/OpenMP/target_parallel_for_simd_codegen.cpp
test/OpenMP/target_simd_codegen.cpp
test/OpenMP/taskloop_simd_codegen.cpp
|
typo 'propert'