Skip to content

Instantly share code, notes, and snippets.

@nikic

nikic/trace1 Secret

Created January 6, 2019 17:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nikic/83ea77186f1b873725135299b31aff3c to your computer and use it in GitHub Desktop.
Save nikic/83ea77186f1b873725135299b31aff3c to your computer and use it in GitHub Desktop.
Args: build/bin/opt -S -bdce -debug test57.ll
discovered a new reachable node %start
discovered a new reachable node %loop
discovered a new reachable node %end
discovered a new reachable node %start
discovered a new reachable node %loop
discovered a new reachable node %end
DemandedBits: Root: br label %loop
DemandedBits: Root: %c = call i1 @cond()
DemandedBits: Root: br i1 %c, label %loop, label %end
DemandedBits: Root: ret i32 %x4
DemandedBits: Visiting: %x4 = and i32 %x3, 1 Alive Out: 0xffffffff
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x1
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x2
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x3
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x6
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x7
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0xe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0xf
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x1e
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x1f
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x3e
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x3f
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x7e
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x7f
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0xfe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0xff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x1fe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x1ff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x3fe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x3ff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x7fe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x7ff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0xffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0xfff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x1ffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x1fff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x3ffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x3fff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x7ffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x7fff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0xfffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0xffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x1fffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x1ffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x3fffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x3ffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x7fffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x7ffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0xffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0xfffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x1ffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x1fffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x3ffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x3fffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x7ffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x7fffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0xfffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0xffffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x1fffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x1ffffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x3fffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x3ffffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x7fffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x7ffffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0xffffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0xfffffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x1ffffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x1fffffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x3ffffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x3fffffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x7ffffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x7fffffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0xfffffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0xffffffff
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %c = call i1 @cond() Alive Out: 0x1
DemandedBits: Visiting: %c = call i1 @cond() Alive Out: 0x1
discovered a new reachable node %start
discovered a new reachable node %loop
discovered a new reachable node %end
; ModuleID = 'test57.ll'
source_filename = "test57.ll"
define i32 @test(i32 %y) {
start:
%x = or i32 %y, 0
br label %loop
loop: ; preds = %loop, %start
%x2 = phi i32 [ %x, %start ], [ %x3, %loop ]
%x3 = ashr i32 %x2, 1
%c = call i1 @cond()
br i1 %c, label %loop, label %end
end: ; preds = %loop
%x4 = and i32 %x3, 1
ret i32 %x4
}
declare i1 @cond()
Args: build/bin/opt -S -bdce -debug test57.ll
discovered a new reachable node %start
discovered a new reachable node %loop
discovered a new reachable node %end
discovered a new reachable node %start
discovered a new reachable node %loop
discovered a new reachable node %end
DemandedBits: Root: br label %loop
DemandedBits: Root: %c = call i1 @cond()
DemandedBits: Root: br i1 %c, label %loop, label %end
DemandedBits: Root: ret i32 %x4
DemandedBits: Visiting: %x4 = and i32 %x3, 1 Alive Out: 0xffffffff
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x1
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x2
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x3
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x6
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x7
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0xe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0xf
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x1e
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x1f
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x3e
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x3f
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x7e
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x7f
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0xfe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0xff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x1fe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x1ff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x3fe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x3ff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x7fe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x7ff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0xffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0xfff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x1ffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x1fff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x3ffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x3fff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x7ffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x7fff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0xfffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0xffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x1fffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x1ffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x3fffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x3ffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x7fffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x7ffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0xffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0xfffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x1ffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x1fffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x3ffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x3fffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x7ffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x7fffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0xfffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0xffffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x1fffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x1ffffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x3fffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x3ffffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x7fffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x7ffffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0xffffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0xfffffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x1ffffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x1fffffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x3ffffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x3fffffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0x7ffffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0x7fffffff
DemandedBits: Visiting: %x2 = phi i32 [ %x, %start ], [ %x3, %loop ] Alive Out: 0xfffffffe
DemandedBits: Visiting: %x3 = ashr i32 %x2, 1 Alive Out: 0xffffffff
DemandedBits: Visiting: %x = or i32 %y, 0 Alive Out: 0xfffffffe
DemandedBits: Visiting: %c = call i1 @cond() Alive Out: 0x1
discovered a new reachable node %start
discovered a new reachable node %loop
discovered a new reachable node %end
; ModuleID = 'test57.ll'
source_filename = "test57.ll"
define i32 @test(i32 %y) {
start:
%x = or i32 %y, 0
br label %loop
loop: ; preds = %loop, %start
%x2 = phi i32 [ %x, %start ], [ %x3, %loop ]
%x3 = ashr i32 %x2, 1
%c = call i1 @cond()
br i1 %c, label %loop, label %end
end: ; preds = %loop
%x4 = and i32 %x3, 1
ret i32 %x4
}
declare i1 @cond()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment