Fix the third (and last known) case of code update problems due
authorChris Lattner <sabre@nondot.org>
Tue, 16 Mar 2010 00:29:39 +0000 (00:29 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 16 Mar 2010 00:29:39 +0000 (00:29 +0000)
commit999aee24c7b7511575146b9950bb85830fab0378
tree56d7c9f3f6bf51422f9c4f96c0803f39db59102a
parent4e815f8a8cae6c846cdca52420046cab902865de
Fix the third (and last known) case of code update problems due
to LLVM IR changes with addr label weirdness.  In the testcase, we
generate references to the two bb's when codegen'ing the first
function:

_test1:                                 ## @test1
leaq Ltmp0(%rip), %rax
..
leaq Ltmp1(%rip), %rax

Then continue to codegen the second function where the blocks
get merged.  We're now smart enough to emit both labels, producing
this code:

_test_fun:                              ## @test_fun
## BB#0:                                ## %entry
Ltmp1:                                  ## Block address taken
Ltmp0:
## BB#1:                                ## %ret
movl $-1, %eax
ret

Rejoice.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98595 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/MachineModuleInfo.h
lib/CodeGen/AsmPrinter/AsmPrinter.cpp
lib/CodeGen/MachineModuleInfo.cpp
test/CodeGen/Generic/addr-label.ll