forked from llvm-mirror/llvm
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MIR Serialization: Serialize instruction's register ties.
This commit serializes the machine instruction's register operand ties. The ties are printed out only when the instructon has register ties that are different from the ties that are specified in the instruction's description. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@245482 91177308-0d34-0410-b5e6-96231b3b80d8
- Loading branch information
Showing
10 changed files
with
269 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# RUN: not llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s 2>&1 | FileCheck %s | ||
--- | | ||
define i64 @test(i64 %x) #0 { | ||
entry: | ||
%asm = tail call i64 asm sideeffect "$foo", "=r,0"(i64 %x) nounwind | ||
ret i64 %asm | ||
} | ||
|
||
attributes #0 = { nounwind } | ||
... | ||
--- | ||
name: test | ||
hasInlineAsm: true | ||
tracksRegLiveness: true | ||
liveins: | ||
- { reg: '%rdi' } | ||
body: | | ||
bb.0.entry: | ||
liveins: %rdi | ||
; CHECK: [[@LINE+1]]:83: the tied-def operand #3 is already tied with another register operand | ||
INLINEASM $"$foo", 1, 2818058, def %rdi, 2147483657, killed %rdi(tied-def 3), killed %rdi(tied-def 3) | ||
%rax = COPY killed %rdi | ||
RETQ killed %rax | ||
... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# RUN: not llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s 2>&1 | FileCheck %s | ||
--- | | ||
define i64 @test(i64 %x) #0 { | ||
entry: | ||
%asm = tail call i64 asm sideeffect "$foo", "=r,0"(i64 %x) nounwind | ||
ret i64 %asm | ||
} | ||
|
||
attributes #0 = { nounwind } | ||
... | ||
--- | ||
name: test | ||
hasInlineAsm: true | ||
tracksRegLiveness: true | ||
liveins: | ||
- { reg: '%rdi' } | ||
body: | | ||
bb.0.entry: | ||
liveins: %rdi | ||
; CHECK: [[@LINE+1]]:78: expected an integer literal after 'tied-def' | ||
INLINEASM $"$foo", 1, 2818058, def %rdi, 2147483657, killed %rdi(tied-def) | ||
%rax = COPY killed %rdi | ||
RETQ killed %rax | ||
... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# RUN: not llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s 2>&1 | FileCheck %s | ||
--- | | ||
define i64 @test(i64 %x) #0 { | ||
entry: | ||
%asm = tail call i64 asm sideeffect "$foo", "=r,0"(i64 %x) nounwind | ||
ret i64 %asm | ||
} | ||
|
||
attributes #0 = { nounwind } | ||
... | ||
--- | ||
name: test | ||
hasInlineAsm: true | ||
tracksRegLiveness: true | ||
liveins: | ||
- { reg: '%rdi' } | ||
body: | | ||
bb.0.entry: | ||
liveins: %rdi | ||
; CHECK: [[@LINE+1]]:70: expected 'tied-def' after '(' | ||
INLINEASM $"$foo", 1, 2818058, def %rdi, 2147483657, killed %rdi(3) | ||
%rax = COPY killed %rdi | ||
RETQ killed %rax | ||
... |
Oops, something went wrong.