From: Zack Rusin Date: Wed, 13 Feb 2008 05:36:31 +0000 (-0500) Subject: fix fetching input elements and generate a ret on end X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=53c2963b84f7a8538d2a2c67e3fbb8a22f644c57;p=mesa.git fix fetching input elements and generate a ret on end --- diff --git a/src/mesa/pipe/llvm/instructionssoa.cpp b/src/mesa/pipe/llvm/instructionssoa.cpp index 9ac4d8fbc73..0e501ab08d0 100644 --- a/src/mesa/pipe/llvm/instructionssoa.cpp +++ b/src/mesa/pipe/llvm/instructionssoa.cpp @@ -2,6 +2,7 @@ InstructionsSoa::InstructionsSoa(llvm::Module *mod, llvm::Function *func, llvm::BasicBlock *block, StorageSoa *storage) + : m_builder(block) { } @@ -23,4 +24,5 @@ std::vector InstructionsSoa::mul(const std::vector i void InstructionsSoa::end() { + m_builder.CreateRetVoid(); } diff --git a/src/mesa/pipe/llvm/instructionssoa.h b/src/mesa/pipe/llvm/instructionssoa.h index 0b6b41cf056..233d363b906 100644 --- a/src/mesa/pipe/llvm/instructionssoa.h +++ b/src/mesa/pipe/llvm/instructionssoa.h @@ -28,6 +28,8 @@ #ifndef INSTRUCTIONSSOA_H #define INSTRUCTIONSSOA_H +#include + #include namespace llvm { @@ -49,6 +51,8 @@ public: std::vector mul(const std::vector in1, const std::vector in2); void end(); +private: + llvm::LLVMFoldingBuilder m_builder; }; diff --git a/src/mesa/pipe/llvm/storagesoa.cpp b/src/mesa/pipe/llvm/storagesoa.cpp index 8f82989cc5d..786511204a3 100644 --- a/src/mesa/pipe/llvm/storagesoa.cpp +++ b/src/mesa/pipe/llvm/storagesoa.cpp @@ -150,10 +150,7 @@ llvm::Value * StorageSoa::elementPointer(llvm::Value *ptr, int index, { std::vector indices; indices.push_back(constantInt(index)); - indices.push_back(constantInt(0));//first element in the struct indices.push_back(constantInt(channel)); - indices.push_back(constantInt(0));//f channel - indices.push_back(constantInt(0));//first ptr in the f channel GetElementPtrInst *getElem = new GetElementPtrInst(ptr, indices.begin(),