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();