[PATCH 1/2] R600: Use MCAsmInfoELF as AMDGPUMCAsmInfo base class
Tom Stellard
tom at stellard.net
Tue Oct 7 13:08:53 PDT 2014
On Mon, Oct 06, 2014 at 03:27:42PM -0700, Matt Arsenault wrote:
>
> On Oct 6, 2014, at 12:28 PM, Tom Stellard <thomas.stellard at amd.com> wrote:
>
> > The main reason for this is that the MCAsmInfo class,
> > which we were previously using as the base class, sets
> > PrivateGlobalPrefix to "L", which causes all global
> > functions that start with L to be treated as local symbols.
> >
> > MCAsmInfoELF sets PrivateGlobalPrefix to ".L", which is what
> > we want, and it is probably a good idea to use this as the
> > base class anyway, since we are emitting ELF binaries.
> > ---
> > lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp | 5 ++++-
> > lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.h | 9 +++++++--
> > 2 files changed, 11 insertions(+), 3 deletions(-)
> >
> > diff --git a/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp b/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp
> > index 8e43800..a795f3d 100644
> > --- a/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp
> > +++ b/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp
> > @@ -11,7 +11,7 @@
> > #include "AMDGPUMCAsmInfo.h"
> >
> > using namespace llvm;
> > -AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(StringRef &TT) : MCAsmInfo() {
> > +AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(StringRef &TT) : MCAsmInfoELF() {
> > HasSingleParameterDotFile = false;
> > //===------------------------------------------------------------------===//
> > HasSubsectionsViaSymbols = true;
> > @@ -51,6 +51,9 @@ AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(StringRef &TT) : MCAsmInfo() {
> > HasDotTypeDotSizeDirective = false;
> > HasNoDeadStrip = true;
> > WeakRefDirective = ".weakref\t";
> > + // Setting this to false to avoid spam of clang/llvm version information
> > + // in assembly output.
> > + HasIdentDirective = false;
> This seems like useful information. Why disable it?
>
Ok, I'll leave it in.
-Tom
>
> > //===--- Dwarf Emission Directives -----------------------------------===//
> > SupportsDebugInformation = true;
> > }
> > diff --git a/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.h b/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.h
> > index abbeab9..637a977 100644
> > --- a/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.h
> > +++ b/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.h
> > @@ -14,12 +14,17 @@
> > #ifndef LLVM_LIB_TARGET_R600_MCTARGETDESC_AMDGPUMCASMINFO_H
> > #define LLVM_LIB_TARGET_R600_MCTARGETDESC_AMDGPUMCASMINFO_H
> >
> > -#include "llvm/MC/MCAsmInfo.h"
> > +#include "llvm/MC/MCAsmInfoELF.h"
> > namespace llvm {
> >
> > class StringRef;
> >
> > -class AMDGPUMCAsmInfo : public MCAsmInfo {
> > +// If you need to create another MCAsmInfo class, which inherits from MCAsmInfo,
> > +// you will need to make sure your new class sets PrivateGlobalPrefix to
> > +// a prefix that won't appeary in a fuction name. The default value
> > +// for PrivateGlobalPrefix is 'L', so it will consider any function starting
> > +// with 'L' as a local symbol.
> > +class AMDGPUMCAsmInfo : public MCAsmInfoELF {
> > public:
> > explicit AMDGPUMCAsmInfo(StringRef &TT);
> > const MCSection* getNonexecutableStackSection(MCContext &CTX) const override;
> > --
> > 1.8.5.5
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>
> _______________________________________________
> 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