mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-23 13:35:42 -04:00

This patch adds #pragma clang loop pipeline and #pragma clang loop pipeline_initiation_interval for debugging or reducing compile time purposes. It is possible to disable SWP for concrete loops to save compilation time or to find bugs by not doing SWP to certain loops. It is possible to set value of initiation interval to concrete number to save compilation time by not doing extra pipeliner passes or to check created schedule for specific initiation interval. Patch by Alexey Lapshin. llvm-svn: 350414
34 lines
1.3 KiB
C++
34 lines
1.3 KiB
C++
// RUN: %clang_cc1 -std=c++11 -verify %s
|
|
|
|
// Note that this puts the expected lines before the directives to work around
|
|
// limitations in the -verify mode.
|
|
|
|
void test(int *List, int Length, int Value) {
|
|
int i = 0;
|
|
|
|
#pragma clang loop pipeline(disable)
|
|
for (int i = 0; i < Length; i++) {
|
|
List[i] = Value;
|
|
}
|
|
|
|
#pragma clang loop pipeline_initiation_interval(10)
|
|
for (int i = 0; i < Length; i++) {
|
|
List[i] = Value;
|
|
}
|
|
|
|
/* expected-error {{expected ')'}} */ #pragma clang loop pipeline(disable
|
|
/* expected-error {{invalid argument; expected 'disable'}} */ #pragma clang loop pipeline(enable)
|
|
/* expected-error {{invalid argument; expected 'disable'}} */ #pragma clang loop pipeline(error)
|
|
/* expected-error {{expected '('}} */ #pragma clang loop pipeline disable
|
|
/* expected-error {{missing argument; expected an integer value}} */ #pragma clang loop pipeline_initiation_interval()
|
|
/* expected-error {{use of undeclared identifier 'error'}} */ #pragma clang loop pipeline_initiation_interval(error)
|
|
/* expected-error {{expected '('}} */ #pragma clang loop pipeline_initiation_interval 1 2
|
|
/* expected-error {{expected ')'}} */ #pragma clang loop pipeline_initiation_interval(1
|
|
for (int i = 0; i < Length; i++) {
|
|
for (int j = 0; j < Length; j++) {
|
|
List[i * Length + j] = Value;
|
|
}
|
|
}
|
|
|
|
}
|