aboutsummaryrefslogtreecommitdiff
path: root/src/codegen.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2016-12-04 23:52:43 -0500
committerAndrew Kelley <superjoe30@gmail.com>2016-12-04 23:52:43 -0500
commit25a89e7a362ab4876139fad7427a2193665cb042 (patch)
treef84e4d5374c20dd9aa649192384bb9d06f35970d /src/codegen.cpp
parent9f23475b172dbe09861c5680ebec2eb96f307cb0 (diff)
downloadzig-25a89e7a362ab4876139fad7427a2193665cb042.tar.gz
zig-25a89e7a362ab4876139fad7427a2193665cb042.zip
IR: compile time function evaluation
Diffstat (limited to 'src/codegen.cpp')
-rw-r--r--src/codegen.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/codegen.cpp b/src/codegen.cpp
index 8b8650a546..af62f57ebe 100644
--- a/src/codegen.cpp
+++ b/src/codegen.cpp
@@ -1758,7 +1758,7 @@ static LLVMValueRef ir_render_phi(CodeGen *g, IrExecutable *executable, IrInstru
LLVMBasicBlockRef *incoming_blocks = allocate<LLVMBasicBlockRef>(instruction->incoming_count);
for (size_t i = 0; i < instruction->incoming_count; i += 1) {
incoming_values[i] = ir_llvm_value(g, instruction->incoming_values[i]);
- incoming_blocks[i] = instruction->incoming_blocks[i]->llvm_block;
+ incoming_blocks[i] = instruction->incoming_blocks[i]->llvm_exit_block;
}
LLVMAddIncoming(phi, incoming_values, incoming_blocks, instruction->incoming_count);
return phi;
@@ -1877,6 +1877,7 @@ static void ir_render(CodeGen *g, FnTableEntry *fn_entry) {
continue;
instruction->llvm_value = ir_render_instruction(g, executable, instruction);
}
+ current_block->llvm_exit_block = LLVMGetInsertBlock(g->builder);
}
}