[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