[PATCH] D68521: [PATCH 36/38] [noalias] Clang CodeGen for restrict-qualified pointers
Jeroen Dobbelaere via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 4 15:35:53 PDT 2019
jeroen.dobbelaere created this revision.
jeroen.dobbelaere added reviewers: hfinkel, jdoerfert.
Herald added subscribers: llvm-commits, hiraditya.
Herald added a project: LLVM.
This is part of the series started by D68484 <https://reviews.llvm.org/D68484>.
Introduce support for restrict-qualified pointers as local variables,
as member of a struct, arrays of restrict-qualified pointers,
pointers to restrict qualified pointers.
The full support is enabled with '-full-restrict'.
Combine it with '-no-noalias-arguments' to avoid putting the 'noalias'
attribute on restrict pointers used as argument. This combination is
needed to correctly support restrict arguments. It is kept as a separate option,
as in some cases, the stronger noalias attribute semantics result in better code.
(which also means that some analysis passes could still be made smarter).
Note: this is a stable point and tests should run fine with the patches applied up to this point.
https://reviews.llvm.org/D68521
Files:
clang/include/clang/AST/Type.h
clang/include/clang/Basic/CodeGenOptions.def
clang/include/clang/Driver/CC1Options.td
clang/lib/AST/Type.cpp
clang/lib/CodeGen/Address.h
clang/lib/CodeGen/CGCall.cpp
clang/lib/CodeGen/CGDecl.cpp
clang/lib/CodeGen/CGExpr.cpp
clang/lib/CodeGen/CGExprAgg.cpp
clang/lib/CodeGen/CGStmt.cpp
clang/lib/CodeGen/CodeGenFunction.cpp
clang/lib/CodeGen/CodeGenFunction.h
clang/lib/Driver/ToolChains/Clang.cpp
clang/lib/Frontend/CompilerInvocation.cpp
clang/test/CodeGen/noalias.c
clang/test/CodeGen/restrict/arg_reuse.c
clang/test/CodeGen/restrict/array.c
clang/test/CodeGen/restrict/basic.c
clang/test/CodeGen/restrict/basic_opt_01.c
clang/test/CodeGen/restrict/basic_opt_02.c
clang/test/CodeGen/restrict/basic_opt_03.c
clang/test/CodeGen/restrict/basic_opt_04.c
clang/test/CodeGen/restrict/escape_through_volatile.c
clang/test/CodeGen/restrict/inlining_01.c
clang/test/CodeGen/restrict/inlining_02.c
clang/test/CodeGen/restrict/side_noalias_reduction_01.c
clang/test/CodeGen/restrict/struct.c
clang/test/CodeGen/restrict/struct_member_01.c
clang/test/CodeGen/restrict/struct_member_02.c
clang/test/CodeGen/restrict/struct_member_03.c
clang/test/CodeGen/restrict/struct_member_04.c
clang/test/CodeGen/restrict/struct_member_05.c
clang/test/CodeGen/restrict/struct_member_06.c
clang/test/CodeGen/restrict/struct_member_07.c
clang/test/CodeGen/restrict/struct_member_08.cpp
clang/test/OpenMP/taskloop_firstprivate_codegen.cpp
clang/test/OpenMP/taskloop_lastprivate_codegen.cpp
clang/test/OpenMP/taskloop_private_codegen.cpp
clang/test/OpenMP/taskloop_simd_firstprivate_codegen.cpp
clang/test/OpenMP/taskloop_simd_lastprivate_codegen.cpp
clang/test/OpenMP/taskloop_simd_private_codegen.cpp
llvm/lib/IR/IRBuilder.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D68521.223324.patch
Type: text/x-patch
Size: 105888 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191004/2940c035/attachment.bin>
More information about the llvm-commits
mailing list