diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-10-21 01:17:30 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-10-21 01:17:30 +0000 |
| commit | c606bfe6600a64be3f99d0b420946de004c57a57 (patch) | |
| tree | 1aad2f80e0b25b29f2bfb9aab827822d06b60b75 /llvm/lib/Target | |
| parent | f60e0a160fc8db67461bcb930924f60a7dccb9be (diff) | |
| download | bcm5719-llvm-c606bfe6600a64be3f99d0b420946de004c57a57.tar.gz bcm5719-llvm-c606bfe6600a64be3f99d0b420946de004c57a57.zip | |
Fix a bit of confusion about .set and produce more readable assembly.
Every target we support has support for assembly that looks like
a = b - c
.long a
What is special about MachO is that the above combination suppresses the
production of a relocation.
With this change we avoid producing the intermediary labels when they don't
add any value.
llvm-svn: 220256
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp | 1 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86MCInstLower.cpp | 3 |
3 files changed, 2 insertions, 4 deletions
diff --git a/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp b/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp index 295d03721a6..4fd5bdda8c7 100644 --- a/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp +++ b/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp @@ -33,8 +33,6 @@ NVPTXMCAsmInfo::NVPTXMCAsmInfo(StringRef TT) { CommentString = "//"; - HasSetDirective = false; - HasSingleParameterDotFile = false; InlineAsmStart = " inline asm"; diff --git a/llvm/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp b/llvm/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp index f332e4da0df..fa268e6cb32 100644 --- a/llvm/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp +++ b/llvm/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp @@ -35,7 +35,6 @@ AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(StringRef &TT) : MCAsmInfoELF() { //===--- Global Variable Emission Directives --------------------------===// GlobalDirective = ".global"; - HasSetDirective = false; HasAggressiveSymbolFolding = true; COMMDirectiveAlignmentIsInBytes = false; HasDotTypeDotSizeDirective = false; diff --git a/llvm/lib/Target/X86/X86MCInstLower.cpp b/llvm/lib/Target/X86/X86MCInstLower.cpp index 39281c8915d..fc3662e6bec 100644 --- a/llvm/lib/Target/X86/X86MCInstLower.cpp +++ b/llvm/lib/Target/X86/X86MCInstLower.cpp @@ -264,7 +264,8 @@ MCOperand X86MCInstLower::LowerSymbolOperand(const MachineOperand &MO, Expr = MCBinaryExpr::CreateSub(Expr, MCSymbolRefExpr::Create(MF.getPICBaseSymbol(), Ctx), Ctx); - if (MO.isJTI() && MAI.hasSetDirective()) { + if (MO.isJTI()) { + assert(MAI.doesSetDirectiveSuppressesReloc()); // If .set directive is supported, use it to reduce the number of // relocations the assembler will generate for differences between // local labels. This is only safe when the symbols are in the same |

