Revision a0fc7fafeee3a6678887d8c8e86c47def4572526 authored by Alexander Root on 04 February 2021, 01:13:53 UTC, committed by GitHub on 04 February 2021, 01:13:53 UTC
* add fixes to overflow analysis in bounds inference Co-authored-by: Steven Johnson <srj@google.com>
1 parent dadbcbf
osx_get_symbol.cpp
#include "HalideRuntime.h"
extern "C" {
void *dlopen(const char *, int);
void *dlsym(void *, const char *);
#define RTLD_DEFAULT ((void *)-2)
#define RTLD_LAZY 0x1
#define RTLD_LOCAL 0x4
WEAK void *halide_default_get_symbol(const char *name) {
return dlsym(RTLD_DEFAULT, name);
}
WEAK void *halide_default_load_library(const char *name) {
return dlopen(name, RTLD_LAZY | RTLD_LOCAL);
}
WEAK void *halide_default_get_library_symbol(void *lib, const char *name) {
// We want our semantics to be such that if lib is nullptr, this call
// is equivalent to halide_get_symbol.
if (lib == nullptr) {
lib = RTLD_DEFAULT;
}
return dlsym(lib, name);
}
} // extern "C"
namespace Halide {
namespace Runtime {
namespace Internal {
WEAK halide_get_symbol_t custom_get_symbol = halide_default_get_symbol;
WEAK halide_load_library_t custom_load_library = halide_default_load_library;
WEAK halide_get_library_symbol_t custom_get_library_symbol = halide_default_get_library_symbol;
} // namespace Internal
} // namespace Runtime
} // namespace Halide
extern "C" {
WEAK halide_get_symbol_t halide_set_custom_get_symbol(halide_get_symbol_t f) {
halide_get_symbol_t result = custom_get_symbol;
custom_get_symbol = f;
return result;
}
WEAK halide_load_library_t halide_set_custom_load_library(halide_load_library_t f) {
halide_load_library_t result = custom_load_library;
custom_load_library = f;
return result;
}
WEAK halide_get_library_symbol_t halide_set_custom_get_library_symbol(halide_get_library_symbol_t f) {
halide_get_library_symbol_t result = custom_get_library_symbol;
custom_get_library_symbol = f;
return result;
}
WEAK void *halide_get_symbol(const char *name) {
return custom_get_symbol(name);
}
WEAK void *halide_load_library(const char *name) {
return custom_load_library(name);
}
WEAK void *halide_get_library_symbol(void *lib, const char *name) {
return custom_get_library_symbol(lib, name);
}
} // extern "C"
Computing file changes ...