Skip to content

Commit f2bbbf1

Browse files
committed
removing all restricts
1 parent cdd0553 commit f2bbbf1

File tree

2 files changed

+24
-32
lines changed

2 files changed

+24
-32
lines changed

include/roaring/array_util.h

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -133,12 +133,11 @@ static inline int32_t count_greater(const uint16_t *array, int32_t lenarray,
133133
* C should have capacity greater than the minimum of s_1 and s_b + 8
134134
* where 8 is sizeof(__m128i)/sizeof(uint16_t).
135135
*/
136-
int32_t intersect_vector16(const uint16_t *__restrict__ A, size_t s_a,
137-
const uint16_t *__restrict__ B, size_t s_b,
138-
uint16_t *C);
136+
int32_t intersect_vector16(const uint16_t *A, size_t s_a, const uint16_t *B,
137+
size_t s_b, uint16_t *C);
139138

140-
int32_t intersect_vector16_inplace(uint16_t *__restrict__ A, size_t s_a,
141-
const uint16_t *__restrict__ B, size_t s_b);
139+
int32_t intersect_vector16_inplace(uint16_t *A, size_t s_a, const uint16_t *B,
140+
size_t s_b);
142141

143142
/**
144143
* Take an array container and write it out to a 32-bit array, using base
@@ -153,10 +152,8 @@ int avx512_array_container_to_uint32_array(void *vout, const uint16_t *array,
153152
/**
154153
* Compute the cardinality of the intersection using SSE4 instructions
155154
*/
156-
int32_t intersect_vector16_cardinality(const uint16_t *__restrict__ A,
157-
size_t s_a,
158-
const uint16_t *__restrict__ B,
159-
size_t s_b);
155+
int32_t intersect_vector16_cardinality(const uint16_t *A, size_t s_a,
156+
const uint16_t *B, size_t s_b);
160157

161158
/* Computes the intersection between one small and one large set of uint16_t.
162159
* Stores the result into buffer and return the number of elements. */
@@ -231,22 +228,21 @@ size_t union_uint32(const uint32_t *set_1, size_t size_1, const uint32_t *set_2,
231228
/**
232229
* A fast SSE-based union function.
233230
*/
234-
uint32_t union_vector16(const uint16_t *__restrict__ set_1, uint32_t size_1,
235-
const uint16_t *__restrict__ set_2, uint32_t size_2,
231+
uint32_t union_vector16(const uint16_t *set_1, uint32_t size_1,
232+
const uint16_t *set_2, uint32_t size_2,
236233
uint16_t *buffer);
237234
/**
238235
* A fast SSE-based XOR function.
239236
*/
240-
uint32_t xor_vector16(const uint16_t *__restrict__ array1, uint32_t length1,
241-
const uint16_t *__restrict__ array2, uint32_t length2,
237+
uint32_t xor_vector16(const uint16_t *array1, uint32_t length1,
238+
const uint16_t *array2, uint32_t length2,
242239
uint16_t *output);
243240

244241
/**
245242
* A fast SSE-based difference function.
246243
*/
247-
int32_t difference_vector16(const uint16_t *__restrict__ A, size_t s_a,
248-
const uint16_t *__restrict__ B, size_t s_b,
249-
uint16_t *C);
244+
int32_t difference_vector16(const uint16_t *A, size_t s_a, const uint16_t *B,
245+
size_t s_b, uint16_t *C);
250246

251247
/**
252248
* Generic union function, returns just the cardinality.

src/array_util.c

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -382,9 +382,8 @@ static const uint8_t shuffle_mask16[] = {
382382
* Optimized by D. Lemire on May 3rd 2013
383383
*/
384384
CROARING_TARGET_AVX2
385-
int32_t intersect_vector16(const uint16_t *__restrict__ A, size_t s_a,
386-
const uint16_t *__restrict__ B, size_t s_b,
387-
uint16_t *C) {
385+
int32_t intersect_vector16(const uint16_t *A, size_t s_a, const uint16_t *B,
386+
size_t s_b, uint16_t *C) {
388387
size_t count = 0;
389388
size_t i_a = 0, i_b = 0;
390389
const int vectorlength = sizeof(__m128i) / sizeof(uint16_t);
@@ -483,8 +482,8 @@ int array_container_to_uint32_array_vector16(void *vout, const uint16_t *array,
483482
return outpos;
484483
}
485484

486-
int32_t intersect_vector16_inplace(uint16_t *__restrict__ A, size_t s_a,
487-
const uint16_t *__restrict__ B, size_t s_b) {
485+
int32_t intersect_vector16_inplace(uint16_t *A, size_t s_a, const uint16_t *B,
486+
size_t s_b) {
488487
size_t count = 0;
489488
size_t i_a = 0, i_b = 0;
490489
const int vectorlength = sizeof(__m128i) / sizeof(uint16_t);
@@ -578,10 +577,8 @@ int32_t intersect_vector16_inplace(uint16_t *__restrict__ A, size_t s_a,
578577
CROARING_UNTARGET_AVX2
579578

580579
CROARING_TARGET_AVX2
581-
int32_t intersect_vector16_cardinality(const uint16_t *__restrict__ A,
582-
size_t s_a,
583-
const uint16_t *__restrict__ B,
584-
size_t s_b) {
580+
int32_t intersect_vector16_cardinality(const uint16_t *A, size_t s_a,
581+
const uint16_t *B, size_t s_b) {
585582
size_t count = 0;
586583
size_t i_a = 0, i_b = 0;
587584
const int vectorlength = sizeof(__m128i) / sizeof(uint16_t);
@@ -654,9 +651,8 @@ CROARING_TARGET_AVX2
654651
// Warning:
655652
// This function may not be safe if A == C or B == C.
656653
/////////
657-
int32_t difference_vector16(const uint16_t *__restrict__ A, size_t s_a,
658-
const uint16_t *__restrict__ B, size_t s_b,
659-
uint16_t *C) {
654+
int32_t difference_vector16(const uint16_t *A, size_t s_a, const uint16_t *B,
655+
size_t s_b, uint16_t *C) {
660656
// we handle the degenerate case
661657
if (s_a == 0) return 0;
662658
if (s_b == 0) {
@@ -1653,8 +1649,8 @@ static int uint16_compare(const void *a, const void *b) {
16531649
CROARING_TARGET_AVX2
16541650
// a one-pass SSE union algorithm
16551651
// This function may not be safe if array1 == output or array2 == output.
1656-
uint32_t union_vector16(const uint16_t *__restrict__ array1, uint32_t length1,
1657-
const uint16_t *__restrict__ array2, uint32_t length2,
1652+
uint32_t union_vector16(const uint16_t *array1, uint32_t length1,
1653+
const uint16_t *array2, uint32_t length2,
16581654
uint16_t *output) {
16591655
if ((length1 < 8) || (length2 < 8)) {
16601656
return (uint32_t)union_uint16(array1, length1, array2, length2, output);
@@ -1777,8 +1773,8 @@ static inline uint32_t unique_xor(uint16_t *out, uint32_t len) {
17771773
}
17781774
CROARING_TARGET_AVX2
17791775
// a one-pass SSE xor algorithm
1780-
uint32_t xor_vector16(const uint16_t *__restrict__ array1, uint32_t length1,
1781-
const uint16_t *__restrict__ array2, uint32_t length2,
1776+
uint32_t xor_vector16(const uint16_t *array1, uint32_t length1,
1777+
const uint16_t *array2, uint32_t length2,
17821778
uint16_t *output) {
17831779
if ((length1 < 8) || (length2 < 8)) {
17841780
return xor_uint16(array1, length1, array2, length2, output);

0 commit comments

Comments
 (0)