LGTM, pushed, thanks.
On Thu, Jun 19, 2014 at 02:01:23PM +0800, Ruiling Song wrote: > 1. use_iterator point to 'Use' now instead of 'User'. > 2. all c-string are in constant address space now, which follows OCL Spec. > > Signed-off-by: Ruiling Song <[email protected]> > --- > backend/src/llvm/llvm_gen_backend.cpp | 10 ++++++++-- > backend/src/ocl_stdlib.tmpl.h | 5 +++++ > 2 files changed, 13 insertions(+), 2 deletions(-) > > diff --git a/backend/src/llvm/llvm_gen_backend.cpp > b/backend/src/llvm/llvm_gen_backend.cpp > index 1bf59a1..a5aa038 100644 > --- a/backend/src/llvm/llvm_gen_backend.cpp > +++ b/backend/src/llvm/llvm_gen_backend.cpp > @@ -1524,8 +1524,14 @@ namespace gbe > // one instruction that use the local variable, simply return. > const Instruction *insn = NULL; > for(Value::const_use_iterator iter = v->use_begin(); iter != > v->use_end(); ++iter) { > - if(isa<Instruction>(*iter)) return cast<const Instruction>(*iter); > - insn = getInstructionUseLocal(*iter); > + // After LLVM 3.5, use_iterator points to 'Use' instead of 'User', which > is more straightforward. > +#if (LLVM_VERSION_MAJOR == 3) && (LLVM_VERSION_MINOR < 5) > + const User *theUser = *iter; > +#else > + const User *theUser = iter->getUser(); > +#endif > + if(isa<Instruction>(theUser)) return cast<const Instruction>(theUser); > + insn = getInstructionUseLocal(theUser); > if(insn != NULL) break; > } > return insn; > diff --git a/backend/src/ocl_stdlib.tmpl.h b/backend/src/ocl_stdlib.tmpl.h > index a4bdfbd..c2eca7c 100755 > --- a/backend/src/ocl_stdlib.tmpl.h > +++ b/backend/src/ocl_stdlib.tmpl.h > @@ -5018,7 +5018,12 @@ INLINE_OVERLOADABLE float > __gen_ocl_internal_fastpath_tanh (float x) > #undef INLINE > > /* The printf function. */ > +/* From LLVM 3.5, c string are all in constant address space */ > +#if 100*__clang_major__ + __clang_minor__ < 305 > int __gen_ocl_printf_stub(const char * format, ...); > +#else > +int __gen_ocl_printf_stub(constant char * format, ...); > +#endif > #define printf __gen_ocl_printf_stub > > #endif /* __GEN_OCL_STDLIB_H__ */ > -- > 1.7.10.4 > > _______________________________________________ > Beignet mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/beignet _______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
