[llvm] r295009 - [MC] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).

Daniel Jasper via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 13 23:22:26 PST 2017


On Tue, Feb 14, 2017 at 1:33 AM, Eugene Zelenko via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: eugenezelenko
> Date: Mon Feb 13 18:33:36 2017
> New Revision: 295009
>
> URL: http://llvm.org/viewvc/llvm-project?rev=295009&view=rev
> Log:
> [MC] Fix some Clang-tidy modernize and Include What You Use warnings;
> other minor fixes (NFC).
>
> Same changes in files affected by reduced MC headers dependencies.
>
> Modified:
>     llvm/trunk/include/llvm/CodeGen/AsmPrinter.h
>     llvm/trunk/include/llvm/MC/MCContext.h
>     llvm/trunk/include/llvm/MC/MCDwarf.h
>     llvm/trunk/include/llvm/MC/MCSectionELF.h
>     llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
>     llvm/trunk/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp
>     llvm/trunk/lib/MC/MCContext.cpp
>     llvm/trunk/lib/MC/MCDwarf.cpp
>     llvm/trunk/lib/MC/MCObjectFileInfo.cpp
>     llvm/trunk/lib/MC/MCSectionELF.cpp
>     llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
>     llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
>     llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp
>     llvm/trunk/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.cpp
>     llvm/trunk/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.h
>
> Modified: llvm/trunk/include/llvm/CodeGen/AsmPrinter.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/CodeGen/AsmPrinter.h?rev=295009&r1=295008&r2=295009&view=diff
> ============================================================
> ==================
> --- llvm/trunk/include/llvm/CodeGen/AsmPrinter.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/AsmPrinter.h Mon Feb 13 18:33:36 2017
> @@ -1,4 +1,4 @@
> -//===-- llvm/CodeGen/AsmPrinter.h - AsmPrinter Framework --------*- C++
> -*-===//
> +//===- llvm/CodeGen/AsmPrinter.h - AsmPrinter Framework ---------*- C++
> -*-===//
>  //
>  //                     The LLVM Compiler Infrastructure
>  //
> @@ -17,35 +17,41 @@
>  #define LLVM_CODEGEN_ASMPRINTER_H
>
>  #include "llvm/ADT/MapVector.h"
> +#include "llvm/ADT/SmallVector.h"
> +#include "llvm/ADT/StringRef.h"
>  #include "llvm/ADT/Twine.h"
>  #include "llvm/CodeGen/MachineFunctionPass.h"
>  #include "llvm/CodeGen/DwarfStringPoolEntry.h"
>  #include "llvm/IR/InlineAsm.h"
> -#include "llvm/Support/DataTypes.h"
> +#include "llvm/IR/LLVMContext.h"
>  #include "llvm/Support/ErrorHandling.h"
>  #include "llvm/Support/SourceMgr.h"
> +#include <cstdint>
> +#include <memory>
> +#include <utility>
> +#include <vector>
>
>  namespace llvm {
> +
>  class AsmPrinterHandler;
>  class BlockAddress;
> -class ByteStreamer;
> -class GCStrategy;
>  class Constant;
>  class ConstantArray;
> +class DataLayout;
>  class DIE;
>  class DIEAbbrev;
> +class DwarfDebug;
>  class GCMetadataPrinter;
>  class GlobalIndirectSymbol;
>  class GlobalValue;
>  class GlobalVariable;
> +class GCStrategy;
>  class MachineBasicBlock;
> +class MachineConstantPoolValue;
>  class MachineFunction;
>  class MachineInstr;
> -class MachineLocation;
> -class MachineLoopInfo;
> -class MachineLoop;
> -class MachineConstantPoolValue;
>  class MachineJumpTableInfo;
> +class MachineLoopInfo;
>  class MachineModuleInfo;
>  class MCAsmInfo;
>  class MCCFIInstruction;
> @@ -58,10 +64,7 @@ class MCSubtargetInfo;
>  class MCSymbol;
>  class MCTargetOptions;
>  class MDNode;
> -class DwarfDebug;
> -class Mangler;
>  class TargetLoweringObjectFile;
> -class DataLayout;
>  class TargetMachine;
>
>  /// This class is intended to be used as a driving class for all asm
> writers.
> @@ -85,20 +88,20 @@ public:
>    std::unique_ptr<MCStreamer> OutStreamer;
>
>    /// The current machine function.
> -  const MachineFunction *MF;
> +  const MachineFunction *MF = nullptr;
>
>    /// This is a pointer to the current MachineModuleInfo.
> -  MachineModuleInfo *MMI;
> +  MachineModuleInfo *MMI = nullptr;
>
>    /// The symbol for the current function. This is recalculated at the
> beginning
>    /// of each call to runOnMachineFunction().
>    ///
> -  MCSymbol *CurrentFnSym;
> +  MCSymbol *CurrentFnSym = nullptr;
>
>    /// The symbol used to represent the start of the current function for
> the
>    /// purpose of calculating its size (e.g. using the .size directive). By
>    /// default, this is equal to CurrentFnSym.
> -  MCSymbol *CurrentFnSymForSize;
> +  MCSymbol *CurrentFnSymForSize = nullptr;
>
>    /// Map global GOT equivalent MCSymbols to GlobalVariables and keep
> track of
>    /// its number of uses by other globals.
> @@ -106,12 +109,12 @@ public:
>    MapVector<const MCSymbol *, GOTEquivUsePair> GlobalGOTEquivs;
>
>  private:
> -  MCSymbol *CurrentFnBegin;
> -  MCSymbol *CurrentFnEnd;
> -  MCSymbol *CurExceptionSym;
> +  MCSymbol *CurrentFnBegin = nullptr;
> +  MCSymbol *CurrentFnEnd = nullptr;
> +  MCSymbol *CurExceptionSym = nullptr;
>
>    // The garbage collection metadata printer table.
> -  void *GCMetadataPrinters; // Really a DenseMap.
> +  void *GCMetadataPrinters = nullptr; // Really a DenseMap.
>
>    /// Emit comments in assembly output if this is true.
>    ///
> @@ -119,7 +122,7 @@ private:
>    static char ID;
>
>    /// If VerboseAsm is set, a pointer to the loop info for this function.
> -  MachineLoopInfo *LI;
> +  MachineLoopInfo *LI = nullptr;
>
>    struct HandlerInfo {
>      AsmPrinterHandler *Handler;
> @@ -127,6 +130,7 @@ private:
>      const char *TimerDescription;
>      const char *TimerGroupName;
>      const char *TimerGroupDescription;
> +
>      HandlerInfo(AsmPrinterHandler *Handler, const char *TimerName,
>                  const char *TimerDescription, const char *TimerGroupName,
>                  const char *TimerGroupDescription)
> @@ -152,10 +156,10 @@ private:
>    mutable std::unique_ptr<SrcMgrDiagInfo> DiagInfo;
>
>    /// If the target supports dwarf debug info, this pointer is non-null.
> -  DwarfDebug *DD;
> +  DwarfDebug *DD = nullptr;
>
>    /// If the current module uses dwarf CFI annotations strictly for
> debugging.
> -  bool isCFIMoveForDebugging;
> +  bool isCFIMoveForDebugging = false;
>
>  protected:
>    explicit AsmPrinter(TargetMachine &TM, std::unique_ptr<MCStreamer>
> Streamer);
> @@ -395,7 +399,7 @@ public:
>    //===-------------------------------------------------------
> -----------===//
>    // Symbol Lowering Routines.
>    //===-------------------------------------------------------
> -----------===//
> -public:
> +
>    MCSymbol *createTempSymbol(const Twine &Name) const;
>
>    /// Return the MCSymbol for a private symbol with global value name as
> its
> @@ -421,7 +425,7 @@ public:
>    //===-------------------------------------------------------
> -----------===//
>    // Emission Helper Routines.
>    //===-------------------------------------------------------
> -----------===//
> -public:
> +
>    /// This is just convenient handler for printing offsets.
>    void printOffset(int64_t Offset, raw_ostream &OS) const;
>
> @@ -525,7 +529,7 @@ public:
>    //===-------------------------------------------------------
> -----------===//
>    // Inline Asm Support
>    //===-------------------------------------------------------
> -----------===//
> -public:
> +
>    // These are hooks that targets can override to implement inline asm
>    // support.  These should probably be moved out of AsmPrinter someday.
>
> @@ -569,9 +573,9 @@ public:
>  private:
>    /// Private state for PrintSpecial()
>    // Assign a unique ID to this machine instruction.
> -  mutable const MachineInstr *LastMI;
> -  mutable unsigned LastFn;
> -  mutable unsigned Counter;
> +  mutable const MachineInstr *LastMI = nullptr;
> +  mutable unsigned LastFn = 0;
> +  mutable unsigned Counter = ~0U;
>
>    /// This method emits the header for the current function.
>    virtual void EmitFunctionHeader();
> @@ -610,6 +614,7 @@ private:
>    void emitGlobalIndirectSymbol(Module &M,
>                                  const GlobalIndirectSymbol& GIS);
>  };
> -}
>
> -#endif
> +} // end namespace llvm
> +
> +#endif // LLVM_CODEGEN_ASMPRINTER_H
>
> Modified: llvm/trunk/include/llvm/MC/MCContext.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/MC/MCContext.h?rev=295009&r1=295008&r2=295009&view=diff
> ============================================================
> ==================
> --- llvm/trunk/include/llvm/MC/MCContext.h (original)
> +++ llvm/trunk/include/llvm/MC/MCContext.h Mon Feb 13 18:33:36 2017
> @@ -15,6 +15,7 @@
>  #include "llvm/ADT/SmallString.h"
>  #include "llvm/ADT/SmallVector.h"
>  #include "llvm/ADT/StringMap.h"
> +#include "llvm/ADT/StringRef.h"
>  #include "llvm/ADT/Twine.h"
>  #include "llvm/MC/MCDwarf.h"
>  #include "llvm/MC/MCSubtargetInfo.h"
> @@ -23,35 +24,35 @@
>  #include "llvm/Support/Compiler.h"
>  #include "llvm/Support/Dwarf.h"
>  #include "llvm/Support/raw_ostream.h"
> +#include <algorithm>
> +#include <cassert>
> +#include <cstddef>
> +#include <cstdint>
>  #include <map>
> -#include <tuple>
> -#include <vector> // FIXME: Shouldn't be needed.
> +#include <memory>
> +#include <string>
> +#include <utility>
> +#include <vector>
>
>  namespace llvm {
> +
> +  class CodeViewContext;
>    class MCAsmInfo;
> -  class MCExpr;
> -  class MCSection;
> -  class MCSymbol;
> -  class MCSymbolELF;
>    class MCLabel;
> -  struct MCDwarfFile;
> -  class MCDwarfLoc;
>    class MCObjectFileInfo;
>    class MCRegisterInfo;
> -  class MCLineSection;
> -  class SMLoc;
> -  class MCSectionMachO;
> -  class MCSectionELF;
> +  class MCSection;
>    class MCSectionCOFF;
> -  class CodeViewContext;
> +  class MCSectionELF;
> +  class MCSectionMachO;
> +  class MCSymbol;
> +  class MCSymbolELF;
> +  class SMLoc;
>
>    /// Context object for machine code objects.  This class owns all of the
>    /// sections that it creates.
>    ///
>    class MCContext {
> -    MCContext(const MCContext &) = delete;
> -    MCContext &operator=(const MCContext &) = delete;
> -
>    public:
>      typedef StringMap<MCSymbol *, BumpPtrAllocator &> SymbolTable;
>
> @@ -122,7 +123,7 @@ namespace llvm {
>      /// Boolean toggled when .secure_log_unique / .secure_log_reset is
> seen to
>      /// catch errors if .secure_log_unique appears twice without
>      /// .secure_log_reset appearing between them.
> -    bool SecureLogUsed;
> +    bool SecureLogUsed = false;
>
>      /// The compilation directory to use for DW_AT_comp_dir.
>      SmallString<128> CompilationDir;
> @@ -138,14 +139,14 @@ namespace llvm {
>
>      /// The current dwarf line information from the last dwarf .loc
> directive.
>      MCDwarfLoc CurrentDwarfLoc;
> -    bool DwarfLocSeen;
> +    bool DwarfLocSeen = false;
>
>      /// Generate dwarf debugging info for assembly source files.
> -    bool GenDwarfForAssembly;
> +    bool GenDwarfForAssembly = false;
>
>      /// The current dwarf file number when generate dwarf debugging info
> for
>      /// assembly source files.
> -    unsigned GenDwarfFileNumber;
> +    unsigned GenDwarfFileNumber = 0;
>
>      /// Sections for generating the .debug_ranges and .debug_aranges
> sections.
>      SetVector<MCSection *> SectionsForRanges;
> @@ -163,25 +164,27 @@ namespace llvm {
>      StringRef DwarfDebugProducer;
>
>      /// The maximum version of dwarf that we should emit.
> -    uint16_t DwarfVersion;
> +    uint16_t DwarfVersion = 4;
>
>      /// Honor temporary labels, this is useful for debugging semantic
>      /// differences between temporary and non-temporary labels (primarily
> on
>      /// Darwin).
> -    bool AllowTemporaryLabels;
> +    bool AllowTemporaryLabels = true;
>      bool UseNamesOnTempLabels = true;
>
>      /// The Compile Unit ID that we are currently processing.
> -    unsigned DwarfCompileUnitID;
> +    unsigned DwarfCompileUnitID = 0;
>
>      struct ELFSectionKey {
>        std::string SectionName;
>        StringRef GroupName;
>        unsigned UniqueID;
> +
>        ELFSectionKey(StringRef SectionName, StringRef GroupName,
>                      unsigned UniqueID)
>            : SectionName(SectionName), GroupName(GroupName),
> UniqueID(UniqueID) {
>        }
> +
>        bool operator<(const ELFSectionKey &Other) const {
>          if (SectionName != Other.SectionName)
>            return SectionName < Other.SectionName;
> @@ -196,10 +199,12 @@ namespace llvm {
>        StringRef GroupName;
>        int SelectionKey;
>        unsigned UniqueID;
> +
>        COFFSectionKey(StringRef SectionName, StringRef GroupName,
>                       int SelectionKey, unsigned UniqueID)
>            : SectionName(SectionName), GroupName(GroupName),
>              SelectionKey(SelectionKey), UniqueID(UniqueID) {}
> +
>        bool operator<(const COFFSectionKey &Other) const {
>          if (SectionName != Other.SectionName)
>            return SectionName < Other.SectionName;
> @@ -221,7 +226,7 @@ namespace llvm {
>      /// Do automatic reset in destructor
>      bool AutoReset;
>
> -    bool HadError;
> +    bool HadError = false;
>
>      MCSymbol *createSymbolImpl(const StringMapEntry<bool> *Name,
>                                 bool CanBeUnnamed);
> @@ -242,6 +247,8 @@ namespace llvm {
>      explicit MCContext(const MCAsmInfo *MAI, const MCRegisterInfo *MRI,
>                         const MCObjectFileInfo *MOFI,
>                         const SourceMgr *Mgr = nullptr, bool DoAutoReset =
> true);
> +    MCContext(const MCContext &) = delete;
> +    MCContext &operator=(const MCContext &) = delete;
>      ~MCContext();
>
>      const SourceMgr *getSourceManager() const { return SrcMgr; }
> @@ -456,6 +463,7 @@ namespace llvm {
>      const SmallVectorImpl<MCDwarfFile> &getMCDwarfFiles(unsigned CUID =
> 0) {
>        return getMCDwarfLineTable(CUID).getMCDwarfFiles();
>      }
> +
>      const SmallVectorImpl<std::string> &getMCDwarfDirs(unsigned CUID = 0)
> {
>        return getMCDwarfLineTable(CUID).getMCDwarfDirs();
>      }
> @@ -466,10 +474,13 @@ namespace llvm {
>            return true;
>        return false;
>      }
> +
>      unsigned getDwarfCompileUnitID() { return DwarfCompileUnitID; }
> +
>      void setDwarfCompileUnitID(unsigned CUIndex) {
>        DwarfCompileUnitID = CUIndex;
>      }
> +
>      void setMCLineTableCompilationDir(unsigned CUID, StringRef
> CompilationDir) {
>        getMCDwarfLineTable(CUID).setCompilationDir(CompilationDir);
>      }
> @@ -489,6 +500,7 @@ namespace llvm {
>        CurrentDwarfLoc.setDiscriminator(Discriminator);
>        DwarfLocSeen = true;
>      }
> +
>      void clearDwarfLocSeen() { DwarfLocSeen = false; }
>
>      bool getDwarfLocSeen() { return DwarfLocSeen; }
> @@ -497,20 +509,25 @@ namespace llvm {
>      bool getGenDwarfForAssembly() { return GenDwarfForAssembly; }
>      void setGenDwarfForAssembly(bool Value) { GenDwarfForAssembly =
> Value; }
>      unsigned getGenDwarfFileNumber() { return GenDwarfFileNumber; }
> +
>      void setGenDwarfFileNumber(unsigned FileNumber) {
>        GenDwarfFileNumber = FileNumber;
>      }
> +
>      const SetVector<MCSection *> &getGenDwarfSectionSyms() {
>        return SectionsForRanges;
>      }
> +
>      bool addGenDwarfSection(MCSection *Sec) {
>        return SectionsForRanges.insert(Sec);
>      }
>
>      void finalizeDwarfSections(MCStreamer &MCOS);
> +
>      const std::vector<MCGenDwarfLabelEntry> &getMCGenDwarfLabelEntries()
> const {
>        return MCGenDwarfLabelEntries;
>      }
> +
>      void addMCGenDwarfLabelEntry(const MCGenDwarfLabelEntry &E) {
>        MCGenDwarfLabelEntries.push_back(E);
>      }
> @@ -520,10 +537,12 @@ namespace llvm {
>
>      void setDwarfDebugProducer(StringRef S) { DwarfDebugProducer = S; }
>      StringRef getDwarfDebugProducer() { return DwarfDebugProducer; }
> +
>      dwarf::DwarfFormat getDwarfFormat() const {
>        // TODO: Support DWARF64
>        return dwarf::DWARF32;
>      }
> +
>      void setDwarfVersion(uint16_t v) { DwarfVersion = v; }
>      uint16_t getDwarfVersion() const { return DwarfVersion; }
>
> @@ -531,15 +550,18 @@ namespace llvm {
>
>      char *getSecureLogFile() { return SecureLogFile; }
>      raw_fd_ostream *getSecureLog() { return SecureLog.get(); }
> -    bool getSecureLogUsed() { return SecureLogUsed; }
> +
>      void setSecureLog(std::unique_ptr<raw_fd_ostream> Value) {
>        SecureLog = std::move(Value);
>      }
> +
> +    bool getSecureLogUsed() { return SecureLogUsed; }
>      void setSecureLogUsed(bool Value) { SecureLogUsed = Value; }
>
>      void *allocate(unsigned Size, unsigned Align = 8) {
>        return Allocator.Allocate(Size, Align);
>      }
> +
>      void deallocate(void *Ptr) {}
>
>      bool hadError() { return HadError; }
> @@ -625,4 +647,4 @@ inline void operator delete[](void *Ptr,
>    C.deallocate(Ptr);
>  }
>
> -#endif
> +#endif // LLVM_MC_MCCONTEXT_H
>
> Modified: llvm/trunk/include/llvm/MC/MCDwarf.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/MC/MCDwarf.h?rev=295009&r1=295008&r2=295009&view=diff
> ============================================================
> ==================
> --- llvm/trunk/include/llvm/MC/MCDwarf.h (original)
> +++ llvm/trunk/include/llvm/MC/MCDwarf.h Mon Feb 13 18:33:36 2017
> @@ -16,24 +16,27 @@
>  #define LLVM_MC_MCDWARF_H
>
>  #include "llvm/ADT/MapVector.h"
> +#include "llvm/ADT/SmallVector.h"
>  #include "llvm/ADT/StringMap.h"
>  #include "llvm/ADT/StringRef.h"
>  #include "llvm/MC/MCSection.h"
> -#include "llvm/Support/Dwarf.h"
> +#include <cassert>
> +#include <cstdint>
>  #include <string>
>  #include <utility>
>  #include <vector>
>
>  namespace llvm {
> +
>  template <typename T> class ArrayRef;
> -class raw_ostream;
>  class MCAsmBackend;
>  class MCContext;
>  class MCObjectStreamer;
>  class MCStreamer;
>  class MCSymbol;
> -class SourceMgr;
> +class raw_ostream;
>  class SMLoc;
> +class SourceMgr;
>
>  /// \brief Instances of this class represent the name of the dwarf
>  /// .file directive and its associated dwarf file number in the MC file,
> @@ -71,6 +74,7 @@ class MCDwarfLoc {
>  private: // MCContext manages these
>    friend class MCContext;
>    friend class MCDwarfLineEntry;
> +
>    MCDwarfLoc(unsigned fileNum, unsigned line, unsigned column, unsigned
> flags,
>               unsigned isa, unsigned discriminator)
>        : FileNum(fileNum), Line(line), Column(column), Flags(flags),
> Isa(isa),
> @@ -194,13 +198,14 @@ struct MCDwarfLineTableParams {
>  };
>
>  struct MCDwarfLineTableHeader {
> -  MCSymbol *Label;
> +  MCSymbol *Label = nullptr;
>    SmallVector<std::string, 3> MCDwarfDirs;
>    SmallVector<MCDwarfFile, 3> MCDwarfFiles;
>    StringMap<unsigned> SourceIdMap;
>    StringRef CompilationDir;
>
> -  MCDwarfLineTableHeader() : Label(nullptr) {}
> +  MCDwarfLineTableHeader() = default;
> +
>    unsigned getFile(StringRef &Directory, StringRef &FileName,
>                     unsigned FileNumber = 0);
>    std::pair<MCSymbol *, MCSymbol *> Emit(MCStreamer *MCOS,
> @@ -212,13 +217,16 @@ struct MCDwarfLineTableHeader {
>
>  class MCDwarfDwoLineTable {
>    MCDwarfLineTableHeader Header;
> +
>  public:
>    void setCompilationDir(StringRef CompilationDir) {
>      Header.CompilationDir = CompilationDir;
>    }
> +
>    unsigned getFile(StringRef Directory, StringRef FileName) {
>      return Header.getFile(Directory, FileName);
>    }
> +
>    void Emit(MCStreamer &MCOS, MCDwarfLineTableParams Params) const;
>  };
>
> @@ -488,22 +496,19 @@ public:
>  };
>
>  struct MCDwarfFrameInfo {
> -  MCDwarfFrameInfo()
> -      : Begin(nullptr), End(nullptr), Personality(nullptr), Lsda(nullptr),
> -        Instructions(), CurrentCfaRegister(0), PersonalityEncoding(),
> -        LsdaEncoding(0), CompactUnwindEncoding(0), IsSignalFrame(false),
> -        IsSimple(false) {}
> -  MCSymbol *Begin;
> -  MCSymbol *End;
> -  const MCSymbol *Personality;
> -  const MCSymbol *Lsda;
> +  MCDwarfFrameInfo() = default;
> +
> +  MCSymbol *Begin = nullptr;
> +  MCSymbol *End = nullptr;
> +  const MCSymbol *Personality = nullptr;
> +  const MCSymbol *Lsda = nullptr;
>    std::vector<MCCFIInstruction> Instructions;
> -  unsigned CurrentCfaRegister;
> +  unsigned CurrentCfaRegister = 0;
>    unsigned PersonalityEncoding;
>

You forgot to initialize this to 0. IIUC default initialization (i.e.
leaving POD types as uninitializes is not done as long as the variable is
mentioned in the initializer list). Fixed in r295036.


> -  unsigned LsdaEncoding;
> -  uint32_t CompactUnwindEncoding;
> -  bool IsSignalFrame;
> -  bool IsSimple;
> +  unsigned LsdaEncoding = 0;
> +  uint32_t CompactUnwindEncoding = 0;
> +  bool IsSignalFrame = false;
> +  bool IsSimple = false;
>  };
>
>  class MCDwarfFrameEmitter {
> @@ -516,6 +521,7 @@ public:
>    static void EncodeAdvanceLoc(MCContext &Context, uint64_t AddrDelta,
>                                 raw_ostream &OS);
>  };
> +
>  } // end namespace llvm
>
> -#endif
> +#endif // LLVM_MC_MCDWARF_H
>
> Modified: llvm/trunk/include/llvm/MC/MCSectionELF.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/MC/MCSectionELF.h?rev=295009&r1=295008&r2=295009&view=diff
> ============================================================
> ==================
> --- llvm/trunk/include/llvm/MC/MCSectionELF.h (original)
> +++ llvm/trunk/include/llvm/MC/MCSectionELF.h Mon Feb 13 18:33:36 2017
> @@ -14,12 +14,10 @@
>  #ifndef LLVM_MC_MCSECTIONELF_H
>  #define LLVM_MC_MCSECTIONELF_H
>
> -#include "llvm/ADT/Twine.h"
> +#include "llvm/ADT/StringRef.h"
>  #include "llvm/MC/MCSection.h"
>  #include "llvm/MC/MCSymbolELF.h"
> -#include "llvm/Support/Debug.h"
> -#include "llvm/Support/ELF.h"
> -#include "llvm/Support/raw_ostream.h"
> +#include "llvm/MC/SectionKind.h"
>
>  namespace llvm {
>
> @@ -52,6 +50,7 @@ class MCSectionELF final : public MCSect
>
>  private:
>    friend class MCContext;
> +
>    MCSectionELF(StringRef Section, unsigned type, unsigned flags,
> SectionKind K,
>                 unsigned entrySize, const MCSymbolELF *group, unsigned
> UniqueID,
>                 MCSymbol *Begin, const MCSectionELF *Associated)
> @@ -96,4 +95,4 @@ public:
>
>  } // end namespace llvm
>
> -#endif
> +#endif // LLVM_MC_MCSECTIONELF_H
>
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/
> CodeGen/AsmPrinter/AsmPrinter.cpp?rev=295009&r1=295008&r2=295009&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp Mon Feb 13 18:33:36
> 2017
> @@ -11,48 +11,100 @@
>  //
>  //===-------------------------------------------------------
> ---------------===//
>
> -#include "llvm/CodeGen/AsmPrinter.h"
> +#include "AsmPrinterHandler.h"
>  #include "CodeViewDebug.h"
>  #include "DwarfDebug.h"
>  #include "DwarfException.h"
>  #include "WinException.h"
> +#include "llvm/ADT/APFloat.h"
> +#include "llvm/ADT/APInt.h"
> +#include "llvm/ADT/DenseMap.h"
> +#include "llvm/ADT/SmallPtrSet.h"
> +#include "llvm/ADT/SmallString.h"
> +#include "llvm/ADT/SmallVector.h"
>  #include "llvm/ADT/Statistic.h"
> +#include "llvm/ADT/STLExtras.h"
> +#include "llvm/ADT/StringRef.h"
> +#include "llvm/ADT/Triple.h"
> +#include "llvm/ADT/Twine.h"
>  #include "llvm/Analysis/ConstantFolding.h"
>  #include "llvm/CodeGen/Analysis.h"
> +#include "llvm/CodeGen/AsmPrinter.h"
> +#include "llvm/CodeGen/GCMetadata.h"
>  #include "llvm/CodeGen/GCMetadataPrinter.h"
> +#include "llvm/CodeGen/GCStrategy.h"
> +#include "llvm/CodeGen/MachineBasicBlock.h"
>  #include "llvm/CodeGen/MachineConstantPool.h"
>  #include "llvm/CodeGen/MachineFrameInfo.h"
>  #include "llvm/CodeGen/MachineFunction.h"
> +#include "llvm/CodeGen/MachineFunctionPass.h"
> +#include "llvm/CodeGen/MachineInstr.h"
>  #include "llvm/CodeGen/MachineInstrBundle.h"
>  #include "llvm/CodeGen/MachineJumpTableInfo.h"
>  #include "llvm/CodeGen/MachineLoopInfo.h"
> +#include "llvm/CodeGen/MachineMemOperand.h"
>  #include "llvm/CodeGen/MachineModuleInfoImpls.h"
> +#include "llvm/CodeGen/MachineOperand.h"
> +#include "llvm/IR/BasicBlock.h"
> +#include "llvm/IR/Constant.h"
> +#include "llvm/IR/Constants.h"
>  #include "llvm/IR/DataLayout.h"
> -#include "llvm/IR/DebugInfo.h"
> +#include "llvm/IR/DebugInfoMetadata.h"
> +#include "llvm/IR/DerivedTypes.h"
> +#include "llvm/IR/Function.h"
> +#include "llvm/IR/GlobalAlias.h"
> +#include "llvm/IR/GlobalIFunc.h"
> +#include "llvm/IR/GlobalIndirectSymbol.h"
> +#include "llvm/IR/GlobalObject.h"
> +#include "llvm/IR/GlobalValue.h"
> +#include "llvm/IR/GlobalVariable.h"
>  #include "llvm/IR/Mangler.h"
> +#include "llvm/IR/Metadata.h"
>  #include "llvm/IR/Module.h"
>  #include "llvm/IR/Operator.h"
> +#include "llvm/IR/Value.h"
>  #include "llvm/MC/MCAsmInfo.h"
>  #include "llvm/MC/MCContext.h"
> +#include "llvm/MC/MCDirectives.h"
>  #include "llvm/MC/MCExpr.h"
>  #include "llvm/MC/MCInst.h"
>  #include "llvm/MC/MCSection.h"
>  #include "llvm/MC/MCSectionELF.h"
>  #include "llvm/MC/MCSectionMachO.h"
>  #include "llvm/MC/MCStreamer.h"
> -#include "llvm/MC/MCSymbolELF.h"
> +#include "llvm/MC/MCSubtargetInfo.h"
> +#include "llvm/MC/MCSymbol.h"
> +#include "llvm/MC/MCTargetOptions.h"
>  #include "llvm/MC/MCValue.h"
> +#include "llvm/MC/SectionKind.h"
> +#include "llvm/Pass.h"
> +#include "llvm/Support/Casting.h"
> +#include "llvm/Support/Compiler.h"
> +#include "llvm/Support/Dwarf.h"
> +#include "llvm/Support/ELF.h"
>  #include "llvm/Support/ErrorHandling.h"
>  #include "llvm/Support/Format.h"
>  #include "llvm/Support/MathExtras.h"
> +#include "llvm/Support/raw_ostream.h"
>  #include "llvm/Support/TargetRegistry.h"
>  #include "llvm/Support/Timer.h"
>  #include "llvm/Target/TargetFrameLowering.h"
>  #include "llvm/Target/TargetInstrInfo.h"
>  #include "llvm/Target/TargetLowering.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 <cinttypes>
> +#include <cstdint>
> +#include <limits>
> +#include <memory>
> +#include <string>
> +#include <utility>
> +#include <vector>
> +
>  using namespace llvm;
>
>  #define DEBUG_TYPE "asm-printer"
> @@ -78,7 +130,6 @@ static gcp_map_type &getGCMap(void *&P)
>    return *(gcp_map_type*)P;
>  }
>
> -
>  /// getGVAlignmentLog2 - Return the alignment to use for the specified
> global
>  /// value in log2 form.  This rounds up to the preferred alignment if
> possible
>  /// and legal.
> @@ -107,16 +158,7 @@ static unsigned getGVAlignmentLog2(const
>
>  AsmPrinter::AsmPrinter(TargetMachine &tm, std::unique_ptr<MCStreamer>
> Streamer)
>      : MachineFunctionPass(ID), TM(tm), MAI(tm.getMCAsmInfo()),
> -      OutContext(Streamer->getContext()), OutStreamer(std::move(
> Streamer)),
> -      isCFIMoveForDebugging(false), LastMI(nullptr), LastFn(0),
> Counter(~0U) {
> -  DD = nullptr;
> -  MMI = nullptr;
> -  LI = nullptr;
> -  MF = nullptr;
> -  CurExceptionSym = CurrentFnSym = CurrentFnSymForSize = nullptr;
> -  CurrentFnBegin = nullptr;
> -  CurrentFnEnd = nullptr;
> -  GCMetadataPrinters = nullptr;
> +      OutContext(Streamer->getContext()), OutStreamer(std::move(Streamer))
> {
>    VerboseAsm = OutStreamer->isVerboseAsm();
>  }
>
> @@ -1238,7 +1280,7 @@ bool AsmPrinter::doFinalization(Module &
>          break;
>        AliasStack.push_back(Cur);
>      }
> -    for (const GlobalAlias *AncestorAlias : reverse(AliasStack))
> +    for (const GlobalAlias *AncestorAlias : llvm::reverse(AliasStack))
>        emitGlobalIndirectSymbol(M, *AncestorAlias);
>      AliasStack.clear();
>    }
> @@ -1316,14 +1358,17 @@ void AsmPrinter::SetupMachineFunction(Ma
>  }
>
>  namespace {
> +
>  // Keep track the alignment, constpool entries per Section.
>    struct SectionCPs {
>      MCSection *S;
>      unsigned Alignment;
>      SmallVector<unsigned, 4> CPEs;
> +
>      SectionCPs(MCSection *s, unsigned a) : S(s), Alignment(a) {}
>    };
> -}
> +
> +} // end anonymous namespace
>
>  /// EmitConstantPool - Print to the current output stream assembly
>  /// representations of the constants in the constant pool MCP. This is
> @@ -1547,7 +1592,6 @@ void AsmPrinter::EmitJumpTableEntry(cons
>    OutStreamer->EmitValue(Value, EntrySize);
>  }
>
> -
>  /// EmitSpecialLLVMGlobal - Check to see if the specified global is a
>  /// special global used by LLVM.  If so, emit it and return true,
> otherwise
>  /// do nothing and return false.
> @@ -1598,13 +1642,16 @@ void AsmPrinter::EmitLLVMUsedList(const
>  }
>
>  namespace {
> +
>  struct Structor {
> -  Structor() : Priority(0), Func(nullptr), ComdatKey(nullptr) {}
> -  int Priority;
> -  llvm::Constant *Func;
> -  llvm::GlobalValue *ComdatKey;
> +  int Priority = 0;
> +  Constant *Func = nullptr;
> +  GlobalValue *ComdatKey = nullptr;
> +
> +  Structor() = default;
>  };
> -} // end namespace
> +
> +}  // end anonymous namespace
>
>  /// EmitXXStructorList - Emit the ctor or dtor list taking into account
> the init
>  /// priority.
> @@ -1934,7 +1981,6 @@ static int isRepeatedByteSequence(const
>    return static_cast<uint8_t>(C); // Ensure 255 is not returned as -1.
>  }
>
> -
>  /// isRepeatedByteSequence - Determine whether the given value is
>  /// composed of a repeated sequence of identical bytes and return the
>  /// byte value.  If it is not a repeated sequence, return -1.
> @@ -1975,7 +2021,6 @@ static int isRepeatedByteSequence(const
>  static void emitGlobalConstantDataSequential(const DataLayout &DL,
>                                               const ConstantDataSequential
> *CDS,
>                                               AsmPrinter &AP) {
> -
>    // See if we can aggregate this into a .fill, if so, emit it as such.
>    int Value = isRepeatedByteSequence(CDS, DL);
>    if (Value != -1) {
> @@ -2009,7 +2054,6 @@ static void emitGlobalConstantDataSequen
>                          CDS->getNumElements();
>    if (unsigned Padding = Size - EmittedSize)
>      AP.OutStreamer->EmitZeros(Padding);
> -
>  }
>
>  static void emitGlobalConstantArray(const DataLayout &DL,
> @@ -2423,8 +2467,6 @@ MCSymbol *AsmPrinter::GetExternalSymbolS
>    return OutContext.getOrCreateSymbol(NameStr);
>  }
>
> -
> -
>  /// PrintParentLoopComment - Print comments about parent loops of this
> one.
>  static void PrintParentLoopComment(raw_ostream &OS, const MachineLoop
> *Loop,
>                                     unsigned FunctionNumber) {
> @@ -2489,7 +2531,6 @@ static void emitBasicBlockLoopComments(c
>    PrintChildLoopComment(OS, Loop, AP.getFunctionNumber());
>  }
>
> -
>  /// EmitBasicBlockStart - This method prints the label for the specified
>  /// MachineBasicBlock, an alignment (if present) and a comment describing
>  /// it if appropriate.
> @@ -2610,8 +2651,6 @@ isBlockOnlyReachableByFallthrough(const
>    return true;
>  }
>
> -
> -
>  GCMetadataPrinter *AsmPrinter::GetOrCreateGCPrinter(GCStrategy &S) {
>    if (!S.usesMetadata())
>      return nullptr;
> @@ -2642,7 +2681,7 @@ GCMetadataPrinter *AsmPrinter::GetOrCrea
>  }
>
>  /// Pin vtable to this file.
> -AsmPrinterHandler::~AsmPrinterHandler() {}
> +AsmPrinterHandler::~AsmPrinterHandler() = default;
>
>  void AsmPrinterHandler::markFunctionEnd() {}
>
>
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/
> CodeGen/AsmPrinter/ErlangGCPrinter.cpp?rev=295009&r1=295008&r2=295009&
> view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp Mon Feb 13
> 18:33:36 2017
> @@ -1,4 +1,4 @@
> -//===-- ErlangGCPrinter.cpp - Erlang/OTP frametable emitter -----*- C++
> -*-===//
> +//===- ErlangGCPrinter.cpp - Erlang/OTP frametable emitter
> ----------------===//
>  //
>  //                     The LLVM Compiler Infrastructure
>  //
> @@ -14,21 +14,19 @@
>  //===-------------------------------------------------------
> ---------------===//
>
>  #include "llvm/CodeGen/AsmPrinter.h"
> +#include "llvm/CodeGen/GCMetadata.h"
>  #include "llvm/CodeGen/GCMetadataPrinter.h"
> +#include "llvm/CodeGen/GCStrategy.h"
>  #include "llvm/CodeGen/GCs.h"
>  #include "llvm/IR/DataLayout.h"
>  #include "llvm/IR/Function.h"
> -#include "llvm/IR/Instruction.h"
> -#include "llvm/IR/IntrinsicInst.h"
> -#include "llvm/IR/Metadata.h"
> -#include "llvm/MC/MCAsmInfo.h"
> +#include "llvm/IR/Module.h"
>  #include "llvm/MC/MCContext.h"
>  #include "llvm/MC/MCSectionELF.h"
>  #include "llvm/MC/MCStreamer.h"
>  #include "llvm/MC/MCSymbol.h"
> -#include "llvm/Target/TargetLoweringObjectFile.h"
> -#include "llvm/Target/TargetMachine.h"
> -#include "llvm/Target/TargetSubtargetInfo.h"
> +#include "llvm/Target/TargetLoweringObjectFile.h"
> +#include "llvm/Support/ELF.h"
>
>  using namespace llvm;
>
> @@ -38,13 +36,12 @@ class ErlangGCPrinter : public GCMetadat
>  public:
>    void finishAssembly(Module &M, GCModuleInfo &Info, AsmPrinter &AP)
> override;
>  };
> -}
> +
> +} // end anonymous namespace
>
>  static GCMetadataPrinterRegistry::Add<ErlangGCPrinter>
>      X("erlang", "erlang-compatible garbage collector");
>
> -void llvm::linkErlangGCPrinter() {}
> -
>  void ErlangGCPrinter::finishAssembly(Module &M, GCModuleInfo &Info,
>                                       AsmPrinter &AP) {
>    MCStreamer &OS = *AP.OutStreamer;
> @@ -121,3 +118,5 @@ void ErlangGCPrinter::finishAssembly(Mod
>      }
>    }
>  }
> +
> +void llvm::linkErlangGCPrinter() {}
>
> Modified: llvm/trunk/lib/MC/MCContext.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/
> MCContext.cpp?rev=295009&r1=295008&r2=295009&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/MC/MCContext.cpp (original)
> +++ llvm/trunk/lib/MC/MCContext.cpp Mon Feb 13 18:33:36 2017
> @@ -7,30 +7,41 @@
>  //
>  //===-------------------------------------------------------
> ---------------===//
>
> -#include "llvm/MC/MCContext.h"
>  #include "llvm/ADT/SmallString.h"
> +#include "llvm/ADT/SmallVector.h"
> +#include "llvm/ADT/StringMap.h"
> +#include "llvm/ADT/StringRef.h"
>  #include "llvm/ADT/Twine.h"
>  #include "llvm/MC/MCAsmInfo.h"
> -#include "llvm/MC/MCAssembler.h"
>  #include "llvm/MC/MCCodeView.h"
> +#include "llvm/MC/MCContext.h"
>  #include "llvm/MC/MCDwarf.h"
> +#include "llvm/MC/MCExpr.h"
> +#include "llvm/MC/MCFragment.h"
>  #include "llvm/MC/MCLabel.h"
>  #include "llvm/MC/MCObjectFileInfo.h"
> -#include "llvm/MC/MCRegisterInfo.h"
>  #include "llvm/MC/MCSectionCOFF.h"
>  #include "llvm/MC/MCSectionELF.h"
>  #include "llvm/MC/MCSectionMachO.h"
>  #include "llvm/MC/MCStreamer.h"
> +#include "llvm/MC/MCSymbol.h"
>  #include "llvm/MC/MCSymbolCOFF.h"
>  #include "llvm/MC/MCSymbolELF.h"
>  #include "llvm/MC/MCSymbolMachO.h"
> +#include "llvm/MC/SectionKind.h"
> +#include "llvm/Support/Casting.h"
>  #include "llvm/Support/COFF.h"
>  #include "llvm/Support/CommandLine.h"
>  #include "llvm/Support/ELF.h"
>  #include "llvm/Support/ErrorHandling.h"
>  #include "llvm/Support/MemoryBuffer.h"
> +#include "llvm/Support/raw_ostream.h"
>  #include "llvm/Support/Signals.h"
>  #include "llvm/Support/SourceMgr.h"
> +#include <cassert>
> +#include <cstdlib>
> +#include <tuple>
> +#include <utility>
>
>  using namespace llvm;
>
> @@ -40,19 +51,13 @@ AsSecureLogFileName("as-secure-log-file-
>                   "AS_SECURE_LOG_FILE env variable)"),
>          cl::init(getenv("AS_SECURE_LOG_FILE")), cl::Hidden);
>
> -
>  MCContext::MCContext(const MCAsmInfo *mai, const MCRegisterInfo *mri,
>                       const MCObjectFileInfo *mofi, const SourceMgr *mgr,
>                       bool DoAutoReset)
> -    : SrcMgr(mgr), MAI(mai), MRI(mri), MOFI(mofi), Allocator(),
> -      Symbols(Allocator), UsedNames(Allocator),
> -      CurrentDwarfLoc(0, 0, 0, DWARF2_FLAG_IS_STMT, 0, 0),
> DwarfLocSeen(false),
> -      GenDwarfForAssembly(false), GenDwarfFileNumber(0), DwarfVersion(4),
> -      AllowTemporaryLabels(true), DwarfCompileUnitID(0),
> -      AutoReset(DoAutoReset), HadError(false) {
> +    : SrcMgr(mgr), MAI(mai), MRI(mri), MOFI(mofi), Symbols(Allocator),
> +      UsedNames(Allocator), CurrentDwarfLoc(0, 0, 0, DWARF2_FLAG_IS_STMT,
> 0, 0),
> +      AutoReset(DoAutoReset) {
>    SecureLogFile = AsSecureLogFileName;
> -  SecureLog = nullptr;
> -  SecureLogUsed = false;
>
>    if (SrcMgr && SrcMgr->getNumBuffers())
>      MainFileName =
> @@ -169,7 +174,7 @@ MCSymbol *MCContext::createSymbol(String
>    SmallString<128> NewName = Name;
>    bool AddSuffix = AlwaysAddSuffix;
>    unsigned &NextUniqueID = NextID[Name];
> -  for (;;) {
> +  while (true) {
>      if (AddSuffix) {
>        NewName.resize(Name.size());
>        raw_svector_ostream(NewName) << NextUniqueID++;
> @@ -262,7 +267,6 @@ MCSectionMachO *MCContext::getMachOSecti
>                                             unsigned TypeAndAttributes,
>                                             unsigned Reserved2,
> SectionKind Kind,
>                                             const char *BeginSymName) {
> -
>    // We unique sections by their segment/section pair.  The returned
> section
>    // may not have the same flags as the requested section, if so this
> should be
>    // diagnosed by the client as an error.
> @@ -309,7 +313,6 @@ MCSectionELF *MCContext::createELFSectio
>                                                const MCSymbolELF *Group,
>                                                unsigned UniqueID,
>                                                const MCSectionELF
> *Associated) {
> -
>    MCSymbolELF *R;
>    MCSymbol *&Sym = Symbols[Section];
>    if (Sym && Sym->isUndefined()) {
>
> Modified: llvm/trunk/lib/MC/MCDwarf.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/
> MCDwarf.cpp?rev=295009&r1=295008&r2=295009&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/MC/MCDwarf.cpp (original)
> +++ llvm/trunk/lib/MC/MCDwarf.cpp Mon Feb 13 18:33:36 2017
> @@ -7,27 +7,41 @@
>  //
>  //===-------------------------------------------------------
> ---------------===//
>
> -#include "llvm/MC/MCDwarf.h"
> +#include "llvm/ADT/ArrayRef.h"
> +#include "llvm/ADT/DenseMap.h"
>  #include "llvm/ADT/Hashing.h"
> -#include "llvm/ADT/STLExtras.h"
> +#include "llvm/ADT/None.h"
>  #include "llvm/ADT/SmallString.h"
> +#include "llvm/ADT/SmallVector.h"
> +#include "llvm/ADT/STLExtras.h"
> +#include "llvm/ADT/StringRef.h"
>  #include "llvm/ADT/Twine.h"
>  #include "llvm/Config/config.h"
>  #include "llvm/MC/MCAsmInfo.h"
>  #include "llvm/MC/MCContext.h"
> +#include "llvm/MC/MCDwarf.h"
>  #include "llvm/MC/MCExpr.h"
>  #include "llvm/MC/MCObjectFileInfo.h"
>  #include "llvm/MC/MCObjectStreamer.h"
>  #include "llvm/MC/MCRegisterInfo.h"
>  #include "llvm/MC/MCSection.h"
> +#include "llvm/MC/MCStreamer.h"
>  #include "llvm/MC/MCSymbol.h"
> -#include "llvm/Support/Debug.h"
> +#include "llvm/Support/Casting.h"
> +#include "llvm/Support/Dwarf.h"
> +#include "llvm/Support/Endian.h"
>  #include "llvm/Support/EndianStream.h"
>  #include "llvm/Support/ErrorHandling.h"
>  #include "llvm/Support/LEB128.h"
> +#include "llvm/Support/MathExtras.h"
>  #include "llvm/Support/Path.h"
>  #include "llvm/Support/SourceMgr.h"
>  #include "llvm/Support/raw_ostream.h"
> +#include <cassert>
> +#include <cstdint>
> +#include <string>
> +#include <utility>
> +#include <vector>
>
>  using namespace llvm;
>
> @@ -592,7 +606,6 @@ static void EmitGenDwarfAranges(MCStream
>    // And the pair of terminating zeros.
>    Length += 2 * AddrSize;
>
> -
>    // Emit the header for this section.
>    // The 4 byte length not including the 4 byte value for the length.
>    MCOS->EmitIntValue(Length - 4, 4);
> @@ -885,7 +898,7 @@ void MCGenDwarfInfo::Emit(MCStreamer *MC
>      }
>    }
>
> -  assert((RangesSectionSymbol != NULL) || !UseRangesSection);
> +  assert((RangesSectionSymbol != nullptr) || !UseRangesSection);
>
>    MCOS->SwitchSection(context.getObjectFileInfo()->
> getDwarfARangesSection());
>
> @@ -1003,6 +1016,7 @@ static void EmitPersonality(MCStreamer &
>  }
>
>  namespace {
> +
>  class FrameEmitterImpl {
>    int CFAOffset = 0;
>    int InitialCFAOffset = 0;
> @@ -1050,10 +1064,10 @@ void FrameEmitterImpl::EmitCFIInstructio
>      Streamer.EmitULEB128IntValue(Reg2);
>      return;
>    }
> -  case MCCFIInstruction::OpWindowSave: {
> +  case MCCFIInstruction::OpWindowSave:
>      Streamer.EmitIntValue(dwarf::DW_CFA_GNU_window_save, 1);
>      return;
> -  }
> +
>    case MCCFIInstruction::OpUndefined: {
>      unsigned Reg = Instr.getRegister();
>      Streamer.EmitIntValue(dwarf::DW_CFA_undefined, 1);
> @@ -1087,7 +1101,6 @@ void FrameEmitterImpl::EmitCFIInstructio
>
>      return;
>    }
> -
>    case MCCFIInstruction::OpDefCfaRegister: {
>      unsigned Reg = Instr.getRegister();
>      if (!IsEH)
> @@ -1097,7 +1110,6 @@ void FrameEmitterImpl::EmitCFIInstructio
>
>      return;
>    }
> -
>    case MCCFIInstruction::OpOffset:
>    case MCCFIInstruction::OpRelOffset: {
>      const bool IsRelative =
> @@ -1145,11 +1157,11 @@ void FrameEmitterImpl::EmitCFIInstructio
>      Streamer.EmitIntValue(dwarf::DW_CFA_restore | Reg, 1);
>      return;
>    }
> -  case MCCFIInstruction::OpGnuArgsSize: {
> +  case MCCFIInstruction::OpGnuArgsSize:
>      Streamer.EmitIntValue(dwarf::DW_CFA_GNU_args_size, 1);
>      Streamer.EmitULEB128IntValue(Instr.getOffset());
>      return;
> -  }
> +
>    case MCCFIInstruction::OpEscape:
>      Streamer.EmitBytes(Instr.getValues());
>      return;
> @@ -1444,10 +1456,12 @@ void FrameEmitterImpl::EmitFDE(const MCS
>  }
>
>  namespace {
> +
>  struct CIEKey {
>    static const CIEKey getEmptyKey() {
>      return CIEKey(nullptr, 0, -1, false, false);
>    }
> +
>    static const CIEKey getTombstoneKey() {
>      return CIEKey(nullptr, -1, 0, false, false);
>    }
> @@ -1457,23 +1471,28 @@ struct CIEKey {
>        : Personality(Personality), PersonalityEncoding(
> PersonalityEncoding),
>          LsdaEncoding(LsdaEncoding), IsSignalFrame(IsSignalFrame),
>          IsSimple(IsSimple) {}
> +
>    const MCSymbol *Personality;
>    unsigned PersonalityEncoding;
>    unsigned LsdaEncoding;
>    bool IsSignalFrame;
>    bool IsSimple;
>  };
> -} // anonymous namespace
> +
> +} // end anonymous namespace
>
>  namespace llvm {
> +
>  template <> struct DenseMapInfo<CIEKey> {
>    static CIEKey getEmptyKey() { return CIEKey::getEmptyKey(); }
>    static CIEKey getTombstoneKey() { return CIEKey::getTombstoneKey(); }
> +
>    static unsigned getHashValue(const CIEKey &Key) {
>      return static_cast<unsigned>(
>          hash_combine(Key.Personality, Key.PersonalityEncoding,
> Key.LsdaEncoding,
>                       Key.IsSignalFrame, Key.IsSimple));
>    }
> +
>    static bool isEqual(const CIEKey &LHS, const CIEKey &RHS) {
>      return LHS.Personality == RHS.Personality &&
>             LHS.PersonalityEncoding == RHS.PersonalityEncoding &&
> @@ -1482,7 +1501,8 @@ template <> struct DenseMapInfo<CIEKey>
>             LHS.IsSimple == RHS.IsSimple;
>    }
>  };
> -} // namespace llvm
> +
> +} // end namespace llvm
>
>  void MCDwarfFrameEmitter::Emit(MCObjectStreamer &Streamer, MCAsmBackend
> *MAB,
>                                 bool IsEH) {
>
> Modified: llvm/trunk/lib/MC/MCObjectFileInfo.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/
> MCObjectFileInfo.cpp?rev=295009&r1=295008&r2=295009&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/MC/MCObjectFileInfo.cpp (original)
> +++ llvm/trunk/lib/MC/MCObjectFileInfo.cpp Mon Feb 13 18:33:36 2017
> @@ -17,6 +17,7 @@
>  #include "llvm/MC/MCSectionELF.h"
>  #include "llvm/MC/MCSectionMachO.h"
>  #include "llvm/Support/COFF.h"
> +#include "llvm/Support/ELF.h"
>
>  using namespace llvm;
>
>
> Modified: llvm/trunk/lib/MC/MCSectionELF.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/
> MCSectionELF.cpp?rev=295009&r1=295008&r2=295009&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/MC/MCSectionELF.cpp (original)
> +++ llvm/trunk/lib/MC/MCSectionELF.cpp Mon Feb 13 18:33:36 2017
> @@ -7,23 +7,22 @@
>  //
>  //===-------------------------------------------------------
> ---------------===//
>
> -#include "llvm/MC/MCSectionELF.h"
> +#include "llvm/ADT/Triple.h"
>  #include "llvm/MC/MCAsmInfo.h"
> -#include "llvm/MC/MCContext.h"
>  #include "llvm/MC/MCExpr.h"
> -#include "llvm/MC/MCSymbol.h"
> +#include "llvm/MC/MCSectionELF.h"
>  #include "llvm/Support/ELF.h"
>  #include "llvm/Support/raw_ostream.h"
> +#include <cassert>
>
>  using namespace llvm;
>
> -MCSectionELF::~MCSectionELF() {} // anchor.
> +MCSectionELF::~MCSectionELF() = default; // anchor.
>
>  // Decides whether a '.section' directive
>  // should be printed before the section name.
>  bool MCSectionELF::ShouldOmitSectionDirective(StringRef Name,
>                                                const MCAsmInfo &MAI) const
> {
> -
>    if (isUnique())
>      return false;
>
> @@ -56,7 +55,6 @@ static void printName(raw_ostream &OS, S
>  void MCSectionELF::PrintSwitchToSection(const MCAsmInfo &MAI, const
> Triple &T,
>                                          raw_ostream &OS,
>                                          const MCExpr *Subsection) const {
> -
>    if (ShouldOmitSectionDirective(SectionName, MAI)) {
>      OS << '\t' << getSectionName();
>      if (Subsection) {
>
> Modified: llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
> AMDGPU/Utils/AMDGPUBaseInfo.cpp?rev=295009&r1=295008&r2=295009&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp (original)
> +++ llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp Mon Feb 13
> 18:33:36 2017
> @@ -1,4 +1,4 @@
> -//===-- AMDGPUBaseInfo.cpp - AMDGPU Base encoding
> information--------------===//
> +//===- AMDGPUBaseInfo.cpp - AMDGPU Base encoding information
> --------------===//
>  //
>  //                     The LLVM Compiler Infrastructure
>  //
> @@ -6,20 +6,34 @@
>  // License. See LICENSE.TXT for details.
>  //
>  //===-------------------------------------------------------
> ---------------===//
> -#include "AMDGPUBaseInfo.h"
> +
>  #include "AMDGPU.h"
> +#include "AMDGPUBaseInfo.h"
>  #include "SIDefines.h"
> +#include "llvm/ADT/StringRef.h"
> +#include "llvm/ADT/Triple.h"
>  #include "llvm/CodeGen/MachineMemOperand.h"
> +#include "llvm/IR/Attributes.h"
>  #include "llvm/IR/Constants.h"
>  #include "llvm/IR/Function.h"
>  #include "llvm/IR/GlobalValue.h"
> +#include "llvm/IR/Instruction.h"
>  #include "llvm/IR/LLVMContext.h"
>  #include "llvm/MC/MCContext.h"
> -#include "llvm/MC/MCInstrInfo.h"
> +#include "llvm/MC/MCInstrDesc.h"
>  #include "llvm/MC/MCRegisterInfo.h"
>  #include "llvm/MC/MCSectionELF.h"
>  #include "llvm/MC/MCSubtargetInfo.h"
>  #include "llvm/MC/SubtargetFeature.h"
> +#include "llvm/Support/Casting.h"
> +#include "llvm/Support/ELF.h"
> +#include "llvm/Support/ErrorHandling.h"
> +#include "llvm/Support/MathExtras.h"
> +#include <algorithm>
> +#include <cassert>
> +#include <cstdint>
> +#include <cstring>
> +#include <utility>
>
>  #define GET_SUBTARGETINFO_ENUM
>  #include "AMDGPUGenSubtargetInfo.inc"
> @@ -76,7 +90,7 @@ unsigned getLgkmcntBitShift() { return 8
>  /// \returns Lgkmcnt bit width.
>  unsigned getLgkmcntBitWidth() { return 4; }
>
> -} // namespace anonymous
> +} // end namespace anonymous
>
>  namespace llvm {
>  namespace AMDGPU {
> @@ -268,7 +282,7 @@ unsigned getMaxNumVGPRs(const FeatureBit
>    return std::min(MaxNumVGPRs, AddressableNumVGPRs);
>  }
>
> -} // namespace IsaInfo
> +} // end namespace IsaInfo
>
>  void initDefaultAMDKernelCodeT(amd_kernel_code_t &Header,
>                                 const FeatureBitset &Features) {
> @@ -371,7 +385,7 @@ std::pair<int, int> getIntegerPairAttrib
>      return Default;
>    }
>    if (Strs.second.trim().getAsInteger(0, Ints.second)) {
> -    if (!OnlyFirstRequired || Strs.second.trim().size()) {
> +    if (!OnlyFirstRequired || !Strs.second.trim().empty()) {
>        Ctx.emitError("can't parse second integer attribute " + Name);
>        return Default;
>      }
> @@ -655,5 +669,5 @@ bool isLegalSMRDImmOffset(const MCSubtar
>                                  isUInt<20>(EncodedOffset);
>  }
>
> -} // End namespace AMDGPU
> -} // End namespace llvm
> +} // end namespace AMDGPU
> +} // end namespace llvm
>
> Modified: llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
> AMDGPU/Utils/AMDGPUBaseInfo.h?rev=295009&r1=295008&r2=295009&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h (original)
> +++ llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h Mon Feb 13
> 18:33:36 2017
> @@ -1,4 +1,4 @@
> -//===-- AMDGPUBaseInfo.h - Top level definitions for AMDGPU -----*- C++
> -*-===//
> +//===- AMDGPUBaseInfo.h - Top level definitions for AMDGPU ------*- C++
> -*-===//
>  //
>  //                     The LLVM Compiler Infrastructure
>  //
> @@ -11,9 +11,14 @@
>  #define LLVM_LIB_TARGET_AMDGPU_UTILS_AMDGPUBASEINFO_H
>
>  #include "AMDKernelCodeT.h"
> -#include "llvm/IR/CallingConv.h"
> -
>  #include "SIDefines.h"
> +#include "llvm/ADT/StringRef.h"
> +#include "llvm/IR/CallingConv.h"
> +#include "llvm/MC/MCInstrDesc.h"
> +#include "llvm/Support/Compiler.h"
> +#include "llvm/Support/ErrorHandling.h"
> +#include <cstdint>
> +#include <utility>
>
>  #define GET_INSTRINFO_OPERAND_ENUM
>  #include "AMDGPUGenInstrInfo.inc"
> @@ -26,14 +31,13 @@ class Function;
>  class GlobalValue;
>  class MachineMemOperand;
>  class MCContext;
> -class MCInstrDesc;
>  class MCRegisterClass;
>  class MCRegisterInfo;
>  class MCSection;
>  class MCSubtargetInfo;
> +class Triple;
>
>  namespace AMDGPU {
> -
>  namespace IsaInfo {
>
>  enum {
> @@ -141,7 +145,7 @@ unsigned getMinNumVGPRs(const FeatureBit
>  /// execution unit requirement for given subtarget \p Features.
>  unsigned getMaxNumVGPRs(const FeatureBitset &Features, unsigned
> WavesPerEU);
>
> -} // namespace IsaInfo
> +} // end namespace IsaInfo
>
>  LLVM_READONLY
>  int16_t getNamedOperandIdx(uint16_t Opcode, uint16_t NamedIdx);
> @@ -330,4 +334,4 @@ bool isLegalSMRDImmOffset(const MCSubtar
>  } // end namespace AMDGPU
>  } // end namespace llvm
>
> -#endif
> +#endif // LLVM_LIB_TARGET_AMDGPU_UTILS_AMDGPUBASEINFO_H
>
> Modified: llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
> Mips/MCTargetDesc/MipsOptionRecord.cpp?rev=295009&r1=295008&r2=295009&
> view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp
> (original)
> +++ llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp Mon Feb
> 13 18:33:36 2017
> @@ -1,4 +1,4 @@
> -//===-- MipsOptionRecord.cpp - Abstraction for storing information
> --------===//
> +//===- MipsOptionRecord.cpp - Abstraction for storing information
> ---------===//
>  //
>  //                     The LLVM Compiler Infrastructure
>  //
> @@ -7,10 +7,16 @@
>  //
>  //===-------------------------------------------------------
> ---------------===//
>
> -#include "MipsOptionRecord.h"
> +#include "MipsABIInfo.h"
>  #include "MipsELFStreamer.h"
> +#include "MipsOptionRecord.h"
>  #include "MipsTargetStreamer.h"
> +#include "llvm/MC/MCAssembler.h"
> +#include "llvm/MC/MCContext.h"
> +#include "llvm/MC/MCRegisterInfo.h"
>  #include "llvm/MC/MCSectionELF.h"
> +#include "llvm/Support/ELF.h"
> +#include <cassert>
>
>  using namespace llvm;
>
>
> Modified: llvm/trunk/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
> Sparc/MCTargetDesc/SparcMCAsmInfo.cpp?rev=295009&
> r1=295008&r2=295009&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.cpp (original)
> +++ llvm/trunk/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.cpp Mon Feb
> 13 18:33:36 2017
> @@ -1,4 +1,4 @@
> -//===-- SparcMCAsmInfo.cpp - Sparc asm properties
> -------------------------===//
> +//===- SparcMCAsmInfo.cpp - Sparc asm properties
> --------------------------===//
>  //
>  //                     The LLVM Compiler Infrastructure
>  //
> @@ -14,7 +14,10 @@
>  #include "SparcMCAsmInfo.h"
>  #include "SparcMCExpr.h"
>  #include "llvm/ADT/Triple.h"
> +#include "llvm/MC/MCExpr.h"
>  #include "llvm/MC/MCStreamer.h"
> +#include "llvm/MC/MCTargetOptions.h"
> +#include "llvm/Support/Dwarf.h"
>
>  using namespace llvm;
>
>
> Modified: llvm/trunk/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
> Sparc/MCTargetDesc/SparcMCAsmInfo.h?rev=295009&
> r1=295008&r2=295009&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.h (original)
> +++ llvm/trunk/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.h Mon Feb 13
> 18:33:36 2017
> @@ -1,4 +1,4 @@
> -//===-- SparcMCAsmInfo.h - Sparc asm properties ----------------*- C++
> -*--===//
> +//===- SparcMCAsmInfo.h - Sparc asm properties -----------------*- C++
> -*--===//
>  //
>  //                     The LLVM Compiler Infrastructure
>  //
> @@ -17,6 +17,7 @@
>  #include "llvm/MC/MCAsmInfoELF.h"
>
>  namespace llvm {
> +
>  class Triple;
>
>  class SparcELFMCAsmInfo : public MCAsmInfoELF {
> @@ -24,6 +25,7 @@ class SparcELFMCAsmInfo : public MCAsmIn
>
>  public:
>    explicit SparcELFMCAsmInfo(const Triple &TheTriple);
> +
>    const MCExpr*
>    getExprForPersonalitySymbol(const MCSymbol *Sym, unsigned Encoding,
>                                MCStreamer &Streamer) const override;
> @@ -33,6 +35,6 @@ public:
>
>  };
>
> -} // namespace llvm
> +} // end namespace llvm
>
> -#endif
> +#endif // LLVM_LIB_TARGET_SPARC_MCTARGETDESC_SPARCMCASMINFO_H
>
>
> _______________________________________________
> 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/20170214/1b792637/attachment-0001.html>


More information about the llvm-commits mailing list