[llvm] r304839 - [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC).

Chandler Carruth via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 6 16:32:00 PDT 2017


On Tue, Jun 6, 2017 at 3:23 PM Eugene Zelenko via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: eugenezelenko
> Date: Tue Jun  6 17:22:41 2017
> New Revision: 304839
>
> URL: http://llvm.org/viewvc/llvm-project?rev=304839&view=rev
> Log:
> [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use
> warnings; other minor fixes (NFC).
>

LLVM has (rightly or wrongly) policy against trying to maintain strict IWYU
stuff. These kinds of changes tend to have little benefit locally and a
high cost for outstanding patches, so I'm not sure you should really
prioritize them.

I think it makes much more sense to clean up *specific files* that you are
going to be making very substantial changes to. There are some exceptions,
but they're fairly rare...


>
> Modified:
>     llvm/trunk/include/llvm/CodeGen/RegisterPressure.h
>     llvm/trunk/include/llvm/CodeGen/RegisterUsageInfo.h
>     llvm/trunk/include/llvm/CodeGen/SchedulerRegistry.h
>     llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
>     llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.h
>     llvm/trunk/lib/CodeGen/BranchFolding.cpp
>     llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp
>     llvm/trunk/lib/CodeGen/MIRParser/MIParser.h
>     llvm/trunk/lib/CodeGen/MIRPrinter.cpp
>     llvm/trunk/lib/CodeGen/RegAllocGreedy.cpp
>     llvm/trunk/lib/CodeGen/RegisterUsageInfo.cpp
>     llvm/trunk/lib/CodeGen/TargetFrameLoweringImpl.cpp
>     llvm/trunk/lib/CodeGen/XRayInstrumentation.cpp
>     llvm/trunk/lib/Target/ARM/Thumb2InstrInfo.cpp
>
> Modified: llvm/trunk/include/llvm/CodeGen/RegisterPressure.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/RegisterPressure.h?rev=304839&r1=304838&r2=304839&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/CodeGen/RegisterPressure.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/RegisterPressure.h Tue Jun  6 17:22:41
> 2017
> @@ -32,7 +32,9 @@
>  namespace llvm {
>
>  class LiveIntervals;
> +class MachineFunction;
>  class MachineInstr;
> +class MachineRegisterInfo;
>  class RegisterClassInfo;
>
>  struct RegisterMaskPair {
> @@ -147,12 +149,14 @@ class PressureDiff {
>
>    PressureChange PressureChanges[MaxPSets];
>
> -  typedef PressureChange* iterator;
> +  using iterator = PressureChange *;
> +
>    iterator nonconst_begin() { return &PressureChanges[0]; }
>    iterator nonconst_end() { return &PressureChanges[MaxPSets]; }
>
>  public:
> -  typedef const PressureChange* const_iterator;
> +  using const_iterator = const PressureChange *;
> +
>    const_iterator begin() const { return &PressureChanges[0]; }
>    const_iterator end() const { return &PressureChanges[MaxPSets]; }
>
> @@ -269,7 +273,7 @@ private:
>      }
>    };
>
> -  typedef SparseSet<IndexMaskPair> RegSet;
> +  using RegSet = SparseSet<IndexMaskPair>;
>    RegSet Regs;
>    unsigned NumRegUnits;
>
>
> Modified: llvm/trunk/include/llvm/CodeGen/RegisterUsageInfo.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/RegisterUsageInfo.h?rev=304839&r1=304838&r2=304839&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/CodeGen/RegisterUsageInfo.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/RegisterUsageInfo.h Tue Jun  6
> 17:22:41 2017
> @@ -1,4 +1,4 @@
> -//==- RegisterUsageInfo.h - Register Usage Informartion Storage -*- C++
> -*-===//
> +//==- RegisterUsageInfo.h - Register Usage Informartion Storage --*- C++
> -*-==//
>  //
>  //                     The LLVM Compiler Infrastructure
>  //
> @@ -20,15 +20,15 @@
>  #define LLVM_CODEGEN_PHYSICALREGISTERUSAGEINFO_H
>
>  #include "llvm/ADT/DenseMap.h"
> -#include "llvm/CodeGen/MachineRegisterInfo.h"
> -#include "llvm/IR/Function.h"
> -#include "llvm/IR/Module.h"
>  #include "llvm/Pass.h"
> -#include "llvm/Support/CommandLine.h"
> -#include "llvm/Support/raw_ostream.h"
> +#include <cstdint>
> +#include <vector>
>
>  namespace llvm {
>
> +class Function;
> +class TargetMachine;
> +
>  class PhysicalRegisterUsageInfo : public ImmutablePass {
>    virtual void anchor();
>
> @@ -70,6 +70,7 @@ private:
>
>    const TargetMachine *TM;
>  };
> -}
>
> -#endif
> +} // end namespace llvm
> +
> +#endif // LLVM_CODEGEN_PHYSICALREGISTERUSAGEINFO_H
>
> Modified: llvm/trunk/include/llvm/CodeGen/SchedulerRegistry.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/SchedulerRegistry.h?rev=304839&r1=304838&r2=304839&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/CodeGen/SchedulerRegistry.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/SchedulerRegistry.h Tue Jun  6
> 17:22:41 2017
> @@ -1,4 +1,4 @@
> -//===-- llvm/CodeGen/SchedulerRegistry.h ------------------------*- C++
> -*-===//
> +//===- llvm/CodeGen/SchedulerRegistry.h -------------------------*- C++
> -*-===//
>  //
>  //                     The LLVM Compiler Infrastructure
>  //
> @@ -16,7 +16,7 @@
>  #define LLVM_CODEGEN_SCHEDULERREGISTRY_H
>
>  #include "llvm/CodeGen/MachinePassRegistry.h"
> -#include "llvm/Target/TargetMachine.h"
> +#include "llvm/Support/CodeGen.h"
>
>  namespace llvm {
>
> @@ -26,15 +26,13 @@ namespace llvm {
>  ///
>
>  //===----------------------------------------------------------------------===//
>
> -class SelectionDAGISel;
>  class ScheduleDAGSDNodes;
> -class SelectionDAG;
> -class MachineBasicBlock;
> +class SelectionDAGISel;
>
>  class RegisterScheduler : public MachinePassRegistryNode {
>  public:
> -  typedef ScheduleDAGSDNodes *(*FunctionPassCtor)(SelectionDAGISel*,
> -                                                  CodeGenOpt::Level);
> +  using FunctionPassCtor = ScheduleDAGSDNodes *(*)(SelectionDAGISel*,
> +                                                   CodeGenOpt::Level);
>
>    static MachinePassRegistry Registry;
>
> @@ -45,13 +43,14 @@ public:
>
>
>    // Accessors.
> -  //
>    RegisterScheduler *getNext() const {
>      return (RegisterScheduler *)MachinePassRegistryNode::getNext();
>    }
> +
>    static RegisterScheduler *getList() {
>      return (RegisterScheduler *)Registry.getList();
>    }
> +
>    static void setListener(MachinePassRegistryListener *L) {
>      Registry.setListener(L);
>    }
> @@ -103,4 +102,4 @@ ScheduleDAGSDNodes *createDAGLinearizer(
>
>  } // end namespace llvm
>
> -#endif
> +#endif // LLVM_CODEGEN_SCHEDULERREGISTRY_H
>
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp?rev=304839&r1=304838&r2=304839&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp Tue Jun  6
> 17:22:41 2017
> @@ -1,4 +1,4 @@
> -//===-- llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp --*- C++ -*--===//
> +//===- llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
> ----------------------===//
>  //
>  //                     The LLVM Compiler Infrastructure
>  //
> @@ -12,37 +12,80 @@
>
>  //===----------------------------------------------------------------------===//
>
>  #include "CodeViewDebug.h"
> +#include "llvm/ADT/APSInt.h"
> +#include "llvm/ADT/ArrayRef.h"
> +#include "llvm/ADT/DenseMap.h"
> +#include "llvm/ADT/DenseSet.h"
> +#include "llvm/ADT/MapVector.h"
> +#include "llvm/ADT/None.h"
> +#include "llvm/ADT/Optional.h"
> +#include "llvm/ADT/SmallString.h"
> +#include "llvm/ADT/SmallVector.h"
> +#include "llvm/ADT/STLExtras.h"
> +#include "llvm/ADT/StringRef.h"
>  #include "llvm/ADT/TinyPtrVector.h"
> +#include "llvm/ADT/Triple.h"
> +#include "llvm/ADT/Twine.h"
> +#include "llvm/CodeGen/AsmPrinter.h"
> +#include "llvm/CodeGen/LexicalScopes.h"
> +#include "llvm/CodeGen/MachineFunction.h"
> +#include "llvm/CodeGen/MachineInstr.h"
> +#include "llvm/CodeGen/MachineModuleInfo.h"
> +#include "llvm/CodeGen/MachineOperand.h"
> +#include "llvm/Config/llvm-config.h"
>  #include "llvm/DebugInfo/CodeView/CVTypeVisitor.h"
>  #include "llvm/DebugInfo/CodeView/CodeView.h"
>  #include "llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h"
>  #include "llvm/DebugInfo/CodeView/Line.h"
>  #include "llvm/DebugInfo/CodeView/SymbolRecord.h"
> -#include "llvm/DebugInfo/CodeView/TypeDatabase.h"
>  #include "llvm/DebugInfo/CodeView/TypeDumpVisitor.h"
>  #include "llvm/DebugInfo/CodeView/TypeIndex.h"
>  #include "llvm/DebugInfo/CodeView/TypeRecord.h"
>  #include "llvm/DebugInfo/CodeView/TypeTableCollection.h"
> -#include "llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h"
>  #include "llvm/IR/Constants.h"
> +#include "llvm/IR/DataLayout.h"
> +#include "llvm/IR/DebugInfoMetadata.h"
> +#include "llvm/IR/DebugLoc.h"
> +#include "llvm/IR/Function.h"
> +#include "llvm/IR/GlobalValue.h"
> +#include "llvm/IR/GlobalVariable.h"
> +#include "llvm/IR/Metadata.h"
> +#include "llvm/IR/Module.h"
>  #include "llvm/MC/MCAsmInfo.h"
> -#include "llvm/MC/MCExpr.h"
> +#include "llvm/MC/MCContext.h"
>  #include "llvm/MC/MCSectionCOFF.h"
> +#include "llvm/MC/MCStreamer.h"
>  #include "llvm/MC/MCSymbol.h"
> -#include "llvm/Support/BinaryByteStream.h"
> -#include "llvm/Support/BinaryStreamReader.h"
> +#include "llvm/Support/Casting.h"
>  #include "llvm/Support/COFF.h"
> +#include "llvm/Support/Compiler.h"
> +#include "llvm/Support/Dwarf.h"
> +#include "llvm/Support/Endian.h"
> +#include "llvm/Support/Error.h"
> +#include "llvm/Support/ErrorHandling.h"
>  #include "llvm/Support/ScopedPrinter.h"
> +#include "llvm/Support/SMLoc.h"
>  #include "llvm/Target/TargetFrameLowering.h"
> +#include "llvm/Target/TargetLoweringObjectFile.h"
> +#include "llvm/Target/TargetMachine.h"
>  #include "llvm/Target/TargetRegisterInfo.h"
>  #include "llvm/Target/TargetSubtargetInfo.h"
> +#include <algorithm>
> +#include <cassert>
> +#include <cctype>
> +#include <cstddef>
> +#include <cstdint>
> +#include <iterator>
> +#include <limits>
> +#include <string>
> +#include <utility>
> +#include <vector>
>
>  using namespace llvm;
>  using namespace llvm::codeview;
>
>  CodeViewDebug::CodeViewDebug(AsmPrinter *AP)
> -    : DebugHandlerBase(AP), OS(*Asm->OutStreamer), Allocator(),
> -      TypeTable(Allocator), CurFn(nullptr) {
> +    : DebugHandlerBase(AP), OS(*Asm->OutStreamer), TypeTable(Allocator) {
>    // If module doesn't have named metadata anchors or COFF debug section
>    // is not available, skip any debug info related stuff.
>    if (!MMI->getModule()->getNamedMetadata("llvm.dbg.cu") ||
> @@ -178,7 +221,8 @@ static const DISubprogram *getQualifiedN
>  static std::string getQualifiedName(ArrayRef<StringRef>
> QualifiedNameComponents,
>                                      StringRef TypeName) {
>    std::string FullyQualifiedName;
> -  for (StringRef QualifiedNameComponent :
> reverse(QualifiedNameComponents)) {
> +  for (StringRef QualifiedNameComponent :
> +       llvm::reverse(QualifiedNameComponents)) {
>      FullyQualifiedName.append(QualifiedNameComponent);
>      FullyQualifiedName.append("::");
>    }
> @@ -571,7 +615,7 @@ static CPUType mapArchToCVCPUType(Triple
>    }
>  }
>
> -}  // anonymous namespace
> +} // end anonymous namespace
>
>  void CodeViewDebug::emitCompilerInformation() {
>    MCContext &Context = MMI->getContext();
> @@ -1581,11 +1625,11 @@ struct llvm::ClassInfo {
>      uint64_t BaseOffset;
>    };
>    // [MemberInfo]
> -  typedef std::vector<MemberInfo> MemberList;
> +  using MemberList = std::vector<MemberInfo>;
>
> -  typedef TinyPtrVector<const DISubprogram *> MethodsList;
> +  using MethodsList = TinyPtrVector<const DISubprogram *>;
>    // MethodName -> MethodsList
> -  typedef MapVector<MDString *, MethodsList> MethodsMap;
> +  using MethodsMap = MapVector<MDString *, MethodsList>;
>
>    /// Base classes.
>    std::vector<const DIDerivedType *> Inheritance;
> @@ -1850,7 +1894,7 @@ CodeViewDebug::lowerRecordFieldList(cons
>            translateMethodOptionFlags(SP), VFTableOffset, Name));
>        MemberCount++;
>      }
> -    assert(Methods.size() > 0 && "Empty methods map entry");
> +    assert(!Methods.empty() && "Empty methods map entry");
>      if (Methods.size() == 1)
>        FLBR.writeMemberType(Methods[0]);
>      else {
>
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.h?rev=304839&r1=304838&r2=304839&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.h (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.h Tue Jun  6 17:22:41
> 2017
> @@ -1,4 +1,4 @@
> -//===-- llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h ----*- C++ -*--===//
> +//===- llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h --------------*- C++
> -*-===//
>  //
>  //                     The LLVM Compiler Infrastructure
>  //
> @@ -14,29 +14,44 @@
>  #ifndef LLVM_LIB_CODEGEN_ASMPRINTER_CODEVIEWDEBUG_H
>  #define LLVM_LIB_CODEGEN_ASMPRINTER_CODEVIEWDEBUG_H
>
> +#include "DbgValueHistoryCalculator.h"
>  #include "DebugHandlerBase.h"
> +#include "llvm/ADT/ArrayRef.h"
>  #include "llvm/ADT/DenseMap.h"
> -#include "llvm/ADT/StringMap.h"
> -#include "llvm/CodeGen/AsmPrinter.h"
> -#include "llvm/CodeGen/MachineFunction.h"
> -#include "llvm/CodeGen/MachineModuleInfo.h"
> +#include "llvm/ADT/DenseSet.h"
> +#include "llvm/ADT/MapVector.h"
> +#include "llvm/ADT/SetVector.h"
> +#include "llvm/ADT/SmallVector.h"
> +#include "llvm/DebugInfo/CodeView/CodeView.h"
>  #include "llvm/DebugInfo/CodeView/TypeIndex.h"
>  #include "llvm/DebugInfo/CodeView/TypeTableBuilder.h"
> -#include "llvm/IR/DebugInfo.h"
>  #include "llvm/IR/DebugLoc.h"
> -#include "llvm/MC/MCStreamer.h"
> -#include "llvm/Target/TargetLoweringObjectFile.h"
> +#include "llvm/Support/Allocator.h"
> +#include "llvm/Support/Compiler.h"
> +#include <cstdint>
> +#include <map>
> +#include <string>
> +#include <tuple>
> +#include <unordered_map>
> +#include <utility>
> +#include <vector>
>
>  namespace llvm {
>
> -class StringRef;
> -class LexicalScope;
>  struct ClassInfo;
> +class StringRef;
> +class AsmPrinter;
> +class Function;
> +class GlobalVariable;
> +class MCSectionCOFF;
> +class MCStreamer;
> +class MCSymbol;
> +class MachineFunction;
>
>  /// \brief Collects and handles line tables information in a CodeView
> format.
>  class LLVM_LIBRARY_VISIBILITY CodeViewDebug : public DebugHandlerBase {
>    MCStreamer &OS;
> -  llvm::BumpPtrAllocator Allocator;
> +  BumpPtrAllocator Allocator;
>    codeview::TypeTableBuilder TypeTable;
>
>    /// Represents the most general definition range.
> @@ -110,7 +125,7 @@ class LLVM_LIBRARY_VISIBILITY CodeViewDe
>      unsigned LastFileId = 0;
>      bool HaveLineInfo = false;
>    };
> -  FunctionInfo *CurFn;
> +  FunctionInfo *CurFn = nullptr;
>
>    /// The set of comdat .debug$S sections that we've seen so far. Each
> section
>    /// must start with a magic version number that must only be emitted
> once.
> @@ -176,8 +191,9 @@ class LLVM_LIBRARY_VISIBILITY CodeViewDe
>    std::vector<std::pair<std::string, codeview::TypeIndex>> LocalUDTs,
>        GlobalUDTs;
>
> -  typedef std::map<const DIFile *, std::string> FileToFilepathMapTy;
> +  using FileToFilepathMapTy = std::map<const DIFile *, std::string>;
>    FileToFilepathMapTy FileToFilepathMap;
> +
>    StringRef getFullFilepath(const DIFile *S);
>
>    unsigned maybeRecordFile(const DIFile *F);
> @@ -223,7 +239,7 @@ class LLVM_LIBRARY_VISIBILITY CodeViewDe
>    void emitInlinedCallSite(const FunctionInfo &FI, const DILocation
> *InlinedAt,
>                             const InlineSite &Site);
>
> -  typedef DbgValueHistoryMap::InlinedVariable InlinedVariable;
> +  using InlinedVariable = DbgValueHistoryMap::InlinedVariable;
>
>    void collectVariableInfo(const DISubprogram *SP);
>
> @@ -309,7 +325,7 @@ protected:
>  public:
>    CodeViewDebug(AsmPrinter *Asm);
>
> -  void setSymbolSize(const llvm::MCSymbol *, uint64_t) override {}
> +  void setSymbolSize(const MCSymbol *, uint64_t) override {}
>
>    /// \brief Emit the COFF section that holds the line table information.
>    void endModule() override;
> @@ -317,6 +333,7 @@ public:
>    /// \brief Process beginning of an instruction.
>    void beginInstruction(const MachineInstr *MI) override;
>  };
> -} // End of namespace llvm
>
> -#endif
> +} // end namespace llvm
> +
> +#endif // LLVM_LIB_CODEGEN_ASMPRINTER_CODEVIEWDEBUG_H
>
> Modified: llvm/trunk/lib/CodeGen/BranchFolding.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/BranchFolding.cpp?rev=304839&r1=304838&r2=304839&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/BranchFolding.cpp (original)
> +++ llvm/trunk/lib/CodeGen/BranchFolding.cpp Tue Jun  6 17:22:41 2017
> @@ -1,4 +1,4 @@
> -//===-- BranchFolding.cpp - Fold machine code branch instructions
> ---------===//
> +//===- BranchFolding.cpp - Fold machine code branch instructions
> ----------===//
>  //
>  //                     The LLVM Compiler Infrastructure
>  //
> @@ -18,30 +18,46 @@
>
>  //===----------------------------------------------------------------------===//
>
>  #include "BranchFolding.h"
> -#include "llvm/ADT/STLExtras.h"
> +#include "llvm/ADT/BitVector.h"
> +#include "llvm/ADT/SmallPtrSet.h"
>  #include "llvm/ADT/SmallSet.h"
> +#include "llvm/ADT/SmallVector.h"
>  #include "llvm/ADT/Statistic.h"
> +#include "llvm/ADT/STLExtras.h"
>  #include "llvm/CodeGen/Analysis.h"
> +#include "llvm/CodeGen/MachineBasicBlock.h"
>  #include "llvm/CodeGen/MachineBlockFrequencyInfo.h"
>  #include "llvm/CodeGen/MachineBranchProbabilityInfo.h"
> +#include "llvm/CodeGen/MachineFunction.h"
>  #include "llvm/CodeGen/MachineFunctionPass.h"
> +#include "llvm/CodeGen/MachineInstr.h"
>  #include "llvm/CodeGen/MachineJumpTableInfo.h"
>  #include "llvm/CodeGen/MachineLoopInfo.h"
> -#include "llvm/CodeGen/MachineMemOperand.h"
>  #include "llvm/CodeGen/MachineModuleInfo.h"
> +#include "llvm/CodeGen/MachineOperand.h"
>  #include "llvm/CodeGen/MachineRegisterInfo.h"
> -#include "llvm/CodeGen/Passes.h"
>  #include "llvm/CodeGen/TargetPassConfig.h"
>  #include "llvm/IR/DebugInfoMetadata.h"
> +#include "llvm/IR/DebugLoc.h"
>  #include "llvm/IR/Function.h"
> +#include "llvm/MC/MCRegisterInfo.h"
> +#include "llvm/Pass.h"
> +#include "llvm/Support/BlockFrequency.h"
> +#include "llvm/Support/BranchProbability.h"
>  #include "llvm/Support/CommandLine.h"
>  #include "llvm/Support/Debug.h"
>  #include "llvm/Support/ErrorHandling.h"
>  #include "llvm/Support/raw_ostream.h"
>  #include "llvm/Target/TargetInstrInfo.h"
> +#include "llvm/Target/TargetMachine.h"
>  #include "llvm/Target/TargetRegisterInfo.h"
>  #include "llvm/Target/TargetSubtargetInfo.h"
> -#include <algorithm>
> +#include <cassert>
> +#include <cstddef>
> +#include <iterator>
> +#include <numeric>
> +#include <vector>
> +
>  using namespace llvm;
>
>  #define DEBUG_TYPE "branch-folder"
> @@ -69,10 +85,12 @@ TailMergeSize("tail-merge-size",
>                                cl::init(3), cl::Hidden);
>
>  namespace {
> +
>    /// BranchFolderPass - Wrap branch folder in a machine function pass.
>    class BranchFolderPass : public MachineFunctionPass {
>    public:
>      static char ID;
> +
>      explicit BranchFolderPass(): MachineFunctionPass(ID) {}
>
>      bool runOnMachineFunction(MachineFunction &MF) override;
> @@ -84,7 +102,8 @@ namespace {
>        MachineFunctionPass::getAnalysisUsage(AU);
>      }
>    };
> -}
> +
> +} // end anonymous namespace
>
>  char BranchFolderPass::ID = 0;
>  char &llvm::BranchFolderPassID = BranchFolderPass::ID;
> @@ -368,7 +387,7 @@ MachineBasicBlock *BranchFolder::SplitMB
>
>    // Create the fall-through block.
>    MachineFunction::iterator MBBI = CurMBB.getIterator();
> -  MachineBasicBlock *NewMBB =MF.CreateMachineBasicBlock(BB);
> +  MachineBasicBlock *NewMBB = MF.CreateMachineBasicBlock(BB);
>    CurMBB.getParent()->insert(++MBBI, NewMBB);
>
>    // Move all the successors of this block to the specified block.
> @@ -506,7 +525,7 @@ static unsigned CountTerminators(Machine
>                                   MachineBasicBlock::iterator &I) {
>    I = MBB->end();
>    unsigned NumTerms = 0;
> -  for (;;) {
> +  while (true) {
>      if (I == MBB->begin()) {
>        I = MBB->end();
>        break;
> @@ -1601,7 +1620,6 @@ ReoptimizeBlock:
>    // block doesn't fall through into some other block, see if we can find
> a
>    // place to move this block where a fall-through will happen.
>    if (!PrevBB.canFallThrough()) {
> -
>      // Now we know that there was no fall-through into this block, check
> to
>      // see if it has a fall-through into its successor.
>      bool CurFallsThru = MBB->canFallThrough();
>
> Modified: llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp?rev=304839&r1=304838&r2=304839&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp (original)
> +++ llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp Tue Jun  6 17:22:41 2017
> @@ -11,11 +11,19 @@
>  //
>
>  //===----------------------------------------------------------------------===//
>
> -#include "MIParser.h"
> -
>  #include "MILexer.h"
> +#include "MIParser.h"
> +#include "llvm/ADT/APInt.h"
> +#include "llvm/ADT/APSInt.h"
> +#include "llvm/ADT/ArrayRef.h"
> +#include "llvm/ADT/DenseMap.h"
> +#include "llvm/ADT/None.h"
> +#include "llvm/ADT/Optional.h"
> +#include "llvm/ADT/SmallVector.h"
>  #include "llvm/ADT/StringMap.h"
>  #include "llvm/ADT/StringSwitch.h"
> +#include "llvm/ADT/StringRef.h"
> +#include "llvm/ADT/Twine.h"
>  #include "llvm/AsmParser/Parser.h"
>  #include "llvm/AsmParser/SlotMapping.h"
>  #include "llvm/CodeGen/MIRPrinter.h"
> @@ -26,19 +34,48 @@
>  #include "llvm/CodeGen/MachineInstrBuilder.h"
>  #include "llvm/CodeGen/MachineMemOperand.h"
>  #include "llvm/CodeGen/MachineModuleInfo.h"
> +#include "llvm/CodeGen/MachineOperand.h"
>  #include "llvm/CodeGen/MachineRegisterInfo.h"
> +#include "llvm/IR/BasicBlock.h"
>  #include "llvm/IR/Constants.h"
> +#include "llvm/IR/DataLayout.h"
> +#include "llvm/IR/DebugLoc.h"
> +#include "llvm/IR/Function.h"
> +#include "llvm/IR/InstrTypes.h"
>  #include "llvm/IR/Instructions.h"
>  #include "llvm/IR/Intrinsics.h"
> +#include "llvm/IR/Metadata.h"
>  #include "llvm/IR/Module.h"
>  #include "llvm/IR/ModuleSlotTracker.h"
> +#include "llvm/IR/Type.h"
> +#include "llvm/IR/Value.h"
>  #include "llvm/IR/ValueSymbolTable.h"
> +#include "llvm/MC/LaneBitmask.h"
> +#include "llvm/MC/MCDwarf.h"
> +#include "llvm/MC/MCInstrDesc.h"
> +#include "llvm/MC/MCRegisterInfo.h"
> +#include "llvm/Support/AtomicOrdering.h"
> +#include "llvm/Support/BranchProbability.h"
> +#include "llvm/Support/Casting.h"
> +#include "llvm/Support/ErrorHandling.h"
> +#include "llvm/Support/LowLevelTypeImpl.h"
> +#include "llvm/Support/MemoryBuffer.h"
> +#include "llvm/Support/SMLoc.h"
>  #include "llvm/Support/SourceMgr.h"
>  #include "llvm/Support/raw_ostream.h"
>  #include "llvm/Target/TargetInstrInfo.h"
>  #include "llvm/Target/TargetIntrinsicInfo.h"
> +#include "llvm/Target/TargetMachine.h"
> +#include "llvm/Target/TargetRegisterInfo.h"
>  #include "llvm/Target/TargetSubtargetInfo.h"
> +#include <algorithm>
> +#include <cassert>
>  #include <cctype>
> +#include <cstddef>
> +#include <cstdint>
> +#include <limits>
> +#include <string>
> +#include <utility>
>
>  using namespace llvm;
>
> @@ -2039,7 +2076,7 @@ bool MIParser::parseMemoryPseudoSourceVa
>      // The token was already consumed, so use return here instead of
> break.
>      return false;
>    }
> -  case MIToken::kw_call_entry: {
> +  case MIToken::kw_call_entry:
>      lex();
>      switch (Token.kind()) {
>      case MIToken::GlobalValue:
> @@ -2059,7 +2096,6 @@ bool MIParser::parseMemoryPseudoSourceVa
>            "expected a global value or an external symbol after
> 'call-entry'");
>      }
>      break;
> -  }
>    default:
>      llvm_unreachable("The current token should be pseudo source value");
>    }
>
> Modified: llvm/trunk/lib/CodeGen/MIRParser/MIParser.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MIRParser/MIParser.h?rev=304839&r1=304838&r2=304839&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/MIRParser/MIParser.h (original)
> +++ llvm/trunk/lib/CodeGen/MIRParser/MIParser.h Tue Jun  6 17:22:41 2017
> @@ -1,4 +1,4 @@
> -//===- MIParser.h - Machine Instructions Parser
> ---------------------------===//
> +//===- MIParser.h - Machine Instructions Parser -----------------*- C++
> -*-===//
>  //
>  //                     The LLVM Compiler Infrastructure
>  //
> @@ -15,21 +15,19 @@
>  #define LLVM_LIB_CODEGEN_MIRPARSER_MIPARSER_H
>
>  #include "llvm/ADT/DenseMap.h"
> -#include "llvm/ADT/SmallSet.h"
> +#include "llvm/ADT/StringMap.h"
> +#include "llvm/Support/Allocator.h"
>
>  namespace llvm {
>
> -class StringRef;
> -class BasicBlock;
>  class MachineBasicBlock;
>  class MachineFunction;
> -class MachineInstr;
> -class MachineRegisterInfo;
>  class MDNode;
>  class RegisterBank;
>  struct SlotMapping;
>  class SMDiagnostic;
>  class SourceMgr;
> +class StringRef;
>  class TargetRegisterClass;
>
>  struct VRegInfo {
> @@ -45,8 +43,8 @@ struct VRegInfo {
>    unsigned PreferredReg = 0;
>  };
>
> -typedef StringMap<const TargetRegisterClass*> Name2RegClassMap;
> -typedef StringMap<const RegisterBank*> Name2RegBankMap;
> +using Name2RegClassMap = StringMap<const TargetRegisterClass *>;
> +using Name2RegBankMap = StringMap<const RegisterBank *>;
>
>  struct PerFunctionMIParsingState {
>    BumpPtrAllocator Allocator;
> @@ -122,4 +120,4 @@ bool parseMDNode(PerFunctionMIParsingSta
>
>  } // end namespace llvm
>
> -#endif
> +#endif // LLVM_LIB_CODEGEN_MIRPARSER_MIPARSER_H
>
> Modified: llvm/trunk/lib/CodeGen/MIRPrinter.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MIRPrinter.cpp?rev=304839&r1=304838&r2=304839&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/MIRPrinter.cpp (original)
> +++ llvm/trunk/lib/CodeGen/MIRPrinter.cpp Tue Jun  6 17:22:41 2017
> @@ -12,36 +12,65 @@
>  //
>
>  //===----------------------------------------------------------------------===//
>
> -#include "llvm/CodeGen/MIRPrinter.h"
> -
> -#include "llvm/ADT/STLExtras.h"
> +#include "llvm/ADT/DenseMap.h"
> +#include "llvm/ADT/None.h"
>  #include "llvm/ADT/SmallBitVector.h"
> -#include "llvm/ADT/StringExtras.h"
> +#include "llvm/ADT/SmallPtrSet.h"
> +#include "llvm/ADT/SmallVector.h"
> +#include "llvm/ADT/STLExtras.h"
> +#include "llvm/ADT/StringRef.h"
> +#include "llvm/ADT/Twine.h"
>  #include "llvm/CodeGen/GlobalISel/RegisterBank.h"
> -#include "llvm/CodeGen/MIRYamlMapping.h"
> +#include "llvm/CodeGen/MachineBasicBlock.h"
>  #include "llvm/CodeGen/MachineConstantPool.h"
>  #include "llvm/CodeGen/MachineFrameInfo.h"
>  #include "llvm/CodeGen/MachineFunction.h"
> +#include "llvm/CodeGen/MachineInstr.h"
> +#include "llvm/CodeGen/MachineJumpTableInfo.h"
>  #include "llvm/CodeGen/MachineMemOperand.h"
> -#include "llvm/CodeGen/MachineModuleInfo.h"
> +#include "llvm/CodeGen/MachineOperand.h"
>  #include "llvm/CodeGen/MachineRegisterInfo.h"
> +#include "llvm/CodeGen/MIRPrinter.h"
> +#include "llvm/CodeGen/MIRYamlMapping.h"
> +#include "llvm/CodeGen/PseudoSourceValue.h"
>  #include "llvm/IR/BasicBlock.h"
>  #include "llvm/IR/Constants.h"
>  #include "llvm/IR/DebugInfo.h"
> -#include "llvm/IR/IRPrintingPasses.h"
> +#include "llvm/IR/DebugLoc.h"
> +#include "llvm/IR/Function.h"
> +#include "llvm/IR/GlobalValue.h"
> +#include "llvm/IR/InstrTypes.h"
>  #include "llvm/IR/Instructions.h"
>  #include "llvm/IR/Intrinsics.h"
> +#include "llvm/IR/IRPrintingPasses.h"
>  #include "llvm/IR/Module.h"
>  #include "llvm/IR/ModuleSlotTracker.h"
> +#include "llvm/IR/Value.h"
> +#include "llvm/MC/LaneBitmask.h"
> +#include "llvm/MC/MCDwarf.h"
>  #include "llvm/MC/MCSymbol.h"
> +#include "llvm/Support/AtomicOrdering.h"
> +#include "llvm/Support/BranchProbability.h"
> +#include "llvm/Support/Casting.h"
> +#include "llvm/Support/CommandLine.h"
> +#include "llvm/Support/ErrorHandling.h"
>  #include "llvm/Support/Format.h"
> -#include "llvm/Support/MemoryBuffer.h"
> -#include "llvm/Support/Options.h"
> -#include "llvm/Support/YAMLTraits.h"
> +#include "llvm/Support/LowLevelTypeImpl.h"
>  #include "llvm/Support/raw_ostream.h"
> +#include "llvm/Support/YAMLTraits.h"
>  #include "llvm/Target/TargetInstrInfo.h"
>  #include "llvm/Target/TargetIntrinsicInfo.h"
> +#include "llvm/Target/TargetMachine.h"
> +#include "llvm/Target/TargetRegisterInfo.h"
>  #include "llvm/Target/TargetSubtargetInfo.h"
> +#include <algorithm>
> +#include <cassert>
> +#include <cinttypes>
> +#include <cstdint>
> +#include <iterator>
> +#include <string>
> +#include <utility>
> +#include <vector>
>
>  using namespace llvm;
>
> @@ -148,6 +177,7 @@ template <> struct BlockScalarTraits<Mod
>    static void output(const Module &Mod, void *Ctxt, raw_ostream &OS) {
>      Mod.print(OS, nullptr);
>    }
> +
>    static StringRef input(StringRef Str, void *Ctxt, Module &Mod) {
>      llvm_unreachable("LLVM Module is supposed to be parsed separately");
>      return "";
> @@ -519,7 +549,6 @@ bool MIPrinter::canPredictSuccessors(con
>    return std::equal(MBB.succ_begin(), MBB.succ_end(),
> GuessedSuccs.begin());
>  }
>
> -
>  void MIPrinter::print(const MachineBasicBlock &MBB) {
>    assert(MBB.getNumber() >= 0 && "Invalid MBB number");
>    OS << "bb." << MBB.getNumber();
> @@ -911,7 +940,7 @@ void MIPrinter::print(const MachineOpera
>      OS << "%const." << Op.getIndex();
>      printOffset(Op.getOffset());
>      break;
> -  case MachineOperand::MO_TargetIndex: {
> +  case MachineOperand::MO_TargetIndex:
>      OS << "target-index(";
>      if (const auto *Name = getTargetIndexName(
>              *Op.getParent()->getParent()->getParent(), Op.getIndex()))
> @@ -921,7 +950,6 @@ void MIPrinter::print(const MachineOpera
>      OS << ')';
>      printOffset(Op.getOffset());
>      break;
> -  }
>    case MachineOperand::MO_JumpTableIndex:
>      OS << "%jump-table." << Op.getIndex();
>      break;
>
> Modified: llvm/trunk/lib/CodeGen/RegAllocGreedy.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/RegAllocGreedy.cpp?rev=304839&r1=304838&r2=304839&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/RegAllocGreedy.cpp (original)
> +++ llvm/trunk/lib/CodeGen/RegAllocGreedy.cpp Tue Jun  6 17:22:41 2017
> @@ -1,4 +1,4 @@
> -//===-- RegAllocGreedy.cpp - greedy register allocator
> --------------------===//
> +//===- RegAllocGreedy.cpp - greedy register allocator
> ---------------------===//
>  //
>  //                     The LLVM Compiler Infrastructure
>  //
> @@ -19,36 +19,63 @@
>  #include "SpillPlacement.h"
>  #include "Spiller.h"
>  #include "SplitKit.h"
> +#include "llvm/ADT/ArrayRef.h"
> +#include "llvm/ADT/BitVector.h"
> +#include "llvm/ADT/DenseMap.h"
> +#include "llvm/ADT/IndexedMap.h"
> +#include "llvm/ADT/SetVector.h"
> +#include "llvm/ADT/SmallPtrSet.h"
> +#include "llvm/ADT/SmallSet.h"
> +#include "llvm/ADT/SmallVector.h"
>  #include "llvm/ADT/Statistic.h"
> +#include "llvm/ADT/StringRef.h"
>  #include "llvm/Analysis/AliasAnalysis.h"
> +#include "llvm/Analysis/OptimizationDiagnosticInfo.h"
>  #include "llvm/CodeGen/CalcSpillWeights.h"
>  #include "llvm/CodeGen/EdgeBundles.h"
> +#include "llvm/CodeGen/LiveInterval.h"
>  #include "llvm/CodeGen/LiveIntervalAnalysis.h"
> +#include "llvm/CodeGen/LiveIntervalUnion.h"
>  #include "llvm/CodeGen/LiveRangeEdit.h"
>  #include "llvm/CodeGen/LiveRegMatrix.h"
>  #include "llvm/CodeGen/LiveStackAnalysis.h"
> +#include "llvm/CodeGen/MachineBasicBlock.h"
>  #include "llvm/CodeGen/MachineBlockFrequencyInfo.h"
>  #include "llvm/CodeGen/MachineDominators.h"
>  #include "llvm/CodeGen/MachineFrameInfo.h"
> +#include "llvm/CodeGen/MachineFunction.h"
>  #include "llvm/CodeGen/MachineFunctionPass.h"
> +#include "llvm/CodeGen/MachineInstr.h"
>  #include "llvm/CodeGen/MachineLoopInfo.h"
> +#include "llvm/CodeGen/MachineOperand.h"
>  #include "llvm/CodeGen/MachineOptimizationRemarkEmitter.h"
>  #include "llvm/CodeGen/MachineRegisterInfo.h"
> -#include "llvm/CodeGen/Passes.h"
>  #include "llvm/CodeGen/RegAllocRegistry.h"
>  #include "llvm/CodeGen/RegisterClassInfo.h"
> +#include "llvm/CodeGen/SlotIndexes.h"
>  #include "llvm/CodeGen/VirtRegMap.h"
> +#include "llvm/IR/Function.h"
>  #include "llvm/IR/LLVMContext.h"
> -#include "llvm/PassAnalysisSupport.h"
> +#include "llvm/MC/MCRegisterInfo.h"
> +#include "llvm/Pass.h"
> +#include "llvm/Support/BlockFrequency.h"
>  #include "llvm/Support/BranchProbability.h"
>  #include "llvm/Support/CommandLine.h"
>  #include "llvm/Support/Debug.h"
> -#include "llvm/Support/ErrorHandling.h"
> +#include "llvm/Support/MathExtras.h"
>  #include "llvm/Support/Timer.h"
>  #include "llvm/Support/raw_ostream.h"
>  #include "llvm/Target/TargetInstrInfo.h"
> +#include "llvm/Target/TargetMachine.h"
> +#include "llvm/Target/TargetRegisterInfo.h"
>  #include "llvm/Target/TargetSubtargetInfo.h"
> +#include <algorithm>
> +#include <cassert>
> +#include <cstdint>
> +#include <memory>
>  #include <queue>
> +#include <tuple>
> +#include <utility>
>
>  using namespace llvm;
>
> @@ -106,13 +133,14 @@ static RegisterRegAlloc greedyRegAlloc("
>                                         createGreedyRegisterAllocator);
>
>  namespace {
> +
>  class RAGreedy : public MachineFunctionPass,
>                   public RegAllocBase,
>                   private LiveRangeEdit::Delegate {
>    // Convenient shortcuts.
> -  typedef std::priority_queue<std::pair<unsigned, unsigned> > PQueue;
> -  typedef SmallPtrSet<LiveInterval *, 4> SmallLISet;
> -  typedef SmallSet<unsigned, 16> SmallVirtRegSet;
> +  using PQueue = std::priority_queue<std::pair<unsigned, unsigned>>;
> +  using SmallLISet = SmallPtrSet<LiveInterval *, 4>;
> +  using SmallVirtRegSet = SmallSet<unsigned, 16>;
>
>    // context
>    MachineFunction *MF;
> @@ -201,12 +229,12 @@ class RAGreedy : public MachineFunctionP
>
>    // RegInfo - Keep additional information about each live range.
>    struct RegInfo {
> -    LiveRangeStage Stage;
> +    LiveRangeStage Stage = RS_New;
>
>      // Cascade - Eviction loop prevention. See canEvictInterference().
> -    unsigned Cascade;
> +    unsigned Cascade = 0;
>
> -    RegInfo() : Stage(RS_New), Cascade(0) {}
> +    RegInfo() = default;
>    };
>
>    IndexedMap<RegInfo, VirtReg2IndexFunctor> ExtraRegInfo;
> @@ -232,10 +260,10 @@ class RAGreedy : public MachineFunctionP
>
>    /// Cost of evicting interference.
>    struct EvictionCost {
> -    unsigned BrokenHints; ///< Total number of broken hints.
> -    float MaxWeight;      ///< Maximum spill weight evicted.
> +    unsigned BrokenHints = 0; ///< Total number of broken hints.
> +    float MaxWeight = 0;      ///< Maximum spill weight evicted.
>
> -    EvictionCost(): BrokenHints(0), MaxWeight(0) {}
> +    EvictionCost() = default;
>
>      bool isMax() const { return BrokenHints == ~0u; }
>
> @@ -413,10 +441,12 @@ private:
>      /// Its currently assigned register.
>      /// In case of a physical register Reg == PhysReg.
>      unsigned PhysReg;
> +
>      HintInfo(BlockFrequency Freq, unsigned Reg, unsigned PhysReg)
>          : Freq(Freq), Reg(Reg), PhysReg(PhysReg) {}
>    };
> -  typedef SmallVector<HintInfo, 4> HintsInfo;
> +  using HintsInfo = SmallVector<HintInfo, 4>;
> +
>    BlockFrequency getBrokenHintFreq(const HintsInfo &, unsigned);
>    void collectHintInfo(unsigned, HintsInfo &);
>
> @@ -436,6 +466,7 @@ private:
>      }
>    }
>  };
> +
>  } // end anonymous namespace
>
>  char RAGreedy::ID = 0;
> @@ -475,7 +506,6 @@ const char *const RAGreedy::StageName[]
>  // This helps stabilize decisions based on float comparisons.
>  const float Hysteresis = (2007 / 2048.0f); // 0.97998046875
>
> -
>  FunctionPass* llvm::createGreedyRegisterAllocator() {
>    return new RAGreedy();
>  }
> @@ -511,7 +541,6 @@ void RAGreedy::getAnalysisUsage(Analysis
>    MachineFunctionPass::getAnalysisUsage(AU);
>  }
>
> -
>
>  //===----------------------------------------------------------------------===//
>  //                     LiveRangeEdit delegate methods
>
>  //===----------------------------------------------------------------------===//
> @@ -634,7 +663,6 @@ LiveInterval *RAGreedy::dequeue(PQueue &
>    return LI;
>  }
>
> -
>
>  //===----------------------------------------------------------------------===//
>  //                            Direct Assignment
>
>  //===----------------------------------------------------------------------===//
> @@ -682,7 +710,6 @@ unsigned RAGreedy::tryAssign(LiveInterva
>    return CheapReg ? CheapReg : PhysReg;
>  }
>
> -
>
>  //===----------------------------------------------------------------------===//
>  //                         Interference eviction
>
>  //===----------------------------------------------------------------------===//
> @@ -954,7 +981,6 @@ unsigned RAGreedy::tryEvict(LiveInterval
>    return BestPhys;
>  }
>
> -
>
>  //===----------------------------------------------------------------------===//
>  //                              Region Splitting
>
>  //===----------------------------------------------------------------------===//
> @@ -1025,7 +1051,6 @@ bool RAGreedy::addSplitConstraints(Inter
>    return SpillPlacer->scanActiveBundles();
>  }
>
> -
>  /// addThroughConstraints - Add constraints and links to SpillPlacer from
> the
>  /// live-through blocks in Blocks.
>  void RAGreedy::addThroughConstraints(InterferenceCache::Cursor Intf,
> @@ -1083,7 +1108,7 @@ void RAGreedy::growRegion(GlobalSplitCan
>    unsigned Visited = 0;
>  #endif
>
> -  for (;;) {
> +  while (true) {
>      ArrayRef<unsigned> NewBundles = SpillPlacer->getRecentPositive();
>      // Find new through blocks in the periphery of PrefRegBundles.
>      for (int i = 0, e = NewBundles.size(); i != e; ++i) {
> @@ -1197,8 +1222,8 @@ BlockFrequency RAGreedy::calcGlobalSplit
>    for (unsigned i = 0; i != UseBlocks.size(); ++i) {
>      const SplitAnalysis::BlockInfo &BI = UseBlocks[i];
>      SpillPlacement::BlockConstraint &BC = SplitConstraints[i];
> -    bool RegIn  = LiveBundles[Bundles->getBundle(BC.Number, 0)];
> -    bool RegOut = LiveBundles[Bundles->getBundle(BC.Number, 1)];
> +    bool RegIn  = LiveBundles[Bundles->getBundle(BC.Number, false)];
> +    bool RegOut = LiveBundles[Bundles->getBundle(BC.Number, true)];
>      unsigned Ins = 0;
>
>      if (BI.LiveIn)
> @@ -1211,8 +1236,8 @@ BlockFrequency RAGreedy::calcGlobalSplit
>
>    for (unsigned i = 0, e = Cand.ActiveBlocks.size(); i != e; ++i) {
>      unsigned Number = Cand.ActiveBlocks[i];
> -    bool RegIn  = LiveBundles[Bundles->getBundle(Number, 0)];
> -    bool RegOut = LiveBundles[Bundles->getBundle(Number, 1)];
> +    bool RegIn  = LiveBundles[Bundles->getBundle(Number, false)];
> +    bool RegOut = LiveBundles[Bundles->getBundle(Number, true)];
>      if (!RegIn && !RegOut)
>        continue;
>      if (RegIn && RegOut) {
> @@ -1264,7 +1289,7 @@ void RAGreedy::splitAroundRegion(LiveRan
>      unsigned IntvIn = 0, IntvOut = 0;
>      SlotIndex IntfIn, IntfOut;
>      if (BI.LiveIn) {
> -      unsigned CandIn = BundleCand[Bundles->getBundle(Number, 0)];
> +      unsigned CandIn = BundleCand[Bundles->getBundle(Number, false)];
>        if (CandIn != NoCand) {
>          GlobalSplitCandidate &Cand = GlobalCand[CandIn];
>          IntvIn = Cand.IntvIdx;
> @@ -1273,7 +1298,7 @@ void RAGreedy::splitAroundRegion(LiveRan
>        }
>      }
>      if (BI.LiveOut) {
> -      unsigned CandOut = BundleCand[Bundles->getBundle(Number, 1)];
> +      unsigned CandOut = BundleCand[Bundles->getBundle(Number, true)];
>        if (CandOut != NoCand) {
>          GlobalSplitCandidate &Cand = GlobalCand[CandOut];
>          IntvOut = Cand.IntvIdx;
> @@ -1313,7 +1338,7 @@ void RAGreedy::splitAroundRegion(LiveRan
>        unsigned IntvIn = 0, IntvOut = 0;
>        SlotIndex IntfIn, IntfOut;
>
> -      unsigned CandIn = BundleCand[Bundles->getBundle(Number, 0)];
> +      unsigned CandIn = BundleCand[Bundles->getBundle(Number, false)];
>        if (CandIn != NoCand) {
>          GlobalSplitCandidate &Cand = GlobalCand[CandIn];
>          IntvIn = Cand.IntvIdx;
> @@ -1321,7 +1346,7 @@ void RAGreedy::splitAroundRegion(LiveRan
>          IntfIn = Cand.Intf.first();
>        }
>
> -      unsigned CandOut = BundleCand[Bundles->getBundle(Number, 1)];
> +      unsigned CandOut = BundleCand[Bundles->getBundle(Number, true)];
>        if (CandOut != NoCand) {
>          GlobalSplitCandidate &Cand = GlobalCand[CandOut];
>          IntvOut = Cand.IntvIdx;
> @@ -1533,7 +1558,6 @@ unsigned RAGreedy::doRegionSplit(LiveInt
>    return 0;
>  }
>
> -
>
>  //===----------------------------------------------------------------------===//
>  //                            Per-Block Splitting
>
>  //===----------------------------------------------------------------------===//
> @@ -1580,7 +1604,6 @@ unsigned RAGreedy::tryBlockSplit(LiveInt
>    return 0;
>  }
>
> -
>
>  //===----------------------------------------------------------------------===//
>  //                         Per-Instruction Splitting
>
>  //===----------------------------------------------------------------------===//
> @@ -1664,12 +1687,10 @@ RAGreedy::tryInstructionSplit(LiveInterv
>    return 0;
>  }
>
> -
>
>  //===----------------------------------------------------------------------===//
>  //                             Local Splitting
>
>  //===----------------------------------------------------------------------===//
>
> -
>  /// calcGapWeights - Compute the maximum spill weight that needs to be
> evicted
>  /// in order to use PhysReg between two entries in SA->UseSlots.
>  ///
> @@ -1740,7 +1761,7 @@ void RAGreedy::calcGapWeights(unsigned P
>          break;
>
>        for (; Gap != NumGaps; ++Gap) {
> -        GapWeight[Gap] = llvm::huge_valf;
> +        GapWeight[Gap] = huge_valf;
>          if (Uses[Gap+1].getBaseIndex() >= I->end)
>            break;
>        }
> @@ -1846,7 +1867,7 @@ unsigned RAGreedy::tryLocalSplit(LiveInt
>      // Remove any gaps with regmask clobbers.
>      if (Matrix->checkRegMaskInterference(VirtReg, PhysReg))
>        for (unsigned i = 0, e = RegMaskGaps.size(); i != e; ++i)
> -        GapWeight[RegMaskGaps[i]] = llvm::huge_valf;
> +        GapWeight[RegMaskGaps[i]] = huge_valf;
>
>      // Try to find the best sequence of gaps to close.
>      // The new spill weight must be larger than any gap interference.
> @@ -1858,7 +1879,7 @@ unsigned RAGreedy::tryLocalSplit(LiveInt
>      // It is the spill weight that needs to be evicted.
>      float MaxGap = GapWeight[0];
>
> -    for (;;) {
> +    while (true) {
>        // Live before/after split?
>        const bool LiveBefore = SplitBefore != 0 || BI.LiveIn;
>        const bool LiveAfter = SplitAfter != NumGaps || BI.LiveOut;
> @@ -1881,7 +1902,7 @@ unsigned RAGreedy::tryLocalSplit(LiveInt
>        // Legally, without causing looping?
>        bool Legal = !ProgressRequired || NewGaps < NumGaps;
>
> -      if (Legal && MaxGap < llvm::huge_valf) {
> +      if (Legal && MaxGap < huge_valf) {
>          // Estimate the new spill weight. Each instruction reads or
> writes the
>          // register. Conservatively assume there are no read-modify-write
>          // instructions.
> @@ -2680,6 +2701,7 @@ void RAGreedy::reportNumberOfSplillsRelo
>
>    if (Reloads || FoldedReloads || Spills || FoldedSpills) {
>      using namespace ore;
> +
>      MachineOptimizationRemarkMissed R(DEBUG_TYPE, "LoopSpillReload",
>                                        L->getStartLoc(), L->getHeader());
>      if (Spills)
>
> Modified: llvm/trunk/lib/CodeGen/RegisterUsageInfo.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/RegisterUsageInfo.cpp?rev=304839&r1=304838&r2=304839&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/RegisterUsageInfo.cpp (original)
> +++ llvm/trunk/lib/CodeGen/RegisterUsageInfo.cpp Tue Jun  6 17:22:41 2017
> @@ -12,11 +12,22 @@
>  ///
>
>  //===----------------------------------------------------------------------===//
>
> +#include "llvm/ADT/SmallVector.h"
>  #include "llvm/CodeGen/RegisterUsageInfo.h"
>  #include "llvm/CodeGen/MachineOperand.h"
> +#include "llvm/IR/Function.h"
>  #include "llvm/IR/Module.h"
> -#include "llvm/Support/Debug.h"
> +#include "llvm/Pass.h"
> +#include "llvm/Support/CommandLine.h"
>  #include "llvm/Support/raw_ostream.h"
> +#include "llvm/Target/TargetMachine.h"
> +#include "llvm/Target/TargetRegisterInfo.h"
> +#include "llvm/Target/TargetSubtargetInfo.h"
> +#include <algorithm>
> +#include <cassert>
> +#include <cstdint>
> +#include <utility>
> +#include <vector>
>
>  using namespace llvm;
>
> @@ -63,7 +74,7 @@ PhysicalRegisterUsageInfo::getRegUsageIn
>  void PhysicalRegisterUsageInfo::print(raw_ostream &OS, const Module *M)
> const {
>    const TargetRegisterInfo *TRI;
>
> -  typedef std::pair<const Function *, std::vector<uint32_t>>
> FuncPtrRegMaskPair;
> +  using FuncPtrRegMaskPair = std::pair<const Function *,
> std::vector<uint32_t>>;
>
>    SmallVector<const FuncPtrRegMaskPair *, 64> FPRMPairVector;
>
>
> Modified: llvm/trunk/lib/CodeGen/TargetFrameLoweringImpl.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/TargetFrameLoweringImpl.cpp?rev=304839&r1=304838&r2=304839&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/TargetFrameLoweringImpl.cpp (original)
> +++ llvm/trunk/lib/CodeGen/TargetFrameLoweringImpl.cpp Tue Jun  6 17:22:41
> 2017
> @@ -1,4 +1,4 @@
> -//===----- TargetFrameLoweringImpl.cpp - Implement target frame interface
> --==//
> +//===- TargetFrameLoweringImpl.cpp - Implement target frame interface
> ------==//
>  //
>  //                     The LLVM Compiler Infrastructure
>  //
> @@ -14,19 +14,21 @@
>  #include "llvm/ADT/BitVector.h"
>  #include "llvm/CodeGen/MachineFrameInfo.h"
>  #include "llvm/CodeGen/MachineFunction.h"
> -#include "llvm/CodeGen/MachineModuleInfo.h"
>  #include "llvm/CodeGen/MachineRegisterInfo.h"
> -#include "llvm/CodeGen/TargetPassConfig.h"
> +#include "llvm/IR/Attributes.h"
>  #include "llvm/IR/CallingConv.h"
>  #include "llvm/IR/Function.h"
> +#include "llvm/MC/MCRegisterInfo.h"
> +#include "llvm/Support/Compiler.h"
>  #include "llvm/Target/TargetFrameLowering.h"
> +#include "llvm/Target/TargetMachine.h"
> +#include "llvm/Target/TargetOptions.h"
>  #include "llvm/Target/TargetRegisterInfo.h"
>  #include "llvm/Target/TargetSubtargetInfo.h"
> -#include <cstdlib>
> +
>  using namespace llvm;
>
> -TargetFrameLowering::~TargetFrameLowering() {
> -}
> +TargetFrameLowering::~TargetFrameLowering() = default;
>
>  /// The default implementation just looks at attribute
> "no-frame-pointer-elim".
>  bool TargetFrameLowering::noFramePointerElim(const MachineFunction &MF)
> const {
>
> Modified: llvm/trunk/lib/CodeGen/XRayInstrumentation.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/XRayInstrumentation.cpp?rev=304839&r1=304838&r2=304839&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/XRayInstrumentation.cpp (original)
> +++ llvm/trunk/lib/CodeGen/XRayInstrumentation.cpp Tue Jun  6 17:22:41 2017
> @@ -1,4 +1,4 @@
> -//===-- XRayInstrumentation.cpp - Adds XRay instrumentation to functions.
> -===//
> +//===- XRayInstrumentation.cpp - Adds XRay instrumentation to functions.
> --===//
>  //
>  //                     The LLVM Compiler Infrastructure
>  //
> @@ -14,20 +14,26 @@
>  //
>
>  //===---------------------------------------------------------------------===//
>
> -#include "llvm/CodeGen/Analysis.h"
> +#include "llvm/ADT/SmallVector.h"
> +#include "llvm/ADT/STLExtras.h"
> +#include "llvm/ADT/Triple.h"
> +#include "llvm/CodeGen/MachineBasicBlock.h"
>  #include "llvm/CodeGen/MachineDominators.h"
>  #include "llvm/CodeGen/MachineFunction.h"
>  #include "llvm/CodeGen/MachineFunctionPass.h"
>  #include "llvm/CodeGen/MachineInstrBuilder.h"
>  #include "llvm/CodeGen/MachineLoopInfo.h"
> -#include "llvm/CodeGen/Passes.h"
> -#include "llvm/Support/TargetRegistry.h"
> +#include "llvm/IR/Attributes.h"
> +#include "llvm/IR/Function.h"
> +#include "llvm/Pass.h"
>  #include "llvm/Target/TargetInstrInfo.h"
> +#include "llvm/Target/TargetMachine.h"
>  #include "llvm/Target/TargetSubtargetInfo.h"
>
>  using namespace llvm;
>
>  namespace {
> +
>  struct XRayInstrumentation : public MachineFunctionPass {
>    static char ID;
>
> @@ -66,7 +72,8 @@ private:
>    void prependRetWithPatchableExit(MachineFunction &MF,
>                                     const TargetInstrInfo *TII);
>  };
> -} // anonymous namespace
> +
> +} // end anonymous namespace
>
>  void XRayInstrumentation::replaceRetWithPatchableRet(
>      MachineFunction &MF, const TargetInstrInfo *TII) {
> @@ -144,8 +151,8 @@ bool XRayInstrumentation::runOnMachineFu
>
>    // We look for the first non-empty MachineBasicBlock, so that we can
> insert
>    // the function instrumentation in the appropriate place.
> -  auto MBI =
> -      find_if(MF, [&](const MachineBasicBlock &MBB) { return
> !MBB.empty(); });
> +  auto MBI = llvm::find_if(
> +      MF, [&](const MachineBasicBlock &MBB) { return !MBB.empty(); });
>    if (MBI == MF.end())
>      return false; // The function is empty.
>
>
> Modified: llvm/trunk/lib/Target/ARM/Thumb2InstrInfo.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/Thumb2InstrInfo.cpp?rev=304839&r1=304838&r2=304839&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/ARM/Thumb2InstrInfo.cpp (original)
> +++ llvm/trunk/lib/Target/ARM/Thumb2InstrInfo.cpp Tue Jun  6 17:22:41 2017
> @@ -1,4 +1,4 @@
> -//===-- Thumb2InstrInfo.cpp - Thumb-2 Instruction Information
> -------------===//
> +//===- Thumb2InstrInfo.cpp - Thumb-2 Instruction Information
> --------------===//
>  //
>  //                     The LLVM Compiler Infrastructure
>  //
> @@ -11,16 +11,26 @@
>  //
>
>  //===----------------------------------------------------------------------===//
>
> -#include "Thumb2InstrInfo.h"
> -#include "ARMConstantPoolValue.h"
>  #include "ARMMachineFunctionInfo.h"
>  #include "MCTargetDesc/ARMAddressingModes.h"
> +#include "Thumb2InstrInfo.h"
> +#include "llvm/CodeGen/MachineBasicBlock.h"
>  #include "llvm/CodeGen/MachineFrameInfo.h"
> +#include "llvm/CodeGen/MachineFunction.h"
> +#include "llvm/CodeGen/MachineInstr.h"
>  #include "llvm/CodeGen/MachineInstrBuilder.h"
>  #include "llvm/CodeGen/MachineMemOperand.h"
> +#include "llvm/CodeGen/MachineOperand.h"
>  #include "llvm/CodeGen/MachineRegisterInfo.h"
> +#include "llvm/IR/DebugLoc.h"
>  #include "llvm/MC/MCInst.h"
> +#include "llvm/MC/MCInstrDesc.h"
>  #include "llvm/Support/CommandLine.h"
> +#include "llvm/Support/ErrorHandling.h"
> +#include "llvm/Support/MathExtras.h"
> +#include "llvm/Target/TargetMachine.h"
> +#include "llvm/Target/TargetRegisterInfo.h"
> +#include <cassert>
>
>  using namespace llvm;
>
> @@ -30,7 +40,7 @@ OldT2IfCvt("old-thumb2-ifcvt", cl::Hidde
>             cl::init(false));
>
>  Thumb2InstrInfo::Thumb2InstrInfo(const ARMSubtarget &STI)
> -    : ARMBaseInstrInfo(STI), RI() {}
> +    : ARMBaseInstrInfo(STI) {}
>
>  /// Return the noop instruction to use for a noop.
>  void Thumb2InstrInfo::getNoop(MCInst &NopInst) const {
> @@ -539,9 +549,7 @@ bool llvm::rewriteT2FrameIndex(MachineIn
>      // Add cc_out operand if the original instruction did not have one.
>      if (!HasCCOut)
>        MI.addOperand(MachineOperand::CreateReg(0, false));
> -
>    } else {
> -
>      // AddrMode4 and AddrMode6 cannot handle any offset.
>      if (AddrMode == ARMII::AddrMode4 || AddrMode == ARMII::AddrMode6)
>        return false;
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170606/27980c7d/attachment.html>


More information about the llvm-commits mailing list