<commit_before>#include "CodeGen_X86.h"
#include "IROperator.h"
#include <iostream>
#include "buffer_t.h"
#include "IRMutator.h"
#include "IRMatch.h"
#include "Simplify.h"
#include "Debug.h"
#include "Util.h"
#include "Var.h"
#include "Param.h"
#include "integer_division_table.h"
#include "IRPrinter.h"
#include "LLVM_Headers.h"

// Ugly but quite expedient.
#define DECLARE_INITMOD_(TARGET) \
    extern "C" unsigned char halide_internal_initmod_##TARGET[]; \
    extern "C" int halide_internal_initmod_##TARGET##_length;

#if WITH_NATIVE_CLIENT
#define DECLARE_INITMOD(TARGET) \
    DECLARE_INITMOD_(TARGET)
    DECLARE_INITMOD_(TARGET##_nacl)
#else
#define DECLARE_INITMOD(TARGET) \
    DECLARE_INITMOD_(TARGET) \
    static void* halide_internal_initmod_##TARGET##_nacl = 0; \
    static int halide_internal_initmod_##TARGET##_nacl_length = 0;
#endif

DECLARE_INITMOD(x86_32)
DECLARE_INITMOD(x86_32_sse41)
DECLARE_INITMOD(x86_64)
DECLARE_INITMOD(x86_64_sse41)
DECLARE_INITMOD(x86_64_avx)

#undef DECLARE_INITMOD_
#undef DECLARE_INITMOD

namespace Halide {
namespace Internal {

using std::vector;
using std::string;<commit_msg>My compiler choked on the recursive macros when compiling with native client.<commit_after>#include "CodeGen_X86.h"
#include "IROperator.h"
#include <iostream>
#include "buffer_t.h"
#include "IRMutator.h"
#include "IRMatch.h"
#include "Simplify.h"
#include "Debug.h"
#include "Util.h"
#include "Var.h"
#include "Param.h"
#include "integer_division_table.h"
#include "IRPrinter.h"
#include "LLVM_Headers.h"

// Ugly but quite expedient.
#define DECLARE_INITMOD(TARGET) \
    extern "C" unsigned char halide_internal_initmod_##TARGET[]; \
    extern "C" int halide_internal_initmod_##TARGET##_length;

#define DECLARE_EMPTY_INITMOD(TARGET) \
    static void *halide_internal_initmod_##TARGET = 0; \
    static int halide_internal_initmod_##TARGET##_length = 0;

DECLARE_INITMOD(x86_32)
DECLARE_INITMOD(x86_32_sse41)
DECLARE_INITMOD(x86_64)
DECLARE_INITMOD(x86_64_sse41)
DECLARE_INITMOD(x86_64_avx)

#if WITH_NATIVE_CLIENT
DECLARE_INITMOD(x86_32_nacl)
DECLARE_INITMOD(x86_32_sse41_nacl)
DECLARE_INITMOD(x86_64_nacl)
DECLARE_INITMOD(x86_64_sse41_nacl)
DECLARE_INITMOD(x86_64_avx_nacl)
#else
DECLARE_EMPTY_INITMOD(x86_32_nacl)
DECLARE_EMPTY_INITMOD(x86_32_sse41_nacl)
DECLARE_EMPTY_INITMOD(x86_64_nacl)
DECLARE_EMPTY_INITMOD(x86_64_sse41_nacl)
DECLARE_EMPTY_INITMOD(x86_64_avx_nacl)
#endif

#undef DECLARE_INITMOD

namespace Halide {
namespace Internal {

using std::vector;
using std::string;
{'fraction_non_alphanumeric': 0.10833333333333334, 'fraction_numerical': 0.04126984126984127, 'mean_word_length': 7.6632302405498285, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '615549', 'n_tokens_mistral': 1083, 'n_tokens_neox': 995, 'n_words': 171}