================
@@ -112,21 +117,52 @@ bool
StaticDataSplitter::runOnMachineFunction(MachineFunction &MF) {
return Changed;
}
+const Constant *
+StaticDataSplitter::getConstant(const MachineOperand &Op,
+ const TargetMachine &TM,
+ const MachineConstantPool *MCP) {
+ if (!Op.isGlobal() && !Op.isCPI())
+ return nullptr;
+
+ if (Op.isGlobal()) {
+ // Find global variables with local linkage.
+ const GlobalVariable *GV = getLocalLinkageGlobalVariable(Op.getGlobal());
+ // Skip 'special' global variables conservatively because they are
+ // often handled specially, and skip those not in static data
+ // sections.
+ if (!GV || GV->getName().starts_with("llvm.") ||
+ !inStaticDataSection(GV, TM))
+ return nullptr;
+ return GV;
----------------
mingmingl-llvm wrote:
The global variable handling should be a part of
https://github.com/llvm/llvm-project/pull/125756, so did it in
https://github.com/llvm/llvm-project/pull/125756/commits/9302b2b708cdce89add071fa584c12ddb4f9d71d
https://github.com/llvm/llvm-project/pull/129781
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits