aboutsummaryrefslogtreecommitdiff
path: root/include/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm')
-rw-r--r--include/llvm/CodeGen/MachineFunctionPass.h12
-rw-r--r--include/llvm/GlobalValue.h12
2 files changed, 12 insertions, 12 deletions
diff --git a/include/llvm/CodeGen/MachineFunctionPass.h b/include/llvm/CodeGen/MachineFunctionPass.h
index 95bb2bf510..6b5e64abc4 100644
--- a/include/llvm/CodeGen/MachineFunctionPass.h
+++ b/include/llvm/CodeGen/MachineFunctionPass.h
@@ -24,8 +24,9 @@
namespace llvm {
+ // FIXME: This pass should declare that the pass does not invalidate any LLVM
+ // passes.
struct MachineFunctionPass : public FunctionPass {
-
explicit MachineFunctionPass(intptr_t ID) : FunctionPass(ID) {}
explicit MachineFunctionPass(void *ID) : FunctionPass(ID) {}
@@ -36,14 +37,7 @@ protected:
virtual bool runOnMachineFunction(MachineFunction &MF) = 0;
public:
- // FIXME: This pass should declare that the pass does not invalidate any LLVM
- // passes.
- bool runOnFunction(Function &F) {
- return runOnMachineFunction(MachineFunction::get(&F));
- }
-
-private:
- virtual void virtfn(); // out of line virtual fn to give class a home.
+ bool runOnFunction(Function &F);
};
} // End llvm namespace
diff --git a/include/llvm/GlobalValue.h b/include/llvm/GlobalValue.h
index e6a82ef22e..50c613ef6a 100644
--- a/include/llvm/GlobalValue.h
+++ b/include/llvm/GlobalValue.h
@@ -31,6 +31,7 @@ public:
/// @brief An enumeration for the kinds of linkage for global values.
enum LinkageTypes {
ExternalLinkage = 0,///< Externally visible function
+ AvailableExternallyLinkage, ///< Available for inspection, not emission.
LinkOnceAnyLinkage, ///< Keep one copy of function when linking (inline)
LinkOnceODRLinkage, ///< Same, but only replaced by something equivalent.
WeakAnyLinkage, ///< Keep one copy of named function when linking (weak)
@@ -109,6 +110,9 @@ public:
}
bool hasExternalLinkage() const { return Linkage == ExternalLinkage; }
+ bool hasAvailableExternallyLinkage() const {
+ return Linkage == AvailableExternallyLinkage;
+ }
bool hasLinkOnceLinkage() const {
return Linkage == LinkOnceAnyLinkage || Linkage == LinkOnceODRLinkage;
}
@@ -119,7 +123,8 @@ public:
bool hasInternalLinkage() const { return Linkage == InternalLinkage; }
bool hasPrivateLinkage() const { return Linkage == PrivateLinkage; }
bool hasLocalLinkage() const {
- return Linkage == InternalLinkage || Linkage == PrivateLinkage;
+ return Linkage == InternalLinkage || Linkage == PrivateLinkage ||
+ Linkage == AvailableExternallyLinkage;
}
bool hasDLLImportLinkage() const { return Linkage == DLLImportLinkage; }
bool hasDLLExportLinkage() const { return Linkage == DLLExportLinkage; }
@@ -141,9 +146,10 @@ public:
}
/// isWeakForLinker - Whether the definition of this global may be replaced at
- /// link time, whether the replacement is equivalent to the original or not.
+ /// link time.
bool isWeakForLinker() const {
- return (Linkage == WeakAnyLinkage ||
+ return (Linkage == AvailableExternallyLinkage ||
+ Linkage == WeakAnyLinkage ||
Linkage == WeakODRLinkage ||
Linkage == LinkOnceAnyLinkage ||
Linkage == LinkOnceODRLinkage ||