|
@@ -365,6 +365,20 @@ bool llvm::UpgradeIntrinsicFunction(Function *F, Function *&NewFn) {
|
|
return Upgraded;
|
|
return Upgraded;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+bool llvm::UpgradeGlobalVariable(GlobalVariable *GV) {
|
|
|
|
+ const std::string &Name = GV->getName();
|
|
|
|
+
|
|
|
|
+ // We are only upgrading one symbol here. If we upgrade more, we will want to
|
|
|
|
+ // perform some sort of short-circuiting like in the
|
|
|
|
+ // "UpgradeIntrinsicFunction1" function.
|
|
|
|
+ if (Name == ".llvm.eh.catch.all.value") {
|
|
|
|
+ GV->setName("llvm.eh.catch.all.value");
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return false;
|
|
|
|
+}
|
|
|
|
+
|
|
/// ExtendNEONArgs - For NEON "long" and "wide" operations, where the results
|
|
/// ExtendNEONArgs - For NEON "long" and "wide" operations, where the results
|
|
/// have vector elements twice as big as one or both source operands, do the
|
|
/// have vector elements twice as big as one or both source operands, do the
|
|
/// sign- or zero-extension that used to be handled by intrinsics. The
|
|
/// sign- or zero-extension that used to be handled by intrinsics. The
|