From: Benjamin Segovia Date: Sat, 7 Apr 2012 00:06:16 +0000 (-0700) Subject: Fixed issue with new / delete operators X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=dcff527fcf3ccc3862688f1a927514bd61ef9350;p=contrib%2Fbeignet.git Fixed issue with new / delete operators --- diff --git a/backend/src/backend/gen_context.hpp b/backend/src/backend/gen_context.hpp index 9827502..d2d06ac 100644 --- a/backend/src/backend/gen_context.hpp +++ b/backend/src/backend/gen_context.hpp @@ -48,7 +48,6 @@ namespace gbe virtual void emitCode(void); /*! Implements base class */ virtual Kernel *allocateKernel(void); - GBE_CLASS(GenContext); }; } /* namespace gbe */ diff --git a/backend/src/backend/gen_program.hpp b/backend/src/backend/gen_program.hpp index 219a1ee..8eb75b9 100644 --- a/backend/src/backend/gen_program.hpp +++ b/backend/src/backend/gen_program.hpp @@ -58,7 +58,6 @@ namespace gbe { virtual ~GenProgram(void); /*! Implements base class */ Kernel *compileKernel(const ir::Unit &unit, const std::string &name); - GBE_STRUCT(GenProgram); //!< Use gbe allocators }; } /* namespace gbe */ diff --git a/backend/src/backend/program.cpp b/backend/src/backend/program.cpp index d3ef8a7..ec9d444 100644 --- a/backend/src/backend/program.cpp +++ b/backend/src/backend/program.cpp @@ -167,30 +167,33 @@ GBE_EXPORT_SYMBOL gbe_kernel_get_simd_width_cb *gbe_kernel_get_simd_width = NULL GBE_EXPORT_SYMBOL gbe_kernel_get_curbe_offset_cb *gbe_kernel_get_curbe_offset = NULL; GBE_EXPORT_SYMBOL gbe_kernel_get_required_work_group_size_cb *gbe_kernel_get_required_work_group_size = NULL; -/* Use pre-main to setup the call backs */ -struct CallBackInitializer +namespace gbe { - CallBackInitializer(void) { - gbe_program_delete = gbe::programDelete; - gbe_program_get_kernel_num = gbe::programGetKernelNum; - gbe_program_get_kernel_by_name = gbe::programGetKernelByName; - gbe_program_get_kernel = gbe::programGetKernel; - gbe_kernel_get_name = gbe::kernelGetName; - gbe_kernel_get_code = gbe::kernelGetCode; - gbe_kernel_get_code_size = gbe::kernelGetCodeSize; - gbe_kernel_get_arg_num = gbe::kernelGetArgNum; - gbe_kernel_get_arg_size = gbe::kernelGetArgSize; - gbe_kernel_get_arg_type = gbe::kernelGetArgType; - gbe_kernel_get_simd_width = gbe::kernelGetSIMDWidth; - gbe_kernel_get_curbe_offset = gbe::kernelGetCurbeOffset; - gbe_kernel_get_required_work_group_size = gbe::kernelGetRequiredWorkGroupSize; - const char *run_it = getenv("OCL_SIMULATOR"); - if (run_it != NULL && !strcmp(run_it, "2")) - simSetupCallBacks(); - else - genSetupCallBacks(); - } -}; - -static CallBackInitializer cbInitializer; + /* Use pre-main to setup the call backs */ + struct CallBackInitializer + { + CallBackInitializer(void) { + gbe_program_delete = gbe::programDelete; + gbe_program_get_kernel_num = gbe::programGetKernelNum; + gbe_program_get_kernel_by_name = gbe::programGetKernelByName; + gbe_program_get_kernel = gbe::programGetKernel; + gbe_kernel_get_name = gbe::kernelGetName; + gbe_kernel_get_code = gbe::kernelGetCode; + gbe_kernel_get_code_size = gbe::kernelGetCodeSize; + gbe_kernel_get_arg_num = gbe::kernelGetArgNum; + gbe_kernel_get_arg_size = gbe::kernelGetArgSize; + gbe_kernel_get_arg_type = gbe::kernelGetArgType; + gbe_kernel_get_simd_width = gbe::kernelGetSIMDWidth; + gbe_kernel_get_curbe_offset = gbe::kernelGetCurbeOffset; + gbe_kernel_get_required_work_group_size = gbe::kernelGetRequiredWorkGroupSize; + const char *run_it = getenv("OCL_SIMULATOR"); + if (run_it != NULL && !strcmp(run_it, "2")) + simSetupCallBacks(); + else + genSetupCallBacks(); + } + }; + + static CallBackInitializer cbInitializer; +} /* namespace gbe */ diff --git a/backend/src/backend/sim_context.hpp b/backend/src/backend/sim_context.hpp index c46acff..13d83c7 100644 --- a/backend/src/backend/sim_context.hpp +++ b/backend/src/backend/sim_context.hpp @@ -48,7 +48,6 @@ namespace gbe virtual void emitCode(void); /*! Implements base class */ virtual Kernel *allocateKernel(void); - GBE_CLASS(SimContext); }; } /* namespace gbe */ diff --git a/backend/src/backend/sim_program.hpp b/backend/src/backend/sim_program.hpp index 005221d..646453c 100644 --- a/backend/src/backend/sim_program.hpp +++ b/backend/src/backend/sim_program.hpp @@ -47,7 +47,6 @@ namespace gbe { virtual size_t getCodeSize(void) const { return sizeof(&fn); } SimKernelCallBack *fn; //!< Function that runs the code void *handle; //!< dlopen / dlclose / dlsym handle - GBE_STRUCT(SimKernel); //!< Use gbe allocators }; /*! Describe a compiled program */ @@ -59,7 +58,6 @@ namespace gbe { virtual ~SimProgram(void); /*! Implements base class */ virtual Kernel *compileKernel(const ir::Unit &unit, const std::string &name); - GBE_STRUCT(SimProgram); //!< Use gbe allocators }; } /* namespace gbe */ diff --git a/backend/src/sys/alloc.hpp b/backend/src/sys/alloc.hpp index 83fd9c7..ba00aff 100644 --- a/backend/src/sys/alloc.hpp +++ b/backend/src/sys/alloc.hpp @@ -61,6 +61,11 @@ namespace gbe } } /* namespace gbe */ +/*! Declare a class with custom allocators */ +#define GBE_CLASS(TYPE) \ + GBE_STRUCT(TYPE) \ +private: + /*! Declare a structure with custom allocators */ #define GBE_STRUCT(TYPE) \ public: \ @@ -76,6 +81,8 @@ public: \ else \ return gbe::memAlloc(size); \ } \ + void* operator new(size_t size, void *p) { return p; } \ + void* operator new[](size_t size, void *p) { return p; } \ void operator delete(void* ptr) { \ if (AlignOf::value > sizeof(uintptr_t)) \ return gbe::alignedFree(ptr); \ @@ -88,13 +95,6 @@ public: \ else \ return gbe::memFree(ptr); \ } \ - void* operator new(size_t size, void *p) { return p; } \ - void* operator new[](size_t size, void *p) { return p; } \ - -/*! Declare a class with custom allocators */ -#define GBE_CLASS(TYPE) \ - GBE_STRUCT(TYPE) \ -private: /*! Macros to handle allocation position */ #define GBE_NEW(T,...) \