Make general reduction available at release N.
Bug: 23535724
Change-Id: I1b00e3a392ec40e93b8e73e1d0a43fb9c947e589
(cherry picked from commit 1623659165bb24d733a40124e929cfd42aa917e3)
diff --git a/slang_rs_pragma_handler.cpp b/slang_rs_pragma_handler.cpp
index e159571..bbedc36 100644
--- a/slang_rs_pragma_handler.cpp
+++ b/slang_rs_pragma_handler.cpp
@@ -196,12 +196,13 @@
}
// Check API version.
- if (mContext->getTargetAPI() != RS_DEVELOPMENT_API) {
+ if (mContext->getTargetAPI() < SLANG_FEATURE_GENERAL_REDUCTION_API) {
PP.Diag(PragmaLocation,
PP.getDiagnostics().getCustomDiagID(
clang::DiagnosticsEngine::Error,
- "reduction kernels are not supported in SDK level %0"))
- << mContext->getTargetAPI();
+ "reduction kernels are not supported in SDK levels %0-%1"))
+ << SLANG_MINIMUM_TARGET_API
+ << (SLANG_FEATURE_GENERAL_REDUCTION_API - 1);
return;
}
diff --git a/slang_version.h b/slang_version.h
index 949074a..6594bb0 100644
--- a/slang_version.h
+++ b/slang_version.h
@@ -27,6 +27,7 @@
// ICS -> Ice Cream Sandwich
// JB -> Jelly Bean
// KK -> KitKat
+// M -> Marshmallow
enum SlangTargetAPI {
SLANG_MINIMUM_TARGET_API = 11,
SLANG_HC_TARGET_API = 11,
@@ -45,6 +46,15 @@
};
// Note that RS_VERSION is defined at build time (see Android.mk for details).
+// API levels where particular features exist.
+// . Open (feature appears at a particular level and continues to exist):
+// SLANG_FEAT_FOO_API
+// . Closed (feature exists only through a particular range of API levels):
+// SLANG_FEAT_BAR_API_MIN, SLANG_FEAT_BAR_API_MAX
+enum SlangFeatureAPI {
+ SLANG_FEATURE_GENERAL_REDUCTION_API = SLANG_N_TARGET_API
+};
+
// SlangVersion refers to the released compiler version (for which certain
// behaviors could change - i.e. critical bugs fixed that may require
// additional workarounds in the backend compiler).
diff --git a/tests/F_reduce_general_bad_accumulator/reduce_general_bad_accumulator.rs b/tests/F_reduce_general_bad_accumulator/reduce_general_bad_accumulator.rs
index 1f426f0..5c16ad3 100644
--- a/tests/F_reduce_general_bad_accumulator/reduce_general_bad_accumulator.rs
+++ b/tests/F_reduce_general_bad_accumulator/reduce_general_bad_accumulator.rs
@@ -1,4 +1,4 @@
-// -target-api 0 -Wall
+// -Wall
#pragma version(1)
#pragma rs java_package_name(accum)
diff --git a/tests/F_reduce_general_bad_function/reduce_general_bad_function.rs b/tests/F_reduce_general_bad_function/reduce_general_bad_function.rs
index 8287696..d12ace0 100644
--- a/tests/F_reduce_general_bad_function/reduce_general_bad_function.rs
+++ b/tests/F_reduce_general_bad_function/reduce_general_bad_function.rs
@@ -1,4 +1,4 @@
-// -target-api 0 -Wall
+// -Wall
#pragma version(1)
#pragma rs java_package_name(fn)
diff --git a/tests/F_reduce_general_bad_result/reduce_general_bad_result.rs b/tests/F_reduce_general_bad_result/reduce_general_bad_result.rs
index ab4283d..e403f6e 100644
--- a/tests/F_reduce_general_bad_result/reduce_general_bad_result.rs
+++ b/tests/F_reduce_general_bad_result/reduce_general_bad_result.rs
@@ -1,4 +1,4 @@
-// -target-api 0 -Wall
+// -Wall
#pragma version(1)
#pragma rs java_package_name(export)
diff --git a/tests/F_reduce_general_parse/reduce_general_parse.rs b/tests/F_reduce_general_parse/reduce_general_parse.rs
index 5566b1a..6606d83 100644
--- a/tests/F_reduce_general_parse/reduce_general_parse.rs
+++ b/tests/F_reduce_general_parse/reduce_general_parse.rs
@@ -1,4 +1,4 @@
-// -target-api 0 -Wall -Werror
+// -Wall -Werror
#pragma version(1)
#pragma rs java_package_name(all)
diff --git a/tests/F_reduce_general_void/reduce_general_void.rs b/tests/F_reduce_general_void/reduce_general_void.rs
index c5acced..b39fa56 100644
--- a/tests/F_reduce_general_void/reduce_general_void.rs
+++ b/tests/F_reduce_general_void/reduce_general_void.rs
@@ -1,4 +1,4 @@
-// -target-api 0 -Wall
+// -Wall
#pragma version(1)
#pragma rs java_package_name(voidptr)
diff --git a/tests/F_reduce_general_wrong_api/stderr.txt.expect b/tests/F_reduce_general_wrong_api/stderr.txt.expect
index bd5ff2f..b92931b 100644
--- a/tests/F_reduce_general_wrong_api/stderr.txt.expect
+++ b/tests/F_reduce_general_wrong_api/stderr.txt.expect
@@ -1 +1 @@
-reduce_general_wrong_api.rs:5:12: error: reduction kernels are not supported in SDK level 23
+reduce_general_wrong_api.rs:5:12: error: reduction kernels are not supported in SDK levels 11-23
diff --git a/tests/P_reduce_general_examples/reduce_general_examples.rs b/tests/P_reduce_general_examples/reduce_general_examples.rs
index d64ad92..83f88aa 100644
--- a/tests/P_reduce_general_examples/reduce_general_examples.rs
+++ b/tests/P_reduce_general_examples/reduce_general_examples.rs
@@ -1,4 +1,4 @@
-// -target-api 0 -Wall -Werror
+// -Wall -Werror
#pragma version(1)
#pragma rs java_package_name(examples)
diff --git a/tests/P_reduce_general_examples_explicit/reduce_general_examples_explicit.rs b/tests/P_reduce_general_examples_explicit/reduce_general_examples_explicit.rs
index 9abea80..bd76c8e 100644
--- a/tests/P_reduce_general_examples_explicit/reduce_general_examples_explicit.rs
+++ b/tests/P_reduce_general_examples_explicit/reduce_general_examples_explicit.rs
@@ -1,4 +1,4 @@
-// -target-api 0 -Wall -Werror
+// -Wall -Werror
#pragma version(1)
#pragma rs java_package_name(examples)
diff --git a/tests/P_reduce_general_input/gen-input.pl b/tests/P_reduce_general_input/gen-input.pl
index a2f6c37..4be2e83 100755
--- a/tests/P_reduce_general_input/gen-input.pl
+++ b/tests/P_reduce_general_input/gen-input.pl
@@ -18,7 +18,7 @@
# 3 is not supported for exported types
my @vecLengths = (1, 2, 4);
-print "// -target-api 0 -Wall -Werror\n";
+print "// -Wall -Werror\n";
print "#pragma version(1)\n";
print "#pragma rs java_package_name(input)\n\n";
print "// This test case was created by $0.\n";
diff --git a/tests/P_reduce_general_input/reduce_general_input.rs b/tests/P_reduce_general_input/reduce_general_input.rs
index b27d298..e0fa90f 100644
--- a/tests/P_reduce_general_input/reduce_general_input.rs
+++ b/tests/P_reduce_general_input/reduce_general_input.rs
@@ -1,4 +1,4 @@
-// -target-api 0 -Wall -Werror
+// -Wall -Werror
#pragma version(1)
#pragma rs java_package_name(input)
diff --git a/tests/P_reduce_general_inputs/gen-inputs.pl b/tests/P_reduce_general_inputs/gen-inputs.pl
index 3146d5c..136ec27 100755
--- a/tests/P_reduce_general_inputs/gen-inputs.pl
+++ b/tests/P_reduce_general_inputs/gen-inputs.pl
@@ -29,7 +29,7 @@
return 1;
}
-print "// -target-api 0 -Wall -Werror\n";
+print "// -Wall -Werror\n";
print "#pragma version(1)\n";
print "#pragma rs java_package_name(inputs)\n\n";
print "// This test case was created by $0.\n";
diff --git a/tests/P_reduce_general_inputs/reduce_general_inputs.rs b/tests/P_reduce_general_inputs/reduce_general_inputs.rs
index 079bacb..aa7aae7 100644
--- a/tests/P_reduce_general_inputs/reduce_general_inputs.rs
+++ b/tests/P_reduce_general_inputs/reduce_general_inputs.rs
@@ -1,4 +1,4 @@
-// -target-api 0 -Wall -Werror
+// -Wall -Werror
#pragma version(1)
#pragma rs java_package_name(inputs)
diff --git a/tests/P_reduce_general_reflect/reduce_general_reflect.rs b/tests/P_reduce_general_reflect/reduce_general_reflect.rs
index 34b792d..a7ef619 100644
--- a/tests/P_reduce_general_reflect/reduce_general_reflect.rs
+++ b/tests/P_reduce_general_reflect/reduce_general_reflect.rs
@@ -1,4 +1,4 @@
-// -target-api 0 -Wall -Werror
+// -Wall -Werror
#pragma version(1)
#pragma rs java_package_name(reflect)
diff --git a/tests/P_reduce_general_result/gen-result.pl b/tests/P_reduce_general_result/gen-result.pl
index a042625..66dad34 100755
--- a/tests/P_reduce_general_result/gen-result.pl
+++ b/tests/P_reduce_general_result/gen-result.pl
@@ -14,7 +14,7 @@
# 3 is not supported for exported types
my @vecLengths = (1, 2, 4);
-print "// -target-api 0 -Wall -Werror\n";
+print "// -Wall -Werror\n";
print "#pragma version(1)\n";
print "#pragma rs java_package_name(result)\n\n";
print "// This test case was created by $0.\n";
diff --git a/tests/P_reduce_general_result/reduce_general_result.rs b/tests/P_reduce_general_result/reduce_general_result.rs
index 8e0ba2b..06c38bc 100644
--- a/tests/P_reduce_general_result/reduce_general_result.rs
+++ b/tests/P_reduce_general_result/reduce_general_result.rs
@@ -1,4 +1,4 @@
-// -target-api 0 -Wall -Werror
+// -Wall -Werror
#pragma version(1)
#pragma rs java_package_name(result)