[llvm] r307362 - [TableGen] Use StringRef instead of std::string for CodeGenInstruction namespace. NFC

David Blaikie via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 10 11:47:30 PDT 2017


On Thu, Jul 6, 2017 at 11:22 PM Craig Topper via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: ctopper
> Date: Thu Jul  6 23:22:35 2017
> New Revision: 307362
>
> URL: http://llvm.org/viewvc/llvm-project?rev=307362&view=rev
> Log:
> [TableGen] Use StringRef instead of std::string for CodeGenInstruction
> namespace. NFC
>
> Modified:
>     llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp
>     llvm/trunk/utils/TableGen/CodeGenInstruction.h
>     llvm/trunk/utils/TableGen/CodeGenMapTable.cpp
>     llvm/trunk/utils/TableGen/CodeGenTarget.cpp
>     llvm/trunk/utils/TableGen/CodeGenTarget.h
>     llvm/trunk/utils/TableGen/DAGISelMatcherGen.cpp
>     llvm/trunk/utils/TableGen/FastISelEmitter.cpp
>     llvm/trunk/utils/TableGen/InstrInfoEmitter.cpp
>
> Modified: llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp?rev=307362&r1=307361&r2=307362&view=diff
>
> ==============================================================================
> --- llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp (original)
> +++ llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp Thu Jul  6 23:22:35 2017
> @@ -137,12 +137,12 @@ static void EmitInstructions(std::vector
>        O << "    switch (MI->getOpcode()) {\n";
>        O << "    default: llvm_unreachable(\"Unexpected opcode.\");\n";
>        std::vector<std::pair<std::string, AsmWriterOperand>> OpsToPrint;
> -      OpsToPrint.push_back(std::make_pair(FirstInst.CGI->Namespace + "::"
> +
> +      OpsToPrint.push_back(std::make_pair(FirstInst.CGI->Namespace.str()
> + "::" +
>
>  FirstInst.CGI->TheDef->getName().str(),
>

Might be marginally more efficient to do (x + y + z).str() rather than
x.str() + y.str() ?


>                                            FirstInst.Operands[i]));
>
>        for (const AsmWriterInst &AWI : SimilarInsts) {
> -        OpsToPrint.push_back(std::make_pair(AWI.CGI->Namespace+"::" +
> +        OpsToPrint.push_back(std::make_pair(AWI.CGI->Namespace.str()+"::"
> +
>
>  AWI.CGI->TheDef->getName().str(),
>                                              AWI.Operands[i]));
>        }
>
> Modified: llvm/trunk/utils/TableGen/CodeGenInstruction.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/CodeGenInstruction.h?rev=307362&r1=307361&r2=307362&view=diff
>
> ==============================================================================
> --- llvm/trunk/utils/TableGen/CodeGenInstruction.h (original)
> +++ llvm/trunk/utils/TableGen/CodeGenInstruction.h Thu Jul  6 23:22:35 2017
> @@ -206,7 +206,7 @@ template <typename T> class ArrayRef;
>    class CodeGenInstruction {
>    public:
>      Record *TheDef;            // The actual record defining this
> instruction.
> -    std::string Namespace;     // The namespace the instruction is in.
> +    StringRef Namespace;       // The namespace the instruction is in.
>
>      /// AsmString - The format string used to emit a .s file for the
>      /// instruction.
>
> Modified: llvm/trunk/utils/TableGen/CodeGenMapTable.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/CodeGenMapTable.cpp?rev=307362&r1=307361&r2=307362&view=diff
>
> ==============================================================================
> --- llvm/trunk/utils/TableGen/CodeGenMapTable.cpp (original)
> +++ llvm/trunk/utils/TableGen/CodeGenMapTable.cpp Thu Jul  6 23:22:35 2017
> @@ -367,7 +367,7 @@ unsigned MapTableEmitter::emitBinSearchT
>
>    ArrayRef<const CodeGenInstruction*> NumberedInstructions =
>
>  Target.getInstructionsByEnumValue();
> -  std::string Namespace = Target.getInstNamespace();
> +  StringRef Namespace = Target.getInstNamespace();
>    const std::vector<ListInit*> &ValueCols = InstrMapDesc.getValueCols();
>    unsigned NumCol = ValueCols.size();
>    unsigned TotalNumInstr = NumberedInstructions.size();
> @@ -567,7 +567,7 @@ namespace llvm {
>
>  //===----------------------------------------------------------------------===//
>  void EmitMapTable(RecordKeeper &Records, raw_ostream &OS) {
>    CodeGenTarget Target(Records);
> -  std::string NameSpace = Target.getInstNamespace();
> +  StringRef NameSpace = Target.getInstNamespace();
>    std::vector<Record*> InstrMapVec;
>    InstrMapVec = Records.getAllDerivedDefinitions("InstrMapping");
>
>
> Modified: llvm/trunk/utils/TableGen/CodeGenTarget.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/CodeGenTarget.cpp?rev=307362&r1=307361&r2=307362&view=diff
>
> ==============================================================================
> --- llvm/trunk/utils/TableGen/CodeGenTarget.cpp (original)
> +++ llvm/trunk/utils/TableGen/CodeGenTarget.cpp Thu Jul  6 23:22:35 2017
> @@ -207,7 +207,7 @@ const StringRef CodeGenTarget::getName()
>    return TargetRec->getName();
>  }
>
> -std::string CodeGenTarget::getInstNamespace() const {
> +StringRef CodeGenTarget::getInstNamespace() const {
>    for (const CodeGenInstruction *Inst : getInstructionsByEnumValue()) {
>      // Make sure not to pick up "TargetOpcode" by accidentally getting
>      // the namespace off the PHI instruction or something.
>
> Modified: llvm/trunk/utils/TableGen/CodeGenTarget.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/CodeGenTarget.h?rev=307362&r1=307361&r2=307362&view=diff
>
> ==============================================================================
> --- llvm/trunk/utils/TableGen/CodeGenTarget.h (original)
> +++ llvm/trunk/utils/TableGen/CodeGenTarget.h Thu Jul  6 23:22:35 2017
> @@ -86,7 +86,7 @@ public:
>
>    /// getInstNamespace - Return the target-specific instruction namespace.
>    ///
> -  std::string getInstNamespace() const;
> +  StringRef getInstNamespace() const;
>
>    /// getInstructionSet - Return the InstructionSet object.
>    ///
>
> Modified: llvm/trunk/utils/TableGen/DAGISelMatcherGen.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/DAGISelMatcherGen.cpp?rev=307362&r1=307361&r2=307362&view=diff
>
> ==============================================================================
> --- llvm/trunk/utils/TableGen/DAGISelMatcherGen.cpp (original)
> +++ llvm/trunk/utils/TableGen/DAGISelMatcherGen.cpp Thu Jul  6 23:22:35
> 2017
> @@ -886,7 +886,7 @@ EmitResultInstructionAsOperand(const Tre
>    assert((!ResultVTs.empty() || TreeHasOutGlue || NodeHasChain) &&
>           "Node has no result");
>
> -  AddMatcher(new
> EmitNodeMatcher(II.Namespace+"::"+II.TheDef->getName().str(),
> +  AddMatcher(new
> EmitNodeMatcher(II.Namespace.str()+"::"+II.TheDef->getName().str(),
>                                   ResultVTs, InstOps,
>                                   NodeHasChain, TreeHasInGlue,
> TreeHasOutGlue,
>                                   NodeHasMemRefs, NumFixedArityOperands,
>
> Modified: llvm/trunk/utils/TableGen/FastISelEmitter.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/FastISelEmitter.cpp?rev=307362&r1=307361&r2=307362&view=diff
>
> ==============================================================================
> --- llvm/trunk/utils/TableGen/FastISelEmitter.cpp (original)
> +++ llvm/trunk/utils/TableGen/FastISelEmitter.cpp Thu Jul  6 23:22:35 2017
> @@ -441,7 +441,7 @@ void FastISelMap::collectPatterns(CodeGe
>    const CodeGenTarget &Target = CGP.getTargetInfo();
>
>    // Determine the target's namespace name.
> -  InstNS = Target.getInstNamespace() + "::";
> +  InstNS = Target.getInstNamespace().str() + "::";
>    assert(InstNS.size() > 2 && "Can't determine target-specific
> namespace!");
>
>    // Scan through all the patterns and record the simple ones.
> @@ -873,7 +873,7 @@ void EmitFastISel(RecordKeeper &RK, raw_
>                         Target.getName().str() + " target", OS);
>
>    // Determine the target's namespace name.
> -  std::string InstNS = Target.getInstNamespace() + "::";
> +  std::string InstNS = Target.getInstNamespace().str() + "::";
>    assert(InstNS.size() > 2 && "Can't determine target-specific
> namespace!");
>
>    FastISelMap F(InstNS);
>
> Modified: llvm/trunk/utils/TableGen/InstrInfoEmitter.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/InstrInfoEmitter.cpp?rev=307362&r1=307361&r2=307362&view=diff
>
> ==============================================================================
> --- llvm/trunk/utils/TableGen/InstrInfoEmitter.cpp (original)
> +++ llvm/trunk/utils/TableGen/InstrInfoEmitter.cpp Thu Jul  6 23:22:35 2017
> @@ -67,7 +67,7 @@ private:
>    void emitOperandTypesEnum(raw_ostream &OS, const CodeGenTarget &Target);
>    void initOperandMapData(
>              ArrayRef<const CodeGenInstruction *> NumberedInstructions,
> -            const std::string &Namespace,
> +            StringRef Namespace,
>              std::map<std::string, unsigned> &Operands,
>              OpNameMapTy &OperandMap);
>    void emitOperandNameMappings(raw_ostream &OS, const CodeGenTarget
> &Target,
> @@ -207,7 +207,7 @@ void InstrInfoEmitter::EmitOperandInfo(r
>  ///        well as the getNamedOperandIdx() function.
>  void InstrInfoEmitter::initOperandMapData(
>          ArrayRef<const CodeGenInstruction *> NumberedInstructions,
> -        const std::string &Namespace,
> +        StringRef Namespace,
>          std::map<std::string, unsigned> &Operands,
>          OpNameMapTy &OperandMap) {
>    unsigned NumOperands = 0;
> @@ -224,7 +224,7 @@ void InstrInfoEmitter::initOperandMapDat
>        }
>        OpList[I->second] = Info.MIOperandNo;
>      }
> -    OperandMap[OpList].push_back(Namespace + "::" +
> +    OperandMap[OpList].push_back(Namespace.str() + "::" +
>                                   Inst->TheDef->getName().str());
>    }
>  }
> @@ -243,7 +243,7 @@ void InstrInfoEmitter::initOperandMapDat
>  void InstrInfoEmitter::emitOperandNameMappings(raw_ostream &OS,
>             const CodeGenTarget &Target,
>             ArrayRef<const CodeGenInstruction*> NumberedInstructions) {
> -  const std::string &Namespace = Target.getInstNamespace();
> +  StringRef Namespace = Target.getInstNamespace();
>    std::string OpNameNS = "OpName";
>    // Map of operand names to their enumeration value.  This will be used
> to
>    // generate the OpName enum.
> @@ -315,7 +315,7 @@ void InstrInfoEmitter::emitOperandNameMa
>  void InstrInfoEmitter::emitOperandTypesEnum(raw_ostream &OS,
>                                              const CodeGenTarget &Target) {
>
> -  const std::string &Namespace = Target.getInstNamespace();
> +  StringRef Namespace = Target.getInstNamespace();
>    std::vector<Record *> Operands =
> Records.getAllDerivedDefinitions("Operand");
>
>    OS << "#ifdef GET_INSTRINFO_OPERAND_TYPES_ENUM\n";
> @@ -576,7 +576,7 @@ void InstrInfoEmitter::emitEnums(raw_ost
>    CodeGenTarget Target(Records);
>
>    // We must emit the PHI opcode first...
> -  std::string Namespace = Target.getInstNamespace();
> +  StringRef Namespace = Target.getInstNamespace();
>
>    if (Namespace.empty())
>      PrintFatalError("No instructions defined!");
>
>
> _______________________________________________
> 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/20170710/e66a3bc1/attachment.html>


More information about the llvm-commits mailing list