llvm-project/clang/test
Michael Kruse 707ce34b06 [OpenMP][OpenMPIRBuilder] Implement loop unrolling.
Add methods for loop unrolling to the OpenMPIRBuilder class and use them in Clang if `-fopenmp-enable-irbuilder` is enabled. The unrolling methods are:

 * `unrollLoopFull`
 * `unrollLoopPartial`
 * `unrollLoopHeuristic`

`unrollLoopPartial` and `unrollLoopHeuristic` can use compiler heuristics to automatically determine the unroll factor. If possible, that is if no CanonicalLoopInfo is required to pass to another method, metadata for LLVM's LoopUnrollPass is added. Otherwise the unroll factor is determined using the same heurstics as user by LoopUnrollPass. Not requiring a CanonicalLoopInfo, especially with `unrollLoopHeuristic` allows greater flexibility.

With full unrolling and partial unrolling with known unroll factor, instead of duplicating instructions by the OpenMPIRBuilder, the full unroll is still delegated to the LoopUnrollPass. In case of partial unrolling the loop is first tiled using the existing `tileLoops` methods, then the inner loop fully unrolled using the same mechanism.

Reviewed By: jdoerfert, kiranchandramohan

Differential Revision: https://reviews.llvm.org/D107764
2021-09-02 02:37:25 -05:00
..
APINotes
ARCMT
AST [OpenMP][FIX] Allow declare variant to work with reference types 2021-08-27 13:12:14 -05:00
ASTMerge
Analysis [analyzer] MallocOverflow should consider comparisons only preceding malloc 2021-08-27 14:41:26 +02:00
CXX The maximal representable alignment in LLVM IR is 1GiB, not 512MiB 2021-08-26 12:53:39 +03:00
ClangScanDeps [clang][deps] Reset non-modular language and preprocessor options 2021-08-26 08:43:21 +02:00
CodeCompletion [CodeCompletion] Provide placeholders for known attribute arguments 2021-08-19 14:03:41 +02:00
CodeGen Revert "[CLANG][PATCH][FPEnv] Add support for option -ffp-eval-method and extend #pragma float_control similarly" 2021-09-01 04:48:50 -07:00
CodeGenCUDA [CUDA] Fix static device variables with -fgpu-rdc 2021-08-25 09:31:22 +02:00
CodeGenCXX [DIBuilder] Do not replace empty enum types 2021-08-30 12:33:03 -07:00
CodeGenCoroutines [DIBuilder] Do not replace empty enum types 2021-08-30 12:33:03 -07:00
CodeGenHIP
CodeGenObjC Recommit "[Matrix] Overload stride arg in matrix.columnwise.load/store." 2021-08-12 18:31:57 +01:00
CodeGenObjCXX Reapply [IR] Don't mark mustprogress as type attribute 2021-07-09 20:57:44 +02:00
CodeGenOpenCL [Remarks] [AMDGPU] Emit optimization remarks for atomics generating hardware instructions 2021-08-19 20:51:19 -06:00
CodeGenOpenCLCXX [C++4OpenCL] Introduces __remove_address_space utility 2021-08-06 10:40:22 +01:00
CodeGenSYCL Ensure field-annotations on pointers properly match the AS of the field. 2021-09-01 06:12:24 -07:00
Coverage Add a target triple to fix failures on MS build bots. 2021-06-30 17:27:26 -07:00
CoverageMapping
Driver [openmp] Drop test from D109057, disproportionately difficult to run on windows 2021-09-01 21:51:51 +01:00
FixIt Implement P1949 2021-08-18 07:33:14 -04:00
Format Remove redundant test that was causing intermittent build bot failures. 2021-06-15 12:46:03 -07:00
Frontend [Clang] add support for error+warning fn attrs 2021-08-25 10:34:18 -07:00
Headers [OpenCL] Define OpenCL 3.0 optional core features in C++ for OpenCL 2021 2021-09-01 10:15:17 +01:00
Import
Index [clang][patch] Remove test artifact before running test for consistent results 2021-07-24 07:55:10 -04:00
Integration
InterfaceStubs [ifs][elfabi] Merge llvm-ifs/elfabi tools 2021-07-19 11:23:19 -07:00
Interpreter Reland "[clang-repl] Allow passing in code as positional arguments." 2021-07-10 17:54:00 +00:00
Layout [AIX] "aligned" attribute does not decrease alignment 2021-08-29 21:33:05 -04:00
Lexer Implement #pragma clang restrict_expansion 2021-08-23 09:46:38 -07:00
LibClang libclang.so: Make SONAME independent from LLVM version 2021-07-26 16:37:26 -07:00
Misc Revert "Reland "[clang-repl] Re-implement clang-interpreter as a test case."" 2021-09-01 08:35:33 -04:00
Modules [modules] Fix miscompilation when using two RecordDecl definitions with the same name. 2021-08-30 17:51:38 -07:00
OpenMP [OpenMP][OpenMPIRBuilder] Implement loop unrolling. 2021-09-02 02:37:25 -05:00
PCH Extend diagnostic for out of date AST input file. 2021-08-24 17:03:06 -07:00
Parser Implement P1949 2021-08-18 07:33:14 -04:00
ParserSYCL
Preprocessor Revert "[CLANG][PATCH][FPEnv] Add support for option -ffp-eval-method and extend #pragma float_control similarly" 2021-09-01 04:48:50 -07:00
Profile Update: clang/test/Profile/gcc-flag-compatibility.c to have -flto on AIX 2021-08-09 14:57:38 +00:00
Refactor
Rewriter
Sema [Clang][RISCV] Implement getConstraintRegister for RISC-V 2021-08-26 17:43:43 +01:00
SemaCUDA [HIP] Defer operator overloading errors 2021-06-23 23:39:59 -04:00
SemaCXX The maximal representable alignment in LLVM IR is 1GiB, not 512MiB 2021-08-26 12:53:39 +03:00
SemaObjC [Sema][ObjC] Allow conversions between pointers to ObjC pointers and 2021-08-25 10:22:29 -07:00
SemaObjCXX [clang] C++98 implicit moves are back with a vengeance 2021-07-13 19:16:49 +02:00
SemaOpenCL [OpenCL] Define OpenCL 3.0 optional core features in C++ for OpenCL 2021 2021-09-01 10:15:17 +01:00
SemaOpenCLCXX [C++][Sema] Ignore top-level qualifiers in casts 2021-07-05 12:22:08 +01:00
SemaSYCL
SemaTemplate Print default template argument if manually specified in typedef declaration. 2021-06-29 14:57:26 +00:00
TableGen
Templight
Tooling [clang][tooling] Accept Clang invocations with multiple jobs 2021-07-27 10:47:55 +02:00
Unit
VFS [Modules] Do not remove failed modules after the control block phase 2021-08-17 16:46:51 -07:00
clang-rename
utils/update_cc_test_checks [llvm-lit] unbreak clang-only builds by not assuming llvm-lit in build dir 2021-08-31 18:57:47 +03:00
.clang-format
CMakeLists.txt Revert "Reland "[clang-repl] Re-implement clang-interpreter as a test case."" 2021-09-01 08:35:33 -04:00
TestRunner.sh
cxx-sections.data
lit.cfg.py Revert "Reland "[clang-repl] Re-implement clang-interpreter as a test case."" 2021-09-01 08:35:33 -04:00
lit.site.cfg.py.in libclang.so: Make SONAME independent from LLVM version 2021-07-26 16:37:26 -07:00
make_test_dirs.pl