[llvm] [TableGen] Add PrintError family overload that take a print function (PR #107333)

Rahul Joshi via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 4 22:36:16 PDT 2024


jurahul wrote:

AFAIK it does not. It splits the format string into fragments and prints
them one-by-one.

On Wed, Sep 4, 2024 at 10:03 PM Craig Topper ***@***.***>
wrote:

> ***@***.**** commented on this pull request.
> ------------------------------
>
> In llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
> <https://github.com/llvm/llvm-project/pull/107333#discussion_r1744805014>:
>
> > @@ -1600,18 +1601,13 @@ static TreePatternNode &getOperandNum(unsigned OpNo, TreePatternNode &N,
>      return N;
>    }
>
> -  OpNo -= NumResults;
> -
> -  if (OpNo >= N.getNumChildren()) {
> -    std::string S;
> -    raw_string_ostream OS(S);
> -    OS << "Invalid operand number in type constraint " << (OpNo + NumResults)
> -       << " ";
> -    N.print(OS);
> -    PrintFatalError(S);
> +  if (OpNo - NumResults >= N.getNumChildren()) {
> +    PrintFatalError([&N, OpNo](raw_ostream &OS) {
> +      OS << formatv("Invalid operand number {0} in type constraint ", OpNo);
>
> Doesn't formatv create a buffer to hold the full string before printing?
> Would `OS << "Invalid operand number " << OpNo << "in type constraint" be
> better?
>
>> Reply to this email directly, view it on GitHub
> <https://github.com/llvm/llvm-project/pull/107333#pullrequestreview-2281854626>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/APRMUB7RGNH547SHXTC6XTDZU7Q2BAVCNFSM6AAAAABNVK2A5WVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDEOBRHA2TINRSGY>
> .
> You are receiving this because you authored the thread.Message ID:
> ***@***.***>
>


https://github.com/llvm/llvm-project/pull/107333


More information about the llvm-commits mailing list