From 61d998c966d10e7a44b06d378c54b5f21ad69b53 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Thu, 25 Oct 2007 12:14:07 -0400 Subject: [PATCH] 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(-) diff --git a/src/mesa/pipe/llvm/instructions.cpp b/src/mesa/pipe/llvm/instructions.cpp index 5b54af87178..3fca522324d 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 29ae168e760..82d871d4106 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 6eae46d3ae0..b1175d7f9b7 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(); -- 2.30.2