LGTM, pushed, thanks.
> -----Original Message----- > From: Beignet [mailto:[email protected]] On Behalf Of > Song, Ruiling > Sent: Tuesday, August 12, 2014 10:58 AM > To: Lv, Meng; [email protected] > Cc: Lv, Meng > Subject: Re: [Beignet] [PATCH] [PATCH_V2]Fix compile errors for CLANG > compiler > > This patch LGTM. A minor problem is make your commit message in good > format. > > -----Original Message----- > From: Beignet [mailto:[email protected]] On Behalf Of Lv > Meng > Sent: Friday, August 08, 2014 4:10 PM > To: [email protected] > Cc: Lv, Meng > Subject: [Beignet] [PATCH] [PATCH_V2]Fix compile errors for CLANG compiler > > use vector to fix "variable length array of non-POD element type" compiler > error. > the /beignet/backend/src/./ir/context.hpp "fn->immediates[index] = imm" > would call a private func 'operator=' which would trigger error, and it is not > being used. > the undefined reference to `check_copy_overlap' would occur in the following > calling > Signed-off-by: Lv Meng <[email protected]> > --- > backend/src/backend/gen_insn_selection.cpp | 13 ++++++------- > backend/src/ir/context.hpp | 5 ----- > src/cl_api.c | 8 ++++---- > 3 files changed, 10 insertions(+), 16 deletions(-) > > diff --git a/backend/src/backend/gen_insn_selection.cpp > b/backend/src/backend/gen_insn_selection.cpp > index 090f897..b7a39af 100644 > --- a/backend/src/backend/gen_insn_selection.cpp > +++ b/backend/src/backend/gen_insn_selection.cpp > @@ -2799,11 +2799,11 @@ namespace gbe > /* XXX support scalar only right now. */ > GBE_ASSERT(valueNum == 1); > GBE_ASSERT(bti.count == 1); > - GenRegister dst[valueNum]; > + vector<GenRegister> dst(valueNum); > GenRegister tmpAddr = getRelativeAddress(sel, addr, > insn.getAddressSpace(), bti.bti[0]); > for ( uint32_t dstID = 0; dstID < valueNum; ++dstID) > dst[dstID] = sel.selReg(insn.getValue(dstID), ir::TYPE_U64); > - sel.READ64(tmpAddr, dst, valueNum, bti.bti[0]); > + sel.READ64(tmpAddr, dst.data(), valueNum, bti.bti[0]); > } > > void readByteAsDWord(Selection::Opaque &sel, @@ -2999,11 +2999,11 > @@ namespace gbe > /* XXX support scalar only right now. */ > GBE_ASSERT(valueNum == 1); > addr = GenRegister::retype(addr, GEN_TYPE_UD); > - GenRegister src[valueNum]; > + vector<GenRegister> src(valueNum); > > for (uint32_t valueID = 0; valueID < valueNum; ++valueID) > src[valueID] = sel.selReg(insn.getValue(valueID), ir::TYPE_U64); > - sel.WRITE64(addr, src, valueNum, bti); > + sel.WRITE64(addr, src.data(), valueNum, bti); > } > > void emitByteScatter(Selection::Opaque &sel, @@ -3710,11 +3710,10 > @@ namespace gbe > { > using namespace ir; > GenRegister msgPayloads[4]; > - GenRegister dst[insn.getDstNum()]; > + vector<GenRegister> dst(insn.getDstNum()); > uint32_t srcNum = insn.getSrcNum(); > uint32_t valueID = 0; > uint32_t msgLen = 0; > - > for (valueID = 0; valueID < insn.getDstNum(); ++valueID) > dst[valueID] = sel.selReg(insn.getDst(valueID), insn.getDstType()); > > @@ -3751,7 +3750,7 @@ namespace gbe > } > uint32_t sampler = insn.getSamplerIndex(); > > - sel.SAMPLE(dst, insn.getDstNum(), msgPayloads, msgLen, bti, sampler, > insn.getSamplerOffset() != 0, false); > + sel.SAMPLE(dst.data(), insn.getDstNum(), msgPayloads, msgLen, > + bti, sampler, insn.getSamplerOffset() != 0, false); > return true; > } > DECL_CTOR(SampleInstruction, 1, 1); diff --git > a/backend/src/ir/context.hpp b/backend/src/ir/context.hpp index > cd09413..ff9e000 100644 > --- a/backend/src/ir/context.hpp > +++ b/backend/src/ir/context.hpp > @@ -117,11 +117,6 @@ namespace ir { > return fn->newImmediate(dstImm); > } > > - /*! Set an immediate value */ > - template <typename T> INLINE void setImmediate(ImmediateIndex index, > T value) { > - const Immediate imm(value); > - fn->immediates[index] = imm; > - } > /*! Create a new register holding the given value. A LOADI is pushed */ > template <typename T> INLINE Register immReg(T value) { > GBE_ASSERTM(fn != NULL, "No function currently defined"); diff --git > a/src/cl_api.c b/src/cl_api.c index 177a7e8..d74df40 100644 > --- a/src/cl_api.c > +++ b/src/cl_api.c > @@ -90,10 +90,10 @@ handle_events(cl_command_queue queue, cl_int num, > const cl_event *wait_list, } > > /* The following code checking overlap is from Appendix of openCL spec 1.1 */ > -inline cl_bool check_copy_overlap(const size_t src_offset[3], > - const size_t dst_offset[3], > - const size_t region[3], > - size_t row_pitch, size_t slice_pitch) > +cl_bool check_copy_overlap(const size_t src_offset[3], > + const size_t dst_offset[3], > + const size_t region[3], > + size_t row_pitch, size_t slice_pitch) > { > const size_t src_min[] = {src_offset[0], src_offset[1], src_offset[2]}; > const size_t src_max[] = {src_offset[0] + region[0], > -- > 1.8.3.2 > > _______________________________________________ > Beignet mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/beignet > _______________________________________________ > Beignet mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/beignet _______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
