Mercurial > projects > ldc
comparison gen/llvmhelpers.cpp @ 980:ae710cba0884
Clean up the code generated when jumping out of inline asm and make label names more expressive.
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Wed, 18 Feb 2009 22:50:22 +0100 |
parents | 780530d1cad3 |
children | 18ad5601dff7 |
comparison
equal
deleted
inserted
replaced
979:523bf4f166bc | 980:ae710cba0884 |
---|---|
189 | 189 |
190 // find target basic block | 190 // find target basic block |
191 std::string labelname = gIR->func()->getScopedLabelName(target->toChars()); | 191 std::string labelname = gIR->func()->getScopedLabelName(target->toChars()); |
192 llvm::BasicBlock*& targetBB = gIR->func()->labelToBB[labelname]; | 192 llvm::BasicBlock*& targetBB = gIR->func()->labelToBB[labelname]; |
193 if (targetBB == NULL) | 193 if (targetBB == NULL) |
194 targetBB = llvm::BasicBlock::Create("label", gIR->topfunc()); | 194 targetBB = llvm::BasicBlock::Create("label_" + labelname, gIR->topfunc()); |
195 | 195 |
196 // find finallys between goto and label | 196 // find finallys between goto and label |
197 EnclosingHandler* endfinally = enclosinghandler; | 197 EnclosingHandler* endfinally = enclosinghandler; |
198 while(endfinally != NULL && endfinally != lblstmt->enclosinghandler) { | 198 while(endfinally != NULL && endfinally != lblstmt->enclosinghandler) { |
199 endfinally = endfinally->getEnclosing(); | 199 endfinally = endfinally->getEnclosing(); |