Add error return on buffer assignment failure
This commit is contained in:
@@ -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 )
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user