<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Wed, Mar 21, 2018 at 3:36 PM David Blaikie via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: dblaikie<br>
Date: Wed Mar 21 15:34:23 2018<br>
New Revision: 328165<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=328165&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=328165&view=rev</a><br>
Log:<br>
Fix a couple of layering violations in Transforms<br>
<br>
Remove #include of Transforms/Scalar.h from Transform/Utils to fix layering.<br>
<br>
Transforms depends on Transforms/Utils, not the other way around. So<br>
remove the header and the "createStripGCRelocatesPass" function<br>
declaration (& definition) that is unused and motivated this dependency.<br>
<br>
Move Transforms/Utils/Local.h into Analysis because it's used by<br>
Analysis/MemoryBuiltins.cpp.<br>
<br>
Added:<br>
    llvm/trunk/include/llvm/Analysis/Utils/<br>
    llvm/trunk/include/llvm/Analysis/Utils/Local.h<br>
      - copied, changed from r328163, llvm/trunk/include/llvm/Transforms/Utils/Local.h<br></blockquote><div><br></div><div>This part of the change somewhat bothers me. Most of Local.h really is involved in *mutating* the IR and so shouldn't be used from Analysis anyways. Would it be possible to extract the interfaces that MemoryBuiltins.cpp is relying on into a separate API that fits better in Analysis and put this back into Transforms/Utils?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Removed:<br>
    llvm/trunk/include/llvm/Transforms/Utils/Local.h<br>
Modified:<br>
    llvm/trunk/include/llvm/Transforms/Scalar.h<br>
    llvm/trunk/include/llvm/Transforms/Scalar/SimplifyCFG.h<br>
    llvm/trunk/lib/Analysis/MemoryBuiltins.cpp<br>
    llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp<br>
    llvm/trunk/lib/CodeGen/DwarfEHPrepare.cpp<br>
    llvm/trunk/lib/CodeGen/SafeStack.cpp<br>
    llvm/trunk/lib/CodeGen/SjLjEHPrepare.cpp<br>
    llvm/trunk/lib/CodeGen/WinEHPrepare.cpp<br>
    llvm/trunk/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp<br>
    llvm/trunk/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp<br>
    llvm/trunk/lib/Target/Hexagon/HexagonCommonGEP.cpp<br>
    llvm/trunk/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp<br>
    llvm/trunk/lib/Target/PowerPC/PPCCTRLoops.cpp<br>
    llvm/trunk/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp<br>
    llvm/trunk/lib/Transforms/Coroutines/CoroFrame.cpp<br>
    llvm/trunk/lib/Transforms/Coroutines/CoroSplit.cpp<br>
    llvm/trunk/lib/Transforms/Coroutines/Coroutines.cpp<br>
    llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp<br>
    llvm/trunk/lib/Transforms/IPO/Inliner.cpp<br>
    llvm/trunk/lib/Transforms/IPO/PruneEH.cpp<br>
    llvm/trunk/lib/Transforms/IPO/StripSymbols.cpp<br>
    llvm/trunk/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp<br>
    llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp<br>
    llvm/trunk/lib/Transforms/InstCombine/InstCombineInternal.h<br>
    llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp<br>
    llvm/trunk/lib/Transforms/InstCombine/InstCombinePHI.cpp<br>
    llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp<br>
    llvm/trunk/lib/Transforms/Instrumentation/AddressSanitizer.cpp<br>
    llvm/trunk/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp<br>
    llvm/trunk/lib/Transforms/Instrumentation/EfficiencySanitizer.cpp<br>
    llvm/trunk/lib/Transforms/Instrumentation/MemorySanitizer.cpp<br>
    llvm/trunk/lib/Transforms/Instrumentation/ThreadSanitizer.cpp<br>
    llvm/trunk/lib/Transforms/ObjCARC/ObjCARC.h<br>
    llvm/trunk/lib/Transforms/Scalar/BDCE.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/CallSiteSplitting.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/ConstantHoisting.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/ConstantProp.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/DCE.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/DeadStoreElimination.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/EarlyCSE.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/FlattenCFGPass.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/GVN.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/GVNHoist.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/GVNSink.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/InferAddressSpaces.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/JumpThreading.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/LICM.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/LoopIdiomRecognize.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/LoopRerollPass.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/LoopRotation.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/LoopSimplifyCFG.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/LoopSink.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/LoopUnswitch.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/MemCpyOptimizer.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/NaryReassociate.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/NewGVN.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/PlaceSafepoints.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/Reassociate.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/Reg2Mem.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/SCCP.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/SROA.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/SimplifyCFGPass.cpp<br>
    llvm/trunk/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp<br>
    llvm/trunk/lib/Transforms/Utils/BasicBlockUtils.cpp<br>
    llvm/trunk/lib/Transforms/Utils/BypassSlowDivision.cpp<br>
    llvm/trunk/lib/Transforms/Utils/CloneFunction.cpp<br>
    llvm/trunk/lib/Transforms/Utils/DemoteRegToStack.cpp<br>
    llvm/trunk/lib/Transforms/Utils/EscapeEnumerator.cpp<br>
    llvm/trunk/lib/Transforms/Utils/FlattenCFG.cpp<br>
    llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp<br>
    llvm/trunk/lib/Transforms/Utils/LCSSA.cpp<br>
    llvm/trunk/lib/Transforms/Utils/Local.cpp<br>
    llvm/trunk/lib/Transforms/Utils/LoopSimplify.cpp<br>
    llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp<br>
    llvm/trunk/lib/Transforms/Utils/PromoteMemoryToRegister.cpp<br>
    llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp<br>
    llvm/trunk/lib/Transforms/Utils/SimplifyInstructions.cpp<br>
    llvm/trunk/lib/Transforms/Utils/SimplifyLibCalls.cpp<br>
    llvm/trunk/lib/Transforms/Utils/StripGCRelocates.cpp<br>
    llvm/trunk/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp<br>
    llvm/trunk/tools/bugpoint/CrashDebugger.cpp<br>
    llvm/trunk/unittests/Transforms/Utils/Local.cpp<br>
<br>
Copied: llvm/trunk/include/llvm/Analysis/Utils/Local.h (from r328163, llvm/trunk/include/llvm/Transforms/Utils/Local.h)<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/Utils/Local.h?p2=llvm/trunk/include/llvm/Analysis/Utils/Local.h&p1=llvm/trunk/include/llvm/Transforms/Utils/Local.h&r1=328163&r2=328165&rev=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/Utils/Local.h?p2=llvm/trunk/include/llvm/Analysis/Utils/Local.h&p1=llvm/trunk/include/llvm/Transforms/Utils/Local.h&r1=328163&r2=328165&rev=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/Transforms/Utils/Local.h (original)<br>
+++ llvm/trunk/include/llvm/Analysis/Utils/Local.h Wed Mar 21 15:34:23 2018<br>
@@ -12,8 +12,8 @@<br>
 //<br>
 //===----------------------------------------------------------------------===//<br>
<br>
-#ifndef LLVM_TRANSFORMS_UTILS_LOCAL_H<br>
-#define LLVM_TRANSFORMS_UTILS_LOCAL_H<br>
+#ifndef LLVM_ANALYSIS_UTILS_LOCAL_H<br>
+#define LLVM_ANALYSIS_UTILS_LOCAL_H<br>
<br>
 #include "llvm/ADT/ArrayRef.h"<br>
 #include "llvm/ADT/SmallPtrSet.h"<br>
<br>
Modified: llvm/trunk/include/llvm/Transforms/Scalar.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Transforms/Scalar.h?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Transforms/Scalar.h?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/Transforms/Scalar.h (original)<br>
+++ llvm/trunk/include/llvm/Transforms/Scalar.h Wed Mar 21 15:34:23 2018<br>
@@ -526,13 +526,6 @@ ModulePass *createRewriteStatepointsForG<br>
<br>
 //===----------------------------------------------------------------------===//<br>
 //<br>
-// StripGCRelocates - Remove GC relocates that have been inserted by<br>
-// RewriteStatepointsForGC. The resulting IR is incorrect, but this is useful<br>
-// for manual inspection.<br>
-FunctionPass *createStripGCRelocatesPass();<br>
-<br>
-//===----------------------------------------------------------------------===//<br>
-//<br>
 // Float2Int - Demote floats to ints where possible.<br>
 //<br>
 FunctionPass *createFloat2IntPass();<br>
<br>
Modified: llvm/trunk/include/llvm/Transforms/Scalar/SimplifyCFG.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Transforms/Scalar/SimplifyCFG.h?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Transforms/Scalar/SimplifyCFG.h?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/Transforms/Scalar/SimplifyCFG.h (original)<br>
+++ llvm/trunk/include/llvm/Transforms/Scalar/SimplifyCFG.h Wed Mar 21 15:34:23 2018<br>
@@ -15,9 +15,9 @@<br>
 #ifndef LLVM_TRANSFORMS_SCALAR_SIMPLIFYCFG_H<br>
 #define LLVM_TRANSFORMS_SCALAR_SIMPLIFYCFG_H<br>
