fix fetching input elements and generate a ret on end

This commit is contained in:
Zack Rusin
2008-02-13 00:36:31 -05:00
parent 9b6532f01b
commit 53c2963b84
3 changed files with 6 additions and 3 deletions
+2
View File
@@ -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();
}
+4
View File
@@ -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;
};
-3
View File
@@ -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(),