// File: luooofan[P]hblzbd_compiler/src/ir.cpp
// Function: ir::Opn::GetCompName[abi:cxx11]()
std::string Opn::GetCompName() {  // 对于全局变量直接返回原name_ 对于局部变量返回复合name
  if (type_ == Type::Imm || type_ == Type::Null) MyAssert(0);
  if (type_ == Type::Label || type_ == Type::Func || scope_id_ == 0) return name_;
  auto res = scope_id_ == -1 ? name_ : name_ + "." + std::to_string(scope_id_);
  return ssa_id_ == -1 ? res : res + "." + std::to_string(ssa_id_);
}

// Assembly:
subq $0xf8, %rsp
movq %rdi, 0x8(%rsp)
movq %rdi, %rax
movq %rax, 0x10(%rsp)
movq %rdi, 0xf0(%rsp)
movq %rsi, 0xe8(%rsp)
movq 0xe8(%rsp), %rax
movq %rax, 0x18(%rsp)
cmpl $0x1, (%rax)
je 0x435d0
movq 0x18(%rsp), %rax
cmpl $0x4, (%rax)
jne 0x43627
movq 0x108a11(%rip), %rdi    # 0x14bfe8
leaq 0xb6b1a(%rip), %rsi     # 0xfa0f8
callq 0x8330
movq %rax, %rdi
leaq 0xb7c0f(%rip), %rsi     # 0xfb1fc
callq 0x8330
movq %rax, %rdi
leaq 0xb7dee(%rip), %rsi     # 0xfb3ea
callq 0x8330
movq %rax, %rdi
movl $0xb2, %esi
callq 0x8650
movq %rax, %rdi
movq 0x108968(%rip), %rsi    # 0x14bf80
callq 0x8380
movl $0xff, %edi
callq 0x8460
movq 0x18(%rsp), %rax
cmpl $0x2, (%rax)
je 0x43646
movq 0x18(%rsp), %rax
cmpl $0x3, (%rax)
je 0x43646
movq 0x18(%rsp), %rax
cmpl $0x0, 0x28(%rax)
jne 0x4365e
movq 0x8(%rsp), %rdi
movq 0x18(%rsp), %rsi
addq $0x8, %rsi
callq 0x81a0
jmp 0x4388f
movq 0x18(%rsp), %rax
movl 0x28(%rax), %eax
movb $0x0, 0xa7(%rsp)
movb $0x0, 0x73(%rsp)
cmpl $-0x1, %eax
jne 0x43690
movq 0x18(%rsp), %rsi
addq $0x8, %rsi
leaq 0xc8(%rsp), %rdi
callq 0x81a0
jmp 0x436f2
movq 0x18(%rsp), %rsi
addq $0x8, %rsi
leaq 0xba229(%rip), %rdx     # 0xfd8c9
leaq 0xa8(%rsp), %rdi
callq 0xc720
movq 0x18(%rsp), %rax
movb $0x1, 0xa7(%rsp)
movl 0x28(%rax), %esi
leaq 0x80(%rsp), %rdi
callq 0xc7b0
jmp 0x436cc
movb $0x1, 0x73(%rsp)
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0x80(%rsp), %rdx
callq 0xc630
jmp 0x436f0
jmp 0x436f2
testb $0x1, 0x73(%rsp)
jne 0x436fb
jmp 0x43708
leaq 0x80(%rsp), %rdi
callq 0x8728
testb $0x1, 0xa7(%rsp)
jne 0x43714
jmp 0x43721
leaq 0xa8(%rsp), %rdi
callq 0x8728
movq 0x18(%rsp), %rax
movl 0x38(%rax), %eax
movb $0x0, 0x4f(%rsp)
movb $0x0, 0x27(%rsp)
cmpl $-0x1, %eax
jne 0x4374e
movq 0x8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x81a0
jmp 0x4374c
jmp 0x4379f
leaq 0xba174(%rip), %rdx     # 0xfd8c9
leaq 0x50(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xc720
jmp 0x43769
movq 0x18(%rsp), %rax
movb $0x1, 0x4f(%rsp)
movl 0x38(%rax), %esi
leaq 0x28(%rsp), %rdi
callq 0xc7b0
jmp 0x43782
movq 0x8(%rsp), %rdi
movb $0x1, 0x27(%rsp)
leaq 0x50(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0xc630
jmp 0x4379d
jmp 0x4379f
testb $0x1, 0x27(%rsp)
jne 0x437a8
jmp 0x437b2
leaq 0x28(%rsp), %rdi
callq 0x8728
testb $0x1, 0x4f(%rsp)
jne 0x437bb
jmp 0x437c5
leaq 0x50(%rsp), %rdi
callq 0x8728
leaq 0xc8(%rsp), %rdi
callq 0x8728
jmp 0x4388f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x78(%rsp)
movl %eax, 0x74(%rsp)
jmp 0x4380d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x78(%rsp)
movl %eax, 0x74(%rsp)
testb $0x1, 0x73(%rsp)
jne 0x437fe
jmp 0x4380b
leaq 0x80(%rsp), %rdi
callq 0x8728
jmp 0x4380d
testb $0x1, 0xa7(%rsp)
jne 0x43819
jmp 0x43826
leaq 0xa8(%rsp), %rdi
callq 0x8728
jmp 0x4389c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x78(%rsp)
movl %eax, 0x74(%rsp)
jmp 0x43880
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x78(%rsp)
movl %eax, 0x74(%rsp)
jmp 0x4386b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x78(%rsp)
movl %eax, 0x74(%rsp)
testb $0x1, 0x27(%rsp)
jne 0x4385f
jmp 0x43869
leaq 0x28(%rsp), %rdi
callq 0x8728
jmp 0x4386b
testb $0x1, 0x4f(%rsp)
jne 0x43874
jmp 0x4387e
leaq 0x50(%rsp), %rdi
callq 0x8728
jmp 0x43880
leaq 0xc8(%rsp), %rdi
callq 0x8728
jmp 0x4389c
movq 0x10(%rsp), %rax
addq $0xf8, %rsp
retq
movq 0x78(%rsp), %rdi
callq 0x8670
nopw %cs:(%rax,%rax)