<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/Function.h"<br>
 #include "llvm/IR/PassManager.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
<br>
 namespace llvm {<br>
<br>
<br>
Removed: llvm/trunk/include/llvm/Transforms/Utils/Local.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Transforms/Utils/Local.h?rev=328164&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Transforms/Utils/Local.h?rev=328164&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/Transforms/Utils/Local.h (original)<br>
+++ llvm/trunk/include/llvm/Transforms/Utils/Local.h (removed)<br>
@@ -1,507 +0,0 @@<br>
-//===- Local.h - Functions to perform local transformations -----*- C++ -*-===//<br>
-//<br>
-//                     The LLVM Compiler Infrastructure<br>
-//<br>
-// This file is distributed under the University of Illinois Open Source<br>
-// License. See LICENSE.TXT for details.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-//<br>
-// This family of functions perform various local transformations to the<br>
-// program.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-<br>
-#ifndef LLVM_TRANSFORMS_UTILS_LOCAL_H<br>
-#define LLVM_TRANSFORMS_UTILS_LOCAL_H<br>
-<br>
-#include "llvm/ADT/ArrayRef.h"<br>
-#include "llvm/ADT/SmallPtrSet.h"<br>
-#include "llvm/ADT/SmallVector.h"<br>
-#include "llvm/ADT/TinyPtrVector.h"<br>
-#include "llvm/Analysis/AliasAnalysis.h"<br>
-#include "llvm/IR/CallSite.h"<br>
-#include "llvm/IR/Constant.h"<br>
-#include "llvm/IR/Constants.h"<br>
-#include "llvm/IR/DataLayout.h"<br>
-#include "llvm/IR/Dominators.h"<br>
-#include "llvm/IR/GetElementPtrTypeIterator.h"<br>
-#include "llvm/IR/Operator.h"<br>
-#include "llvm/IR/Type.h"<br>
-#include "llvm/IR/User.h"<br>
-#include "llvm/IR/Value.h"<br>
-#include "llvm/Support/Casting.h"<br>
-#include <cstdint><br>
-#include <limits><br>
-<br>
-namespace llvm {<br>
-<br>
-class AllocaInst;<br>
-class AssumptionCache;<br>
-class BasicBlock;<br>
-class BranchInst;<br>
-class CallInst;<br>
-class DbgInfoIntrinsic;<br>
-class DbgValueInst;<br>
-class DIBuilder;<br>
-class Function;<br>
-class Instruction;<br>
-class LazyValueInfo;<br>
-class LoadInst;<br>
-class MDNode;<br>
-class PHINode;<br>
-class StoreInst;<br>
-class TargetLibraryInfo;<br>
-class TargetTransformInfo;<br>
-<br>
-/// A set of parameters used to control the transforms in the SimplifyCFG pass.<br>
-/// Options may change depending on the position in the optimization pipeline.<br>
-/// For example, canonical form that includes switches and branches may later be<br>
-/// replaced by lookup tables and selects.<br>
-struct SimplifyCFGOptions {<br>
-  int BonusInstThreshold;<br>
-  bool ForwardSwitchCondToPhi;<br>
-  bool ConvertSwitchToLookupTable;<br>
-  bool NeedCanonicalLoop;<br>
-  bool SinkCommonInsts;<br>
-  AssumptionCache *AC;<br>
-<br>
-  SimplifyCFGOptions(unsigned BonusThreshold = 1,<br>
-                     bool ForwardSwitchCond = false,<br>
-                     bool SwitchToLookup = false, bool CanonicalLoops = true,<br>
-                     bool SinkCommon = false,<br>
-                     AssumptionCache *AssumpCache = nullptr)<br>
-      : BonusInstThreshold(BonusThreshold),<br>
-        ForwardSwitchCondToPhi(ForwardSwitchCond),<br>
-        ConvertSwitchToLookupTable(SwitchToLookup),<br>
-        NeedCanonicalLoop(CanonicalLoops),<br>
-        SinkCommonInsts(SinkCommon),<br>
-        AC(AssumpCache) {}<br>
-<br>
-  // Support 'builder' pattern to set members by name at construction time.<br>
-  SimplifyCFGOptions &bonusInstThreshold(int I) {<br>
-    BonusInstThreshold = I;<br>
-    return *this;<br>
-  }<br>
-  SimplifyCFGOptions &forwardSwitchCondToPhi(bool B) {<br>
-    ForwardSwitchCondToPhi = B;<br>
-    return *this;<br>
-  }<br>
-  SimplifyCFGOptions &convertSwitchToLookupTable(bool B) {<br>
-    ConvertSwitchToLookupTable = B;<br>
-    return *this;<br>
-  }<br>
-  SimplifyCFGOptions &needCanonicalLoops(bool B) {<br>
-    NeedCanonicalLoop = B;<br>
-    return *this;<br>
-  }<br>
-  SimplifyCFGOptions &sinkCommonInsts(bool B) {<br>
-    SinkCommonInsts = B;<br>
-    return *this;<br>
-  }<br>
-  SimplifyCFGOptions &setAssumptionCache(AssumptionCache *Cache) {<br>
-    AC = Cache;<br>
-    return *this;<br>
-  }<br>
-};<br>
-<br>
-//===----------------------------------------------------------------------===//<br>
-//  Local constant propagation.<br>
-//<br>
-<br>
-/// If a terminator instruction is predicated on a constant value, convert it<br>
-/// into an unconditional branch to the constant destination.<br>
-/// This is a nontrivial operation because the successors of this basic block<br>
-/// must have their PHI nodes updated.<br>
-/// Also calls RecursivelyDeleteTriviallyDeadInstructions() on any branch/switch<br>
-/// conditions and indirectbr addresses this might make dead if<br>
-/// DeleteDeadConditions is true.<br>
-bool ConstantFoldTerminator(BasicBlock *BB, bool DeleteDeadConditions = false,<br>
-                            const TargetLibraryInfo *TLI = nullptr,<br>
-                            DeferredDominance *DDT = nullptr);<br>
-<br>
-//===----------------------------------------------------------------------===//<br>
-//  Local dead code elimination.<br>
-//<br>
-<br>
-/// Return true if the result produced by the instruction is not used, and the<br>
-/// instruction has no side effects.<br>
-bool isInstructionTriviallyDead(Instruction *I,<br>
-                                const TargetLibraryInfo *TLI = nullptr);<br>
-<br>
-/// Return true if the result produced by the instruction would have no side<br>
-/// effects if it was not used. This is equivalent to checking whether<br>
-/// isInstructionTriviallyDead would be true if the use count was 0.<br>
-bool wouldInstructionBeTriviallyDead(Instruction *I,<br>
-                                     const TargetLibraryInfo *TLI = nullptr);<br>
-<br>
-/// If the specified value is a trivially dead instruction, delete it.<br>
-/// If that makes any of its operands trivially dead, delete them too,<br>
-/// recursively. Return true if any instructions were deleted.<br>
-bool RecursivelyDeleteTriviallyDeadInstructions(Value *V,<br>
-                                        const TargetLibraryInfo *TLI = nullptr);<br>
-<br>
-/// If the specified value is an effectively dead PHI node, due to being a<br>
-/// def-use chain of single-use nodes that either forms a cycle or is terminated<br>
-/// by a trivially dead instruction, delete it. If that makes any of its<br>
-/// operands trivially dead, delete them too, recursively. Return true if a<br>
-/// change was made.<br>
-bool RecursivelyDeleteDeadPHINode(PHINode *PN,<br>
-                                  const TargetLibraryInfo *TLI = nullptr);<br>
-<br>
-/// Scan the specified basic block and try to simplify any instructions in it<br>
-/// and recursively delete dead instructions.<br>
-///<br>
-/// This returns true if it changed the code, note that it can delete<br>
-/// instructions in other blocks as well in this block.<br>
-bool SimplifyInstructionsInBlock(BasicBlock *BB,<br>
-                                 const TargetLibraryInfo *TLI = nullptr);<br>
-<br>
-//===----------------------------------------------------------------------===//<br>
-//  Control Flow Graph Restructuring.<br>
-//<br>
-<br>
-/// Like BasicBlock::removePredecessor, this method is called when we're about<br>
-/// to delete Pred as a predecessor of BB. If BB contains any PHI nodes, this<br>
-/// drops the entries in the PHI nodes for Pred.<br>
-///<br>
-/// Unlike the removePredecessor method, this attempts to simplify uses of PHI<br>
-/// nodes that collapse into identity values.  For example, if we have:<br>
-///   x = phi(1, 0, 0, 0)<br>
-///   y = and x, z<br>
-///<br>
-/// .. and delete the predecessor corresponding to the '1', this will attempt to<br>
-/// recursively fold the 'and' to 0.<br>
-void RemovePredecessorAndSimplify(BasicBlock *BB, BasicBlock *Pred,<br>
-                                  DeferredDominance *DDT = nullptr);<br>
-<br>
-/// BB is a block with one predecessor and its predecessor is known to have one<br>
-/// successor (BB!). Eliminate the edge between them, moving the instructions in<br>
-/// the predecessor into BB. This deletes the predecessor block.<br>
-void MergeBasicBlockIntoOnlyPred(BasicBlock *BB, DominatorTree *DT = nullptr,<br>
-                                 DeferredDominance *DDT = nullptr);<br>
-<br>
-/// BB is known to contain an unconditional branch, and contains no instructions<br>
-/// other than PHI nodes, potential debug intrinsics and the branch. If<br>
-/// possible, eliminate BB by rewriting all the predecessors to branch to the<br>
-/// successor block and return true. If we can't transform, return false.<br>
-bool TryToSimplifyUncondBranchFromEmptyBlock(BasicBlock *BB,<br>
-                                             DeferredDominance *DDT = nullptr);<br>
-<br>
-/// Check for and eliminate duplicate PHI nodes in this block. This doesn't try<br>
-/// to be clever about PHI nodes which differ only in the order of the incoming<br>
-/// values, but instcombine orders them so it usually won't matter.<br>
-bool EliminateDuplicatePHINodes(BasicBlock *BB);<br>
-<br>
-/// This function is used to do simplification of a CFG.  For example, it<br>
-/// adjusts branches to branches to eliminate the extra hop, it eliminates<br>
-/// unreachable basic blocks, and does other peephole optimization of the CFG.<br>
-/// It returns true if a modification was made, possibly deleting the basic<br>
-/// block that was pointed to. LoopHeaders is an optional input parameter<br>
-/// providing the set of loop headers that SimplifyCFG should not eliminate.<br>
-bool simplifyCFG(BasicBlock *BB, const TargetTransformInfo &TTI,<br>
-                 const SimplifyCFGOptions &Options = {},<br>
-                 SmallPtrSetImpl<BasicBlock *> *LoopHeaders = nullptr);<br>
-<br>
-/// This function is used to flatten a CFG. For example, it uses parallel-and<br>
-/// and parallel-or mode to collapse if-conditions and merge if-regions with<br>
-/// identical statements.<br>
-bool FlattenCFG(BasicBlock *BB, AliasAnalysis *AA = nullptr);<br>
-<br>
-/// If this basic block is ONLY a setcc and a branch, and if a predecessor<br>
-/// branches to us and one of our successors, fold the setcc into the<br>
-/// predecessor and use logical operations to pick the right destination.<br>
-bool FoldBranchToCommonDest(BranchInst *BI, unsigned BonusInstThreshold = 1);<br>
-<br>
-/// This function takes a virtual register computed by an Instruction and<br>
-/// replaces it with a slot in the stack frame, allocated via alloca.<br>
-/// This allows the CFG to be changed around without fear of invalidating the<br>
-/// SSA information for the value. It returns the pointer to the alloca inserted<br>
-/// to create a stack slot for X.<br>
-AllocaInst *DemoteRegToStack(Instruction &X,<br>
-                             bool VolatileLoads = false,<br>
-                             Instruction *AllocaPoint = nullptr);<br>
-<br>
-/// This function takes a virtual register computed by a phi node and replaces<br>
-/// it with a slot in the stack frame, allocated via alloca. The phi node is<br>
-/// deleted and it returns the pointer to the alloca inserted.<br>
-AllocaInst *DemotePHIToStack(PHINode *P, Instruction *AllocaPoint = nullptr);<br>
-<br>
-/// Try to ensure that the alignment of \p V is at least \p PrefAlign bytes. If<br>
-/// the owning object can be modified and has an alignment less than \p<br>
-/// PrefAlign, it will be increased and \p PrefAlign returned. If the alignment<br>
-/// cannot be increased, the known alignment of the value is returned.<br>
-///<br>
-/// It is not always possible to modify the alignment of the underlying object,<br>
-/// so if alignment is important, a more reliable approach is to simply align<br>
-/// all global variables and allocation instructions to their preferred<br>
-/// alignment from the beginning.<br>
-unsigned getOrEnforceKnownAlignment(Value *V, unsigned PrefAlign,<br>
-                                    const DataLayout &DL,<br>
-                                    const Instruction *CxtI = nullptr,<br>
-                                    AssumptionCache *AC = nullptr,<br>
-                                    const DominatorTree *DT = nullptr);<br>
-<br>
-/// Try to infer an alignment for the specified pointer.<br>
-inline unsigned getKnownAlignment(Value *V, const DataLayout &DL,<br>
-                                  const Instruction *CxtI = nullptr,<br>
-                                  AssumptionCache *AC = nullptr,<br>
-                                  const DominatorTree *DT = nullptr) {<br>
-  return getOrEnforceKnownAlignment(V, 0, DL, CxtI, AC, DT);<br>
-}<br>
-<br>
-/// Given a getelementptr instruction/constantexpr, emit the code necessary to<br>
-/// compute the offset from the base pointer (without adding in the base<br>
-/// pointer). Return the result as a signed integer of intptr size.<br>
-/// When NoAssumptions is true, no assumptions about index computation not<br>
-/// overflowing is made.<br>
-template <typename IRBuilderTy><br>
-Value *EmitGEPOffset(IRBuilderTy *Builder, const DataLayout &DL, User *GEP,<br>
-                     bool NoAssumptions = false) {<br>
-  GEPOperator *GEPOp = cast<GEPOperator>(GEP);<br>
-  Type *IntPtrTy = DL.getIntPtrType(GEP->getType());<br>
-  Value *Result = Constant::getNullValue(IntPtrTy);<br>
-<br>
-  // If the GEP is inbounds, we know that none of the addressing operations will<br>
-  // overflow in an unsigned sense.<br>
-  bool isInBounds = GEPOp->isInBounds() && !NoAssumptions;<br>
-<br>
-  // Build a mask for high order bits.<br>
-  unsigned IntPtrWidth = IntPtrTy->getScalarType()->getIntegerBitWidth();<br>
-  uint64_t PtrSizeMask =<br>
-      std::numeric_limits<uint64_t>::max() >> (64 - IntPtrWidth);<br>
-<br>
-  gep_type_iterator GTI = gep_type_begin(GEP);<br>
-  for (User::op_iterator i = GEP->op_begin() + 1, e = GEP->op_end(); i != e;<br>
-       ++i, ++GTI) {<br>
-    Value *Op = *i;<br>
-    uint64_t Size = DL.getTypeAllocSize(GTI.getIndexedType()) & PtrSizeMask;<br>
-    if (Constant *OpC = dyn_cast<Constant>(Op)) {<br>
-      if (OpC->isZeroValue())<br>
-        continue;<br>
-<br>
-      // Handle a struct index, which adds its field offset to the pointer.<br>
-      if (StructType *STy = GTI.getStructTypeOrNull()) {<br>
-        if (OpC->getType()->isVectorTy())<br>
-          OpC = OpC->getSplatValue();<br>
-<br>
-        uint64_t OpValue = cast<ConstantInt>(OpC)->getZExtValue();<br>
-        Size = DL.getStructLayout(STy)->getElementOffset(OpValue);<br>
-<br>
-        if (Size)<br>
-          Result = Builder->CreateAdd(Result, ConstantInt::get(IntPtrTy, Size),<br>
-                                      GEP->getName()+".offs");<br>
-        continue;<br>
-      }<br>
-<br>
-      Constant *Scale = ConstantInt::get(IntPtrTy, Size);<br>
-      Constant *OC = ConstantExpr::getIntegerCast(OpC, IntPtrTy, true /*SExt*/);<br>
-      Scale = ConstantExpr::getMul(OC, Scale, isInBounds/*NUW*/);<br>
-      // Emit an add instruction.<br>
-      Result = Builder->CreateAdd(Result, Scale, GEP->getName()+".offs");<br>
-      continue;<br>
-    }<br>
-    // Convert to correct type.<br>
-    if (Op->getType() != IntPtrTy)<br>
-      Op = Builder->CreateIntCast(Op, IntPtrTy, true, Op->getName()+".c");<br>
-    if (Size != 1) {<br>
-      // We'll let instcombine(mul) convert this to a shl if possible.<br>
-      Op = Builder->CreateMul(Op, ConstantInt::get(IntPtrTy, Size),<br>
-                              GEP->getName()+".idx", isInBounds /*NUW*/);<br>
-    }<br>
-<br>
-    // Emit an add instruction.<br>
-    Result = Builder->CreateAdd(Op, Result, GEP->getName()+".offs");<br>
-  }<br>
-  return Result;<br>
-}<br>
-<br>
-///===---------------------------------------------------------------------===//<br>
-///  Dbg Intrinsic utilities<br>
-///<br>
-<br>
-/// Inserts a llvm.dbg.value intrinsic before a store to an alloca'd value<br>
-/// that has an associated llvm.dbg.declare or llvm.dbg.addr intrinsic.<br>
-void ConvertDebugDeclareToDebugValue(DbgInfoIntrinsic *DII,<br>
-                                     StoreInst *SI, DIBuilder &Builder);<br>
-<br>
-/// Inserts a llvm.dbg.value intrinsic before a load of an alloca'd value<br>
-/// that has an associated llvm.dbg.declare or llvm.dbg.addr intrinsic.<br>
-void ConvertDebugDeclareToDebugValue(DbgInfoIntrinsic *DII,<br>
-                                     LoadInst *LI, DIBuilder &Builder);<br>
-<br>
-/// Inserts a llvm.dbg.value intrinsic after a phi that has an associated<br>
-/// llvm.dbg.declare or llvm.dbg.addr intrinsic.<br>
-void ConvertDebugDeclareToDebugValue(DbgInfoIntrinsic *DII,<br>
-                                     PHINode *LI, DIBuilder &Builder);<br>
-<br>
-/// Lowers llvm.dbg.declare intrinsics into appropriate set of<br>
-/// llvm.dbg.value intrinsics.<br>
-bool LowerDbgDeclare(Function &F);<br>
-<br>
-/// Propagate dbg.value intrinsics through the newly inserted PHIs.<br>
-void insertDebugValuesForPHIs(BasicBlock *BB,<br>
-                              SmallVectorImpl<PHINode *> &InsertedPHIs);<br>
-<br>
-/// Finds all intrinsics declaring local variables as living in the memory that<br>
-/// 'V' points to. This may include a mix of dbg.declare and<br>
-/// dbg.addr intrinsics.<br>
-TinyPtrVector<DbgInfoIntrinsic *> FindDbgAddrUses(Value *V);<br>
-<br>
-/// Finds the llvm.dbg.value intrinsics describing a value.<br>
-void findDbgValues(SmallVectorImpl<DbgValueInst *> &DbgValues, Value *V);<br>
-<br>
-/// Finds the debug info intrinsics describing a value.<br>
-void findDbgUsers(SmallVectorImpl<DbgInfoIntrinsic *> &DbgInsts, Value *V);<br>
-<br>
-/// Replaces llvm.dbg.declare instruction when the address it<br>
-/// describes is replaced with a new value. If Deref is true, an<br>
-/// additional DW_OP_deref is prepended to the expression. If Offset<br>
-/// is non-zero, a constant displacement is added to the expression<br>
-/// (between the optional Deref operations). Offset can be negative.<br>
-bool replaceDbgDeclare(Value *Address, Value *NewAddress,<br>
-                       Instruction *InsertBefore, DIBuilder &Builder,<br>
-                       bool DerefBefore, int Offset, bool DerefAfter);<br>
-<br>
-/// Replaces llvm.dbg.declare instruction when the alloca it describes<br>
-/// is replaced with a new value. If Deref is true, an additional<br>
-/// DW_OP_deref is prepended to the expression. If Offset is non-zero,<br>
-/// a constant displacement is added to the expression (between the<br>
-/// optional Deref operations). Offset can be negative. The new<br>
-/// llvm.dbg.declare is inserted immediately before AI.<br>
-bool replaceDbgDeclareForAlloca(AllocaInst *AI, Value *NewAllocaAddress,<br>
-                                DIBuilder &Builder, bool DerefBefore,<br>
-                                int Offset, bool DerefAfter);<br>
-<br>
-/// Replaces multiple llvm.dbg.value instructions when the alloca it describes<br>
-/// is replaced with a new value. If Offset is non-zero, a constant displacement<br>
-/// is added to the expression (after the mandatory Deref). Offset can be<br>
-/// negative. New llvm.dbg.value instructions are inserted at the locations of<br>
-/// the instructions they replace.<br>
-void replaceDbgValueForAlloca(AllocaInst *AI, Value *NewAllocaAddress,<br>
-                              DIBuilder &Builder, int Offset = 0);<br>
-<br>
-/// Assuming the instruction \p I is going to be deleted, attempt to salvage any<br>
-/// dbg.value intrinsics referring to \p I by rewriting its effect into a<br>
-/// DIExpression.<br>
-void salvageDebugInfo(Instruction &I);<br>
-<br>
-/// Remove all instructions from a basic block other than it's terminator<br>
-/// and any present EH pad instructions.<br>
-unsigned removeAllNonTerminatorAndEHPadInstructions(BasicBlock *BB);<br>
-<br>
-/// Insert an unreachable instruction before the specified<br>
-/// instruction, making it and the rest of the code in the block dead.<br>
-unsigned changeToUnreachable(Instruction *I, bool UseLLVMTrap,<br>
-                             bool PreserveLCSSA = false,<br>
-                             DeferredDominance *DDT = nullptr);<br>
-<br>
-/// Convert the CallInst to InvokeInst with the specified unwind edge basic<br>
-/// block.  This also splits the basic block where CI is located, because<br>
-/// InvokeInst is a terminator instruction.  Returns the newly split basic<br>
-/// block.<br>
-BasicBlock *changeToInvokeAndSplitBasicBlock(CallInst *CI,<br>
-                                             BasicBlock *UnwindEdge);<br>
-<br>
-/// Replace 'BB's terminator with one that does not have an unwind successor<br>
-/// block. Rewrites `invoke` to `call`, etc. Updates any PHIs in unwind<br>
-/// successor.<br>
-///<br>
-/// \param BB  Block whose terminator will be replaced.  Its terminator must<br>
-///            have an unwind successor.<br>
-void removeUnwindEdge(BasicBlock *BB, DeferredDominance *DDT = nullptr);<br>
-<br>
-/// Remove all blocks that can not be reached from the function's entry.<br>
-///<br>
-/// Returns true if any basic block was removed.<br>
-bool removeUnreachableBlocks(Function &F, LazyValueInfo *LVI = nullptr,<br>
-                             DeferredDominance *DDT = nullptr);<br>
-<br>
-/// Combine the metadata of two instructions so that K can replace J<br>
-///<br>
-/// Metadata not listed as known via KnownIDs is removed<br>
-void combineMetadata(Instruction *K, const Instruction *J, ArrayRef<unsigned> KnownIDs);<br>
-<br>
-/// Combine the metadata of two instructions so that K can replace J. This<br>
-/// specifically handles the case of CSE-like transformations.<br>
-///<br>
-/// Unknown metadata is removed.<br>
-void combineMetadataForCSE(Instruction *K, const Instruction *J);<br>
-<br>
-// Replace each use of 'From' with 'To', if that use does not belong to basic<br>
-// block where 'From' is defined. Returns the number of replacements made.<br>
-unsigned replaceNonLocalUsesWith(Instruction *From, Value *To);<br>
-<br>
-/// Replace each use of 'From' with 'To' if that use is dominated by<br>
-/// the given edge.  Returns the number of replacements made.<br>
-unsigned replaceDominatedUsesWith(Value *From, Value *To, DominatorTree &DT,<br>
-                                  const BasicBlockEdge &Edge);<br>
-/// Replace each use of 'From' with 'To' if that use is dominated by<br>
-/// the end of the given BasicBlock. Returns the number of replacements made.<br>
-unsigned replaceDominatedUsesWith(Value *From, Value *To, DominatorTree &DT,<br>
-                                  const BasicBlock *BB);<br>
-<br>
-/// Return true if the CallSite CS calls a gc leaf function.<br>
-///<br>
-/// A leaf function is a function that does not safepoint the thread during its<br>
-/// execution.  During a call or invoke to such a function, the callers stack<br>
-/// does not have to be made parseable.<br>
-///<br>
-/// Most passes can and should ignore this information, and it is only used<br>
-/// during lowering by the GC infrastructure.<br>
-bool callsGCLeafFunction(ImmutableCallSite CS, const TargetLibraryInfo &TLI);<br>
-<br>
-/// Copy a nonnull metadata node to a new load instruction.<br>
-///<br>
-/// This handles mapping it to range metadata if the new load is an integer<br>
-/// load instead of a pointer load.<br>
-void copyNonnullMetadata(const LoadInst &OldLI, MDNode *N, LoadInst &NewLI);<br>
-<br>
-/// Copy a range metadata node to a new load instruction.<br>
-///<br>
-/// This handles mapping it to nonnull metadata if the new load is a pointer<br>
-/// load instead of an integer load and the range doesn't cover null.<br>
-void copyRangeMetadata(const DataLayout &DL, const LoadInst &OldLI, MDNode *N,<br>
-                       LoadInst &NewLI);<br>
-<br>
-//===----------------------------------------------------------------------===//<br>
-//  Intrinsic pattern matching<br>
-//<br>
-<br>
-/// Try to match a bswap or bitreverse idiom.<br>
-///<br>
-/// If an idiom is matched, an intrinsic call is inserted before \c I. Any added<br>
-/// instructions are returned in \c InsertedInsts. They will all have been added<br>
-/// to a basic block.<br>
-///<br>
-/// A bitreverse idiom normally requires around 2*BW nodes to be searched (where<br>
-/// BW is the bitwidth of the integer type). A bswap idiom requires anywhere up<br>
-/// to BW / 4 nodes to be searched, so is significantly faster.<br>
-///<br>
-/// This function returns true on a successful match or false otherwise.<br>
-bool recognizeBSwapOrBitReverseIdiom(<br>
-    Instruction *I, bool MatchBSwaps, bool MatchBitReversals,<br>
-    SmallVectorImpl<Instruction *> &InsertedInsts);<br>
-<br>
-//===----------------------------------------------------------------------===//<br>
-//  Sanitizer utilities<br>
-//<br>
-<br>
-/// Given a CallInst, check if it calls a string function known to CodeGen,<br>
-/// and mark it with NoBuiltin if so.  To be used by sanitizers that intend<br>
-/// to intercept string functions and want to avoid converting them to target<br>
-/// specific instructions.<br>
-void maybeMarkSanitizerLibraryCallNoBuiltin(CallInst *CI,<br>
-                                            const TargetLibraryInfo *TLI);<br>
-<br>
-//===----------------------------------------------------------------------===//<br>
-//  Transform predicates<br>
-//<br>
-<br>
-/// Given an instruction, is it legal to set operand OpIdx to a non-constant<br>
-/// value?<br>
-bool canReplaceOperandWithVariable(const Instruction *I, unsigned OpIdx);<br>
-<br>
-} // end namespace llvm<br>
-<br>
-#endif // LLVM_TRANSFORMS_UTILS_LOCAL_H<br>
<br>
Modified: llvm/trunk/lib/Analysis/MemoryBuiltins.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/MemoryBuiltins.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/MemoryBuiltins.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Analysis/MemoryBuiltins.cpp (original)<br>
+++ llvm/trunk/lib/Analysis/MemoryBuiltins.cpp Wed Mar 21 15:34:23 2018<br>
@@ -21,6 +21,7 @@<br>
 #include "llvm/ADT/StringRef.h"<br>
 #include "llvm/Analysis/TargetFolder.h"<br>
 #include "llvm/Analysis/TargetLibraryInfo.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/Analysis/ValueTracking.h"<br>
 #include "llvm/IR/Argument.h"<br>
 #include "llvm/IR/Attributes.h"<br>
@@ -40,7 +41,6 @@<br>
 #include "llvm/Support/Debug.h"<br>
 #include "llvm/Support/MathExtras.h"<br>
 #include "llvm/Support/raw_ostream.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include <cassert><br>
 #include <cstdint><br>
 #include <iterator><br>
<br>
Modified: llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp (original)<br>
+++ llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp Wed Mar 21 15:34:23 2018<br>
@@ -30,6 +30,7 @@<br>
 #include "llvm/Analysis/ProfileSummaryInfo.h"<br>
 #include "llvm/Analysis/TargetLibraryInfo.h"<br>
 #include "llvm/Analysis/TargetTransformInfo.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/Analysis/ValueTracking.h"<br>
 #include "llvm/CodeGen/Analysis.h"<br>
 #include "llvm/CodeGen/ISDOpcodes.h"<br>
@@ -85,7 +86,6 @@<br>
 #include "llvm/Target/TargetOptions.h"<br>
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"<br>
 #include "llvm/Transforms/Utils/BypassSlowDivision.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include "llvm/Transforms/Utils/SimplifyLibCalls.h"<br>
 #include <algorithm><br>
 #include <cassert><br>
<br>
Modified: llvm/trunk/lib/CodeGen/DwarfEHPrepare.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/DwarfEHPrepare.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/DwarfEHPrepare.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/CodeGen/DwarfEHPrepare.cpp (original)<br>
+++ llvm/trunk/lib/CodeGen/DwarfEHPrepare.cpp Wed Mar 21 15:34:23 2018<br>
@@ -18,6 +18,7 @@<br>
 #include "llvm/Analysis/CFG.h"<br>
 #include "llvm/Analysis/EHPersonalities.h"<br>
 #include "llvm/Analysis/TargetTransformInfo.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/CodeGen/RuntimeLibcalls.h"<br>
 #include "llvm/CodeGen/TargetLowering.h"<br>
 #include "llvm/CodeGen/TargetPassConfig.h"<br>
@@ -33,7 +34,6 @@<br>
 #include "llvm/Pass.h"<br>
 #include "llvm/Support/Casting.h"<br>
 #include "llvm/Target/TargetMachine.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include <cstddef><br>
<br>
 using namespace llvm;<br>
<br>
Modified: llvm/trunk/lib/CodeGen/SafeStack.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SafeStack.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SafeStack.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/CodeGen/SafeStack.cpp (original)<br>
+++ llvm/trunk/lib/CodeGen/SafeStack.cpp Wed Mar 21 15:34:23 2018<br>
@@ -29,6 +29,7 @@<br>
 #include "llvm/Analysis/ScalarEvolution.h"<br>
 #include "llvm/Analysis/ScalarEvolutionExpressions.h"<br>
 #include "llvm/Analysis/TargetLibraryInfo.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/CodeGen/TargetLowering.h"<br>
 #include "llvm/CodeGen/TargetPassConfig.h"<br>
 #include "llvm/CodeGen/TargetSubtargetInfo.h"<br>
@@ -63,7 +64,6 @@<br>
 #include "llvm/Target/TargetMachine.h"<br>
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"<br>
 #include "llvm/Transforms/Utils/Cloning.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include <algorithm><br>
 #include <cassert><br>
 #include <cstdint><br>
<br>
Modified: llvm/trunk/lib/CodeGen/SjLjEHPrepare.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SjLjEHPrepare.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SjLjEHPrepare.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/CodeGen/SjLjEHPrepare.cpp (original)<br>
+++ llvm/trunk/lib/CodeGen/SjLjEHPrepare.cpp Wed Mar 21 15:34:23 2018<br>
@@ -16,6 +16,7 @@<br>
 #include "llvm/ADT/SmallPtrSet.h"<br>
 #include "llvm/ADT/SmallVector.h"<br>
 #include "llvm/ADT/Statistic.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/CodeGen/Passes.h"<br>
 #include "llvm/IR/Constants.h"<br>
 #include "llvm/IR/DataLayout.h"<br>
@@ -27,7 +28,6 @@<br>
 #include "llvm/Pass.h"<br>
 #include "llvm/Support/Debug.h"<br>
 #include "llvm/Support/raw_ostream.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 using namespace llvm;<br>
<br>
 #define DEBUG_TYPE "sjljehprepare"<br>
<br>
Modified: llvm/trunk/lib/CodeGen/WinEHPrepare.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/WinEHPrepare.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/WinEHPrepare.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/CodeGen/WinEHPrepare.cpp (original)<br>
+++ llvm/trunk/lib/CodeGen/WinEHPrepare.cpp Wed Mar 21 15:34:23 2018<br>
@@ -21,6 +21,7 @@<br>
 #include "llvm/ADT/STLExtras.h"<br>
 #include "llvm/Analysis/CFG.h"<br>
 #include "llvm/Analysis/EHPersonalities.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/CodeGen/MachineBasicBlock.h"<br>
 #include "llvm/CodeGen/Passes.h"<br>
 #include "llvm/CodeGen/WinEHFuncInfo.h"<br>
@@ -31,7 +32,6 @@<br>
 #include "llvm/Support/raw_ostream.h"<br>
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"<br>
 #include "llvm/Transforms/Utils/Cloning.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include "llvm/Transforms/Utils/SSAUpdater.h"<br>
<br>
 using namespace llvm;<br>
<br>
Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp (original)<br>
+++ llvm/trunk/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp Wed Mar 21 15:34:23 2018<br>
@@ -28,6 +28,7 @@<br>
 #include "llvm/Analysis/DivergenceAnalysis.h"<br>
 #include "llvm/Analysis/PostDominators.h"<br>
 #include "llvm/Analysis/TargetTransformInfo.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/BasicBlock.h"<br>
 #include "llvm/IR/CFG.h"<br>
 #include "llvm/IR/Constants.h"<br>
@@ -39,7 +40,6 @@<br>
 #include "llvm/Pass.h"<br>
 #include "llvm/Support/Casting.h"<br>
 #include "llvm/Transforms/Scalar.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
<br>
 using namespace llvm;<br>
<br>
<br>
Modified: llvm/trunk/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp (original)<br>
+++ llvm/trunk/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp Wed Mar 21 15:34:23 2018<br>
@@ -18,6 +18,7 @@<br>
 #include "llvm/ADT/SmallVector.h"<br>
 #include "llvm/Analysis/DivergenceAnalysis.h"<br>
 #include "llvm/Analysis/LoopInfo.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/BasicBlock.h"<br>
 #include "llvm/IR/CFG.h"<br>
 #include "llvm/IR/Constant.h"<br>
@@ -37,7 +38,6 @@<br>
 #include "llvm/Support/ErrorHandling.h"<br>
 #include "llvm/Support/raw_ostream.h"<br>
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include <cassert><br>
 #include <utility><br>
<br>
<br>
Modified: llvm/trunk/lib/Target/Hexagon/HexagonCommonGEP.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/HexagonCommonGEP.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/HexagonCommonGEP.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/Hexagon/HexagonCommonGEP.cpp (original)<br>
+++ llvm/trunk/lib/Target/Hexagon/HexagonCommonGEP.cpp Wed Mar 21 15:34:23 2018<br>
@@ -16,6 +16,7 @@<br>
 #include "llvm/ADT/StringRef.h"<br>
 #include "llvm/Analysis/LoopInfo.h"<br>
 #include "llvm/Analysis/PostDominators.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/BasicBlock.h"<br>
 #include "llvm/IR/Constant.h"<br>
 #include "llvm/IR/Constants.h"<br>
@@ -36,7 +37,6 @@<br>
 #include "llvm/Support/Compiler.h"<br>
 #include "llvm/Support/Debug.h"<br>
 #include "llvm/Support/raw_ostream.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include <algorithm><br>
 #include <cassert><br>
 #include <cstddef><br>
<br>
Modified: llvm/trunk/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp (original)<br>
+++ llvm/trunk/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp Wed Mar 21 15:34:23 2018<br>
@@ -26,6 +26,7 @@<br>
 #include "llvm/Analysis/ScalarEvolutionExpander.h"<br>
 #include "llvm/Analysis/ScalarEvolutionExpressions.h"<br>
 #include "llvm/Analysis/TargetLibraryInfo.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/Analysis/ValueTracking.h"<br>
 #include "llvm/IR/Attributes.h"<br>
 #include "llvm/IR/BasicBlock.h"<br>
@@ -56,7 +57,6 @@<br>
 #include "llvm/Support/KnownBits.h"<br>
 #include "llvm/Support/raw_ostream.h"<br>
 #include "llvm/Transforms/Scalar.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include <algorithm><br>
 #include <array><br>
 #include <cassert><br>
<br>
Modified: llvm/trunk/lib/Target/PowerPC/PPCCTRLoops.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCCTRLoops.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCCTRLoops.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/PowerPC/PPCCTRLoops.cpp (original)<br>
+++ llvm/trunk/lib/Target/PowerPC/PPCCTRLoops.cpp Wed Mar 21 15:34:23 2018<br>
@@ -35,6 +35,7 @@<br>
 #include "llvm/Analysis/ScalarEvolutionExpander.h"<br>
 #include "llvm/Analysis/TargetLibraryInfo.h"<br>
 #include "llvm/Analysis/TargetTransformInfo.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/CodeGen/TargetPassConfig.h"<br>
 #include "llvm/CodeGen/TargetSchedule.h"<br>
 #include "llvm/IR/Constants.h"<br>
@@ -51,7 +52,6 @@<br>
 #include "llvm/Support/raw_ostream.h"<br>
 #include "llvm/Transforms/Scalar.h"<br>
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include "llvm/Transforms/Utils/LoopUtils.h"<br>
<br>
 #ifndef NDEBUG<br>
<br>
Modified: llvm/trunk/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp (original)<br>
+++ llvm/trunk/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp Wed Mar 21 15:34:23 2018<br>
@@ -33,6 +33,7 @@<br>
 #include "llvm/Analysis/ScalarEvolution.h"<br>
 #include "llvm/Analysis/ScalarEvolutionExpander.h"<br>
 #include "llvm/Analysis/ScalarEvolutionExpressions.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/BasicBlock.h"<br>
 #include "llvm/IR/CFG.h"<br>
 #include "llvm/IR/Dominators.h"<br>
@@ -48,7 +49,6 @@<br>
 #include "llvm/Support/Debug.h"<br>
 #include "llvm/Transforms/Scalar.h"<br>
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include "llvm/Transforms/Utils/LoopUtils.h"<br>
 #include <cassert><br>
 #include <iterator><br>
<br>
Modified: llvm/trunk/lib/Transforms/Coroutines/CoroFrame.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Coroutines/CoroFrame.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Coroutines/CoroFrame.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/Coroutines/CoroFrame.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/Coroutines/CoroFrame.cpp Wed Mar 21 15:34:23 2018<br>
@@ -19,6 +19,7 @@<br>
<br>
 #include "CoroInternal.h"<br>
 #include "llvm/ADT/BitVector.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/CFG.h"<br>
 #include "llvm/IR/Dominators.h"<br>
 #include "llvm/IR/IRBuilder.h"<br>
@@ -27,7 +28,6 @@<br>
 #include "llvm/Support/MathExtras.h"<br>
 #include "llvm/Support/circular_raw_ostream.h"<br>
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
<br>
 using namespace llvm;<br>
<br>
<br>
Modified: llvm/trunk/lib/Transforms/Coroutines/CoroSplit.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Coroutines/CoroSplit.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Coroutines/CoroSplit.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/Coroutines/CoroSplit.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/Coroutines/CoroSplit.cpp Wed Mar 21 15:34:23 2018<br>
@@ -28,6 +28,7 @@<br>
 #include "llvm/ADT/Twine.h"<br>
 #include "llvm/Analysis/CallGraph.h"<br>
 #include "llvm/Analysis/CallGraphSCCPass.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/Argument.h"<br>
 #include "llvm/IR/Attributes.h"<br>
 #include "llvm/IR/BasicBlock.h"<br>
@@ -59,7 +60,6 @@<br>
 #include "llvm/Transforms/Scalar.h"<br>
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"<br>
 #include "llvm/Transforms/Utils/Cloning.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include "llvm/Transforms/Utils/ValueMapper.h"<br>
 #include <cassert><br>
 #include <cstddef><br>
<br>
Modified: llvm/trunk/lib/Transforms/Coroutines/Coroutines.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Coroutines/Coroutines.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Coroutines/Coroutines.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/Coroutines/Coroutines.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/Coroutines/Coroutines.cpp Wed Mar 21 15:34:23 2018<br>
@@ -11,12 +11,14 @@<br>
 //<br>
 //===----------------------------------------------------------------------===//<br>
<br>
+#include "llvm/Transforms/Coroutines.h"<br>
 #include "CoroInstr.h"<br>
 #include "CoroInternal.h"<br>
 #include "llvm/ADT/SmallVector.h"<br>
 #include "llvm/ADT/StringRef.h"<br>
 #include "llvm/Analysis/CallGraph.h"<br>
 #include "llvm/Analysis/CallGraphSCCPass.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/Attributes.h"<br>
 #include "llvm/IR/CallSite.h"<br>
 #include "llvm/IR/Constants.h"<br>
@@ -31,10 +33,8 @@<br>
 #include "llvm/IR/Type.h"<br>
 #include "llvm/Support/Casting.h"<br>
 #include "llvm/Support/ErrorHandling.h"<br>
-#include "llvm/Transforms/Coroutines.h"<br>
 #include "llvm/Transforms/IPO.h"<br>
 #include "llvm/Transforms/IPO/PassManagerBuilder.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include <cassert><br>
 #include <cstddef><br>
 #include <utility><br>
<br>
Modified: llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp Wed Mar 21 15:34:23 2018<br>
@@ -27,6 +27,7 @@<br>
 #include "llvm/Analysis/MemoryBuiltins.h"<br>
 #include "llvm/Analysis/TargetLibraryInfo.h"<br>
 #include "llvm/Analysis/TargetTransformInfo.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/BinaryFormat/Dwarf.h"<br>
 #include "llvm/IR/Attributes.h"<br>
 #include "llvm/IR/BasicBlock.h"<br>
@@ -66,7 +67,6 @@<br>
 #include "llvm/Transforms/Utils/CtorUtils.h"<br>
 #include "llvm/Transforms/Utils/Evaluator.h"<br>
 #include "llvm/Transforms/Utils/GlobalStatus.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include <cassert><br>
 #include <cstdint><br>
 #include <utility><br>
<br>
Modified: llvm/trunk/lib/Transforms/IPO/Inliner.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/Inliner.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/Inliner.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/IPO/Inliner.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/IPO/Inliner.cpp Wed Mar 21 15:34:23 2018<br>
@@ -35,6 +35,7 @@<br>
 #include "llvm/Analysis/ProfileSummaryInfo.h"<br>
 #include "llvm/Analysis/TargetLibraryInfo.h"<br>
 #include "llvm/Analysis/TargetTransformInfo.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/Attributes.h"<br>
 #include "llvm/IR/BasicBlock.h"<br>
 #include "llvm/IR/CallSite.h"<br>
@@ -59,7 +60,6 @@<br>
 #include "llvm/Support/raw_ostream.h"<br>
 #include "llvm/Transforms/Utils/Cloning.h"<br>
 #include "llvm/Transforms/Utils/ImportedFunctionsInliningStatistics.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include "llvm/Transforms/Utils/ModuleUtils.h"<br>
 #include <algorithm><br>
 #include <cassert><br>
<br>
Modified: llvm/trunk/lib/Transforms/IPO/PruneEH.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/PruneEH.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/PruneEH.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/IPO/PruneEH.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/IPO/PruneEH.cpp Wed Mar 21 15:34:23 2018<br>
@@ -19,6 +19,7 @@<br>
 #include "llvm/Analysis/CallGraph.h"<br>
 #include "llvm/Analysis/CallGraphSCCPass.h"<br>
 #include "llvm/Analysis/EHPersonalities.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/CFG.h"<br>
 #include "llvm/IR/Constants.h"<br>
 #include "llvm/IR/Function.h"<br>
@@ -27,7 +28,6 @@<br>
 #include "llvm/IR/LLVMContext.h"<br>
 #include "llvm/Support/raw_ostream.h"<br>
 #include "llvm/Transforms/IPO.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include <algorithm><br>
 using namespace llvm;<br>
<br>
<br>
Modified: llvm/trunk/lib/Transforms/IPO/StripSymbols.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/StripSymbols.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/StripSymbols.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/IPO/StripSymbols.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/IPO/StripSymbols.cpp Wed Mar 21 15:34:23 2018<br>
@@ -21,6 +21,7 @@<br>
 //===----------------------------------------------------------------------===//<br>
<br>
 #include "llvm/ADT/SmallPtrSet.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/Constants.h"<br>
 #include "llvm/IR/DebugInfo.h"<br>
 #include "llvm/IR/DerivedTypes.h"<br>
@@ -30,7 +31,6 @@<br>
 #include "llvm/IR/ValueSymbolTable.h"<br>
 #include "llvm/Pass.h"<br>
 #include "llvm/Transforms/IPO.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 using namespace llvm;<br>
<br>
 namespace {<br>
<br>
Modified: llvm/trunk/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp Wed Mar 21 15:34:23 2018<br>
@@ -14,10 +14,10 @@<br>
 #include "InstCombineInternal.h"<br>
 #include "llvm/Analysis/CmpInstAnalysis.h"<br>
 #include "llvm/Analysis/InstructionSimplify.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/ConstantRange.h"<br>
 #include "llvm/IR/Intrinsics.h"<br>
 #include "llvm/IR/PatternMatch.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 using namespace llvm;<br>
 using namespace PatternMatch;<br>
<br>
<br>
Modified: llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp Wed Mar 21 15:34:23 2018<br>
@@ -24,6 +24,7 @@<br>
 #include "llvm/Analysis/AssumptionCache.h"<br>
 #include "llvm/Analysis/InstructionSimplify.h"<br>
 #include "llvm/Analysis/MemoryBuiltins.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/Analysis/ValueTracking.h"<br>
 #include "llvm/IR/Attributes.h"<br>
 #include "llvm/IR/BasicBlock.h"<br>
@@ -57,7 +58,6 @@<br>
 #include "llvm/Support/MathExtras.h"<br>
 #include "llvm/Support/raw_ostream.h"<br>
 #include "llvm/Transforms/InstCombine/InstCombineWorklist.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include "llvm/Transforms/Utils/SimplifyLibCalls.h"<br>
 #include <algorithm><br>
 #include <cassert><br>
<br>
Modified: llvm/trunk/lib/Transforms/InstCombine/InstCombineInternal.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombineInternal.h?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombineInternal.h?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/InstCombine/InstCombineInternal.h (original)<br>
+++ llvm/trunk/lib/Transforms/InstCombine/InstCombineInternal.h Wed Mar 21 15:34:23 2018<br>
@@ -20,6 +20,7 @@<br>
 #include "llvm/Analysis/AliasAnalysis.h"<br>
 #include "llvm/Analysis/InstructionSimplify.h"<br>
 #include "llvm/Analysis/TargetFolder.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/Analysis/ValueTracking.h"<br>
 #include "llvm/IR/Argument.h"<br>
 #include "llvm/IR/BasicBlock.h"<br>
@@ -40,7 +41,6 @@<br>
 #include "llvm/Support/KnownBits.h"<br>
 #include "llvm/Support/raw_ostream.h"<br>
 #include "llvm/Transforms/InstCombine/InstCombineWorklist.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include <cassert><br>
 #include <cstdint><br>
<br>
<br>
Modified: llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp Wed Mar 21 15:34:23 2018<br>
@@ -16,6 +16,7 @@<br>
 #include "llvm/ADT/SmallString.h"<br>
 #include "llvm/ADT/Statistic.h"<br>
 #include "llvm/Analysis/Loads.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/ConstantRange.h"<br>
 #include "llvm/IR/DataLayout.h"<br>
 #include "llvm/IR/IntrinsicInst.h"<br>
@@ -23,7 +24,6 @@<br>
 #include "llvm/IR/MDBuilder.h"<br>
 #include "llvm/IR/PatternMatch.h"<br>
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 using namespace llvm;<br>
 using namespace PatternMatch;<br>
<br>
<br>
Modified: llvm/trunk/lib/Transforms/InstCombine/InstCombinePHI.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombinePHI.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombinePHI.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/InstCombine/InstCombinePHI.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/InstCombine/InstCombinePHI.cpp Wed Mar 21 15:34:23 2018<br>
@@ -15,9 +15,9 @@<br>
 #include "llvm/ADT/STLExtras.h"<br>
 #include "llvm/ADT/SmallPtrSet.h"<br>
 #include "llvm/Analysis/InstructionSimplify.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/Analysis/ValueTracking.h"<br>
 #include "llvm/IR/PatternMatch.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 using namespace llvm;<br>
 using namespace llvm::PatternMatch;<br>
<br>
<br>
Modified: llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp Wed Mar 21 15:34:23 2018<br>
@@ -56,6 +56,7 @@<br>
 #include "llvm/Analysis/OptimizationRemarkEmitter.h"<br>
 #include "llvm/Analysis/TargetFolder.h"<br>
 #include "llvm/Analysis/TargetLibraryInfo.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/Analysis/ValueTracking.h"<br>
 #include "llvm/IR/BasicBlock.h"<br>
 #include "llvm/IR/CFG.h"<br>
@@ -95,7 +96,6 @@<br>
 #include "llvm/Transforms/InstCombine/InstCombine.h"<br>
 #include "llvm/Transforms/InstCombine/InstCombineWorklist.h"<br>
 #include "llvm/Transforms/Scalar.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include <algorithm><br>
 #include <cassert><br>
 #include <cstdint><br>
<br>
Modified: llvm/trunk/lib/Transforms/Instrumentation/AddressSanitizer.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/AddressSanitizer.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/AddressSanitizer.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/Instrumentation/AddressSanitizer.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/Instrumentation/AddressSanitizer.cpp Wed Mar 21 15:34:23 2018<br>
@@ -25,6 +25,7 @@<br>
 #include "llvm/ADT/Twine.h"<br>
 #include "llvm/Analysis/MemoryBuiltins.h"<br>
 #include "llvm/Analysis/TargetLibraryInfo.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/Analysis/ValueTracking.h"<br>
 #include "llvm/BinaryFormat/MachO.h"<br>
 #include "llvm/IR/Argument.h"<br>
@@ -71,7 +72,6 @@<br>
 #include "llvm/Transforms/Instrumentation.h"<br>
 #include "llvm/Transforms/Utils/ASanStackFrameLayout.h"<br>
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include "llvm/Transforms/Utils/ModuleUtils.h"<br>
 #include "llvm/Transforms/Utils/PromoteMemToReg.h"<br>
 #include <algorithm><br>
<br>
Modified: llvm/trunk/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp Wed Mar 21 15:34:23 2018<br>
@@ -56,6 +56,7 @@<br>
 #include "llvm/ADT/StringExtras.h"<br>
 #include "llvm/ADT/StringRef.h"<br>
 #include "llvm/ADT/Triple.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/Analysis/ValueTracking.h"<br>
 #include "llvm/IR/Argument.h"<br>
 #include "llvm/IR/Attributes.h"<br>
@@ -90,7 +91,6 @@<br>
 #include "llvm/Support/SpecialCaseList.h"<br>
 #include "llvm/Transforms/Instrumentation.h"<br>
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include <algorithm><br>
 #include <cassert><br>
 #include <cstddef><br>
<br>
Modified: llvm/trunk/lib/Transforms/Instrumentation/EfficiencySanitizer.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/EfficiencySanitizer.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/EfficiencySanitizer.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/Instrumentation/EfficiencySanitizer.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/Instrumentation/EfficiencySanitizer.cpp Wed Mar 21 15:34:23 2018<br>
@@ -23,6 +23,7 @@<br>
 #include "llvm/ADT/Statistic.h"<br>
 #include "llvm/ADT/StringExtras.h"<br>
 #include "llvm/Analysis/TargetLibraryInfo.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/Function.h"<br>
 #include "llvm/IR/IRBuilder.h"<br>
 #include "llvm/IR/IntrinsicInst.h"<br>
@@ -33,7 +34,6 @@<br>
 #include "llvm/Support/raw_ostream.h"<br>
 #include "llvm/Transforms/Instrumentation.h"<br>
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include "llvm/Transforms/Utils/ModuleUtils.h"<br>
<br>
 using namespace llvm;<br>
<br>
Modified: llvm/trunk/lib/Transforms/Instrumentation/MemorySanitizer.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/MemorySanitizer.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/MemorySanitizer.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/Instrumentation/MemorySanitizer.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/Instrumentation/MemorySanitizer.cpp Wed Mar 21 15:34:23 2018<br>
@@ -101,6 +101,7 @@<br>
 #include "llvm/ADT/StringRef.h"<br>
 #include "llvm/ADT/Triple.h"<br>
 #include "llvm/Analysis/TargetLibraryInfo.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/Argument.h"<br>
 #include "llvm/IR/Attributes.h"<br>
 #include "llvm/IR/BasicBlock.h"<br>
@@ -138,7 +139,6 @@<br>
 #include "llvm/Support/raw_ostream.h"<br>
 #include "llvm/Transforms/Instrumentation.h"<br>
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include "llvm/Transforms/Utils/ModuleUtils.h"<br>
 #include <algorithm><br>
 #include <cassert><br>
<br>
Modified: llvm/trunk/lib/Transforms/Instrumentation/ThreadSanitizer.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/ThreadSanitizer.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/ThreadSanitizer.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/Instrumentation/ThreadSanitizer.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/Instrumentation/ThreadSanitizer.cpp Wed Mar 21 15:34:23 2018<br>
@@ -26,6 +26,7 @@<br>
 #include "llvm/ADT/StringExtras.h"<br>
 #include "llvm/Analysis/CaptureTracking.h"<br>
 #include "llvm/Analysis/TargetLibraryInfo.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/Analysis/ValueTracking.h"<br>
 #include "llvm/IR/DataLayout.h"<br>
 #include "llvm/IR/Function.h"<br>
@@ -44,7 +45,6 @@<br>
 #include "llvm/Transforms/Instrumentation.h"<br>
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"<br>
 #include "llvm/Transforms/Utils/EscapeEnumerator.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include "llvm/Transforms/Utils/ModuleUtils.h"<br>
<br>
 using namespace llvm;<br>
<br>
Modified: llvm/trunk/lib/Transforms/ObjCARC/ObjCARC.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/ObjCARC/ObjCARC.h?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/ObjCARC/ObjCARC.h?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/ObjCARC/ObjCARC.h (original)<br>
+++ llvm/trunk/lib/Transforms/ObjCARC/ObjCARC.h Wed Mar 21 15:34:23 2018<br>
@@ -28,13 +28,13 @@<br>
 #include "llvm/Analysis/ObjCARCAnalysisUtils.h"<br>
 #include "llvm/Analysis/ObjCARCInstKind.h"<br>
 #include "llvm/Analysis/Passes.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/Analysis/ValueTracking.h"<br>
 #include "llvm/IR/CallSite.h"<br>
 #include "llvm/IR/InstIterator.h"<br>
 #include "llvm/IR/Module.h"<br>
 #include "llvm/Pass.h"<br>
 #include "llvm/Transforms/ObjCARC.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
<br>
 namespace llvm {<br>
 class raw_ostream;<br>
<br>
Modified: llvm/trunk/lib/Transforms/Scalar/BDCE.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/BDCE.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/BDCE.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/Scalar/BDCE.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/Scalar/BDCE.cpp Wed Mar 21 15:34:23 2018<br>
@@ -20,13 +20,13 @@<br>
 #include "llvm/ADT/Statistic.h"<br>
 #include "llvm/Analysis/DemandedBits.h"<br>
 #include "llvm/Analysis/GlobalsModRef.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/InstIterator.h"<br>
 #include "llvm/IR/Instructions.h"<br>
 #include "llvm/Pass.h"<br>
 #include "llvm/Support/Debug.h"<br>
 #include "llvm/Support/raw_ostream.h"<br>
 #include "llvm/Transforms/Scalar.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 using namespace llvm;<br>
<br>
 #define DEBUG_TYPE "bdce"<br>
<br>
Modified: llvm/trunk/lib/Transforms/Scalar/CallSiteSplitting.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/CallSiteSplitting.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/CallSiteSplitting.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/Scalar/CallSiteSplitting.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/Scalar/CallSiteSplitting.cpp Wed Mar 21 15:34:23 2018<br>
@@ -60,13 +60,13 @@<br>
 #include "llvm/ADT/Statistic.h"<br>
 #include "llvm/Analysis/TargetLibraryInfo.h"<br>
 #include "llvm/Analysis/TargetTransformInfo.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/IntrinsicInst.h"<br>
 #include "llvm/IR/PatternMatch.h"<br>
 #include "llvm/Support/Debug.h"<br>
 #include "llvm/Transforms/Scalar.h"<br>
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"<br>
 #include "llvm/Transforms/Utils/Cloning.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
<br>
 using namespace llvm;<br>
 using namespace PatternMatch;<br>
<br>
Modified: llvm/trunk/lib/Transforms/Scalar/ConstantHoisting.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/ConstantHoisting.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/ConstantHoisting.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/Scalar/ConstantHoisting.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/Scalar/ConstantHoisting.cpp Wed Mar 21 15:34:23 2018<br>
@@ -43,8 +43,10 @@<br>
 #include "llvm/ADT/Statistic.h"<br>
 #include "llvm/Analysis/BlockFrequencyInfo.h"<br>
 #include "llvm/Analysis/TargetTransformInfo.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/BasicBlock.h"<br>
 #include "llvm/IR/Constants.h"<br>
+#include "llvm/IR/DebugInfoMetadata.h"<br>
 #include "llvm/IR/Dominators.h"<br>
 #include "llvm/IR/Function.h"<br>
 #include "llvm/IR/InstrTypes.h"<br>
@@ -59,8 +61,6 @@<br>
 #include "llvm/Support/Debug.h"<br>
 #include "llvm/Support/raw_ostream.h"<br>
 #include "llvm/Transforms/Scalar.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
-#include "llvm/IR/DebugInfoMetadata.h"<br>
 #include <algorithm><br>
 #include <cassert><br>
 #include <cstdint><br>
<br>
Modified: llvm/trunk/lib/Transforms/Scalar/ConstantProp.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/ConstantProp.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/ConstantProp.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/Scalar/ConstantProp.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/Scalar/ConstantProp.cpp Wed Mar 21 15:34:23 2018<br>
@@ -21,12 +21,12 @@<br>
 #include "llvm/ADT/Statistic.h"<br>
 #include "llvm/Analysis/ConstantFolding.h"<br>
 #include "llvm/Analysis/TargetLibraryInfo.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/Constant.h"<br>
 #include "llvm/IR/InstIterator.h"<br>
 #include "llvm/IR/Instruction.h"<br>
 #include "llvm/Pass.h"<br>
 #include "llvm/Transforms/Scalar.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include <set><br>
 using namespace llvm;<br>
<br>
<br>
Modified: llvm/trunk/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp?rev=328165&r1=328164&r2=328165&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp?rev=328165&r1=328164&r2=328165&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp Wed Mar 21 15:34:23 2018<br>
@@ -19,6 +19,7 @@<br>
 #include "llvm/Analysis/GlobalsModRef.h"<br>
 #include "llvm/Analysis/InstructionSimplify.h"<br>
 #include "llvm/Analysis/LazyValueInfo.h"<br>
+#include "llvm/Analysis/Utils/Local.h"<br>
 #include "llvm/IR/Attributes.h"<br>
 #include "llvm/IR/BasicBlock.h"<br>
 #include "llvm/IR/CFG.h"<br>
@@ -28,11 +29,11 @@<br>
 #include "llvm/IR/Constants.h"<br>
 #include "llvm/IR/DerivedTypes.h"<br>
 #include "llvm/IR/Function.h"<br>
+#include "llvm/IR/IRBuilder.h"<br>
 #include "llvm/IR/InstrTypes.h"<br>
 #include "llvm/IR/Instruction.h"<br>
 #include "llvm/IR/Instructions.h"<br>
 #include "llvm/IR/IntrinsicInst.h"<br>
-#include "llvm/IR/IRBuilder.h"<br>
 #include "llvm/IR/Operator.h"<br>
 #include "llvm/IR/PassManager.h"<br>
 #include "llvm/IR/Type.h"<br>
@@ -43,7 +44,6 @@<br>
 #include "llvm/Support/Debug.h"<br>
 #include "llvm/Support/raw_ostream.h"<br>
 #include "llvm/Transforms/Scalar.h"<br>
-#include "llvm/Transforms/Utils/Local.h"<br>
 #include <cassert><br>
 #i</blockquote></div></div>