[llvm] r285376 - [ThinLTO] Rename HasSection to NoRename (NFC)
Teresa Johnson via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 27 19:25:00 PDT 2016
Author: tejohnson
Date: Thu Oct 27 21:24:59 2016
New Revision: 285376
URL: http://llvm.org/viewvc/llvm-project?rev=285376&view=rev
Log:
[ThinLTO] Rename HasSection to NoRename (NFC)
Summary:
This is in preparation for a change to utilize this flag for symbols
referenced/defined in either inline or module level assembly.
Reviewers: mehdi_amini
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D26048
Modified:
llvm/trunk/include/llvm/IR/ModuleSummaryIndex.h
llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp
llvm/trunk/lib/Transforms/IPO/FunctionImport.cpp
Modified: llvm/trunk/include/llvm/IR/ModuleSummaryIndex.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/ModuleSummaryIndex.h?rev=285376&r1=285375&r2=285376&view=diff
==============================================================================
--- llvm/trunk/include/llvm/IR/ModuleSummaryIndex.h (original)
+++ llvm/trunk/include/llvm/IR/ModuleSummaryIndex.h Thu Oct 27 21:24:59 2016
@@ -86,7 +86,7 @@ public:
/// \brief Sububclass discriminator (for dyn_cast<> et al.)
enum SummaryKind { AliasKind, FunctionKind, GlobalVarKind };
- /// Group flags (Linkage, hasSection, isOptSize, etc.) as a bitfield.
+ /// Group flags (Linkage, noRename, isOptSize, etc.) as a bitfield.
struct GVFlags {
/// \brief The linkage type of the associated global value.
///
@@ -97,20 +97,21 @@ public:
/// types based on global summary-based analysis.
unsigned Linkage : 4;
- /// Indicate if the global value is located in a specific section.
- unsigned HasSection : 1;
+ /// Indicate if the global value cannot be renamed (in a specific section,
+ /// possibly referenced from inline assembly, etc).
+ unsigned NoRename : 1;
/// Indicate if the function is not viable to inline.
unsigned IsNotViableToInline : 1;
/// Convenience Constructors
- explicit GVFlags(GlobalValue::LinkageTypes Linkage, bool HasSection,
+ explicit GVFlags(GlobalValue::LinkageTypes Linkage, bool NoRename,
bool IsNotViableToInline)
- : Linkage(Linkage), HasSection(HasSection),
+ : Linkage(Linkage), NoRename(NoRename),
IsNotViableToInline(IsNotViableToInline) {}
GVFlags(const GlobalValue &GV)
- : Linkage(GV.getLinkage()), HasSection(GV.hasSection()) {
+ : Linkage(GV.getLinkage()), NoRename(GV.hasSection()) {
IsNotViableToInline = false;
if (const auto *F = dyn_cast<Function>(&GV))
// Inliner doesn't handle variadic functions.
@@ -189,8 +190,9 @@ public:
/// to be referenced from another module.
bool needsRenaming() const { return GlobalValue::isLocalLinkage(linkage()); }
- /// Return true if this global value is located in a specific section.
- bool hasSection() const { return Flags.HasSection; }
+ /// Return true if this global value cannot be renamed (in a specific section,
+ /// possibly referenced from inline assembly, etc).
+ bool noRename() const { return Flags.NoRename; }
/// Record a reference from this global value to the global value identified
/// by \p RefGUID.
Modified: llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp?rev=285376&r1=285375&r2=285376&view=diff
==============================================================================
--- llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp (original)
+++ llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp Thu Oct 27 21:24:59 2016
@@ -838,9 +838,9 @@ static GlobalValueSummary::GVFlags getDe
// to getDecodedLinkage() will need to be taken into account here as above.
auto Linkage = GlobalValue::LinkageTypes(RawFlags & 0xF); // 4 bits
RawFlags = RawFlags >> 4;
- bool HasSection = RawFlags & 0x1;
+ bool NoRename = RawFlags & 0x1;
bool IsNotViableToInline = RawFlags & 0x2;
- return GlobalValueSummary::GVFlags(Linkage, HasSection, IsNotViableToInline);
+ return GlobalValueSummary::GVFlags(Linkage, NoRename, IsNotViableToInline);
}
static GlobalValue::VisibilityTypes getDecodedVisibility(unsigned Val) {
Modified: llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp?rev=285376&r1=285375&r2=285376&view=diff
==============================================================================
--- llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp (original)
+++ llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp Thu Oct 27 21:24:59 2016
@@ -990,7 +990,7 @@ static unsigned getEncodedLinkage(const
static uint64_t getEncodedGVSummaryFlags(GlobalValueSummary::GVFlags Flags) {
uint64_t RawFlags = 0;
- RawFlags |= Flags.HasSection; // bool
+ RawFlags |= Flags.NoRename; // bool
RawFlags |= (Flags.IsNotViableToInline << 1);
// Linkage don't need to be remapped at that time for the summary. Any future
// change to the getEncodedLinkage() function will need to be taken into
Modified: llvm/trunk/lib/Transforms/IPO/FunctionImport.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/FunctionImport.cpp?rev=285376&r1=285375&r2=285376&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/IPO/FunctionImport.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/FunctionImport.cpp Thu Oct 27 21:24:59 2016
@@ -111,8 +111,9 @@ static bool canBeExternallyReferenced(co
if (!Summary.needsRenaming())
return true;
- if (Summary.hasSection())
- // Can't rename a global that needs renaming if has a section.
+ if (Summary.noRename())
+ // Can't externally reference a global that needs renaming if has a section
+ // or is referenced from inline assembly, for example.
return false;
return true;
More information about the llvm-commits
mailing list