OSDN Git Service

Fix a bug where the types for inlineasm nodes were not properly entered into
authorChris Lattner <sabre@nondot.org>
Wed, 7 Jun 2006 22:20:03 +0000 (22:20 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 7 Jun 2006 22:20:03 +0000 (22:20 +0000)
the compaction table for a function.  This broke compilation of hexxagon
on darwin/x86 with recent changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28717 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Bytecode/Writer/SlotCalculator.cpp

index 26bd1be..6ac295c 100644 (file)
@@ -275,7 +275,7 @@ void SlotCalculator::incorporateFunction(const Function *F) {
   SC_DEBUG("begin processFunction!\n");
 
   // If we emitted all of the function constants, build a compaction table.
-  if ( ModuleContainsAllFunctionConstants)
+  if (ModuleContainsAllFunctionConstants)
     buildCompactionTable(F);
 
   // Update the ModuleLevel entries to be accurate.
@@ -465,7 +465,7 @@ void SlotCalculator::buildCompactionTable(const Function *F) {
   for (const_inst_iterator I = inst_begin(F), E = inst_end(F); I != E; ++I) {
     getOrCreateCompactionTableSlot(I->getType());
     for (unsigned op = 0, e = I->getNumOperands(); op != e; ++op)
-      if (isa<Constant>(I->getOperand(op)))
+      if (isa<Constant>(I->getOperand(op)) || isa<InlineAsm>(I->getOperand(op)))
         getOrCreateCompactionTableSlot(I->getOperand(op));
   }