mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-14 03:29:57 +00:00
c2dcdd852b
ICF and GC impair debugging, so MSVC disables these optimizations when /debug is passed. They are still on by default when no PDB is produced. This change also makes /opt:ref enable ICF, which is consistent with MSVC: https://msdn.microsoft.com/en-us/library/bxwfs976.aspx We should consider making /opt:icf fold readonly data in the near future. LLD used to do this, but we disabled it because it breaks too many programs. MSVC only does this if the user explicitly passes /opt:icf. Reviewers: ruiu, pcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D39885 llvm-svn: 318071
105 lines
3.3 KiB
Plaintext
105 lines
3.3 KiB
Plaintext
# RUN: yaml2obj < %s > %t.obj
|
|
# RUN: lld-link /opt:icf /entry:foo /out:%t.exe /subsystem:console /include:bar \
|
|
# RUN: /debug /verbose %t.obj > %t.log 2>&1
|
|
# RUN: FileCheck %s < %t.log
|
|
|
|
# CHECK: Selected foo
|
|
# CHECK: Removed bar
|
|
|
|
--- !COFF
|
|
header:
|
|
Machine: IMAGE_FILE_MACHINE_AMD64
|
|
Characteristics: []
|
|
sections:
|
|
- Name: '.text$mn'
|
|
Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_LNK_COMDAT, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
|
|
Alignment: 16
|
|
SectionData: 4883EC28E8000000004883C428C3
|
|
|
|
- Name: '.debug_blah'
|
|
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_LNK_COMDAT, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
|
|
Alignment: 1
|
|
SectionData: 0000000000000000000000000000
|
|
|
|
- Name: '.text$mn'
|
|
Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_LNK_COMDAT, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
|
|
Alignment: 16
|
|
SectionData: 4883EC28E8000000004883C428C3
|
|
|
|
- Name: '.debug_blah'
|
|
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_LNK_COMDAT, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
|
|
Alignment: 1
|
|
SectionData: FFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
|
|
|
symbols:
|
|
- Name: '.text$mn'
|
|
Value: 0
|
|
SectionNumber: 1
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
|
SectionDefinition:
|
|
Length: 14
|
|
NumberOfRelocations: 0
|
|
NumberOfLinenumbers: 0
|
|
CheckSum: 1682752513
|
|
Number: 0
|
|
Selection: IMAGE_COMDAT_SELECT_ANY
|
|
|
|
- Name: '.debug_blah'
|
|
Value: 0
|
|
SectionNumber: 2
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
|
SectionDefinition:
|
|
Length: 14
|
|
NumberOfRelocations: 0
|
|
NumberOfLinenumbers: 0
|
|
CheckSum: 0
|
|
Number: 1
|
|
Selection: IMAGE_COMDAT_SELECT_ASSOCIATIVE
|
|
|
|
- Name: '.text$mn'
|
|
Value: 0
|
|
SectionNumber: 3
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
|
SectionDefinition:
|
|
Length: 14
|
|
NumberOfRelocations: 0
|
|
NumberOfLinenumbers: 0
|
|
CheckSum: 1682752513
|
|
Number: 0
|
|
Selection: IMAGE_COMDAT_SELECT_ANY
|
|
|
|
- Name: '.debug_blah'
|
|
Value: 0
|
|
SectionNumber: 4
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
|
SectionDefinition:
|
|
Length: 14
|
|
NumberOfRelocations: 0
|
|
NumberOfLinenumbers: 0
|
|
CheckSum: 0
|
|
Number: 3
|
|
Selection: IMAGE_COMDAT_SELECT_ASSOCIATIVE
|
|
|
|
- Name: foo
|
|
Value: 0
|
|
SectionNumber: 1
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_FUNCTION
|
|
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
|
|
|
|
- Name: bar
|
|
Value: 0
|
|
SectionNumber: 3
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_FUNCTION
|
|
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
|
|
...
|