[PATCH] D15399: MS inline ASM: mark the function noinline if the asm has labels (PR23715)

Hans Wennborg via cfe-commits cfe-commits at lists.llvm.org
Wed Dec 9 17:40:26 PST 2015


hans added inline comments.

================
Comment at: lib/CodeGen/CGStmt.cpp:2005
@@ -1998,3 +2004,3 @@
                          /* IsAlignStack */ false, AsmDialect);
   llvm::CallInst *Result = Builder.CreateCall(IA, Args);
   Result->addAttribute(llvm::AttributeSet::FunctionIndex,
----------------
majnemer wrote:
> rnk wrote:
> > If this inline asm has labels, we should also add the noduplicate attribute to the callsite. That will prevent CFG transforms like tail duplication from duplicating it.
> Actually, isn't noduplicate sufficient?  I'm having trouble seeing where noinline inhibits problematic transforms over noduplicate.
You're right. I'll just do that.

================
Comment at: test/CodeGen/ms-inline-asm.c:536
@@ -535,3 +535,3 @@
   }
-  // CHECK-LABEL: define void @label1
+  // CHECK: define void @label1() [[ATTR1:#[0-9]+]] {
   // CHECK: call void asm sideeffect inteldialect "{{.*}}__MSASMLABEL_.1__label:\0A\09jmp {{.*}}__MSASMLABEL_.1__label", "~{dirflag},~{fpsr},~{flags}"()
----------------
rsmith wrote:
> Why is this not a CHECK-LABEL any more?
FileCheck got upset:
error: found 'CHECK-LABEL:' with variable definition or use


http://reviews.llvm.org/D15399





More information about the cfe-commits mailing list