[llvm] [ReachingDefAnalysis] Track function live-in registers. (PR #177012)
Mikhail Gudim via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 21 08:57:39 PST 2026
================
@@ -20,178 +20,178 @@ body: |
$x10 = LD %stack.0, 0 :: (load (s64))
PseudoRET implicit $x10
-...
----
-name: test1
-tracksRegLiveness: true
-stack:
- - { id: 0, name: '', type: default, offset: 0, size: 4, alignment: 4,
- stack-id: default, callee-saved-register: '', callee-saved-restored: true,
- debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
- - { id: 1, name: '', type: default, offset: 0, size: 4, alignment: 4,
- stack-id: default, callee-saved-register: '', callee-saved-restored: true,
- debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
-body: |
- ; CHECK-LABEL: Reaching definitions for for machine function: test1
- ; CHECK-NEXT: %bb.0:
- ; CHECK-NEXT: %stack.0:{ }
- ; CHECK-NEXT: 0: $x10 = LD %stack.0, 0 :: (load (s64))
- ; CHECK-EMPTY:
- ; CHECK-NEXT: %stack.1:{ }
- ; CHECK-NEXT: 1: $x11 = LD %stack.1, 0 :: (load (s64))
- ; CHECK-EMPTY:
- ; CHECK-NEXT: $x10:{ 0 }
- ; CHECK-NEXT: $x11:{ 1 }
- ; CHECK-NEXT: 2: $x10 = ADD $x10, $x11
- ; CHECK-EMPTY:
- ; CHECK-NEXT: implicit $x10:{ 2 }
- ; CHECK-NEXT: 3: PseudoRET implicit $x10
-
- bb.0.entry:
- $x10 = LD %stack.0, 0 :: (load (s64))
- $x11 = LD %stack.1, 0 :: (load (s64))
- $x10 = ADD $x10, $x11
- PseudoRET implicit $x10
-
-...
----
-name: test2
-tracksRegLiveness: true
-stack:
- - { id: 0, name: '', type: default, offset: 0, size: 4, alignment: 4,
- stack-id: default, callee-saved-register: '', callee-saved-restored: true,
- debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
- - { id: 1, name: '', type: default, offset: 0, size: 4, alignment: 4,
- stack-id: default, callee-saved-register: '', callee-saved-restored: true,
- debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
-body: |
- ; CHECK-LABEL: Reaching definitions for for machine function: test2
- ; CHECK-NEXT: %bb.0:
- ; CHECK-NEXT: %stack.0:{ }
- ; CHECK-NEXT: 0: $x10 = LD %stack.0, 0 :: (load (s64))
- ; CHECK-EMPTY:
- ; CHECK-NEXT: %stack.1:{ }
- ; CHECK-NEXT: 1: $x11 = LD %stack.1, 0 :: (load (s64))
- ; CHECK-EMPTY:
- ; CHECK-NEXT: $x10:{ 0 }
- ; CHECK-NEXT: $x11:{ 1 }
- ; CHECK-NEXT: 2: $x10 = ADD $x10, $x11
- ; CHECK-EMPTY:
- ; CHECK-NEXT: $x10:{ 2 }
- ; CHECK-NEXT: %stack.0:{ }
- ; CHECK-NEXT: 3: SD $x10, %stack.0, 0 :: (store (s64))
- ; CHECK-EMPTY:
- ; CHECK-NEXT: %stack.0:{ 3 }
- ; CHECK-NEXT: 4: $x10 = LD %stack.0, 0 :: (load (s64))
- ; CHECK-EMPTY:
- ; CHECK-NEXT: implicit $x10:{ 4 }
- ; CHECK-NEXT: 5: PseudoRET implicit $x10
-
- bb.0.entry:
- $x10 = LD %stack.0, 0 :: (load (s64))
- $x11 = LD %stack.1, 0 :: (load (s64))
- $x10 = ADD $x10, $x11
- SD $x10, %stack.0, 0 :: (store (s64))
- $x10 = LD %stack.0, 0 :: (load (s64))
- PseudoRET implicit $x10
-
-...
----
-name: test3
-tracksRegLiveness: true
-stack:
- - { id: 0, name: '', type: default, offset: 0, size: 4, alignment: 4,
- stack-id: default, callee-saved-register: '', callee-saved-restored: true,
- debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
-body: |
- ; CHECK-LABEL: Reaching definitions for for machine function: test3
- ; CHECK-NEXT: %bb.0:
- ; CHECK-NEXT: $x10:{ }
- ; CHECK-NEXT: $x0:{ }
- ; CHECK-NEXT: 0: BEQ $x10, $x0, %bb.2
- ; CHECK-EMPTY:
- ; CHECK-NEXT: %bb.1:
- ; CHECK-NEXT: $x10:{ }
- ; CHECK-NEXT: 1: $x10 = ADDI $x10, 1
- ; CHECK-EMPTY:
- ; CHECK-NEXT: $x10:{ 1 }
- ; CHECK-NEXT: %stack.0:{ }
- ; CHECK-NEXT: 2: SD $x10, %stack.0, 0 :: (store (s64))
- ; CHECK-EMPTY:
- ; CHECK-NEXT: 3: PseudoBR %bb.3
- ; CHECK-EMPTY:
- ; CHECK-NEXT: %bb.2:
- ; CHECK-NEXT: $x10:{ }
- ; CHECK-NEXT: 4: $x10 = ADDI $x10, 2
- ; CHECK-EMPTY:
- ; CHECK-NEXT: $x10:{ 4 }
- ; CHECK-NEXT: %stack.0:{ }
- ; CHECK-NEXT: 5: SD $x10, %stack.0, 0 :: (store (s64))
- ; CHECK-EMPTY:
- ; CHECK-NEXT: %bb.3:
- ; CHECK-NEXT: %stack.0:{ 2 5 }
- ; CHECK-NEXT: 6: $x10 = LD %stack.0, 0 :: (load (s64))
- ; CHECK-EMPTY:
- ; CHECK-NEXT: implicit $x10:{ 6 }
- ; CHECK-NEXT: 7: PseudoRET implicit $x10
-
- bb.0.entry:
- liveins: $x10
- BEQ $x10, $x0, %bb.2
-
- bb.1:
- liveins: $x10
- $x10 = ADDI $x10, 1
- SD $x10, %stack.0, 0 :: (store (s64))
- PseudoBR %bb.3
-
- bb.2:
- liveins: $x10
- $x10 = ADDI $x10, 2
- SD $x10, %stack.0, 0 :: (store (s64))
-
- bb.3:
- $x10 = LD %stack.0, 0 :: (load (s64))
- PseudoRET implicit $x10
-...
----
-name: test4
-tracksRegLiveness: true
-fixedStack:
- - { id: 0, type: default, offset: 0, size: 4, alignment: 16,
- isImmutable: true, isAliased: false }
-stack:
- - { id: 0, name: '', type: default, offset: 0, size: 4, alignment: 4,
- stack-id: default, callee-saved-register: '', callee-saved-restored: true,
- debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
- - { id: 1, name: '', type: default, offset: 0, size: 4, alignment: 4,
- stack-id: default, callee-saved-register: '', callee-saved-restored: true,
- debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
-body: |
- ; CHECK-LABEL: Reaching definitions for for machine function: test4
- ; CHECK-NEXT: %bb.0:
- ; CHECK-NEXT: $x10:{ }
- ; CHECK-NEXT: %stack.0:{ }
- ; CHECK-NEXT: 0: SD $x10, %stack.0, 0 :: (store (s64))
- ; CHECK-EMPTY:
- ; CHECK-NEXT: $x11:{ }
- ; CHECK-NEXT: %stack.0:{ 0 }
- ; CHECK-NEXT: 1: SD $x11, %stack.0, 0 :: (store (s64))
- ; CHECK-EMPTY:
- ; CHECK-NEXT: $x10:{ }
- ; CHECK-NEXT: %stack.1:{ }
- ; CHECK-NEXT: 2: SD $x10, %stack.1, 0 :: (store (s64))
- ; CHECK-EMPTY:
- ; CHECK-NEXT: $x11:{ }
- ; CHECK-NEXT: %stack.1:{ 2 }
- ; CHECK-NEXT: 3: SD $x11, %stack.1, 0 :: (store (s64))
- ; CHECK-EMPTY:
- ; CHECK-NEXT: 4: PseudoRET
- bb.0.entry:
- liveins: $x10, $x11
- SD $x10, %stack.0, 0 :: (store (s64))
- SD $x11, %stack.0, 0 :: (store (s64))
- SD $x10, %stack.1, 0 :: (store (s64))
- SD $x11, %stack.1, 0 :: (store (s64))
- PseudoRET
-...
+# COM: ...
----------------
mgudim wrote:
ups, right, sorry
https://github.com/llvm/llvm-project/pull/177012
More information about the llvm-commits
mailing list