Untangle amalgamated headers

This commit is contained in:
John Keiser 2020-07-16 14:42:16 -07:00
parent a456d78fe0
commit 7d347be902
6 changed files with 17 additions and 22 deletions

View File

@ -54,6 +54,11 @@ function doinclude()
# generic includes are included multiple times
if [[ "${file}" == *'generic/'*'.h' ]]; then
dofile $AMALGAMATE_SOURCE_PATH $file
# begin/end_implementation are also included multiple times
elif [[ "${file}" == *'begin_implementation.h' ]]; then
dofile $AMALGAMATE_SOURCE_PATH $file
elif [[ "${file}" == *'end_implementation.h' ]]; then
dofile $AMALGAMATE_SOURCE_PATH $file
elif [[ ! " ${found_includes[@]} " =~ " ${file} " ]]; then
found_includes+=("$file")
dofile $AMALGAMATE_SOURCE_PATH $file

View File

@ -1,9 +1,6 @@
#include "simdjson.h"
#define SIMDJSON_IMPLEMENTATION arm64
#include "arm64/implementation.h"
#include "arm64/intrinsics.h"
#define SIMDJSON_IMPLEMENTATION arm64
#include "arm64/bitmanipulation.h"
#include "arm64/bitmask.h"
#include "arm64/simd.h"

View File

@ -1,6 +1,3 @@
#include "simdjson.h"
#include "fallback/implementation.h"
#define SIMDJSON_IMPLEMENTATION fallback
#include "fallback/implementation.h"
#include "fallback/bitmanipulation.h"

View File

@ -1,10 +1,10 @@
#include "simdjson.h"
#define SIMDJSON_IMPLEMENTATION haswell
#define SIMDJSON_TARGET_HASWELL SIMDJSON_TARGET_REGION("avx2,bmi,pclmul,lzcnt")
#include "haswell/implementation.h"
#include "haswell/intrinsics.h" // Generally need to be included outside SIMDJSON_TARGET_REGION
#define SIMDJSON_IMPLEMENTATION haswell
SIMDJSON_TARGET_REGION("avx2,bmi,pclmul,lzcnt")
SIMDJSON_TARGET_HASWELL
#include "haswell/bitmanipulation.h"
#include "haswell/bitmask.h"

View File

@ -41,17 +41,12 @@
// has it as a macro.
#ifndef _blsr_u64
// we roll our own
#include "haswell/begin_implementation.h"
namespace simdjson {
namespace SIMDJSON_IMPLEMENTATION {
SIMDJSON_TARGET_HASWELL
static really_inline uint64_t _blsr_u64(uint64_t n) {
return (n - 1) & n;
}
} // namespace SIMDJSON_IMPLEMENTATION
} // namespace simdjson
#include "haswell/end_implementation.h"
SIMDJSON_UNTARGET_REGION
#endif // _blsr_u64
#endif
#endif // SIMDJSON_CLANG_VISUAL_STUDIO
#endif // SIMDJSON_HASWELL_INTRINSICS_H

View File

@ -1,9 +1,10 @@
#include "simdjson.h"
#define SIMDJSON_IMPLEMENTATION westmere
#define SIMDJSON_TARGET_WESTMERE SIMDJSON_TARGET_REGION("sse4.2,pclmul")
#include "westmere/intrinsics.h" // Generally need to be included outside SIMDJSON_TARGET_REGION
#include "westmere/implementation.h"
#define SIMDJSON_IMPLEMENTATION westmere
SIMDJSON_TARGET_REGION("sse4.2,pclmul")
SIMDJSON_TARGET_WESTMERE
#include "westmere/bitmanipulation.h"
#include "westmere/bitmask.h"