dpaoliello added inline comments.
================ Comment at: llvm/lib/Target/AArch64/AArch64MCInstLower.cpp:37-38 MCSymbol * AArch64MCInstLower::GetGlobalAddressSymbol(const MachineOperand &MO) const { const GlobalValue *GV = MO.getGlobal(); ---------------- We now also need to call this for constants in case the function is only referenced from a variable (e.g., a VTable) and is never called elsewhere. I split this function into a new function `GetGlobalValueSymbol`: ``` MCSymbol * AArch64MCInstLower::GetGlobalAddressSymbol(const MachineOperand &MO) const { return GetGlobalValueSymbol(MO.getGlobal(), MO.getTargetFlags()); } MCSymbol * AArch64MCInstLower::GetGlobalValueSymbol(const GlobalValue *GV, unsigned TargetFlags) const { ... } ``` And then called it from `AArch64AsmPrinter`: ``` const MCExpr *AArch64AsmPrinter::lowerConstant(const Constant *CV) { if (const GlobalValue *GV = dyn_cast<GlobalValue>(CV)) return MCSymbolRefExpr::create(MCInstLowering.GetGlobalValueSymbol(GV, 0), OutContext); return AsmPrinter::lowerConstant(CV); } ``` Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D157547/new/ https://reviews.llvm.org/D157547 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits