[llvm] r363387 - [MCA] Ignore invalid processor resource writes of zero cycles. NFCI

Roman Lebedev via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 14 06:29:52 PDT 2019


Thank you!

On Fri, Jun 14, 2019 at 4:28 PM Andrea Di Biagio via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
>
> Author: adibiagio
> Date: Fri Jun 14 06:31:21 2019
> New Revision: 363387
>
> URL: http://llvm.org/viewvc/llvm-project?rev=363387&view=rev
> Log:
> [MCA] Ignore invalid processor resource writes of zero cycles. NFCI
>
> In debug mode, the tool also raises a warning and prints out a message which
> helps identify the problematic MCWriteProcResEntry from the scheduling class.
> This message would have been useful to have when triaging PR42282.
>
> Modified:
>     llvm/trunk/lib/MCA/InstrBuilder.cpp
>
> Modified: llvm/trunk/lib/MCA/InstrBuilder.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MCA/InstrBuilder.cpp?rev=363387&r1=363386&r2=363387&view=diff
> ==============================================================================
> --- llvm/trunk/lib/MCA/InstrBuilder.cpp (original)
> +++ llvm/trunk/lib/MCA/InstrBuilder.cpp Fri Jun 14 06:31:21 2019
> @@ -65,6 +65,17 @@ static void initializeUsedResources(Inst
>    for (unsigned I = 0, E = SCDesc.NumWriteProcResEntries; I < E; ++I) {
>      const MCWriteProcResEntry *PRE = STI.getWriteProcResBegin(&SCDesc) + I;
>      const MCProcResourceDesc &PR = *SM.getProcResource(PRE->ProcResourceIdx);
> +    if (!PRE->Cycles) {
> +#ifndef NDEBUG
> +      WithColor::warning()
> +          << "Ignoring invalid write of zero cycles on processor resource "
> +          << PR.Name << "\n";
> +      WithColor::note() << "found in scheduling class " << SCDesc.Name
> +                        << " (write index #" << I << ")\n";
> +#endif
> +      continue;
> +    }
> +
>      uint64_t Mask = ProcResourceMasks[PRE->ProcResourceIdx];
>      if (PR.BufferSize < 0) {
>        AllInOrderResources = false;
> @@ -189,8 +200,9 @@ static void initializeUsedResources(Inst
>               << "cy=" << R.second.size() << '\n';
>      for (const uint64_t R : ID.Buffers)
>        dbgs() << "\t\tBuffer Mask=" << format_hex(R, 16) << '\n';
> -    dbgs()   << "\t\t Used Units=" << format_hex(ID.UsedProcResUnits, 16) << '\n';
> -    dbgs()   << "\t\tUsed Groups=" << format_hex(ID.UsedProcResGroups, 16) << '\n';
> +    dbgs() << "\t\t Used Units=" << format_hex(ID.UsedProcResUnits, 16) << '\n';
> +    dbgs() << "\t\tUsed Groups=" << format_hex(ID.UsedProcResGroups, 16)
> +           << '\n';
>    });
>  }
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list