[llvm] r239084 - MC: Remove obsolete MachO UseAggressiveSymbolFolding.

Jim Grosbach grosbach at apple.com
Thu Jun 4 14:55:55 PDT 2015


Thanks. Here’s hoping it sticks. This is normally when some obscure thing someplace pops up and shows us the comment was wrong and this wasn’t actually a compatibility option after all. ;)

-Jim

> On Jun 4, 2015, at 2:46 PM, Rafael Espíndola <rafael.espindola at gmail.com> wrote:
> 
> Nice :-)
> 
> On 4 June 2015 at 16:27, Jim Grosbach <grosbach at apple.com> wrote:
>> Author: grosbach
>> Date: Thu Jun  4 15:27:42 2015
>> New Revision: 239084
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=239084&view=rev
>> Log:
>> MC: Remove obsolete MachO UseAggressiveSymbolFolding.
>> 
>> Fix the FIXME and remove this old as(1) compat option. It was useful for
>> bringup of the integrated assembler to diff object files, but now it's
>> just causing more relocations than strictly necessary to be generated.
>> 
>> rdar://21201804
>> 
>> Modified:
>>    llvm/trunk/include/llvm/MC/MCMachObjectWriter.h
>>    llvm/trunk/lib/MC/MCMachObjectTargetWriter.cpp
>>    llvm/trunk/lib/MC/MachObjectWriter.cpp
>>    llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
>>    llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
>>    llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp
>>    llvm/trunk/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
>>    llvm/trunk/test/MC/MachO/absolutize.s
>>    llvm/trunk/test/MC/MachO/reloc-diff.s
>> 
>> Modified: llvm/trunk/include/llvm/MC/MCMachObjectWriter.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCMachObjectWriter.h?rev=239084&r1=239083&r2=239084&view=diff
>> ==============================================================================
>> --- llvm/trunk/include/llvm/MC/MCMachObjectWriter.h (original)
>> +++ llvm/trunk/include/llvm/MC/MCMachObjectWriter.h Thu Jun  4 15:27:42 2015
>> @@ -27,15 +27,11 @@ class MCMachObjectTargetWriter {
>>   const unsigned Is64Bit : 1;
>>   const uint32_t CPUType;
>>   const uint32_t CPUSubtype;
>> -  // FIXME: Remove this, we should just always use it once we no longer care
>> -  // about Darwin 'as' compatibility.
>> -  const unsigned UseAggressiveSymbolFolding : 1;
>>   unsigned LocalDifference_RIT;
>> 
>> protected:
>>   MCMachObjectTargetWriter(bool Is64Bit_, uint32_t CPUType_,
>> -                           uint32_t CPUSubtype_,
>> -                           bool UseAggressiveSymbolFolding_ = false);
>> +                           uint32_t CPUSubtype_);
>> 
>>   void setLocalDifferenceRelocationType(unsigned Type) {
>>     LocalDifference_RIT = Type;
>> @@ -55,7 +51,6 @@ public:
>>   /// @{
>> 
>>   bool is64Bit() const { return Is64Bit; }
>> -  bool useAggressiveSymbolFolding() const { return UseAggressiveSymbolFolding; }
>>   uint32_t getCPUType() const { return CPUType; }
>>   uint32_t getCPUSubtype() const { return CPUSubtype; }
>>   unsigned getLocalDifferenceRelocationType() const {
>> 
>> Modified: llvm/trunk/lib/MC/MCMachObjectTargetWriter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCMachObjectTargetWriter.cpp?rev=239084&r1=239083&r2=239084&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/MC/MCMachObjectTargetWriter.cpp (original)
>> +++ llvm/trunk/lib/MC/MCMachObjectTargetWriter.cpp Thu Jun  4 15:27:42 2015
>> @@ -11,12 +11,9 @@
>> 
>> using namespace llvm;
>> 
>> -MCMachObjectTargetWriter::MCMachObjectTargetWriter(
>> -  bool Is64Bit_, uint32_t CPUType_, uint32_t CPUSubtype_,
>> -  bool UseAggressiveSymbolFolding_)
>> -  : Is64Bit(Is64Bit_), CPUType(CPUType_), CPUSubtype(CPUSubtype_),
>> -    UseAggressiveSymbolFolding(UseAggressiveSymbolFolding_) {
>> -}
>> +MCMachObjectTargetWriter::MCMachObjectTargetWriter(bool Is64Bit_,
>> +                                                   uint32_t CPUType_,
>> +                                                   uint32_t CPUSubtype_)
>> +    : Is64Bit(Is64Bit_), CPUType(CPUType_), CPUSubtype(CPUSubtype_) {}
>> 
>> -MCMachObjectTargetWriter::~MCMachObjectTargetWriter() {
>> -}
>> +MCMachObjectTargetWriter::~MCMachObjectTargetWriter() {}
>> 
>> Modified: llvm/trunk/lib/MC/MachObjectWriter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MachObjectWriter.cpp?rev=239084&r1=239083&r2=239084&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/MC/MachObjectWriter.cpp (original)
>> +++ llvm/trunk/lib/MC/MachObjectWriter.cpp Thu Jun  4 15:27:42 2015
>> @@ -703,9 +703,6 @@ bool MachObjectWriter::IsSymbolRefDiffer
>>             SA.isTemporary() && SA.isInSection() && &SecA == &SecB){
>>       return true;
>>     }
>> -  } else {
>> -    if (!TargetObjectWriter->useAggressiveSymbolFolding())
>> -      return false;
>>   }
>> 
>>   // If they are not in the same section, we can't compute the diff.
>> 
>> Modified: llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp?rev=239084&r1=239083&r2=239084&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp (original)
>> +++ llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp Thu Jun  4 15:27:42 2015
>> @@ -31,8 +31,7 @@ class AArch64MachObjectWriter : public M
>> 
>> public:
>>   AArch64MachObjectWriter(uint32_t CPUType, uint32_t CPUSubtype)
>> -      : MCMachObjectTargetWriter(true /* is64Bit */, CPUType, CPUSubtype,
>> -                                 /*UseAggressiveSymbolFolding=*/true) {}
>> +      : MCMachObjectTargetWriter(true /* is64Bit */, CPUType, CPUSubtype) {}
>> 
>>   void RecordRelocation(MachObjectWriter *Writer, MCAssembler &Asm,
>>                         const MCAsmLayout &Layout, const MCFragment *Fragment,
>> 
>> Modified: llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp?rev=239084&r1=239083&r2=239084&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp (original)
>> +++ llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp Thu Jun  4 15:27:42 2015
>> @@ -49,10 +49,8 @@ class ARMMachObjectWriter : public MCMac
>>                                 const MCSymbol &S, uint64_t FixedValue);
>> 
>> public:
>> -  ARMMachObjectWriter(bool Is64Bit, uint32_t CPUType,
>> -                      uint32_t CPUSubtype)
>> -    : MCMachObjectTargetWriter(Is64Bit, CPUType, CPUSubtype,
>> -                               /*UseAggressiveSymbolFolding=*/true) {}
>> +  ARMMachObjectWriter(bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype)
>> +      : MCMachObjectTargetWriter(Is64Bit, CPUType, CPUSubtype) {}
>> 
>>   void RecordRelocation(MachObjectWriter *Writer, MCAssembler &Asm,
>>                         const MCAsmLayout &Layout, const MCFragment *Fragment,
>> 
>> Modified: llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp?rev=239084&r1=239083&r2=239084&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp (original)
>> +++ llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp Thu Jun  4 15:27:42 2015
>> @@ -38,8 +38,7 @@ class PPCMachObjectWriter : public MCMac
>> 
>> public:
>>   PPCMachObjectWriter(bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype)
>> -      : MCMachObjectTargetWriter(Is64Bit, CPUType, CPUSubtype,
>> -                                 /*UseAggressiveSymbolFolding=*/Is64Bit) {}
>> +      : MCMachObjectTargetWriter(Is64Bit, CPUType, CPUSubtype) {}
>> 
>>   void RecordRelocation(MachObjectWriter *Writer, MCAssembler &Asm,
>>                         const MCAsmLayout &Layout, const MCFragment *Fragment,
>> 
>> Modified: llvm/trunk/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp?rev=239084&r1=239083&r2=239084&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp (original)
>> +++ llvm/trunk/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp Thu Jun  4 15:27:42 2015
>> @@ -54,10 +54,8 @@ class X86MachObjectWriter : public MCMac
>>                               MCValue Target, uint64_t &FixedValue);
>> 
>> public:
>> -  X86MachObjectWriter(bool Is64Bit, uint32_t CPUType,
>> -                      uint32_t CPUSubtype)
>> -    : MCMachObjectTargetWriter(Is64Bit, CPUType, CPUSubtype,
>> -                               /*UseAggressiveSymbolFolding=*/Is64Bit) {}
>> +  X86MachObjectWriter(bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype)
>> +      : MCMachObjectTargetWriter(Is64Bit, CPUType, CPUSubtype) {}
>> 
>>   void RecordRelocation(MachObjectWriter *Writer, MCAssembler &Asm,
>>                         const MCAsmLayout &Layout, const MCFragment *Fragment,
>> 
>> Modified: llvm/trunk/test/MC/MachO/absolutize.s
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/MachO/absolutize.s?rev=239084&r1=239083&r2=239084&view=diff
>> ==============================================================================
>> --- llvm/trunk/test/MC/MachO/absolutize.s (original)
>> +++ llvm/trunk/test/MC/MachO/absolutize.s Thu Jun  4 15:27:42 2015
>> @@ -6,9 +6,9 @@ _text_b:
>>         xorl %eax,%eax
>> Ltext_c:
>>         xorl %eax,%eax
>> -Ltext_d:
>> +Ltext_d:
>>         xorl %eax,%eax
>> -
>> +
>>         movl $(_text_a - _text_b), %eax
>> Ltext_expr_0 = _text_a - _text_b
>>         movl $(Ltext_expr_0), %eax
>> @@ -30,9 +30,9 @@ _data_b:
>>         .long 0
>> Ldata_c:
>>         .long 0
>> -Ldata_d:
>> +Ldata_d:
>>         .long 0
>> -
>> +
>>         .long _data_a - _data_b
>> Ldata_expr_0 = _data_a - _data_b
>>         .long Ldata_expr_0
>> @@ -75,7 +75,7 @@ Ldata_expr_2 = Ldata_d - Ldata_c
>> // CHECK:     ('offset', 324)
>> // CHECK:     ('alignment', 0)
>> // CHECK:     ('reloc_offset', 412)
>> -// CHECK:     ('num_reloc', 7)
>> +// CHECK:     ('num_reloc', 3)
>> // CHECK:     ('flags', 0x80000400)
>> // CHECK:     ('reserved1', 0)
>> // CHECK:     ('reserved2', 0)
>> @@ -85,21 +85,9 @@ Ldata_expr_2 = Ldata_d - Ldata_c
>> // CHECK:     (('word-0', 0xa0000027),
>> // CHECK:      ('word-1', 0x0)),
>> // CHECK:     # Relocation 1
>> -// CHECK:     (('word-0', 0xa400001d),
>> -// CHECK:      ('word-1', 0x6)),
>> -// CHECK:     # Relocation 2
>> -// CHECK:     (('word-0', 0xa1000000),
>> -// CHECK:      ('word-1', 0x4)),
>> -// CHECK:     # Relocation 3
>> -// CHECK:     (('word-0', 0xa4000013),
>> -// CHECK:      ('word-1', 0x4)),
>> -// CHECK:     # Relocation 4
>> -// CHECK:     (('word-0', 0xa1000000),
>> -// CHECK:      ('word-1', 0x2)),
>> -// CHECK:     # Relocation 5
>> // CHECK:     (('word-0', 0xa4000009),
>> // CHECK:      ('word-1', 0x0)),
>> -// CHECK:     # Relocation 6
>> +// CHECK:     # Relocation 2
>> // CHECK:     (('word-0', 0xa1000000),
>> // CHECK:      ('word-1', 0x2)),
>> // CHECK:   ])
>> @@ -111,8 +99,8 @@ Ldata_expr_2 = Ldata_d - Ldata_c
>> // CHECK:     ('size', 44)
>> // CHECK:     ('offset', 367)
>> // CHECK:     ('alignment', 0)
>> -// CHECK:     ('reloc_offset', 468)
>> -// CHECK:     ('num_reloc', 7)
>> +// CHECK:     ('reloc_offset', 436)
>> +// CHECK:     ('num_reloc', 3)
>> // CHECK:     ('flags', 0x0)
>> // CHECK:     ('reserved1', 0)
>> // CHECK:     ('reserved2', 0)
>> @@ -122,21 +110,9 @@ Ldata_expr_2 = Ldata_d - Ldata_c
>> // CHECK:     (('word-0', 0xa0000028),
>> // CHECK:      ('word-1', 0x2b)),
>> // CHECK:     # Relocation 1
>> -// CHECK:     (('word-0', 0xa4000020),
>> -// CHECK:      ('word-1', 0x37)),
>> -// CHECK:     # Relocation 2
>> -// CHECK:     (('word-0', 0xa1000000),
>> -// CHECK:      ('word-1', 0x33)),
>> -// CHECK:     # Relocation 3
>> -// CHECK:     (('word-0', 0xa4000018),
>> -// CHECK:      ('word-1', 0x33)),
>> -// CHECK:     # Relocation 4
>> -// CHECK:     (('word-0', 0xa1000000),
>> -// CHECK:      ('word-1', 0x2f)),
>> -// CHECK:     # Relocation 5
>> // CHECK:     (('word-0', 0xa4000010),
>> // CHECK:      ('word-1', 0x2b)),
>> -// CHECK:     # Relocation 6
>> +// CHECK:     # Relocation 2
>> // CHECK:     (('word-0', 0xa1000000),
>> // CHECK:      ('word-1', 0x2f)),
>> // CHECK:   ])
>> @@ -146,9 +122,9 @@ Ldata_expr_2 = Ldata_d - Ldata_c
>> // CHECK:   # Load Command 1
>> // CHECK:  (('command', 2)
>> // CHECK:   ('size', 24)
>> -// CHECK:   ('symoff', 524)
>> +// CHECK:   ('symoff', 460)
>> // CHECK:   ('nsyms', 4)
>> -// CHECK:   ('stroff', 572)
>> +// CHECK:   ('stroff', 508)
>> // CHECK:   ('strsize', 36)
>> // CHECK:   ('_string_data', '\x00_text_b\x00_data_b\x00_text_a\x00_data_a\x00\x00\x00\x00')
>> // CHECK:   ('_symbols', [
>> 
>> Modified: llvm/trunk/test/MC/MachO/reloc-diff.s
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/MachO/reloc-diff.s?rev=239084&r1=239083&r2=239084&view=diff
>> ==============================================================================
>> --- llvm/trunk/test/MC/MachO/reloc-diff.s (original)
>> +++ llvm/trunk/test/MC/MachO/reloc-diff.s Thu Jun  4 15:27:42 2015
>> @@ -1,39 +1,27 @@
>> // RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
>> 
>> // CHECK: # Relocation 0
>> -// CHECK: (('word-0', 0xa2000014),
>> +// CHECK: (('word-0', 0xa4000010),
>> // CHECK:  ('word-1', 0x0)),
>> // CHECK: # Relocation 1
>> // CHECK: (('word-0', 0xa1000000),
>> // CHECK:  ('word-1', 0x0)),
>> // CHECK: # Relocation 2
>> -// CHECK: (('word-0', 0xa4000010),
>> +// CHECK: (('word-0', 0xa4000008),
>> // CHECK:  ('word-1', 0x0)),
>> // CHECK: # Relocation 3
>> // CHECK: (('word-0', 0xa1000000),
>> // CHECK:  ('word-1', 0x0)),
>> // CHECK: # Relocation 4
>> -// CHECK: (('word-0', 0xa400000c),
>> +// CHECK: (('word-0', 0xa4000004),
>> // CHECK:  ('word-1', 0x0)),
>> // CHECK: # Relocation 5
>> // CHECK: (('word-0', 0xa1000000),
>> // CHECK:  ('word-1', 0x0)),
>> // CHECK: # Relocation 6
>> -// CHECK: (('word-0', 0xa4000008),
>> -// CHECK:  ('word-1', 0x0)),
>> -// CHECK: # Relocation 7
>> -// CHECK: (('word-0', 0xa1000000),
>> -// CHECK:  ('word-1', 0x0)),
>> -// CHECK: # Relocation 8
>> -// CHECK: (('word-0', 0xa4000004),
>> -// CHECK:  ('word-1', 0x0)),
>> -// CHECK: # Relocation 9
>> -// CHECK: (('word-0', 0xa1000000),
>> -// CHECK:  ('word-1', 0x0)),
>> -// CHECK: # Relocation 10
>> // CHECK: (('word-0', 0xa2000000),
>> // CHECK:  ('word-1', 0x0)),
>> -// CHECK: # Relocation 11
>> +// CHECK: # Relocation 7
>> // CHECK: (('word-0', 0xa1000000),
>> // CHECK:  ('word-1', 0x0)),
>> // CHECK-NEXT: ])
>> @@ -43,7 +31,7 @@ _local_def:
>> _external_def:
>> Ltemp:
>>         ret
>> -
>> +
>>         .data
>>         .long _external_def - _local_def
>>         .long Ltemp - _local_def
>> 
>> 
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list