LLVM/project 02e615dllvm/docs NVPTXUsage.rst

[NFC] Fix some issues in NVPTX Usage document (#176289)

- Fix RST syntax for links.
- Fix names for 2 fence proxy intrinsics.
DeltaFile
+4-4llvm/docs/NVPTXUsage.rst
+4-41 files

LLVM/project f3f982dllvm/lib/Target/X86 X86TargetMachine.cpp X86CodeGenPassBuilder.cpp

Fix build breakage caused by #176061 (#176283)

https://github.com/llvm/llvm-project/pull/176061 added an extern
declaration of `EnableMachineCombinerPass`, which is `static`, causing
missing symbol errors in the debug build. This PR fixes this by making
that symbol non-static. Furthermore, this PR renames that symbol to
`X86EnableMachineCombinerPass` as `EnableMachineCombinerPass` exists in
other places.
DeltaFile
+5-4llvm/lib/Target/X86/X86TargetMachine.cpp
+2-2llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
+7-62 files

LLVM/project f2038d1mlir/lib/Conversion/ArithAndMathToAPFloat MathToAPFloat.cpp, mlir/test/Integration/Dialect/Arith/CPU test-apfloat-emulation-vector.mlir

add/fix tests
DeltaFile
+41-0mlir/test/Integration/Dialect/Math/CPU/test-apfloat-emulation-vector.mlir
+19-13mlir/lib/Conversion/ArithAndMathToAPFloat/MathToAPFloat.cpp
+10-4mlir/test/Integration/Dialect/Math/CPU/test-apfloat-emulation.mlir
+0-2mlir/test/Integration/Dialect/Arith/CPU/test-apfloat-emulation-vector.mlir
+70-194 files

LLVM/project 7f2eb31llvm/docs/CommandGuide llvm-readobj.rst llvm-readelf.rst

[NFC][llvm][docs] Fix alphabetical order of commands (#176280)

Fix the order of commands for llvm-readelf and llvm-readobj docs.
DeltaFile
+18-18llvm/docs/CommandGuide/llvm-readobj.rst
+4-4llvm/docs/CommandGuide/llvm-readelf.rst
+22-222 files

LLVM/project a3aa038lldb/source/DataFormatters ValueObjectPrinter.cpp, lldb/test/API/lang/objc/failing-description TestObjCFailingDescription.py

[lldb] Add missing newline to po warning (#176257)

Follow up fix to #175847
DeltaFile
+2-2lldb/test/API/lang/objc/failing-description/TestObjCFailingDescription.py
+2-2lldb/test/API/lang/objc/struct-description/TestObjCStructDescription.py
+1-1lldb/source/DataFormatters/ValueObjectPrinter.cpp
+5-53 files

LLVM/project fd5397dllvm/utils/gn/secondary/libcxx/include BUILD.gn

[gn] port dc5e1d05bfd10fa2
DeltaFile
+1-0llvm/utils/gn/secondary/libcxx/include/BUILD.gn
+1-01 files

LLVM/project fddd083llvm/lib/Transforms/Vectorize VPlan.cpp LoopVectorize.cpp

capture weights
DeltaFile
+29-7llvm/lib/Transforms/Vectorize/VPlan.cpp
+2-0llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+31-72 files

LLVM/project 227517dlldb/source/Plugins/SymbolFile/NativePDB SymbolFileNativePDB.cpp

[LLDB][NativePDB] Add PdbAstBuilder null checks (#176065)

`TypeSystem::GetNativePDBParser` returns `nullptr` by default, so using
the result without checking can cause a crash.
DeltaFile
+45-26lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
+45-261 files

LLVM/project 1621e00llvm/lib/Target/RISCV RISCVISelLowering.cpp

[RISCV] Remove unnecessary EVT->MVT->EVT conversions. NFC (#176214)

We don't need to use getSimpleValueType if we're just passing to
getNode.
DeltaFile
+5-5llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+5-51 files

LLVM/project 9a324e4mlir/unittests/Dialect/OpenACC OpenACCUtilsTest.cpp

[acc] Fix OpenACCUtilsTest to avoid leak in isDeviceValueNonMappableType (#176269)

The problem is that the operation is created without an owner, then
there is no free. This is being caught in llvm buildbots that are testing
sanitizers.
DeltaFile
+3-2mlir/unittests/Dialect/OpenACC/OpenACCUtilsTest.cpp
+3-21 files

LLVM/project 0db5c6emlir/include/mlir/Conversion Passes.td, mlir/include/mlir/Conversion/ArithAndMathToAPFloat ArithToAPFloat.h

add source type pre-condition
DeltaFile
+54-30mlir/lib/Conversion/ArithAndMathToAPFloat/ArithToAPFloat.cpp
+30-16mlir/lib/Conversion/ArithAndMathToAPFloat/MathToAPFloat.cpp
+26-4mlir/lib/Conversion/ArithAndMathToAPFloat/Utils.cpp
+8-0mlir/include/mlir/Conversion/Passes.td
+6-1mlir/lib/Conversion/ArithAndMathToAPFloat/Utils.h
+1-0mlir/include/mlir/Conversion/ArithAndMathToAPFloat/ArithToAPFloat.h
+125-511 files not shown
+126-517 files

LLVM/project 982454bmlir/lib/Conversion/ArithAndMathToAPFloat Utils.cpp Utils.h

remove template
DeltaFile
+42-0mlir/lib/Conversion/ArithAndMathToAPFloat/Utils.cpp
+1-40mlir/lib/Conversion/ArithAndMathToAPFloat/Utils.h
+43-402 files

LLVM/project 49e7c0dllvm/utils git-llvm-push

[LLVM][Utils] Do not error with dirty dir for untracked files (#176246)

If someone has untracked files in their tree and they attempt to use the
script, it will error out after processing the first commit complaining
about a dirty working tree. This patch fixes that by making
_check_work_tree look at the git status --porcelain output to ensure it
finds entries are not prefixed with a ?, which corresponds to an
untracked file.

Fixes #174592
DeltaFile
+5-4llvm/utils/git-llvm-push
+5-41 files

LLVM/project ef8284ellvm/lib/Target/RISCV RISCVCallingConv.cpp

[RISCV] Handle a split 2*XLen argument before pushing to PendingLocs. (#176183)

Previously we pushed the second part to PendingLocs first, but never
used it since the all values were still in variables.
DeltaFile
+16-16llvm/lib/Target/RISCV/RISCVCallingConv.cpp
+16-161 files

LLVM/project 1d03535llvm/lib/Target/X86 X86CodeGenPassBuilder.cpp, llvm/test/CodeGen/X86 llc-pipeline-npm.ll

[X86][NewPM] Fill out X86CodeGenPassBuilder (#176061)

This patch fills out X86CodeGenPassBuilder a decent amount of the way.
Comments are added where we either need more CodeGenPassBuilder hooks or
have not yet ported passes. This is intended to be a simple mapping of
the existing X86PassConfig and does not intend to make any improvements
or fix any existing issues (like using non fast-regalloc at O0 with AMX
instructions).
DeltaFile
+343-0llvm/test/CodeGen/X86/llc-pipeline-npm.ll
+216-12llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
+559-122 files

LLVM/project 011a0c6llvm/include/llvm/CodeGen Passes.h

Passes: Fix dead declaration and LLVM_ABI checker warning (#176265)

DeltaFile
+2-5llvm/include/llvm/CodeGen/Passes.h
+2-51 files

LLVM/project a99a002clang/lib/Headers nvptxintrin.h spirvintrin.h, libc/startup/gpu/amdgpu start.cpp

[Clang][NFC] Replace device specific kernel attribute with generic one (#176250)

Summary:
The old `amdgpu_kernel` and `nvptx_kernel` attributes are better
replaced by the new, generic `device_kernel`.
DeltaFile
+3-3libc/startup/gpu/amdgpu/start.cpp
+3-3libc/startup/gpu/nvptx/start.cpp
+0-3clang/lib/Headers/nvptxintrin.h
+0-3clang/lib/Headers/spirvintrin.h
+0-3clang/lib/Headers/amdgpuintrin.h
+3-0clang/lib/Headers/gpuintrin.h
+9-156 files

LLVM/project cf7321dllvm/lib/CodeGen/SelectionDAG LegalizeDAG.cpp SelectionDAG.cpp, llvm/lib/Target/AArch64 AArch64ISelLowering.cpp

DAG: Avoid querying libcall info from TargetLowering

Libcall lowering decisions should come from the LibcallLoweringInfo
analysis. Query this through the DAG, so eventually the source
can be the analysis. For the moment this is just a wrapper around
the TargetLowering information.
DeltaFile
+39-40llvm/lib/Target/Sparc/SparcISelLowering.cpp
+19-17llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+20-11llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+15-14llvm/lib/Target/ARM/ARMISelLowering.cpp
+14-12llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+11-10llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
+118-10418 files not shown
+190-14824 files

LLVM/project dcf236cllvm/lib/Transforms/Utils ProfileVerify.cpp, llvm/lib/Transforms/Vectorize VPlan.cpp LoopVectorize.cpp

capture weights
DeltaFile
+28-6llvm/lib/Transforms/Vectorize/VPlan.cpp
+9-6llvm/test/Transforms/LoopVectorize/tripcount.ll
+2-0llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+1-1llvm/lib/Transforms/Utils/ProfileVerify.cpp
+40-134 files

LLVM/project 88d3078llvm/test/Transforms/LoopVectorize tripcount.ll

[NFC] use UTC for LoopVectorize/tripcount.ll (#175095)

DeltaFile
+220-36llvm/test/Transforms/LoopVectorize/tripcount.ll
+220-361 files

LLVM/project 5d9374fllvm/include/llvm/CodeGen Passes.h

Passes: Fix dead declaration and LLVM_ABI checker warning
DeltaFile
+2-5llvm/include/llvm/CodeGen/Passes.h
+2-51 files

LLVM/project 789cbf2llvm/lib/CodeGen StackProtector.cpp, llvm/test/CodeGen/NVPTX no-stack-protector-libcall-error.ll

StackProtector: Use LibcallLoweringInfo analysis
DeltaFile
+54-26llvm/lib/CodeGen/StackProtector.cpp
+7-0llvm/test/Transforms/StackProtector/missing-analysis.ll
+2-2llvm/test/CodeGen/X86/stack-protector-atomicrmw-xchg.ll
+1-1llvm/test/CodeGen/NVPTX/no-stack-protector-libcall-error.ll
+1-1llvm/test/Transforms/StackProtector/cross-dso-cfi-stack-chk-fail.ll
+1-1llvm/test/Transforms/StackProtector/stack-chk-fail-alias.ll
+66-316 files

LLVM/project d0bfd61llvm/include/llvm/CodeGen/GlobalISel LegalizerHelper.h, llvm/lib/CodeGen/GlobalISel LegalizerHelper.cpp

Move conversionLibcall with createMemLibcall
DeltaFile
+16-16llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+5-5llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
+21-212 files

LLVM/project bee6defllvm/include/llvm/CodeGen/GlobalISel LegalizerHelper.h

move fixme
DeltaFile
+1-1llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
+1-11 files

LLVM/project 58b7787llvm/lib/Target/AMDGPU SIInstrInfo.cpp

[AMDGPU] Use lambda in fmaak/fmamk f16 folding. NFC
DeltaFile
+23-38llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+23-381 files

LLVM/project ce76de8llvm/include/llvm/Analysis RuntimeLibcallInfo.h, llvm/include/llvm/CodeGen LibcallLoweringInfo.h

Old pass manager hacking
DeltaFile
+11-5llvm/include/llvm/CodeGen/LibcallLoweringInfo.h
+6-3llvm/lib/CodeGen/LibcallLoweringInfo.cpp
+2-1llvm/lib/CodeGen/GlobalISel/Legalizer.cpp
+1-1llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
+2-0llvm/lib/CodeGen/TargetPassConfig.cpp
+2-0llvm/include/llvm/Analysis/RuntimeLibcallInfo.h
+24-102 files not shown
+27-118 files

LLVM/project 1c68aa9llvm/include/llvm/CodeGen/GlobalISel LegalizerHelper.h Legalizer.h, llvm/lib/CodeGen/GlobalISel LegalizerHelper.cpp Legalizer.cpp

GlobalISel: Use LibcallLoweringInfo analysis in legalizer

This is mostly boilerplate to move various freestanding utility
functions into LegalizerHelper. LibcallLoweringInfo is currently
optional, mostly because threading it through assorted other
uses of LegalizerHelper is more difficult.

I had a lot of trouble getting this to work in the legacy pass
manager with setRequiresCodeGenSCCOrder, and am not happy with the
result. A sub-pass manager is introduced and this is invalidated,
so we're re-computing this unnecessarily.
DeltaFile
+71-78llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+43-30llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
+32-31llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
+15-9llvm/lib/CodeGen/GlobalISel/Legalizer.cpp
+9-9llvm/lib/Target/ARM/ARMLegalizerInfo.cpp
+6-5llvm/include/llvm/CodeGen/GlobalISel/Legalizer.h
+176-1622 files not shown
+183-1658 files

LLVM/project 5776922llvm/lib/AsmParser LLParser.cpp, llvm/test/Assembler denormal_fpenv.ll invalid_denormal_fpenv.ll

IR: Promote "denormal-fp-math" to a first class attribute

Convert "denormal-fp-math" and "denormal-fp-math-f32" into a first
class denormal_fpenv attribute. Previously the query for the effective
deormal mode involved two string attribute queries with parsing. I'm
introducing more uses of this, so it makes sense to convert this
to a more efficient encoding. The old representation was also awkward
since it was split across two separate attributes. The new encoding
just stores the default and float modes as bitfields, largely avoiding
the need to consider if the other mode is set.

The syntax in the common cases looks like this:
  `denormal_fpenv(preservesign,preservesign)`
  `denormal_fpenv(float: preservesign,preservesign)`
  `denormal_fpenv(dynamic,dynamic float: preservesign,preservesign)`

I wasn't sure about reusing the float type name instead of adding a
new keyword. It's parsed as a type but only accepts float. I'm also
debating switching the name to subnormal to match the current

    [18 lines not shown]
DeltaFile
+374-0llvm/test/Bitcode/auto_upgrade_denormal_fp_math.ll
+297-0llvm/test/Assembler/denormal_fpenv.ll
+228-2llvm/test/Bitcode/compatibility.ll
+187-0llvm/test/Assembler/invalid_denormal_fpenv.ll
+57-57llvm/test/Transforms/Attributor/nofpclass-canonicalize.ll
+101-0llvm/lib/AsmParser/LLParser.cpp
+1,244-59224 files not shown
+2,390-959230 files

LLVM/project dc96abellvm/lib/Target/AMDGPU SIInstrInfo.cpp

[AMDGPU] Use lambda in fmaak/fmamk f16 folding. NFC
DeltaFile
+23-38llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+23-381 files

LLVM/project 1defa49clang/include/clang/Sema SemaOpenMP.h, clang/lib/Parse ParseOpenMP.cpp

Reuse OpenMPVarListDataTy::ExtraModifier instead of adding a new field.
DeltaFile
+5-5clang/lib/Parse/ParseOpenMP.cpp
+5-3clang/lib/Sema/SemaOpenMP.cpp
+2-6clang/include/clang/Sema/SemaOpenMP.h
+12-143 files