Author: nicholas Date: Wed Nov 21 21:07:37 2007 New Revision: 44267 URL: http://llvm.org/viewvc/llvm-project?rev=44267&view=rev Log: Create nodes for inline asm so that we don't crash looking for the node later.
Added: llvm/trunk/test/Analysis/Andersens/2007-11-19-InlineAsm.ll Modified: llvm/trunk/lib/Analysis/IPA/Andersens.cpp Modified: llvm/trunk/lib/Analysis/IPA/Andersens.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/IPA/Andersens.cpp?rev=44267&r1=44266&r2=44267&view=diff ============================================================================== --- llvm/trunk/lib/Analysis/IPA/Andersens.cpp (original) +++ llvm/trunk/lib/Analysis/IPA/Andersens.cpp Wed Nov 21 21:07:37 2007 @@ -668,6 +668,14 @@ if (AllocationInst *AI = dyn_cast<AllocationInst>(&*II)) ObjectNodes[AI] = NumObjects++; } + + // Calls to inline asm need to be added as well because the callee isn't + // referenced anywhere else. + if (CallInst *CI = dyn_cast<CallInst>(&*II)) { + Value *Callee = CI->getCalledValue(); + if (isa<InlineAsm>(Callee)) + ValueNodes[Callee] = NumObjects++; + } } } Added: llvm/trunk/test/Analysis/Andersens/2007-11-19-InlineAsm.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Analysis/Andersens/2007-11-19-InlineAsm.ll?rev=44267&view=auto ============================================================================== --- llvm/trunk/test/Analysis/Andersens/2007-11-19-InlineAsm.ll (added) +++ llvm/trunk/test/Analysis/Andersens/2007-11-19-InlineAsm.ll Wed Nov 21 21:07:37 2007 @@ -0,0 +1,8 @@ +; RUN: llvm-as < %s | opt -anders-aa -disable-output + +define void @x(i16 %Y) { +entry: + %tmp = call i16 asm "bswap $0", "=r,r"(i16 %Y) + ret void +} + _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits