Index: lib/Target/ARM/ARMISelLowering.cpp =================================================================== --- lib/Target/ARM/ARMISelLowering.cpp +++ lib/Target/ARM/ARMISelLowering.cpp @@ -3132,9 +3132,12 @@ bool IsRO = isReadOnly(GV); // promoteToConstantPool only if not generating XO text section - if (TM.shouldAssumeDSOLocal(*GV->getParent(), GV) && !Subtarget->genExecuteOnly()) + // Temporarily disable promotion of constant globals to constant pools until + // PR32780 gets resolved. + // FIXME: uncomment once PR32780 is fixed. + /*if (TM.shouldAssumeDSOLocal(*GV->getParent(), GV) && !Subtarget->genExecuteOnly()) if (SDValue V = promoteToConstantPool(GV, DAG, PtrVT, dl)) - return V; + return V;*/ if (isPositionIndependent()) { bool UseGOT_PREL = !TM.shouldAssumeDSOLocal(*GV->getParent(), GV); Index: test/CodeGen/ARM/constantpool-promote-dbg.ll =================================================================== --- test/CodeGen/ARM/constantpool-promote-dbg.ll +++ test/CodeGen/ARM/constantpool-promote-dbg.ll @@ -1,3 +1,6 @@ +; Temporarily XFAIL'ed until PR32780 gets resolved. +; FIXME: remove XFAIL once PR32780 is fixed. +; XFAIL: * ; RUN: llc -relocation-model=static < %s | FileCheck %s target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64" Index: test/CodeGen/ARM/constantpool-promote-ldrh.ll =================================================================== --- test/CodeGen/ARM/constantpool-promote-ldrh.ll +++ test/CodeGen/ARM/constantpool-promote-ldrh.ll @@ -1,3 +1,6 @@ +; Temporarily XFAIL'ed until PR32780 gets resolved. +; FIXME: remove XFAIL once PR32780 is fixed. +; XFAIL: * ; RUN: llc < %s -O0 -fast-isel=false | FileCheck %s ; RUN: llc < %s -O0 -fast-isel=false -filetype=obj target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64" Index: test/CodeGen/ARM/constantpool-promote.ll =================================================================== --- test/CodeGen/ARM/constantpool-promote.ll +++ test/CodeGen/ARM/constantpool-promote.ll @@ -45,6 +45,9 @@ ; CHECK-LABEL: @test3 ; CHECK: adr r0, [[x:.*]] ; CHECK: [[x]]: +; Temporarily XFAIL'ed until PR32780 gets resolved. +; FIXME: remove XFAIL once PR32780 is fixed. +; XFAIL: * ; CHECK: .asciz "this string is just right!\000" define void @test3() #0 { tail call void @a(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str2, i32 0, i32 0)) #2