diff options
| author | Adrian Prantl <aprantl@apple.com> | 2017-11-01 18:06:35 +0000 | 
|---|---|---|
| committer | Adrian Prantl <aprantl@apple.com> | 2017-11-01 18:06:35 +0000 | 
| commit | 40a0ea5f29e035a578dfbf090477570ead090afc (patch) | |
| tree | d9b84874505c9ed8809260a64e3393ac305ea145 | |
| parent | 9fb6e1a0370eec770aa43bdcd8db0697f0ee128c (diff) | |
| download | bcm5719-llvm-40a0ea5f29e035a578dfbf090477570ead090afc.tar.gz bcm5719-llvm-40a0ea5f29e035a578dfbf090477570ead090afc.zip  | |
Revert r317106 to facilitate reverting r317105.
llvm-svn: 317109
| -rw-r--r-- | llvm/lib/Transforms/Scalar/LoopRotation.cpp | 24 | ||||
| -rw-r--r-- | llvm/test/Transforms/LoopRotate/dbg-value-duplicates.ll | 2 | 
2 files changed, 0 insertions, 26 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopRotation.cpp b/llvm/lib/Transforms/Scalar/LoopRotation.cpp index 2f8dfaee7c5..8581198cc7d 100644 --- a/llvm/lib/Transforms/Scalar/LoopRotation.cpp +++ b/llvm/lib/Transforms/Scalar/LoopRotation.cpp @@ -25,7 +25,6 @@  #include "llvm/Analysis/TargetTransformInfo.h"  #include "llvm/Analysis/ValueTracking.h"  #include "llvm/IR/CFG.h" -#include "llvm/IR/DebugInfoMetadata.h"  #include "llvm/IR/Dominators.h"  #include "llvm/IR/Function.h"  #include "llvm/IR/IntrinsicInst.h" @@ -308,22 +307,6 @@ bool LoopRotate::rotateLoop(Loop *L, bool SimplifiedLatch) {    // For the rest of the instructions, either hoist to the OrigPreheader if    // possible or create a clone in the OldPreHeader if not.    TerminatorInst *LoopEntryBranch = OrigPreheader->getTerminator(); - -  // Record all debug intrinsics preceding LoopEntryBranch to avoid duplication. -  using DbgIntrinsicHash = -      std::pair<std::pair<Value *, DILocalVariable *>, DIExpression *>; -  auto makeHash = [](DbgInfoIntrinsic *D) -> DbgIntrinsicHash { -    return {{D->getVariableLocation(), D->getVariable()}, D->getExpression()}; -  }; -  SmallDenseSet<DbgIntrinsicHash, 8> DbgIntrinsics; -  for (auto I = std::next(OrigPreheader->rbegin()), E = OrigPreheader->rend(); -       I != E; ++I) { -    if (auto *DII = dyn_cast<DbgInfoIntrinsic>(&*I)) -      DbgIntrinsics.insert(makeHash(DII)); -    else -      break; -  } -    while (I != E) {      Instruction *Inst = &*I++; @@ -347,13 +330,6 @@ bool LoopRotate::rotateLoop(Loop *L, bool SimplifiedLatch) {      RemapInstruction(C, ValueMap,                       RF_NoModuleLevelChanges | RF_IgnoreMissingLocals); -    // Avoid inserting the same intrinsic twice. -    if (auto *DII = dyn_cast<DbgInfoIntrinsic>(C)) -      if (DbgIntrinsics.count(makeHash(DII))) { -        C->deleteValue(); -        continue; -      } -      // With the operands remapped, see if the instruction constant folds or is      // otherwise simplifyable.  This commonly occurs because the entry from PHI      // nodes allows icmps and other instructions to fold. diff --git a/llvm/test/Transforms/LoopRotate/dbg-value-duplicates.ll b/llvm/test/Transforms/LoopRotate/dbg-value-duplicates.ll index 10c708e7e1f..ad47cbfb55b 100644 --- a/llvm/test/Transforms/LoopRotate/dbg-value-duplicates.ll +++ b/llvm/test/Transforms/LoopRotate/dbg-value-duplicates.ll @@ -10,8 +10,6 @@ entry:    call void @llvm.dbg.value(metadata i64 %n, metadata !16, metadata !DIExpression()), !dbg !21    call void @llvm.dbg.value(metadata i64 %s, metadata !17, metadata !DIExpression()), !dbg !22    call void @llvm.dbg.value(metadata i64 0, metadata !18, metadata !DIExpression()), !dbg !23 -  ; CHECK:   call void @llvm.dbg.value(metadata i64 0, metadata !18, metadata !DIExpression()), !dbg !23 -  ; CHECK-NOT:   call void @llvm.dbg.value(metadata i64 0, metadata !18, metadata !DIExpression()), !dbg !23    br label %for.cond, !dbg !24  for.cond:                                         ; preds = %for.body, %entry  | 

