ValueMapper does not preserve inline assembly dialect when remapping the type
authorCraig Topper <craig.topper@gmail.com>
Sun, 17 May 2020 21:57:04 +0000 (14:57 -0700)
committerCraig Topper <craig.topper@gmail.com>
Sun, 17 May 2020 21:57:50 +0000 (14:57 -0700)
Bug report: https://bugs.llvm.org/show_bug.cgi?id=45291

Patch by Tomasz Miąsko

Differential Revision: https://reviews.llvm.org/D80066

llvm/lib/Transforms/Utils/ValueMapper.cpp

index 3c55df2..f1b3fe8 100644 (file)
@@ -368,7 +368,8 @@ Value *Mapper::mapValue(const Value *V) {
 
       if (NewTy != IA->getFunctionType())
         V = InlineAsm::get(NewTy, IA->getAsmString(), IA->getConstraintString(),
-                           IA->hasSideEffects(), IA->isAlignStack());
+                           IA->hasSideEffects(), IA->isAlignStack(),
+                           IA->getDialect());
     }
 
     return getVM()[V] = const_cast<Value *>(V);