[llvm-commits] [llvm] r44267 - in /llvm/trunk: lib/Analysis/IPA/Andersens.cpp test/Analysis/Andersens/2007-11-19-InlineAsm.ll
Nick Lewycky
nicholas at mxc.ca
Wed Nov 21 19:07:43 PST 2007
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
+}
+
More information about the llvm-commits
mailing list