[X86] Avoid mangling frameescape labels
authorReid Kleckner <reid@kleckner.net>
Wed, 29 Apr 2015 16:46:01 +0000 (16:46 +0000)
committerReid Kleckner <reid@kleckner.net>
Wed, 29 Apr 2015 16:46:01 +0000 (16:46 +0000)
commit86b699c278d2ce7e888aa5024c909541e5264c94
tree0003059aefab8b4c6ec3e4a3f50e7317ebb29fae
parente56023a059e5fafa97f0df32c65cf31cfc33ba17
[X86] Avoid mangling frameescape labels

x86 Windows uses the '_' prefix for all global symbols, and this was
mistakenly being applied to frameescape labels, which are not externally
visible global symbols. They use the private global prefix 'L'.

The *right* way to fix this is probably to stop masquerading this label
as an ExternalSymbol and create a new SDNode type. These labels are not
"external", and we know they will be resolved by assembly time. Having a
custom SDNode type would allow us to do better X86 address mode
matching, so it's probably worth doing eventually.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236123 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/MCTargetDesc/X86BaseInfo.h
lib/Target/X86/X86ISelDAGToDAG.cpp
lib/Target/X86/X86MCInstLower.cpp
test/CodeGen/X86/frameescape.ll