diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Target/ARM/ARMGlobalMerge.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMGlobalMerge.cpp b/lib/Target/ARM/ARMGlobalMerge.cpp index 3f02383..ab6c00e 100644 --- a/lib/Target/ARM/ARMGlobalMerge.cpp +++ b/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) { |