This reapplies commits: r330271, r330592, r330779.
[DEBUG] Initial adaptation of NVPTX target for debug info emission.
Summary:
Patch adds initial emission of the debug info for NVPTX target.
Currently, only .file and .loc directives are emitted, everything else is
commented out to not break the compilation of Cuda.
llvm-svn: 332689
56 lines
1.7 KiB
C++
56 lines
1.7 KiB
C++
//===-- NVPTXMCAsmInfo.cpp - NVPTX asm properties -------------------------===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file contains the declarations of the NVPTXMCAsmInfo properties.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "NVPTXMCAsmInfo.h"
|
|
#include "llvm/ADT/Triple.h"
|
|
|
|
using namespace llvm;
|
|
|
|
void NVPTXMCAsmInfo::anchor() {}
|
|
|
|
NVPTXMCAsmInfo::NVPTXMCAsmInfo(const Triple &TheTriple) {
|
|
if (TheTriple.getArch() == Triple::nvptx64) {
|
|
CodePointerSize = CalleeSaveStackSlotSize = 8;
|
|
}
|
|
|
|
CommentString = "//";
|
|
|
|
HasSingleParameterDotFile = false;
|
|
|
|
InlineAsmStart = " begin inline asm";
|
|
InlineAsmEnd = " end inline asm";
|
|
|
|
SupportsDebugInformation = true;
|
|
// PTX does not allow .align on functions.
|
|
HasFunctionAlignment = false;
|
|
HasDotTypeDotSizeDirective = false;
|
|
// PTX does not allow .hidden or .protected
|
|
HiddenDeclarationVisibilityAttr = HiddenVisibilityAttr = MCSA_Invalid;
|
|
ProtectedVisibilityAttr = MCSA_Invalid;
|
|
|
|
// FIXME: remove comment once debug info is properly supported.
|
|
Data8bitsDirective = "// .b8 ";
|
|
Data16bitsDirective = nullptr; // not supported
|
|
Data32bitsDirective = "// .b32 ";
|
|
Data64bitsDirective = "// .b64 ";
|
|
ZeroDirective = "// .b8";
|
|
AsciiDirective = nullptr; // not supported
|
|
AscizDirective = nullptr; // not supported
|
|
SupportsQuotedNames = false;
|
|
SupportsExtendedDwarfLocDirective = false;
|
|
|
|
// @TODO: Can we just disable this?
|
|
WeakDirective = "\t// .weak\t";
|
|
GlobalDirective = "\t// .globl\t";
|
|
}
|