diff options
Diffstat (limited to 'llvm/lib/Target/ARM/ARMGlobalMerge.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMGlobalMerge.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMGlobalMerge.cpp b/llvm/lib/Target/ARM/ARMGlobalMerge.cpp index 3f0238387a2..ab6c00e6e1a 100644 --- a/llvm/lib/Target/ARM/ARMGlobalMerge.cpp +++ b/llvm/lib/Target/ARM/ARMGlobalMerge.cpp @@ -53,6 +53,7 @@ #define DEBUG_TYPE "arm-global-merge" #include "ARM.h" +#include "ARMTargetMachine.h" #include "llvm/CodeGen/Passes.h" #include "llvm/Attributes.h" #include "llvm/Constants.h" @@ -167,6 +168,11 @@ bool ARMGlobalMerge::doInitialization(Module &M) { unsigned MaxOffset = TLI->getMaximalGlobalOffset(); bool Changed = false; + // Disable this pass on darwin. The debugger is not yet ready to extract + // variable's info from a merged global. + if (TLI->getTargetMachine().getSubtarget<ARMSubtarget>().isTargetDarwin()) + return false; + // Grab all non-const globals. for (Module::global_iterator I = M.global_begin(), E = M.global_end(); I != E; ++I) { |