[PATCH 1/2] R600: Use MCAsmInfoELF as AMDGPUMCAsmInfo base class

Matt Arsenault arsenm2 at gmail.com
Mon Oct 6 15:27:42 PDT 2014


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?


>   //===--- 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





More information about the llvm-commits mailing list