[llvm] r239251 - [AsmWriter] Rewrite module asm printing using StringRef::split.

Benjamin Kramer benny.kra at gmail.com
Mon Jun 8 12:03:24 PDT 2015


> On 08.06.2015, at 19:37, David Blaikie <dblaikie at gmail.com> wrote:
> 
> 
> 
> On Sun, Jun 7, 2015 at 6:59 AM, Benjamin Kramer <benny.kra at googlemail.com> wrote:
> Author: d0k
> Date: Sun Jun  7 08:59:33 2015
> New Revision: 239251
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=239251&view=rev
> Log:
> [AsmWriter] Rewrite module asm printing using StringRef::split.
> 
> No change in output intended.
> 
> Modified:
>     llvm/trunk/lib/IR/AsmWriter.cpp
> 
> Modified: llvm/trunk/lib/IR/AsmWriter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/AsmWriter.cpp?rev=239251&r1=239250&r2=239251&view=diff
> ==============================================================================
> --- llvm/trunk/lib/IR/AsmWriter.cpp (original)
> +++ llvm/trunk/lib/IR/AsmWriter.cpp Sun Jun  7 08:59:33 2015
> @@ -2140,27 +2140,20 @@ void AssemblyWriter::printModule(const M
>      Out << "target triple = \"" << M->getTargetTriple() << "\"\n";
> 
>    if (!M->getModuleInlineAsm().empty()) {
> -    // Split the string into lines, to make it easier to read the .ll file.
> -    std::string Asm = M->getModuleInlineAsm();
> -    size_t CurPos = 0;
> -    size_t NewLine = Asm.find_first_of('\n', CurPos);
>      Out << '\n';
> -    while (NewLine != std::string::npos) {
> +
> +    // Split the string into lines, to make it easier to read the .ll file.
> +    StringRef Asm(M->getModuleInlineAsm());
> 
> Prefer copy init over direct init (since direct init can invoke explicit conversions that might be more interesting/powerful - though I don't think there are any for StringRef?)?

r239327.

- Ben

>  
> +    do {
> +      StringRef Front;
> +      std::tie(Front, Asm) = Asm.split('\n');
> +
>        // We found a newline, print the portion of the asm string from the
>        // last newline up to this newline.
>        Out << "module asm \"";
> -      PrintEscapedString(std::string(Asm.begin()+CurPos, Asm.begin()+NewLine),
> -                         Out);
> -      Out << "\"\n";
> -      CurPos = NewLine+1;
> -      NewLine = Asm.find_first_of('\n', CurPos);
> -    }
> -    std::string rest(Asm.begin()+CurPos, Asm.end());
> -    if (!rest.empty()) {
> -      Out << "module asm \"";
> -      PrintEscapedString(rest, Out);
> +      PrintEscapedString(Front, Out);
>        Out << "\"\n";
> -    }
> +    } while (!Asm.empty());
>    }
> 
>    printTypeIdentities();
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 





More information about the llvm-commits mailing list