1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 03:23:01 +02:00
llvm-mirror/lib/CodeGen/AsmPrinter
Peter Collingbourne 02fb976bb0 CodeGen: Add two more conditions for adding symbols to the address-significance table.
Firstly, require the symbol to be used within the module. If a
symbol is unused within a module, then by definition it cannot be
address-significant within that module. This condition is useful on all
platforms because it could make symbol tables smaller -- without this
change, emitting an address-significance table could cause otherwise
unused undefined symbols to be added to the object file.

But this change is necessary with COFF specifically in order to
preserve the property that an unreferenced undefined symbol in an IR
module does not result in a link failure. This is already the case for
ELF because ELF linkers only reject links with unresolved symbols if
there is a relocation to that symbol, but COFF linkers require all
undefined symbols to be resolved regardless of relocations. So if
a module contains an unreferenced undefined symbol, we need to make
sure not to add it to the address-significance table (and thus the
symbol table) in case it doesn't end up resolved at link time.

Secondly, do not add dllimport symbols to the table. These symbols
won't be able to be resolved because their definitions live in another
module and are accessed via the IAT, and the address-significance
table has no effect on other modules anyway. It wouldn't make sense
to add the IAT entry symbol to the address-significance table either
because the IAT entry isn't address-significant -- the generated code
never takes its address.

Differential Revision: https://reviews.llvm.org/D51199

llvm-svn: 340648
2018-08-24 20:37:09 +00:00
..
AccelTable.cpp DebugInfo: Fix skipping CUs in DWARFv5 debug_names table 2018-08-24 20:31:05 +00:00
AddressPool.cpp [DWARF] Basic support for producing DWARFv5 .debug_addr section 2018-08-01 05:48:06 +00:00
AddressPool.h [DWARF] Basic support for producing DWARFv5 .debug_addr section 2018-08-01 05:48:06 +00:00
ARMException.cpp Use assembler expressions to lay out the EH LSDA. 2018-02-09 17:00:25 +00:00
AsmPrinter.cpp CodeGen: Add two more conditions for adding symbols to the address-significance table. 2018-08-24 20:37:09 +00:00
AsmPrinterDwarf.cpp Style update. NFC. 2018-03-29 23:32:54 +00:00
AsmPrinterHandler.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
AsmPrinterInlineAsm.cpp revert '[CodeGen] emit inline asm clobber list warnings for reserved' 2018-08-08 17:11:54 +00:00
ByteStreamer.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
CMakeLists.txt [DebugInfo] Generate DWARF debug information for labels. (Fix leak problems) 2018-08-17 15:22:04 +00:00
CodeViewDebug.cpp [CodeView] Omit forward references for unnamed structs and unions 2018-06-11 01:39:34 +00:00
CodeViewDebug.h [DebugInfo] Generate DWARF debug information for labels. (Fix leak problems) 2018-08-17 15:22:04 +00:00
DbgEntityHistoryCalculator.cpp [DebugInfo] Generate DWARF debug information for labels. (Fix leak problems) 2018-08-17 15:22:04 +00:00
DbgEntityHistoryCalculator.h [DebugInfo] Generate DWARF debug information for labels. (Fix leak problems) 2018-08-17 15:22:04 +00:00
DebugHandlerBase.cpp [DebugInfo] Generate DWARF debug information for labels. (Fix leak problems) 2018-08-17 15:22:04 +00:00
DebugHandlerBase.h [DebugInfo] Generate DWARF debug information for labels. (Fix leak problems) 2018-08-17 15:22:04 +00:00
DebugLocEntry.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
DebugLocStream.cpp
DebugLocStream.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
DIE.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
DIEHash.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
DIEHash.h Fix -Wdocumentation warning. NFCI. 2018-07-18 09:07:54 +00:00
DIEHashAttributes.def Fix DIEHash refactoring that dropped the DW_AT_name from the hash 2017-05-23 18:36:07 +00:00
DwarfCFIException.cpp Move TargetLoweringObjectFile from CodeGen to Target to fix layering 2018-03-23 23:58:19 +00:00
DwarfCompileUnit.cpp [DebugInfo] Generate DWARF debug information for labels. (Fix leak problems) 2018-08-17 15:22:04 +00:00
DwarfCompileUnit.h [DebugInfo] Generate DWARF debug information for labels. (Fix leak problems) 2018-08-17 15:22:04 +00:00
DwarfDebug.cpp [DebugInfo] Generate DWARF debug information for labels. (Fix leak problems) 2018-08-17 15:22:04 +00:00
DwarfDebug.h [DebugInfo] Generate DWARF debug information for labels. (Fix leak problems) 2018-08-17 15:22:04 +00:00
DwarfException.h Use assembler expressions to lay out the EH LSDA. 2018-02-09 17:00:25 +00:00
DwarfExpression.cpp [Local] replaceAllDbgUsesWith: Update debug values before RAUW 2018-07-06 17:32:39 +00:00
DwarfExpression.h Remove trailing space 2018-07-30 19:41:25 +00:00
DwarfFile.cpp [DebugInfo] Generate DWARF debug information for labels. (Fix leak problems) 2018-08-17 15:22:04 +00:00
DwarfFile.h [DebugInfo] Generate DWARF debug information for labels. (Fix leak problems) 2018-08-17 15:22:04 +00:00
DwarfStringPool.cpp [DebugInfo] Reduce debug_str_offsets section size 2018-08-07 09:54:52 +00:00
DwarfStringPool.h [DebugInfo] Reduce debug_str_offsets section size 2018-08-07 09:54:52 +00:00
DwarfUnit.cpp [DebugInfo] Generate DWARF debug information for labels. (Fix leak problems) 2018-08-17 15:22:04 +00:00
DwarfUnit.h [DebugInfo] Generate DWARF debug information for labels. (Fix leak problems) 2018-08-17 15:22:04 +00:00
EHStreamer.cpp [CodeGen] Change std::sort to llvm::sort in response to r327219 2018-04-06 18:08:42 +00:00
EHStreamer.h [CodeGen] Fix inconsistent declaration parameter name 2018-07-16 18:51:40 +00:00
ErlangGCPrinter.cpp Style update. NFC. 2018-03-29 23:32:54 +00:00
LLVMBuild.txt Update libdeps to add BinaryFormat, introduced in r304864. 2017-06-07 04:48:49 +00:00
OcamlGCPrinter.cpp Style update. NFC. 2018-03-29 23:32:54 +00:00
WinCFGuard.cpp Reland "Emit Function IDs table for Control Flow Guard" 2018-01-09 23:49:30 +00:00
WinCFGuard.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
WinException.cpp Move TargetLoweringObjectFile from CodeGen to Target to fix layering 2018-03-23 23:58:19 +00:00
WinException.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00