From 61d998c966d10e7a44b06d378c54b5f21ad69b53 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Thu, 25 Oct 2007 12:14:07 -0400 Subject: Make ret part of the instruction block instead of implicitely closing at the end of parsing. --- src/mesa/pipe/llvm/instructions.cpp | 5 +++++ src/mesa/pipe/llvm/instructions.h | 1 + src/mesa/pipe/llvm/llvmtgsi.cpp | 3 +-- 3 files changed, 7 insertions(+), 2 deletions(-) (limited to 'src/mesa/pipe') diff --git a/src/mesa/pipe/llvm/instructions.cpp b/src/mesa/pipe/llvm/instructions.cpp index 5b54af8717..3fca522324 100644 --- a/src/mesa/pipe/llvm/instructions.cpp +++ b/src/mesa/pipe/llvm/instructions.cpp @@ -1080,3 +1080,8 @@ llvm::Value * Instructions::trunc(llvm::Value *in) return vectorFromVals(fx, fy, fz, fw); } +void Instructions::end() +{ + new ReturnInst(m_block); +} + diff --git a/src/mesa/pipe/llvm/instructions.h b/src/mesa/pipe/llvm/instructions.h index 29ae168e76..82d871d410 100644 --- a/src/mesa/pipe/llvm/instructions.h +++ b/src/mesa/pipe/llvm/instructions.h @@ -64,6 +64,7 @@ public: void elseop(); void endif(); void endLoop(); + void end(); llvm::Value *ex2(llvm::Value *in); llvm::Value *floor(llvm::Value *in); llvm::Value *frc(llvm::Value *in); diff --git a/src/mesa/pipe/llvm/llvmtgsi.cpp b/src/mesa/pipe/llvm/llvmtgsi.cpp index 6eae46d3ae..b1175d7f9b 100644 --- a/src/mesa/pipe/llvm/llvmtgsi.cpp +++ b/src/mesa/pipe/llvm/llvmtgsi.cpp @@ -595,6 +595,7 @@ translate_instruction(llvm::Module *module, case TGSI_OPCODE_KIL: break; case TGSI_OPCODE_END: + instr->end(); return; break; default: @@ -696,8 +697,6 @@ tgsi_to_llvm(struct gallivm_prog *prog, const struct tgsi_token *tokens) } } - new ReturnInst(instr.currentBlock()); - tgsi_parse_free(&parse); prog->num_consts = storage.numConsts(); -- cgit v1.2.3