diff options
| author | Nirav Dave <niravd@google.com> | 2016-07-11 12:42:14 +0000 |
|---|---|---|
| committer | Nirav Dave <niravd@google.com> | 2016-07-11 12:42:14 +0000 |
| commit | 53a72f4d3c644b0364126daa67fb823171f48781 (patch) | |
| tree | 4d971584d3c227afcfaa4c2fc84e6f3f9a3282a7 /llvm/test/MC/AsmParser/inline-comments.ll | |
| parent | faef9a766745acf6938839a5d433f5b2b5d2863f (diff) | |
| download | bcm5719-llvm-53a72f4d3c644b0364126daa67fb823171f48781.tar.gz bcm5719-llvm-53a72f4d3c644b0364126daa67fb823171f48781.zip | |
Provide support for preserving assembly comments
Preserve assembly comments from input in output assembly and flags to
toggle property. This is on by default for inline assembly and off in
llvm-mc.
Parsed comments are emitted immediately before an EOL which generally
places them on the expected line.
Reviewers: rtrieu, dwmw2, rnk, majnemer
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D20020
llvm-svn: 275058
Diffstat (limited to 'llvm/test/MC/AsmParser/inline-comments.ll')
| -rw-r--r-- | llvm/test/MC/AsmParser/inline-comments.ll | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/llvm/test/MC/AsmParser/inline-comments.ll b/llvm/test/MC/AsmParser/inline-comments.ll new file mode 100644 index 00000000000..b0699d44ebb --- /dev/null +++ b/llvm/test/MC/AsmParser/inline-comments.ll @@ -0,0 +1,88 @@ +; RUN: llc %s -o - | sed -n -e '/#APP/,/#NO_APP/p' > %t +; RUN: sed -n -e 's/^;CHECK://p' %s > %t2 +; RUN: diff %t %t2 + +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: nounwind uwtable +define void @foo() #0 { +entry: + call void asm sideeffect "", "~{dirflag},~{fpsr},~{flags}"() #0 +;CHECK: #APP +;CHECK: #NO_APP + call void asm sideeffect " ", "~{dirflag},~{fpsr},~{flags}"() #0 +;CHECK: #APP +;CHECK: +;CHECK: #NO_APP + call void asm sideeffect "\0A", "~{dirflag},~{fpsr},~{flags}"() #0 +;CHECK: #APP +;CHECK: +;CHECK: +;CHECK: #NO_APP + call void asm sideeffect "/*isolated c comment*/", "~{dirflag},~{fpsr},~{flags}"() #0 +;CHECK: #APP +;CHECK: #isolated c comment +;CHECK: #NO_APP + call void asm sideeffect "/**/", "~{dirflag},~{fpsr},~{flags}"() #0 +;CHECK: #APP +;CHECK: # +;CHECK: #NO_APP + call void asm sideeffect "/*comment with\0Anewline*/", "~{dirflag},~{fpsr},~{flags}"() #0 +;CHECK: #APP +;CHECK: #comment with +;CHECK: #newline +;CHECK: #NO_APP + call void asm sideeffect "//isolated line comment", "~{dirflag},~{fpsr},~{flags}"() #0 +;CHECK: #APP +;CHECK: #isolated line comment +;CHECK: #NO_APP + call void asm sideeffect "#isolated line comment", "~{dirflag},~{fpsr},~{flags}"() #0 +;CHECK: #APP +;CHECK: #isolated line comment +;CHECK: #NO_APP + call void asm sideeffect "nop /* after nop */", "~{dirflag},~{fpsr},~{flags}"() #0 +;CHECK: #APP +;CHECK: nop # after nop +;CHECK: #NO_APP + call void asm sideeffect "nop // after nop", "~{dirflag},~{fpsr},~{flags}"() #0 +;CHECK: #APP +;CHECK: nop # after nop +;CHECK: #NO_APP + call void asm sideeffect "nop # after nop", "~{dirflag},~{fpsr},~{flags}"() #0 +;CHECK: #APP +;CHECK: nop # after nop +;CHECK: #NO_APP + call void asm sideeffect "nop /* after explicit ended nop */", "~{dirflag},~{fpsr},~{flags}"() #0 +;CHECK: #APP +;CHECK: nop # after explicit ended nop +;CHECK: #NO_APP + call void asm sideeffect "nop # after explicit ended nop", "~{dirflag},~{fpsr},~{flags}"() #0 +;CHECK: #APP +;CHECK: nop # after explicit ended nop +;CHECK: #NO_APP + call void asm sideeffect "nop # after explicit end nop", "~{dirflag},~{fpsr},~{flags}"() #0 +;CHECK: #APP +;CHECK: nop # after explicit end nop +;CHECK: #NO_APP + call void asm sideeffect "/* before nop */ nop", "~{dirflag},~{fpsr},~{flags}"() #0 +;CHECK: #APP +;CHECK: nop # before nop +;CHECK: #NO_APP + call void asm sideeffect "//comment with escaped newline\0A", "~{dirflag},~{fpsr},~{flags}"() #0 +;CHECK: #APP +;CHECK: #comment with escaped newline +;CHECK: +;CHECK: #NO_APP + call void asm sideeffect "/*0*/xor/*1*/%eax,/*2*/%ecx/*3*///eol", "~{dirflag},~{fpsr},~{flags}"() #0 +;CHECK: #APP +;CHECK: xorl %eax, %ecx #0 #1 #2 #3 #eol +;CHECK: #NO_APP + ret void +} + +attributes #0 = { nounwind } + +!llvm.ident = !{!0} + +!0 = !{!"clang version 3.9.0 (trunk 268625) (llvm/trunk 268631)"} |

