fix fetching input elements and generate a ret on end
This commit is contained in:
@@ -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<llvm::Value*> InstructionsSoa::mul(const std::vector<llvm::Value*> i
|
||||
|
||||
void InstructionsSoa::end()
|
||||
{
|
||||
m_builder.CreateRetVoid();
|
||||
}
|
||||
|
||||
@@ -28,6 +28,8 @@
|
||||
#ifndef INSTRUCTIONSSOA_H
|
||||
#define INSTRUCTIONSSOA_H
|
||||
|
||||
#include <llvm/Support/LLVMBuilder.h>
|
||||
|
||||
#include <vector>
|
||||
|
||||
namespace llvm {
|
||||
@@ -49,6 +51,8 @@ public:
|
||||
std::vector<llvm::Value*> mul(const std::vector<llvm::Value*> in1,
|
||||
const std::vector<llvm::Value*> in2);
|
||||
void end();
|
||||
private:
|
||||
llvm::LLVMFoldingBuilder m_builder;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -150,10 +150,7 @@ llvm::Value * StorageSoa::elementPointer(llvm::Value *ptr, int index,
|
||||
{
|
||||
std::vector<Value*> 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(),
|
||||
|
||||
Reference in New Issue
Block a user