From: Anton Korobeynikov Date: Wed, 9 Jul 2008 13:18:02 +0000 (+0000) Subject: Add default section name resolution routine X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=0c602469f4e99a5775aebce16045f7c2598471e4;p=oota-llvm.git Add default section name resolution routine git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53292 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Target/TargetAsmInfo.h b/include/llvm/Target/TargetAsmInfo.h index 7af2c03aa63..3f7dbc7206d 100644 --- a/include/llvm/Target/TargetAsmInfo.h +++ b/include/llvm/Target/TargetAsmInfo.h @@ -471,6 +471,10 @@ namespace llvm { SectionFlagsForGlobal(const GlobalValue *GV = NULL, const char* name = NULL) const; + /// SectionForGlobal - This hooks returns proper section name for given + /// global with all necessary flags and marks. + const char* SectionForGlobal(const GlobalValue *GV) const; + // Accessors. // const char *getTextSection() const { diff --git a/lib/Target/TargetAsmInfo.cpp b/lib/Target/TargetAsmInfo.cpp index 404e152da7b..8e34fc30ec5 100644 --- a/lib/Target/TargetAsmInfo.cpp +++ b/lib/Target/TargetAsmInfo.cpp @@ -254,3 +254,15 @@ TargetAsmInfo::SectionFlagsForGlobal(const GlobalValue *GV, return flags; } + +const char* +TargetAsmInfo::SectionForGlobal(const GlobalValue *GV) const { + SectionKind::Kind kind = SectionKindForGlobal(GV); + + if (kind == SectionKind::Text) + return getTextSection(); + else if (kind == SectionKind::BSS && getBSSSection()) + return getBSSSection(); + + return getDataSection(); +}