// File: /workspace/github_c_makefile_star2_O0/lucvoo[P]sparse-dev/linearize.c
// Function: show_bb
void show_bb(struct basic_block *bb)
{
	struct instruction *insn;

	printf("%s:\n", show_label(bb));
	if (verbose) {
		pseudo_t needs, defines;
		printf("%s:%d\n", stream_name(bb->pos.stream), bb->pos.line);

		FOR_EACH_PTR(bb->needs, needs) {
			struct instruction *def = needs->def;
			if (def->opcode != OP_PHI) {
				printf("  **uses %s (from %s)**\n", show_pseudo(needs), show_label(def->bb));
			} else {
				pseudo_t phi;
				const char *sep = " ";
				printf("  **uses %s (from", show_pseudo(needs));
				FOR_EACH_PTR(def->phi_list, phi) {
					if (phi == VOID)
						continue;
					printf("%s(%s:%s)", sep, show_pseudo(phi), show_label(phi->def->bb));
					sep = ", ";
				} END_FOR_EACH_PTR(phi);		
				printf(")**\n");
			}
		} END_FOR_EACH_PTR(needs);

		FOR_EACH_PTR(bb->defines, defines) {
			printf("  **defines %s **\n", show_pseudo(defines));
		} END_FOR_EACH_PTR(defines);

		if (bb->parents) {
			struct basic_block *from;
			FOR_EACH_PTR(bb->parents, from) {
				printf("  **from %s (%s:%d:%d)**\n", show_label(from),
					stream_name(from->pos.stream), from->pos.line, from->pos.pos);
			} END_FOR_EACH_PTR(from);
		}

		if (bb->children) {
			struct basic_block *to;
			FOR_EACH_PTR(bb->children, to) {
				printf("  **to %s (%s:%d:%d)**\n", show_label(to),
					stream_name(to->pos.stream), to->pos.line, to->pos.pos);
			} END_FOR_EACH_PTR(to);
		}
	}

	FOR_EACH_PTR(bb->insns, insn) {
		if (!insn->bb && verbose < 2)
			continue;
		printf("\t%s\n", show_instruction(insn));
	} END_FOR_EACH_PTR(insn);
	if (!bb_terminated(bb))
		printf("\tEND\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x130, %rsp            # imm = 0x130
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x17e00
movq %rax, %rsi
leaq 0x48f81(%rip), %rdi     # 0x624d3
movb $0x0, %al
callq 0x110f0
leaq 0x73ce4(%rip), %rax     # 0x8d244
cmpl $0x0, (%rax)
je 0x19b6a
movq -0x8(%rbp), %rax
movq (%rax), %rax
shrq $0x6, %rax
andq $0x3fff, %rax           # imm = 0x3FFF
movl %eax, %edi
callq 0x44030
movq %rax, %rsi
movq -0x8(%rbp), %rax
movq (%rax), %rax
shrq $0x20, %rax
andq $0x7fffffff, %rax       # imm = 0x7FFFFFFF
movl %eax, %edx
leaq 0x4a0db(%rip), %rdi     # 0x63679
movb $0x0, %al
callq 0x110f0
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x195cd
jmp 0x197d4
jmp 0x195cf
movl $0x0, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
movq -0x30(%rbp), %rcx
movw (%rcx), %cx
shlw $0x8, %cx
sarw $0x8, %cx
movswl %cx, %ecx
cmpl %ecx, %eax
jge 0x197bc
movq -0x30(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movq 0x18(%rax,%rcx,8), %rax
movq %rax, -0x18(%rbp)
movq -0x30(%rbp), %rax
movw (%rax), %ax
sarw $0x8, %ax
cwtl
cmpl $0x0, %eax
je 0x19621
cmpq $0x0, -0x18(%rbp)
jne 0x19621
jmp 0x197ae
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movl (%rax), %eax
andl $0x7f, %eax
cmpl $0x46, %eax
je 0x19675
movq -0x18(%rbp), %rdi
callq 0x17e80
movq %rax, -0x110(%rbp)
movq -0x48(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x17e00
movq -0x110(%rbp), %rsi
movq %rax, %rdx
leaq 0x4a017(%rip), %rdi     # 0x63680
movb $0x0, %al
callq 0x110f0
jmp 0x197ac
leaq 0x49f4e(%rip), %rax     # 0x635ca
movq %rax, -0x58(%rbp)
movq -0x18(%rbp), %rdi
callq 0x17e80
movq %rax, %rsi
leaq 0x4a006(%rip), %rdi     # 0x63699
movb $0x0, %al
callq 0x110f0
movq -0x48(%rbp), %rax
movq 0x38(%rax), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x70(%rbp)
cmpq $0x0, -0x60(%rbp)
jne 0x196c2
jmp 0x1979e
jmp 0x196c4
movl $0x0, -0x74(%rbp)
movl -0x74(%rbp), %eax
movq -0x68(%rbp), %rcx
movw (%rcx), %cx
shlw $0x8, %cx
sarw $0x8, %cx
movswl %cx, %ecx
cmpl %ecx, %eax
jge 0x19786
movq -0x68(%rbp), %rax
movslq -0x74(%rbp), %rcx
movq 0x18(%rax,%rcx,8), %rax
movq %rax, -0x50(%rbp)
movq -0x68(%rbp), %rax
movw (%rax), %ax
sarw $0x8, %ax
cwtl
cmpl $0x0, %eax
je 0x19713
cmpq $0x0, -0x50(%rbp)
jne 0x19713
jmp 0x19778
leaq 0x72696(%rip), %rax     # 0x8bdb0
cmpq %rax, -0x50(%rbp)
jne 0x19722
jmp 0x19778
movq -0x58(%rbp), %rax
movq %rax, -0x120(%rbp)
movq -0x50(%rbp), %rdi
callq 0x17e80
movq %rax, -0x118(%rbp)
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x17e00
movq -0x120(%rbp), %rsi
movq -0x118(%rbp), %rdx
movq %rax, %rcx
leaq 0x49f45(%rip), %rdi     # 0x636ab
movb $0x0, %al
callq 0x110f0
leaq 0x49f41(%rip), %rax     # 0x636b5
movq %rax, -0x58(%rbp)
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x196cb
jmp 0x19788
movq -0x68(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x68(%rbp)
cmpq -0x60(%rbp), %rax
jne 0x196c4
leaq 0x49f3b(%rip), %rdi     # 0x636e0
movb $0x0, %al
callq 0x110f0
jmp 0x197ae
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x195d6
jmp 0x197be
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
cmpq -0x28(%rbp), %rax
jne 0x195cf
jmp 0x197d6
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rax
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x80(%rbp), %rax
movq %rax, -0x90(%rbp)
cmpq $0x0, -0x80(%rbp)
jne 0x19804
jmp 0x198ac
jmp 0x19806
movl $0x0, -0x94(%rbp)
movl -0x94(%rbp), %eax
movq -0x88(%rbp), %rcx
movw (%rcx), %cx
shlw $0x8, %cx
sarw $0x8, %cx
movswl %cx, %ecx
cmpl %ecx, %eax
jge 0x1988e
movq -0x88(%rbp), %rax
movslq -0x94(%rbp), %rcx
movq 0x18(%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
movq -0x88(%rbp), %rax
movw (%rax), %ax
sarw $0x8, %ax
cwtl
cmpl $0x0, %eax
je 0x19863
cmpq $0x0, -0x20(%rbp)
jne 0x19863
jmp 0x1987d
movq -0x20(%rbp), %rdi
callq 0x17e80
movq %rax, %rsi
leaq 0x49e42(%rip), %rdi     # 0x636b8
movb $0x0, %al
callq 0x110f0
movl -0x94(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x94(%rbp)
jmp 0x19810
jmp 0x19890
movq -0x88(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x88(%rbp)
cmpq -0x80(%rbp), %rax
jne 0x19806
movq -0x8(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x19a0a
jmp 0x198bd
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0xb8(%rbp)
cmpq $0x0, -0xa8(%rbp)
jne 0x198f7
jmp 0x19a08
jmp 0x198f9
movl $0x0, -0xbc(%rbp)
movl -0xbc(%rbp), %eax
movq -0xb0(%rbp), %rcx
movw (%rcx), %cx
shlw $0x8, %cx
sarw $0x8, %cx
movswl %cx, %ecx
cmpl %ecx, %eax
jge 0x199e7
movq -0xb0(%rbp), %rax
movslq -0xbc(%rbp), %rcx
movq 0x18(%rax,%rcx,8), %rax
movq %rax, -0xa0(%rbp)
movq -0xb0(%rbp), %rax
movw (%rax), %ax
sarw $0x8, %ax
cwtl
cmpl $0x0, %eax
je 0x19960
cmpq $0x0, -0xa0(%rbp)
jne 0x19960
jmp 0x199d3
movq -0xa0(%rbp), %rdi
callq 0x17e00
movq %rax, -0x128(%rbp)
movq -0xa0(%rbp), %rax
movq (%rax), %rax
shrq $0x6, %rax
andq $0x3fff, %rax           # imm = 0x3FFF
movl %eax, %edi
callq 0x44030
movq -0x128(%rbp), %rsi
movq %rax, %rdx
movq -0xa0(%rbp), %rax
movq (%rax), %rax
shrq $0x20, %rax
andq $0x7fffffff, %rax       # imm = 0x7FFFFFFF
movl %eax, %ecx
movq -0xa0(%rbp), %rax
movq (%rax), %rax
shrq $0x16, %rax
andq $0x3ff, %rax            # imm = 0x3FF
movl %eax, %r8d
leaq 0x49cff(%rip), %rdi     # 0x636cb
movb $0x0, %al
callq 0x110f0
movl -0xbc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xbc(%rbp)
jmp 0x19903
jmp 0x199e9
movq -0xb0(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0xb0(%rbp)
cmpq -0xa8(%rbp), %rax
jne 0x198f9
jmp 0x19a0a
movq -0x8(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x19b68
jmp 0x19a1b
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0xd0(%rbp)
movq -0xd0(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq -0xd0(%rbp), %rax
movq %rax, -0xe0(%rbp)
cmpq $0x0, -0xd0(%rbp)
jne 0x19a55
jmp 0x19b66
jmp 0x19a57
movl $0x0, -0xe4(%rbp)
movl -0xe4(%rbp), %eax
movq -0xd8(%rbp), %rcx
movw (%rcx), %cx
shlw $0x8, %cx
sarw $0x8, %cx
movswl %cx, %ecx
cmpl %ecx, %eax
jge 0x19b45
movq -0xd8(%rbp), %rax
movslq -0xe4(%rbp), %rcx
movq 0x18(%rax,%rcx,8), %rax
movq %rax, -0xc8(%rbp)
movq -0xd8(%rbp), %rax
movw (%rax), %ax
sarw $0x8, %ax
cwtl
cmpl $0x0, %eax
je 0x19abe
cmpq $0x0, -0xc8(%rbp)
jne 0x19abe
jmp 0x19b31
movq -0xc8(%rbp), %rdi
callq 0x17e00
movq %rax, -0x130(%rbp)
movq -0xc8(%rbp), %rax
movq (%rax), %rax
shrq $0x6, %rax
andq $0x3fff, %rax           # imm = 0x3FFF
movl %eax, %edi
callq 0x44030
movq -0x130(%rbp), %rsi
movq %rax, %rdx
movq -0xc8(%rbp), %rax
movq (%rax), %rax
shrq $0x20, %rax
andq $0x7fffffff, %rax       # imm = 0x7FFFFFFF
movl %eax, %ecx
movq -0xc8(%rbp), %rax
movq (%rax), %rax
shrq $0x16, %rax
andq $0x3ff, %rax            # imm = 0x3FF
movl %eax, %r8d
leaq 0x49bbb(%rip), %rdi     # 0x636e5
movb $0x0, %al
callq 0x110f0
movl -0xe4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xe4(%rbp)
jmp 0x19a61
jmp 0x19b47
movq -0xd8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0xd8(%rbp)
cmpq -0xd0(%rbp), %rax
jne 0x19a57
jmp 0x19b68
jmp 0x19b6a
jmp 0x19b6c
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0xf0(%rbp)
movq -0xf0(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0xf0(%rbp), %rax
movq %rax, -0x100(%rbp)
cmpq $0x0, -0xf0(%rbp)
jne 0x19ba6
jmp 0x19c6d
jmp 0x19ba8
movl $0x0, -0x104(%rbp)
movl -0x104(%rbp), %eax
movq -0xf8(%rbp), %rcx
movw (%rcx), %cx
shlw $0x8, %cx
sarw $0x8, %cx
movswl %cx, %ecx
cmpl %ecx, %eax
jge 0x19c4c
movq -0xf8(%rbp), %rax
movslq -0x104(%rbp), %rcx
movq 0x18(%rax,%rcx,8), %rax
movq %rax, -0x10(%rbp)
movq -0xf8(%rbp), %rax
movw (%rax), %ax
sarw $0x8, %ax
cwtl
cmpl $0x0, %eax
je 0x19c05
cmpq $0x0, -0x10(%rbp)
jne 0x19c05
jmp 0x19c38
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x19c1e
leaq 0x7362d(%rip), %rax     # 0x8d244
cmpl $0x2, (%rax)
jge 0x19c1e
jmp 0x19c38
movq -0x10(%rbp), %rdi
callq 0x18200
movq %rax, %rsi
leaq 0x4e976(%rip), %rdi     # 0x685a7
movb $0x0, %al
callq 0x110f0
movl -0x104(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x104(%rbp)
jmp 0x19bb2
jmp 0x19c4e
movq -0xf8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0xf8(%rbp)
cmpq -0xf0(%rbp), %rax
jne 0x19ba8
movq -0x8(%rbp), %rdi
callq 0x19ca0
cmpl $0x0, %eax
jne 0x19c89
leaq 0x49a7b(%rip), %rdi     # 0x636fd
movb $0x0, %al
callq 0x110f0
addq $0x130, %rsp            # imm = 0x130
popq %rbp
retq
nopw %cs:(%rax,%rax)