Add error return on buffer assignment failure

This commit is contained in:
Martin Kroeker
2026-08-07 12:16:32 +02:00
committed by GitHub
parent ad7a417489
commit ec6eb7922a
38 changed files with 190 additions and 0 deletions
+5
View File
@@ -226,6 +226,11 @@ void CNAME(enum CBLAS_ORDER order,
if (incy < 0) y -= (leny-1)*incy;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
if (m * n < 250000 || kl+ku < 15 )
+5
View File
@@ -699,6 +699,11 @@ else
#endif
buffer = (XFLOAT *)blas_memory_alloc(0);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
//For LOONGARCH64, applying an offset to the buffer is essential
//for minimizing cache conflicts and optimizing performance.
+5
View File
@@ -198,6 +198,11 @@ void CNAME(enum CBLAS_ORDER order,
if (incy < 0 ) y -= (n - 1) * incy;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMPTEST
nthreads = num_cpu_avail(2);
+5
View File
@@ -182,6 +182,11 @@ void CNAME(enum CBLAS_ORDER order,
if (incy < 0 ) y -= (n - 1) * incy;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMPTEST
nthreads = num_cpu_avail(2);
+5
View File
@@ -192,6 +192,11 @@ void CNAME(enum CBLAS_ORDER order,
if (incx < 0 ) x -= (n - 1) * incx;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
nthreads = num_cpu_avail(2);
+5
View File
@@ -196,6 +196,11 @@ void CNAME(enum CBLAS_ORDER order,
if (incy < 0 ) y -= (n - 1) * incy;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
nthreads = num_cpu_avail(2);
+5
View File
@@ -405,6 +405,11 @@ if (strcmp(gotoblas_corename(), "armv9sme") == 0
FUNCTION_PROFILE_START();
buffer = (FLOAT *)blas_memory_alloc(0);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
sa = (FLOAT *)((BLASLONG)buffer + GEMM_OFFSET_A);
sb = (FLOAT *)(((BLASLONG)sa + ((GEMM_P * GEMM_Q * COMPSIZE * SIZE + GEMM_ALIGN) & ~GEMM_ALIGN)) + GEMM_OFFSET_B);
+5
View File
@@ -180,6 +180,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, FLOAT alpha,
if (incy < 0 ) y -= (n - 1) * incy;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
if (n <200)
+5
View File
@@ -195,6 +195,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, FLOAT alpha,
if (incx < 0 ) x -= (n - 1) * incx;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
nthreads = num_cpu_avail(2);
+5
View File
@@ -197,6 +197,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, FLOAT alpha,
if (incy < 0 ) y -= (n - 1) * incy;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
nthreads = num_cpu_avail(2);
+5
View File
@@ -393,6 +393,11 @@ if (strcmp(gotoblas_corename(), "armv9sme") == 0
FUNCTION_PROFILE_START();
buffer = (FLOAT *)blas_memory_alloc(0);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
sa = (FLOAT *)((BLASLONG)buffer + GEMM_OFFSET_A);
sb = (FLOAT *)(((BLASLONG)sa + ((GEMM_P * GEMM_Q * COMPSIZE * SIZE + GEMM_ALIGN) & ~GEMM_ALIGN)) + GEMM_OFFSET_B);
+5
View File
@@ -376,6 +376,11 @@ if (strcmp(gotoblas_corename(), "armv9sme") == 0
FUNCTION_PROFILE_START();
buffer = (FLOAT *)blas_memory_alloc(0);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
sa = (FLOAT *)((BLASLONG)buffer + GEMM_OFFSET_A);
sb = (FLOAT *)(((BLASLONG)sa + ((GEMM_P * GEMM_Q * COMPSIZE * SIZE + GEMM_ALIGN) & ~GEMM_ALIGN)) + GEMM_OFFSET_B);
+5
View File
@@ -223,6 +223,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,
if (incx < 0 ) x -= (n - 1) * incx;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
nthreads = num_cpu_avail(2);
+5
View File
@@ -202,6 +202,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,
if (incx < 0 ) x -= (n - 1) * incx;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
(tbsv[(trans<<2) | (uplo<<1) | unit])(n, k, a, lda, x, incx, buffer);
+5
View File
@@ -221,6 +221,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,
if (incx < 0 ) x -= (n - 1) * incx;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
nthreads = num_cpu_avail(2);
+5
View File
@@ -193,6 +193,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,
if (incx < 0 ) x -= (n - 1) * incx;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
(tpsv[(trans<<2) | (uplo<<1) | unit])(n, a, x, incx, buffer);
+5
View File
@@ -218,6 +218,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,
if (incx < 0 ) x -= (n - 1) * incx;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
nthreads = num_cpu_avail(2);
+5
View File
@@ -197,6 +197,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,
if (incx < 0 ) x -= (n - 1) * incx;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
(trsv[(trans<<2) | (uplo<<1) | unit])(n, a, lda, x, incx, buffer);
+5
View File
@@ -251,6 +251,11 @@ void CNAME(enum CBLAS_ORDER order,
if (incy < 0) y -= (leny - 1) * incy * 2;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
if (m * n < 125000 || ku + kl < 15)
+5
View File
@@ -204,6 +204,11 @@ void CNAME(enum CBLAS_ORDER order,
if (incy < 0 ) y -= (n - 1) * incy * COMPSIZE;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMPBUG
nthreads = num_cpu_avail(2);
+5
View File
@@ -199,6 +199,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, void *VALPHA
if (incy < 0 ) y -= (n - 1) * incy * 2;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
if (n<MULTI_THREAD_MINIMAL) {
+5
View File
@@ -177,6 +177,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, FLOAT alpha,
if (incx < 0 ) x -= (n - 1) * incx * 2;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
if (n < 100)
+5
View File
@@ -186,6 +186,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, void *VALPHA
if (incy < 0 ) y -= (n - 1) * incy * 2;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
if (n < 100)
+5
View File
@@ -194,6 +194,11 @@ void CNAME(enum CBLAS_ORDER order,
if (incy < 0 ) y -= (n - 1) * incy * 2;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
nthreads = num_cpu_avail(2);
+5
View File
@@ -175,6 +175,11 @@ void CNAME(enum CBLAS_ORDER order,
if (incx < 0 ) x -= (n - 1) * incx * 2;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
if (n < 100)
+5
View File
@@ -187,6 +187,11 @@ void CNAME(enum CBLAS_ORDER order,
if (incy < 0 ) y -= (n - 1) * incy * 2;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
if (n < 100)
+5
View File
@@ -139,6 +139,11 @@ void NAME(char *UPLO, blasint *N, blasint *K, FLOAT *ALPHA, FLOAT *a, blasint *
if (incy < 0 ) c -= (n - 1) * incy * COMPSIZE;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMPTEST
nthreads = num_cpu_avail(2);
+5
View File
@@ -128,6 +128,11 @@ void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, FLOAT *a,
if (incy < 0 ) c -= (n - 1) * incy * COMPSIZE;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMPTEST
nthreads = num_cpu_avail(2);
+5
View File
@@ -120,6 +120,11 @@ void NAME(char *UPLO, blasint *N, FLOAT *ALPHA,
if (incx < 0 ) x -= (n - 1) * incx;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
nthreads = num_cpu_avail(2);
+5
View File
@@ -123,6 +123,11 @@ void NAME(char *UPLO, blasint *N, FLOAT *ALPHA,
if (incy < 0 ) y -= (n - 1) * incy;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
nthreads = num_cpu_avail(2);
+5
View File
@@ -118,6 +118,11 @@ void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, FLOAT *a, blasint *LDA,
if (incy < 0 ) c -= (n - 1) * incy * COMPSIZE;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
nthreads = num_cpu_avail(2);
+5
View File
@@ -205,6 +205,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, int n, void* valpha, FL
if (incx < 0 ) x -= (n - 1) * incx * 2;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
nthreads = num_cpu_avail(2);
+5
View File
@@ -125,6 +125,11 @@ void NAME(char *UPLO, blasint *N, FLOAT *ALPHA,
if (incy < 0 ) y -= (n - 1) * incy;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
nthreads = num_cpu_avail(2);
+5
View File
@@ -238,6 +238,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,
if (incx < 0 ) x -= (n - 1) * incx * 2;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
nthreads = num_cpu_avail(2);
+5
View File
@@ -211,6 +211,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,
if (incx < 0 ) x -= (n - 1) * incx * 2;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
(tbsv[(trans<<2) | (uplo<<1) | unit])(n, k, a, lda, x, incx, buffer);
+5
View File
@@ -229,6 +229,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,
if (incx < 0 ) x -= (n - 1) * incx * 2;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
#ifdef SMP
nthreads = num_cpu_avail(2);
+5
View File
@@ -202,6 +202,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,
if (incx < 0 ) x -= (n - 1) * incx * 2;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
(tpsv[(trans<<2) | (uplo<<1) | unit])(n, a, x, incx, buffer);
+5
View File
@@ -208,6 +208,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,
if (incx < 0 ) x -= (n - 1) * incx * 2;
buffer = (FLOAT *)blas_memory_alloc(1);
if (!buffer) {
info = -999;
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
(trsv[(trans<<2) | (uplo<<1) | unit])(n, a, lda, x, incx, buffer);