[llvm] [ARM] Fix access to dso_preemptable __stack_chk_guard with static relocation model (PR #70014)

Eli Friedman via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 24 11:07:39 PDT 2023


================
@@ -104,11 +104,12 @@ void ARMInstrInfo::expandLoadStackGuard(MachineBasicBlock::iterator MI) const {
   const GlobalValue *GV =
       cast<GlobalValue>((*MI->memoperands_begin())->getValue());
 
-  if (!Subtarget.useMovt() || Subtarget.isGVInGOT(GV)) {
----------------
efriedma-quic wrote:

Not sure I understand the change to the inner if statement here `if (TM.isPositionIndependent())` -> `if (TM.shouldAssumeDSOLocal(M, GV))`. The only thing that matters choosing between LDRLIT_ga_abs and LDRLIT_ga_pcrel should be whether we're generating position-independent code, which isn't directly related to whether the symbol is dso_local.

https://github.com/llvm/llvm-project/pull/70014


More information about the llvm-commits mailing list