[all-commits] [llvm/llvm-project] 756ee7: llvm-reduce: Fix typo

Matt Arsenault via All-commits all-commits at lists.llvm.org
Fri Oct 28 21:43:14 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 756ee72a845049ea8dd2281645311967d6aae702
      https://github.com/llvm/llvm-project/commit/756ee72a845049ea8dd2281645311967d6aae702
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2022-10-28 (Fri, 28 Oct 2022)

  Changed paths:
    M llvm/tools/llvm-reduce/deltas/ReduceMemoryOperations.cpp

  Log Message:
  -----------
  llvm-reduce: Fix typo


  Commit: c62745e1678e26185dc93ea30f858c91c03323f9
      https://github.com/llvm/llvm-project/commit/c62745e1678e26185dc93ea30f858c91c03323f9
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2022-10-28 (Fri, 28 Oct 2022)

  Changed paths:
    M clang/test/Misc/backend-resource-limit-diagnostics.cl
    M clang/test/Misc/backend-resource-limit-diagnostics.hip
    M clang/test/Misc/backend-stack-frame-diagnostics-fallback.cpp
    M llvm/include/llvm/IR/DiagnosticInfo.h
    M llvm/lib/IR/DiagnosticInfo.cpp
    M llvm/test/CodeGen/AMDGPU/exceed-max-sgprs.ll
    M llvm/test/CodeGen/AMDGPU/stack-size-overflow.ll
    M llvm/test/CodeGen/ARM/warn-stack.ll
    M llvm/test/CodeGen/X86/warn-stack.ll

  Log Message:
  -----------
  DiagnosticInfo: Report function location for resource limits

We have some odd redundancy where clang specially handles
the stack size case. If clang prints it, the source location is first
followed by "warning". The backend diagnostic, as printed by other tools
puts "warning" first.


  Commit: 0ebd4638af1f71788ca55f521ed8e1ed8cab518d
      https://github.com/llvm/llvm-project/commit/0ebd4638af1f71788ca55f521ed8e1ed8cab518d
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2022-10-28 (Fri, 28 Oct 2022)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticFrontendKinds.td
    M clang/lib/CodeGen/CodeGenAction.cpp
    M clang/test/Misc/backend-resource-limit-diagnostics.cl
    M clang/test/Misc/backend-resource-limit-diagnostics.hip

  Log Message:
  -----------
  clang: Improve errors for DiagnosticInfoResourceLimit

Print source location info and demangle the name, compared
to the default behavior.

Several observations:

1. Specially handling this seems to give source locations
without enabling debug info, and also gives columns compared
to the backend diagnostic.

2. We're duplicating diagnostic effort in DiagnosticInfo
and clang. This feels wrong, but clang can demangle and I guess
have better debug info available? Should clang really have any of this
code? For the purposes of this diagnostic, the important piece
is just reading the source location out of the llvm::Function.

3. lld is not duplicating the same effort as clang with LTO, and
just directly printing the DiagnosticInfo as-is. e.g.

  $ clang -fgpu-rdc
	lld: error: local memory (480000) exceeds limit (65536) in function '_Z12use_huge_ldsIiEvv'
	lld: error: local memory (960000) exceeds limit (65536) in function '_Z12use_huge_ldsIdEvv'

  $ clang -fno-gpu-rdc
	backend-resource-limit-diagnostics.hip:8:17: error: local memory (480000) exceeds limit (65536) in 'void use_huge_lds<int>()'
	__global__ void use_huge_lds() {
                ^
	backend-resource-limit-diagnostics.hip:8:17: error: local memory (960000) exceeds limit (65536) in 'void use_huge_lds<double>()'
	2 errors generated when compiling for gfx90a.

4. Backend errors are not observed with -save-temps and -fno-gpu-rdc or -flto,
and the compile incorrectly succeeds.

5. The backend version prints error: <location info>; clang prints <location info>: error:

6. -emit-codegen-only is totally broken for AMDGPU. MC
gets a null target streamer. I do not understand why this
is a thing. This just creates a horrible edge case.
Just work around this by emitting actual code instead of blocking
this patch.


Compare: https://github.com/llvm/llvm-project/compare/0cc9710a0dc0...0ebd4638af1f


More information about the All-commits mailing list