Commit
936ef89ebe8646c483b993d8d8e50ee9509e005d
by llvm-dev[X86] lowerShuffleWithPERMV - use MVT::changeTypeToInteger helper. NFCI.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
19a13bf538b30fa67fc4a381fb25d150cc5a9989
by llvm-dev[InstCombine] Rename InstCombinerImpl::matchBSwap to matchBSwapOrBitReverse. NFCI.
This matches bswap and bitreverse intrinsics, so we should make that clear in the function name.
|
 | llvm/lib/Transforms/InstCombine/InstCombineInternal.h |
 | llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp |
Commit
1cab3bf0046117759cc7891eec66affbbeb5965c
by llvm-dev[InstCombine] matchBSwapOrBitReverse - expose bswap/bitreverse matching flags.
matchBSwapOrBitReverse was hardcoded to just match bswaps - we're going to need to expose the ability to match bitreverse as well, so make this part of the function call.
|
 | llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp |
 | llvm/lib/Transforms/InstCombine/InstCombineInternal.h |
Commit
448f25c86b79aebae90718938b6a2cb4c782e57d
by zhanghb97[mlir] Expose affine expression to C API
This patch provides C API for MLIR affine expression. - Implement C API for methods of AffineExpr class. - Implement C API for methods of derived classes (AffineBinaryOpExpr, AffineDimExpr, AffineSymbolExpr, and AffineConstantExpr).
Differential Revision: https://reviews.llvm.org/D89856
|
 | mlir/include/mlir/CAPI/AffineExpr.h |
 | mlir/include/mlir/IR/AffineExpr.h |
 | mlir/test/CAPI/ir.c |
 | mlir/lib/CAPI/IR/CMakeLists.txt |
 | mlir/include/mlir-c/AffineExpr.h |
 | mlir/lib/CAPI/IR/AffineExpr.cpp |
Commit
748ecc6b326082c72f5d0866fd7cae499516c079
by spatel[ValueTracking] add range limits for ctpop
As discussed in D89952, instcombine can sometimes find a way to reduce similar patterns, but it is incomplete. InstSimplify uses the computeConstantRange() ValueTracking analysis via simplifyICmpWithConstant(), so we just need to fill in the max value of ctpop to process any "icmp pred ctpop(X), C" pattern (the min value is initialized to zero automatically).
Differential Revision: https://reviews.llvm.org/D89976
|
 | llvm/lib/Analysis/ValueTracking.cpp |
 | llvm/test/Transforms/InstSimplify/compare.ll |
Commit
55a2deed075b87646db62abc7bcd476541eda403
by dpolukhin[clang-tidy] Fix redefinition of module in the same module.modulemap file
In memory VFS cannot handle aceesssing the same file with different paths. This diff just stops using VFS for modulemap files.
Fixes PR47839
Differential Revision: https://reviews.llvm.org/D89886
|
 | clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp |
Commit
421a2a0dbbd691abeb86dee150cf710a6122e269
by kbobyrev[clangd] Migrate to proto2 syntax
This allows us to check whether enum field is actually sent over the wire or missing.
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D89882
|
 | clang-tools-extra/clangd/index/remote/Index.proto |
 | clang-tools-extra/clangd/index/remote/marshalling/Marshalling.cpp |
Commit
81f7b2ac0fdc84906d31f6824e34103798d3306c
by sam.mccall[CMake] generate_grpc_protos -> generate_protos(... GRPC). NFC
Differential Revision: https://reviews.llvm.org/D90027
|
 | llvm/cmake/modules/FindGRPC.cmake |
 | clang-tools-extra/clangd/index/remote/CMakeLists.txt |
Commit
2d25004a137223a02aa06e8bfd512a648f3b3f94
by sam.mccall[CMake] Fix hardcoding of protobuf output basename. NFC
Differential Revision: https://reviews.llvm.org/D90030
|
 | llvm/cmake/modules/FindGRPC.cmake |
Commit
e6c4d880fa8c1fdb55850cccd5d56050b7f3ecc5
by kbobyrev[clangd] NFC: Add using directives to avoid spelling out llvm::sys::path
`llvm::sys::path` is used a lot in the remote index marshalling code. We can save space by avoiding spelling it out explicitly for most functions and times.
Reviewed By: kadircet
Differential Revision: https://reviews.llvm.org/D90016
|
 | clang-tools-extra/clangd/index/remote/marshalling/Marshalling.cpp |
Commit
9bcb437f46fedbf4f56262ab50721e87fdfc3589
by spatel[InstSimplify] add tests for ctlz constant range; NFC
This is a search-and-replace of f6cb7f3.
|
 | llvm/test/Transforms/InstSimplify/compare.ll |
Commit
0351bd959faefe54456b43933b2f628ea14efb0d
by spatel[InstSimplify] add tests for cttz constant range; NFC
This is a search-and-replace of f6cb7f3
|
 | llvm/test/Transforms/InstSimplify/compare.ll |
Commit
3fb0d6b0d55b52a214a3e5118dda3c7d3422782a
by spatel[ValueTracking] add range limits for ctlz
As discussed in D89952, instcombine can sometimes find a way to reduce similar patterns, but it is incomplete. InstSimplify uses the computeConstantRange() ValueTracking analysis via simplifyICmpWithConstant(), so we just need to fill in the max value of ctlz to process any "icmp pred ctlz(X), C" pattern (the min value is initialized to zero automatically).
Follow-up to D89976.
|
 | llvm/lib/Analysis/ValueTracking.cpp |
 | llvm/test/Transforms/InstSimplify/compare.ll |
Commit
c72198079df60e73948fe4744b1c0ef7231803fd
by spatel[ValueTracking] add range limits for cttz
As discussed in D89952, instcombine can sometimes find a way to reduce similar patterns, but it is incomplete. InstSimplify uses the computeConstantRange() ValueTracking analysis via simplifyICmpWithConstant(), so we just need to fill in the max value of cttz to process any "icmp pred cttz(X), C" pattern (the min value is initialized to zero automatically).
https://alive2.llvm.org/ce/z/Z_SLWZ
Follow-up to D89976.
|
 | llvm/test/Transforms/InstCombine/ctpop-cttz.ll |
 | llvm/test/Transforms/InstSimplify/compare.ll |
 | llvm/lib/Analysis/ValueTracking.cpp |
Commit
e6c1c3f97f13b7d973fa786a3f2da883fa31bdf6
by sam.mccall[clang] Split remote index service definition into a separate file.
This allows it to have a separate namespace (grpc versioned service) without putting versioning info on all of the other protos (before we need it).
clang-index-server is still broken (from 81e5f298c431555).
Differential Revision: https://reviews.llvm.org/D90031
|
 | clang-tools-extra/clangd/index/remote/Client.cpp |
 | clang-tools-extra/clangd/index/remote/Service.proto |
 | clang-tools-extra/clangd/index/remote/CMakeLists.txt |
 | clang-tools-extra/clangd/index/remote/marshalling/CMakeLists.txt |
 | clang-tools-extra/clangd/index/remote/server/Server.cpp |
 | clang-tools-extra/clangd/index/remote/server/CMakeLists.txt |
 | clang-tools-extra/clangd/index/remote/Index.proto |
Commit
6d83e3b443358ca735c40b6edcba0c6b095dd4f2
by frgossen[MLIR] Extract buffer alias analysis for reuse
Extract buffer alias analysis from buffer placement.
Differential Revision: https://reviews.llvm.org/D89902
|
 | mlir/include/mlir/Transforms/Bufferize.h |
 | mlir/include/mlir/Analysis/BufferAliasAnalysis.h |
 | mlir/include/mlir/Interfaces/ControlFlowInterfaces.td |
 | mlir/lib/Analysis/BufferAliasAnalysis.cpp |
 | mlir/lib/Transforms/BufferDeallocation.cpp |
 | mlir/lib/Analysis/CMakeLists.txt |
Commit
c6561ccfd982f03fc9f572c6c27ddab336158e18
by stefanp[PowerPC][LLD] Support for PC Relative TLS for Local Dynamic
Add support to LLD for PC Relative Thread Local Storage for Local Dynamic. This patch adds support for two relocations: R_PPC64_GOT_TLSLD_PCREL34 and R_PPC64_DTPREL34.
The Local Dynamic code is: ``` pla r3, x@got@tlsld@pcrel R_PPC64_GOT_TLSLD_PCREL34 bl __tls_get_addr@notoc(x@tlsld) R_PPC64_TLSLD R_PPC64_REL24_NOTOC ... paddi r9, r3, x@dtprel R_PPC64_DTPREL34 ```
After relaxation to Local Exec: ``` paddi r3, r13, 0x1000 nop ... paddi r9, r3, x@dtprel R_PPC64_DTPREL34 ```
Reviewed By: NeHuang, sfertile
Differential Revision: https://reviews.llvm.org/D87504
|
 | lld/ELF/Relocations.cpp |
 | lld/ELF/Arch/PPC64.cpp |
 | lld/test/ELF/ppc64-tls-pcrel-ld.s |
Commit
ce63383e45f4c833dbff6a89b242bfd1d188786e
by sam.mccall[clangd] Drop version from remote index proto names, fix clangd-index-server
We only need to version these messages if they actually diverge. Unlike the service, the namespace name isn't part of the wire format.
clangd-index-server was broken by 81e5f298c431555d809f898c196945ca879c1150 as the namespace names weren't updated there, this fixes it (by adding them for the service, and not requiring them elsewhere).
|
 | clang-tools-extra/clangd/index/remote/marshalling/Marshalling.cpp |
 | clang-tools-extra/clangd/index/remote/marshalling/Marshalling.h |
 | clang-tools-extra/clangd/index/remote/server/Server.cpp |
 | clang-tools-extra/clangd/index/remote/Index.proto |
 | clang-tools-extra/clangd/unittests/remote/MarshallingTests.cpp |
Commit
1e0b6c1df0f2cf8b056244d6ecd5041f7f9ad7a6
by czhengsz[LSR] ignore profitable chain when reg num is not major cost.
Reviewed By: samparker
Differential Revision: https://reviews.llvm.org/D89665
|
 | llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp |
 | llvm/include/llvm/Analysis/TargetTransformInfoImpl.h |
 | llvm/lib/Analysis/TargetTransformInfo.cpp |
 | llvm/include/llvm/Analysis/TargetTransformInfo.h |
 | llvm/include/llvm/CodeGen/BasicTTIImpl.h |
 | llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h |
 | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp |
 | llvm/test/CodeGen/PowerPC/lsr-profitable-chain.ll |
Commit
48e4b0fd3a3d68cc9774699964cf4c6c2be38cf3
by Louis Dionne[runtimes] Revert the libc++ __config_site change
This is a massive revert of the following commits (from most revent to oldest):
2b9b7b5775a1d8fcd7aa5abaa8fc0bc303434f1a. 529ac33197f6408952ae995075ac5e2dc5287e81 28270234f1478047e35879f4ba8838b47edfcc14 69c2087283cf7b17ca75f69daebf4ffc158b754a b5aa67446e01bd277727b05710a42e69ac41e74b 5d796645d6c8cadeb003715c33e231a8ba05b6de
After checking-in the __config_site change, a lot of things started breaking due to widespread reliance on various aspects of libc++'s build, notably the fact that we can include the headers from the source tree, but also reliance on various "internal" CMake variables used by the runtimes build and compiler-rt.
These were unintended consequences of the change, and after two days, we still haven't restored all the bots to being green. Instead, now that I understand what specific areas this will blow up in, I should be able to chop up the patch into smaller ones that are easier to digest.
See https://reviews.llvm.org/D89041 for more details on this adventure.
|
 | libcxxabi/CMakeLists.txt |
 | libcxx/benchmarks/CMakeLists.txt |
 | libcxx/utils/libcxx/test/config.py |
 | libcxx/cmake/Modules/HandleLibCXXABI.cmake |
 | libcxx/docs/TestingLibcxx.rst |
 | libcxx/include/CMakeLists.txt |
 | libcxxabi/test/libcxxabi/test/config.py |
 | llvm/runtimes/CMakeLists.txt |
 | libcxx/include/__config |
 | libunwind/test/libunwind/test/config.py |
 | libcxx/test/configs/legacy.cfg.in |
 | libcxx/CMakeLists.txt |
 | libcxxabi/src/CMakeLists.txt |
Commit
13aff21f0da7007c42d407b4ec5c1f6b24cb6831
by thakis[gn build] port 48e4b0f (__config_site revert)
This reverts commit b3ca53e14274642274be8fe7db8b43dc3c146366. This reverts commit 8b7dac81d378c339d3e55f6f51cd0c42803903ad. This reverts commit 37c030f81a9fdd7a7e1b6fa5407b277c1ab1afa1.
|
 | llvm/utils/gn/secondary/libcxxabi/src/BUILD.gn |
 | llvm/utils/gn/secondary/libcxx/include/BUILD.gn |
 | llvm/utils/gn/secondary/libcxx/src/BUILD.gn |
 | llvm/utils/gn/secondary/clang/tools/driver/BUILD.gn |
Commit
68f47157164e0513fb5bf3a4639884c85b8a1308
by jeremy.morse[DebugInstrRef] Convert DBG_INSTR_REFs into variable locations
Handle DBG_INSTR_REF instructions in LiveDebugValues, to determine and propagate variable locations. The logic is fairly straight forwards: Collect a map of debug-instruction-number to the machine value numbers generated in the first walk through the function. When building the variable value transfer function and we see a DBG_INSTR_REF, look up the instruction it refers to, and pick the machine value number it generates, That's it; the rest of LiveDebugValues continues as normal.
Awkwardly, there are two kinds of instruction numbering happening here: the offset into the block (which is how machine value numbers are determined), and the numbers that we label instructions with when generating DBG_INSTR_REFs.
I've also restructured the TransferTracker redefVar code a little, to separate some DBG_VALUE specific operations into its own method. The changes around redefVar should be largely NFC, while allowing DBG_INSTR_REFs to specify a value number rather than just a location.
Differential Revision: https://reviews.llvm.org/D85771
|
 | llvm/test/DebugInfo/MIR/InstrRef/livedebugvalues_instrref_tolocs.mir |
 | llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp |
Commit
b651ecfb726f06752590122054f5bf19c9407537
by eleviant[llvm-mca] Extend cortex-a57 memory instructions test
Patch adds few/load store instructions which have custom sched classes in cortex-a57 model.
|
 | llvm/test/tools/llvm-mca/ARM/cortex-a57-memory-instructions.s |
Commit
8039b3f966804c6578f8265d5eb7bdde8dec3ddd
by frgossen[MLIR] Fix bad merge with buffer alias analysis.
|
 | mlir/lib/Transforms/BufferOptimizations.cpp |
Commit
f55eeea4024cb05bff2c9f72968f23183e992a32
by sam.mccallExport TemplateArgumentMatcher so clients defining custom matchers don't need to use the internal namespace
This change adds another export, `using TemplateArgumentMatcher = internal::Matcher<TemplateArgument>;`, to the collection of exports that put instantiations of the `clang::ast_matchers::internal::Matcher` into the `clang::ast_matchers` namespace. This makes it possible to define custom TemplateArgument matchers without reaching into the `internal` namespace.
Reviewed By: klimek
Differential Revision: https://reviews.llvm.org/D89920
|
 | clang/include/clang/ASTMatchers/ASTMatchers.h |
Commit
676ff75d60792d98161f95460e7f982664f39603
by clementval[flang][openacc] Fix semantic check for wait and atomic directives
wait and atomic directives are represented by OpenACCWaitConstruct, OpenACCAtmicConstruct in the parser. Those contrsuct were not taken into account in the semantic check so far.
Reviewed By: kiranchandramohan
Differential Revision: https://reviews.llvm.org/D88628
|
 | flang/lib/Semantics/check-acc-structure.h |
 | flang/test/Semantics/acc-clause-validity.f90 |
 | flang/include/flang/Parser/parse-tree.h |
 | flang/lib/Parser/openacc-parsers.cpp |
 | flang/lib/Semantics/check-acc-structure.cpp |
Commit
d61996473dd9481da9ffc40cea608a5e6eaacf06
by Matthew.ArsenaultAMDGPU: Increase branch size estimate with offset bug
This will be relaxed to insert a nop if the offset hits the bad value, so over estimate branch instruction sizes.
|
 | llvm/test/CodeGen/AMDGPU/branch-relaxation-gfx10-branch-offset-bug.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp |
 | llvm/lib/Target/AMDGPU/SIInstrInfo.cpp |
 | llvm/lib/Target/AMDGPU/SOPInstructions.td |
Commit
8a59d4b654e486d9f8f8dbc6da40a4d7ad93ee68
by Matthew.ArsenaultAMDGPU: Don't query for TII in TII
|
 | llvm/lib/Target/AMDGPU/SIInstrInfo.cpp |
Commit
876af264c118c6ebcb8d79ab1a25d061f98fde82
by paul[TableGen] Change !getop and !setop to !getdagop and !setdagop.
Differential Revision: https://reviews.llvm.org/D89814
|
 | llvm/test/TableGen/getsetop.td |
 | llvm/lib/Target/ARM/ARMInstrMVE.td |
 | clang/include/clang/Basic/arm_mve.td |
 | llvm/lib/TableGen/TGLexer.h |
 | llvm/include/llvm/TableGen/Record.h |
 | llvm/lib/TableGen/TGLexer.cpp |
 | llvm/lib/TableGen/Record.cpp |
 | llvm/docs/TableGen/ProgRef.rst |
 | llvm/lib/TableGen/TGParser.cpp |
Commit
9e7667e2ad4838cf213fcd73782d5a70a657c058
by llvm-dev[InstCombine] Add initial bitreverse test coverage
|
 | llvm/test/Transforms/InstCombine/bitreverse.ll |
Commit
61d1847b12a91e148a7f6bc32a7a2d490bc19ffd
by llvm-dev[InstCombine] Add 8/16/32/64 bitreverse test coverage
Use typical codegen for the traditional pairwise lgN bitreverse algorithm
|
 | llvm/test/Transforms/InstCombine/bitreverse.ll |
Commit
a6ad077f5d3979c0c9decb1d41660a91fe44fe0a
by llvm-dev[InstCombine] Add i8 bitreverse by multiplication test patterns
Pulled from bit twiddling hacks webpage
|
 | llvm/test/Transforms/InstCombine/bitreverse.ll |
Commit
1d328446bf92f76f1861d0e5f84d67732d76c8fd
by SourabhSingh.Tomar[flang][OpenMP] Upstream lowering of `ParallelOp` clauses
Note: This patch reflects the work that can be upstreamed from PR's(merged):
1. https://github.com/flang-compiler/f18-llvm-project/pull/456 2. https://github.com/flang-compiler/f18-llvm-project/pull/485
Also replaced TODO with new TODO.
Reviewed By: kiranchandramohan
Differential Revision: https://reviews.llvm.org/D89769
|
 | flang/lib/Lower/OpenMP.cpp |
Commit
a74fc481588fcea9317cbf1f6c5888a30c9edd2d
by nicolai.haehnleCfgInterface: rename interface() to getInterface()
Apparently there are some Microsoft headers which `#define interface struct`. This method is only used in pending changes so far.
Change-Id: Ic68fe8e1958ec9b015f817ee218431f4146b888a
|
 | llvm/include/llvm/Support/CfgTraits.h |
Commit
4f7ee55971e7f7a27af69c501e4b395c4079decb
by dantrushinRevert "[Statepoints] Allow deopt GC pointer on VReg if gc-live bundle is empty."
Downstream testing revealed some problems with this patch. Reverting while investigating. This reverts commit 2b96dcebfae65485859d956954f10f409abaae79.
|
 | llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp |
 | llvm/test/CodeGen/X86/statepoint-vreg-details.ll |
Commit
958130dfda276304372b54010adfc48f05b13c2c
by jay.foad[AMDGPU] Add simplification/combines for llvm.amdgcn.fma.legacy
This follows on from D89558 which added the new intrinsic and D88955 which added similar combines for llvm.amdgcn.fmul.legacy.
Differential Revision: https://reviews.llvm.org/D90028
|
 | llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp |
 | llvm/test/Transforms/InstCombine/AMDGPU/fmul_legacy.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h |
 | llvm/test/Transforms/InstCombine/AMDGPU/fma_legacy.ll |
Commit
b1b2c6ab667d50e68a6f945f6b64ce0351c2739c
by jeremy.morse[DebugInstrRef] Handle DBG_INSTR_REFs use-before-defs in LiveDebugValues
Deciding where to place debugging instructions when normal instructions sink between blocks is difficult -- see PR44117. Dealing with this with instruction-referencing variable locations is simple: we just tolerate DBG_INSTR_REFs referring to values that haven't been computed yet. This patch adds support into InstrRefBasedLDV to record when a variable value appears in the middle of a block, and should have a DBG_VALUE added when it appears (a debug use before def).
While described simply, this relies heavily on the value-propagation algorithm in InstrRefBasedLDV. The implementation doesn't attempt to verify the location of a value unless something non-trivial occurs to merge variable values in vlocJoin. This means that a variable with a value that has no location can retain it across all control flow (including loops). It's only when another debug instruction specifies a different variable value that we have to check, and find there's no location.
This property means that if a machine value is defined in a block dominated by a DBG_INSTR_REF that refers to it, all the successor blocks can automatically find a location for that value (if it's not clobbered). Thus in a sense, InstrRefBasedLDV is already supporting and implementing use-before-defs. This patch allows us to specify a variable location in the block where it's defined.
When loading live-in variable locations, TransferTracker currently discards those where it can't find a location for the variable value. However, we can tell from the machine value number whether the value is defined in this block. If it is, add it to a set of use-before-def records. Then, once the relevant instruction has been processed, emit a DBG_VALUE immediately after it.
Differential Revision: https://reviews.llvm.org/D85775
|
 | llvm/test/DebugInfo/MIR/InstrRef/livedebugvalues_instrref_tolocs.mir |
 | llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp |
Commit
e7d37742a2a584fef9002778b33f9453647ab43c
by SourabhSingh.Tomar[flang][OpenMP] Upstream lowering of OpenMP `Flush` construct
Note: This patch reflects the work that can be upstreamed from PR's(merged):
- https://github.com/flang-compiler/f18-llvm-project/pull/476
Reviewed By: kiranchandramohan, clementval
Differential Revision: https://reviews.llvm.org/D90048
|
 | flang/lib/Lower/OpenMP.cpp |
Commit
69e2797eaed5b9db969fb4ff5e40530a7122b3a3
by sbc[WebAssembly] Implementation of (most) table instructions
Implementation of instructions table.get, table.set, table.grow, table.size, table.fill, table.copy.
Missing instructions are table.init and elem.drop as they deal with element sections which are not yet implemented.
Added more tests to tables.s
Differential Revision: https://reviews.llvm.org/D89797
|
 | llvm/include/llvm/BinaryFormat/WasmRelocs.def |
 | llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp |
 | llvm/lib/Object/RelocationResolver.cpp |
 | llvm/lib/Object/WasmObjectFile.cpp |
 | llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp |
 | llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp |
 | llvm/utils/TableGen/CodeGenTarget.cpp |
 | llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h |
 | llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.td |
 | llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp |
 | llvm/test/MC/WebAssembly/tables.s |
 | llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp |
 | llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td |
 | llvm/include/llvm/Support/MachineValueType.h |
 | llvm/include/llvm/Object/Wasm.h |
 | llvm/lib/MC/WasmObjectWriter.cpp |
 | llvm/lib/Target/WebAssembly/WebAssemblyInstrTable.td |
 | llvm/include/llvm/CodeGen/ValueTypes.td |
 | llvm/lib/CodeGen/ValueTypes.cpp |
Commit
5dd39923a09ec284d30083e5fadaa29e618d4446
by kadircet[clangd] Fix remote-server build and add it to check-clangd
Differential Revision: https://reviews.llvm.org/D90047
|
 | clang-tools-extra/clangd/index/remote/server/Server.cpp |
 | clang-tools-extra/clangd/test/CMakeLists.txt |
Commit
00255f419298b93c812324a257ff057e57ab5c04
by vpykhtin[AMDGPU] Fix access beyond the end of the basic block in execMayBeModifiedBeforeAnyUse.
I was wrong in thinking that MRI.use_instructions return unique instructions and mislead Jay in his previous patch D64393.
First loop counted more instructions than it was in reality and the second loop went beyond the basic block with that counter.
I used Jay's previous code that relied on MRI.use_operands to constrain the number of instructions to check among. modifiesRegister is inlined to reduce the number of passes over instruction operands and added assert on BB end boundary.
Differential Revision: https://reviews.llvm.org/D89386
|
 | llvm/lib/Target/AMDGPU/SIInstrInfo.cpp |
 | llvm/unittests/Target/AMDGPU/CMakeLists.txt |
 | llvm/unittests/Target/AMDGPU/ExecMayBeModifiedBeforeAnyUse.cpp |
Commit
24a1fe754713cfcc00100a02ba59b7d0371aedde
by llvmgnsyncbot[gn build] Port 00255f41929
|
 | llvm/utils/gn/secondary/llvm/unittests/Target/AMDGPU/BUILD.gn |
Commit
7a74bb899abe1772a428ec98597d544a637e5551
by wei.huang[PowerPC] Fix the Predicates for enabling pcrelative-memops and PLXVP/PSTXVP definitions
In this patch, Predicates fix added for the following: * disable prefix-instrs will disable pcrelative-memops * set two predicates PairedVectorMemops and PrefixInstrs for PLXVP/PSTXVP definitions
Differential Revision: https://reviews.llvm.org/D89727 Reviewed by: amyk, steven.zhang
|
 | llvm/lib/Target/PowerPC/PPC.td |
 | llvm/test/CodeGen/PowerPC/p10-splatImm-CPload-pcrel.ll |
 | llvm/lib/Target/PowerPC/PPCInstrPrefix.td |
Commit
74a8783480219f5f0e5c4673a6d0e29b4ad99877
by Duncan P. N. Exon SmithSourceManager: Clarify that FileInfo always has a ContentCache, NFC
It turns out that `FileInfo` *always* has a ContentCache. Clarify that in the code: - Update the private version of `SourceManager::createFileID` to take a `ContentCache&` instead of `ContentCache*`, and rename it to `createFileIDImpl` for clarity. - Change `FileInfo::getContentCache` to return a reference.
Differential Revision: https://reviews.llvm.org/D89554
|
 | clang/include/clang/Basic/SourceManager.h |
 | clang/tools/libclang/CIndexInclusionStack.cpp |
 | clang/lib/Rewrite/Rewriter.cpp |
 | clang/lib/Serialization/ASTWriter.cpp |
 | clang/lib/AST/ASTImporter.cpp |
 | clang/lib/Basic/SourceManager.cpp |
 | clang/lib/Lex/ScratchBuffer.cpp |
Commit
1e113c078a560ad71e838ab9cf6719a3d4f1ec6d
by huihuiz[AArch64][SVE] Fix umin/umax lowering to handle out of range imm.
Immediate must be in an integer range [0,255] for umin/umax instruction. Extend pattern matching helper SelectSVEArithImm() to take in value type bitwidth when checking immediate value is in range or not.
Reviewed By: sdesmalen
Differential Revision: https://reviews.llvm.org/D89831
|
 | llvm/test/CodeGen/AArch64/sve-int-arith-imm.ll |
 | llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp |
 | llvm/lib/Target/AArch64/SVEInstrFormats.td |
 | llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-imm.ll |
Commit
996a8b42aa2d956c1f8fc1b001bcee543e2ef697
by Lang HamesRe-apply "[JITLink][ELF] Add support for ELF::R_X86_64_REX_GOTPCRELX relocation"
This re-applies e2fceec2fd1 with fixes. Apparently we already *do* support relaxation for ELF, so we need to make sure the test case allocates a slab at a fixed address, and that the R_X86_64_REX_GOTPCRELX test references an external that is guaranteed to be out of range.
|
 | llvm/test/ExecutionEngine/JITLink/X86/ELF_x86-64_relocations.s |
 | llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp |
Commit
dc98923a8c09ca66f5f71c5a5f416dc1f91e2ab8
by aorlovAdded utility to launch tests on a target remotely.
Runs an executable on a remote host. This is meant to be used as an executor when running the LLVM and the Libraries tests on a target.
Reviewed By: vvereschaka
Differential Revision: https://reviews.llvm.org/D89349
|
 | llvm/utils/remote-exec.py |
Commit
5668eda864e36baed92854fd13a89042d978ffa4
by aeubanksRevert "[CGSCC] Detect devirtualization in more cases"
This reverts commit 3024fe5b55ed72633915f613bd5e2826583c396f.
Causes major compile time regressions: https://llvm-compile-time-tracker.com/compare.php?from=3b8d8954bf2c192502d757019b9fe434864068e9&to=3024fe5b55ed72633915f613bd5e2826583c396f&stat=instructions
|
 | llvm/test/Transforms/Inline/devirtualize-5.ll |
 | llvm/test/Transforms/Inline/devirtualize-3.ll |
 | llvm/test/Transforms/Inline/devirtualize.ll |
 | llvm/lib/Analysis/CGSCCPassManager.cpp |
 | llvm/include/llvm/Analysis/CGSCCPassManager.h |
Commit
dbbc4f4e226be44e484f448be2d308d205c81038
by Duncan P. N. Exon SmithSourceManager: Encapsulate line number mapping into SrcMgr::LineOffsetMapping
Put the guts of `ComputeLineNumbers` into `LineOffsetMapping::get` and `LineOffsetMapping::LineOffsetMapping`. As a drive-by, store the number of lines directly in the bump-ptr-allocated array.
Differential Revision: https://reviews.llvm.org/D89913
|
 | clang/lib/Lex/ScratchBuffer.cpp |
 | clang/unittests/Basic/LineOffsetMappingTest.cpp |
 | clang/unittests/Basic/CMakeLists.txt |
 | clang/include/clang/Basic/SourceManager.h |
 | clang/lib/Basic/SourceManager.cpp |
Commit
9df832d1c3aa014c88ec947df3677da2e7d8bd64
by aorlovThese compiler-rt tests should be UNSUPPORTED instead of XFAIL.
These compiler-rt tests should be UNSUPPORTED instead of XFAIL, which seems to be the real intent of the authors.
Reviewed By: vvereschaka
Differential Revision: https://reviews.llvm.org/D89840
|
 | compiler-rt/test/crt/dso_handle.cpp |
 | compiler-rt/test/builtins/Unit/gcc_personality_test.c |
Commit
de346cf2ac850be793ee7fc31f99a7671331c289
by Jonas Devlieghere[lldb] Redesign Target::GetUtilityFunctionForLanguage API
This patch redesigns the Target::GetUtilityFunctionForLanguage API:
- Use a unique_ptr instead of a raw pointer for the return type. - Wrap the result in an llvm::Expected instead of using a Status object as an I/O parameter. - Combine the action of "getting" and "installing" the UtilityFunction as they always get called together. - Pass std::strings instead of const char* and std::move them where appropriate.
There's more room for improvement but I think this tackles the most prevalent issues with the current API.
Differential revision: https://reviews.llvm.org/D90011
|
 | lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h |
 | lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp |
 | lldb/source/Plugins/SystemRuntime/MacOSX/AppleGetPendingItemsHandler.cpp |
 | lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h |
 | lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp |
 | lldb/include/lldb/Target/Target.h |
 | lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp |
 | lldb/source/Plugins/SystemRuntime/MacOSX/AppleGetItemInfoHandler.cpp |
 | lldb/source/Plugins/SystemRuntime/MacOSX/AppleGetThreadItemInfoHandler.cpp |
 | lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h |
 | lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp |
 | lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h |
 | lldb/source/Plugins/SystemRuntime/MacOSX/AppleGetQueuesHandler.cpp |
 | lldb/source/Target/Target.cpp |
 | lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp |
 | lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp |
 | lldb/include/lldb/Symbol/TypeSystem.h |
 | lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.cpp |
Commit
65d206484c54177641d4b11d42cab1f1acc8c0c7
by tra[CUDA] Improve clang's ability to detect recent CUDA versions.
CUDA-11.1 does not carry version.txt which causes clang to assume that it's CUDA-7.0, which used to be the only CUDA version w/o version.txt.
In order to tell CUDA-7.0 apart from the new versions, clang now probes for the presence of libdevice.10.bc which is not present in the old CUDA versions.
This should keep Clang working for CUDA-11.1.
PR47332: https://bugs.llvm.org/show_bug.cgi?id=47332
Differential Revision: https://reviews.llvm.org/D89752
|
 | clang/lib/Driver/ToolChains/Cuda.cpp |
 | clang/test/Driver/Inputs/CUDA_111/usr/local/cuda/lib/.keep |
 | clang/test/Driver/Inputs/CUDA_111/usr/local/cuda/lib64/.keep |
 | clang/test/Driver/cuda-version-check.cu |
 | clang/test/Driver/Inputs/CUDA_111/usr/local/cuda/bin/.keep |
 | clang/test/Driver/Inputs/CUDA_111/usr/local/cuda/nvvm/libdevice/libdevice.10.bc |
 | clang/test/Driver/Inputs/CUDA_111/usr/local/cuda/include/.keep |
Commit
e7fe125b776bf08d95e60ff3354a5c836218a0e6
by tra[CUDA] Extract CUDA version from cuda.h if version.txt is not found
If CUDA version can not be determined based on version.txt file, attempt to find CUDA_VERSION macro in cuda.h.
This is a follow-up to D89752,
Differntial Revision: https://reviews.llvm.org/D89832
|
 | clang/include/clang/Basic/DiagnosticDriverKinds.td |
 | clang/test/Driver/Inputs/CUDA_102/usr/local/cuda/include/.keep |
 | clang/test/Driver/Inputs/CUDA_102/usr/local/cuda/nvvm/libdevice/libdevice.10.bc |
 | clang/lib/Driver/ToolChains/Cuda.cpp |
 | clang/lib/Driver/ToolChains/Cuda.h |
 | clang/test/Driver/cuda-version-check.cu |
 | clang/test/Driver/Inputs/CUDA_102/usr/local/cuda/version.txt |
 | clang/test/Driver/Inputs/CUDA_111/usr/local/cuda/include/cuda.h |
 | clang/test/Driver/Inputs/CUDA_102/usr/local/cuda/lib/.keep |
 | clang/test/Driver/Inputs/CUDA_102/usr/local/cuda/lib64/.keep |
 | clang/test/Driver/Inputs/CUDA_102/usr/local/cuda/bin/.keep |
Commit
bf44d3689a0b101914e7088b9671c90e72b8a4e8
by llvmgnsyncbot[gn build] Port dbbc4f4e226
|
 | llvm/utils/gn/secondary/clang/unittests/Basic/BUILD.gn |
Commit
0f0fd383b487e004fd616ac941307422bd09c261
by Amara Emerson[AArch64][GlobalISel] Introduce a new post-isel optimization pass.
There are two optimizations here:
1. Consider the following code: FCMPSrr %0, %1, implicit-def $nzcv %sel1:gpr32 = CSELWr %_, %_, 12, implicit $nzcv %sub:gpr32 = SUBSWrr %_, %_, implicit-def $nzcv FCMPSrr %0, %1, implicit-def $nzcv %sel2:gpr32 = CSELWr %_, %_, 12, implicit $nzcv This kind of code where we have 2 FCMPs each feeding a CSEL can happen when we have a single IR fcmp being used by two selects. During selection, to ensure that there can be no clobbering of nzcv between the fcmp and the csel, we have to generate an fcmp immediately before each csel is selected.
However, often we can essentially CSE these together later in MachineCSE. This doesn't work though if there are unrelated flag-setting instructions in between the two FCMPs. In this case, the SUBS defines NZCV but it doesn't have any users, being overwritten by the second FCMP.
Our solution here is to try to convert flag setting operations between a interval of identical FCMPs, so that CSE will be able to eliminate one.
2. SelectionDAG imported patterns for arithmetic ops currently select the flag-setting ops for CSE reasons, and add the implicit-def $nzcv operand to those instructions. However if those impdef operands are not marked as dead, the peephole optimizations are not able to optimize them into non-flag setting variants. The optimization here is to find these dead imp-defs and mark them as such.
This pass is only enabled when optimizations are enabled.
Differential Revision: https://reviews.llvm.org/D89415
|
 | llvm/lib/Target/AArch64/AArch64TargetMachine.cpp |
 | llvm/utils/gn/secondary/llvm/lib/Target/AArch64/BUILD.gn |
 | llvm/test/CodeGen/AArch64/GlobalISel/postselectopt-dead-cc-defs-in-fcmp.mir |
 | llvm/lib/Target/AArch64/AArch64.h |
 | llvm/lib/Target/AArch64/CMakeLists.txt |
 | llvm/test/CodeGen/AArch64/addsub-shifted.ll |
 | llvm/test/CodeGen/AArch64/GlobalISel/gisel-commandline-option.ll |
 | llvm/test/CodeGen/AArch64/addsub_ext.ll |
 | llvm/lib/Target/AArch64/GISel/AArch64PostSelectOptimize.cpp |
Commit
5431c37b55e2c2952b6b56c9690bd1ce05b23c7e
by Duncan P. N. Exon SmithSourceManager: Make LastLineNoContentCache and ContentCache::SourceLineCache mutable, NFC
Avoid some noisy `const_cast`s by making `ContentCache::SourceLineCache` and `SourceManager::LastLineNoContentCache` both mutable.
Differential Revision: https://reviews.llvm.org/D89914
|
 | clang/lib/Lex/ScratchBuffer.cpp |
 | clang/include/clang/Basic/SourceManager.h |
 | clang/lib/Basic/SourceManager.cpp |
Commit
2b8fb5185e4a2087874924468086e3fb6a2ec495
by mtrofin[MLInliner] Disable always inliner in bounds tests
That changes the threshold calculation.
|
 | llvm/test/Transforms/Inline/ML/bounds-checks.ll |
 | llvm/test/Transforms/Inline/ML/bounds-checks-rewards.ll |
Commit
9267caebfa9209e4ae69517043d008d1b83307aa
by i[ELF] Don't error on R_PPC64_REL24/R_PPC64_REL24_NOTOC referencing __tls_get_addr for missing R_PPC64_TLSGD/R_PPC64_TLSLD
This partially reverts D85994.
In glibc, elf/dl-sym.c calls the raw `__tls_get_addr` by specifying the tls_index parameter. Such a call does not have a pairing R_PPC64_TLSGD/R_PPC64_TLSLD. This is legitimate. Since we cannot distinguish the benign case from cases due to toolchain issues, we have to be permissive.
Acked by Stefan Pintilie
|
 | lld/test/ELF/ppc64-tls-missing-gdld.s |
 | lld/ELF/Relocations.cpp |
Commit
1253c40727d2fae9398fc63c86de75db88fb5124
by silvasean[mlir] Add FuncOp::eraseResults
I just found I needed this in an upcoming patch, and it seems generally useful to have.
Differential Revision: https://reviews.llvm.org/D90000
|
 | mlir/include/mlir/IR/Function.h |
 | mlir/lib/IR/Function.cpp |
 | mlir/test/lib/IR/TestFunc.cpp |
 | mlir/test/IR/test-func-erase-result.mlir |
Commit
dd887d97ce38bc60f3680d2481fc2d96ce45c4f5
by nikita.ppv[PhiValues] Use SetVector to avoid non-determinism
I'm not sure whether this can cause actual non-determinism in the compiler output, but at least it causes non-determinism in the statistics collected by BasicAA.
Use SetVector to have a predictable iteration order.
|
 | llvm/lib/Analysis/PhiValues.cpp |
 | llvm/include/llvm/Analysis/PhiValues.h |
Commit
edb27912a3ec097b5f267941b3b0107b4bb8d997
by saghir[PowerPC] Add intrinsics for MMA
This patch adds support for MMA intrinsics.
Authored by: Baptiste Saleil
Reviewed By: #powerpc, bsaleil, amyk
Differential Revision: https://reviews.llvm.org/D89345
|
 | llvm/lib/Target/PowerPC/PPCInstrPrefix.td |
 | llvm/test/CodeGen/PowerPC/bfloat16-outer-product.ll |
 | llvm/test/CodeGen/PowerPC/mma-outer-product.ll |
 | llvm/test/CodeGen/PowerPC/mma-integer-based-outer-product.ll |
 | llvm/include/llvm/IR/IntrinsicsPowerPC.td |
Commit
819044ad2d6a38ee12321d4523b9d980a7afbc18
by mtrofin[NFC] Use [MC]Register in RegAllocGreedy
This was initiated from the uses of MCRegUnitIterator, so while likely not exhaustive, it's a step forward.
Differential Revision: https://reviews.llvm.org/D89975
|
 | llvm/lib/CodeGen/AllocationOrder.h |
 | llvm/lib/CodeGen/RegAllocGreedy.cpp |
Commit
1b65a51af80a9375ef85cb8fa6ec9ec3c68b3549
by nikita.ppv[BasicAA] Add additional phi cycle test (NFC)
This is a variation of the BatchAA problem that also applies without BatchAA. We may have a cached result from earlier in the same query.
|
 | llvm/unittests/Analysis/AliasAnalysisTest.cpp |
Commit
b67a2aef8ac9fd9c10666a05d72d909315140dcb
by tejohnson[MemProf] XFAIL test on avr until issue can be debugged
For unknown reasons, this test started failing only on the llvm-avr-linux bot after 5c20d7db9f2791367b9311130eb44afecb16829c: http://lab.llvm.org:8011/#/builders/112/builds/365
The error message is not helpful, and I have an email out to the bot owner to help with debugging. XFAIL it on avr for now.
|
 | compiler-rt/test/memprof/TestCases/log_path_test.cpp |
Commit
1602c6fd9294494aaa7461e258602d486166b303
by hubert.reinterpretcast[AIX][cmake] Adjust management of `-G` for linking
The change in 0ba98433971f changed the behaviour of the build when using an XL build compiler because `-G` is not a pure linker option: it also implies `-shared`. This was accounted for in the base CMake configuration, so an analysis of the change from 0ba98433971f in relation to a build using Clang (where `-shared` is introduced by CMake) would not identify the issue. This patch resolves this particular issue by adding `-shared` alongside `-Wl,-G`.
At the same time, the investigation reveals that several aspects of the various build configurations are not operating in the manner originally intended.
The other issue related to the `-G` linker option in the build is that the removal of it (to avoid unnecessary use of run-time linking) is not effective for the build using the Clang compiler. This patch addresses this by adjusting the regular expressions used to remove the broadly- applied `-G`.
Finally, the issue of specifying the export list with `-Wl,` instead of a compiler option is flagged with a FIXME comment.
Reviewed By: daltenty, amyk
Differential Revision: https://reviews.llvm.org/D90041
|
 | llvm/CMakeLists.txt |
 | llvm/cmake/modules/AddLLVM.cmake |
Commit
2e64ad94948763a4f9a289265dbce4ce1d22591b
by Stanislav.Mekhanoshin[AMDGPU] Fixed isLegalRegOperand() with physregs
This does not change anything at the moment, but needed for D89170. In that change I am probing a physical SGPR to see if it is legal. RC is SReg_32, but DRC for scratch instructions is SReg_32_XEXEC_HI and test fails.
That is sufficient just to check if DRC contains a register here in case of physreg. Physregs also do not use subregs so the subreg handling below is irrelevant for these.
Differential Revision: https://reviews.llvm.org/D90064
|
 | llvm/lib/Target/AMDGPU/SIInstrInfo.cpp |
Commit
05bef88eb3ecb8519a871ca9aa53caeca5add555
by Xiangling.Liao[AIX] Let alloca return 16 bytes alignment
On AIX, to support vector types, which should always be 16 bytes aligned, we set alloca to return 16 bytes aligned memory space.
Differential Revision: https://reviews.llvm.org/D89910
|
 | clang/test/Preprocessor/init-ppc.c |
 | clang/test/Preprocessor/init-ppc64.c |
 | clang/lib/Basic/Targets/PPC.h |
 | clang/test/CodeGen/aix_alloca_align.c |
Commit
a4459feca415a757fa0ca3ab4731a17240931a81
by Jonas Devlieghere[lldb] Fix use of undefined type 'lldb_private::UtilityFunction'
We were returning the default constructed unique_pointer from TypeSystem.h for which the compiler does not have a definition. Move the implementation into the cpp file.
|
 | lldb/include/lldb/Symbol/TypeSystem.h |
 | lldb/source/Symbol/TypeSystem.cpp |
Commit
b7926ce6d7a83cdf70c68d82bc3389c04009b841
by ndesaulniers[IR] add fn attr for no_stack_protector; prevent inlining on mismatch
It's currently ambiguous in IR whether the source language explicitly did not want a stack a stack protector (in C, via function attribute no_stack_protector) or doesn't care for any given function.
It's common for code that manipulates the stack via inline assembly or that has to set up its own stack canary (such as the Linux kernel) would like to avoid stack protectors in certain functions. In this case, we've been bitten by numerous bugs where a callee with a stack protector is inlined into an __attribute__((__no_stack_protector__)) caller, which generally breaks the caller's assumptions about not having a stack protector. LTO exacerbates the issue.
While developers can avoid this by putting all no_stack_protector functions in one translation unit together and compiling those with -fno-stack-protector, it's generally not very ergonomic or as ergonomic as a function attribute, and still doesn't work for LTO. See also: https://lore.kernel.org/linux-pm/20200915172658.1432732-1-rkir@google.com/ https://lore.kernel.org/lkml/20200918201436.2932360-30-samitolvanen@google.com/T/#u
Typically, when inlining a callee into a caller, the caller will be upgraded in its level of stack protection (see adjustCallerSSPLevel()). By adding an explicit attribute in the IR when the function attribute is used in the source language, we can now identify such cases and prevent inlining. Block inlining when the callee and caller differ in the case that one contains `nossp` when the other has `ssp`, `sspstrong`, or `sspreq`.
Fixes pr/47479.
Reviewed By: void
Differential Revision: https://reviews.llvm.org/D87956
|
 | llvm/docs/BitCodeFormat.rst |
 | llvm/docs/LangRef.rst |
 | llvm/lib/AsmParser/LLLexer.cpp |
 | llvm/utils/vim/syntax/llvm.vim |
 | llvm/test/Transforms/Inline/inline_ssp.ll |
 | llvm/lib/IR/Verifier.cpp |
 | llvm/bindings/ocaml/llvm/llvm.ml |
 | llvm/include/llvm/Bitcode/LLVMBitCodes.h |
 | llvm/test/Verifier/function-attribute-nossp-ssp-sspreq-sspstrong.ll |
 | llvm/lib/AsmParser/LLParser.cpp |
 | clang/include/clang/Basic/AttrDocs.td |
 | llvm/utils/kate/llvm.xml |
 | llvm/bindings/go/llvm/ir_test.go |
 | llvm/utils/vscode/llvm/syntaxes/ll.tmLanguage.yaml |
 | clang/lib/CodeGen/CodeGenModule.cpp |
 | llvm/lib/Transforms/Utils/CodeExtractor.cpp |
 | llvm/test/CodeGen/X86/stack-protector-2.ll |
 | clang/test/CodeGen/stack-protector.c |
 | llvm/test/Transforms/CodeExtractor/PartialInlineAttributes.ll |
 | llvm/utils/emacs/llvm-mode.el |
 | llvm/lib/Bitcode/Writer/BitcodeWriter.cpp |
 | llvm/utils/llvm.grm |
 | llvm/lib/IR/Attributes.cpp |
 | llvm/lib/Transforms/Utils/InlineFunction.cpp |
 | llvm/include/llvm/IR/Attributes.td |
 | llvm/lib/AsmParser/LLToken.h |
 | llvm/test/Transforms/Inline/inline_nossp.ll |
 | clang/test/Frontend/optimization-remark-missed-inline-stack-protectors.c |
 | llvm/lib/CodeGen/StackProtector.cpp |
 | llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp |
Commit
cf52a85ddc9be165daca3d32521747c898f4ffd1
by Duncan P. N. Exon SmithSourceManager: Simplify by inlining what remains of ComputeLineNumbers, NFC
Use `LineOffsetMapping:get` directly and remove/inline the helper `ComputeLineNumbers`, simplifying the callers.
Differential Revision: https://reviews.llvm.org/D89922
|
 | clang/lib/Basic/SourceManager.cpp |
Commit
4b90a253c257cdb23b699eeae126b6687dbf96bf
by aeubanks[gn build] Add missing comma
|
 | llvm/utils/gn/secondary/llvm/lib/Target/AArch64/BUILD.gn |
Commit
8c72eea9a04ca8349224f26d1982d838824786a3
by thomasraoux[mlir][vector] Add folding for ExtractOp with ShapeCastOp source
Differential Revision: https://reviews.llvm.org/D89853
|
 | mlir/test/Dialect/Vector/canonicalize.mlir |
 | mlir/lib/Dialect/Vector/VectorOps.cpp |
Commit
2f8dd2687fa0211ef0c8d2faf74c0e003fe59e7a
by Louis Dionne[libc++] Refactor the run-buildbot script to make it more modular, and run the benchmarks
As a fly-by fix, unbreak the benchmarks on Apple platforms.
Differential Revision: https://reviews.llvm.org/D90043
|
 | libcxx/utils/ci/buildkite-pipeline.yml |
 | libcxx/test/support/debug_mode_helper.h |
 | libcxx/src/CMakeLists.txt |
 | libcxxabi/src/CMakeLists.txt |
 | libcxx/utils/ci/run-buildbot.sh |
Commit
bfb04aeb85b85cb49c7e630de979ef4d8de6e79a
by joker.ephUnconditionally #include <future>
This unbreaks building with `LLVM_ENABLE_THREADS=0`. Since https://github.com/llvm/llvm-project/commit/069919c9ba33 usage of `std::promise` is not guarded by `LLVM_ENABLE_THREADS`, so this header must be unconditionally included.
Reviewed By: lhames
Differential Revision: https://reviews.llvm.org/D89758
|
 | llvm/lib/ExecutionEngine/Orc/Core.cpp |
Commit
ea6a60a9a6c18a2a512b066fd8a873ff0db49836
by thomasraoux[mlir][vector] Add folder for ExtractStridedSliceOp
Add folder for the case where ExtractStridedSliceOp source comes from a chain of InsertStridedSliceOp. Also add a folder for the trivial case where the ExtractStridedSliceOp is a no-op.
Differential Revision: https://reviews.llvm.org/D89850
|
 | mlir/include/mlir/Dialect/Vector/VectorOps.td |
 | mlir/test/Dialect/Vector/canonicalize.mlir |
 | mlir/lib/Dialect/Vector/VectorOps.cpp |
Commit
cb9f6c4c8cbaa327b4836cf0fa61015f760f4002
by Louis Dionne[libc++] Clean up unused CI files
Those were useful during CI experimentation, but are not used anymore.
|
 | libcxx/utils/ci/phabricator-report |
 | libcxx/utils/ci/buildkite-pipeline-trigger.sh |
Commit
73811d32c72d0760c8c2066e4675dd6f1a7bbef7
by Jonas Devlieghere[lldb] Move copying of files into reproducer out of process
For performance reasons the reproducers don't copy the files captured by the file collector eagerly, but wait until the reproducer needs to be generated.
This is a problematic when LLDB crashes and we have to do all this signal-unsafe work in the signal handler. This patch uses a similar trick to clang, which has the driver invoke a new cc1 instance to do all this work out-of-process.
This patch moves the writing of the mapping file as well as copying over the reproducers into a separate process spawned when lldb crashes.
Differential revision: https://reviews.llvm.org/D89600
|
 | lldb/include/lldb/Utility/ReproducerProvider.h |
 | lldb/tools/driver/Driver.cpp |
 | lldb/source/Host/common/FileSystem.cpp |
 | lldb/test/Shell/Reproducer/TestCaptureEnvOverride.test |
 | lldb/include/lldb/API/SBReproducer.h |
 | lldb/include/lldb/Host/FileSystem.h |
 | lldb/source/API/SBReproducer.cpp |
 | lldb/source/Utility/Reproducer.cpp |
 | lldb/source/Commands/CommandObjectReproducer.cpp |
 | lldb/include/lldb/Utility/Reproducer.h |
 | lldb/source/Plugins/ExpressionParser/Clang/ModuleDependencyCollector.h |
 | lldb/source/Utility/ReproducerProvider.cpp |
 | lldb/tools/driver/Options.td |
 | lldb/test/Shell/Reproducer/TestFinalize.test |
Commit
089c1ccd6d26d2cf4067a16dec4c4527c8536039
by flo[AArch64] Add vector compare/select cost-model tests.
|
 | llvm/test/Analysis/CostModel/AArch64/vector-select.ll |
Commit
9f4b888c32161ac32cd10df3897e35bf66bba396
by Louis Dionne[libc++] NFC: Remove unused includes from the test suite
- <iostream> include from a <chrono> test - <regex> include from the filesystem tests
|
 | libcxx/test/std/utilities/time/time.cal/time.cal.ym/time.cal.ym.nonmembers/minus.pass.cpp |
 | libcxx/test/support/filesystem_test_helper.h |
Commit
b16f6324db21f778aba9cb62452010aab13c2d1f
by ezhulenev[mlir] Link with pthreads in AsyncRuntime
AsyncRuntime must be explicitly linked with LLVM pthreads
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D89983
|
 | mlir/lib/ExecutionEngine/AsyncRuntime.cpp |
 | mlir/lib/ExecutionEngine/CMakeLists.txt |
Commit
9497e2e7d88f6d38005d3c419cf649527cbec5d1
by michael.hliaoFix shared build. NFC.
|
 | llvm/unittests/Target/AMDGPU/CMakeLists.txt |
Commit
3827effe3ab541a3357c417c676939826fc5b4ac
by akhuang[Asan][Windows] Fix asan stack traces on Windows.
While implementing inline stack traces on Windows I noticed that the stack traces in many asan tests included an inlined frame that shouldn't be there.
Currently we get the PC and then do a stack unwind and use the PC to find the beginning of the stack trace. In the failing tests the first thing in the stack trace is inside an inline call site that shouldn't be in the stack trace, so replace it with the PC.
Differential Revision: https://reviews.llvm.org/D89996
|
 | compiler-rt/lib/sanitizer_common/sanitizer_unwind_win.cpp |
Commit
2b7dfdd319c0e6e3a8934bcf4019f402d63f7539
by richardFix typo in diagnostic name.
No functionality change intended.
|
 | clang/include/clang/Basic/DiagnosticASTKinds.td |
 | clang/lib/AST/ExprConstant.cpp |
Commit
b22e2e4c6e420b78a8a4c307f0cf002f51af9590
by joker.ephRemove global dialect registration
This has been deprecated for >1month now and removal was announced in:
https://llvm.discourse.group/t/rfc-revamp-dialect-registration/1559/11
Differential Revision: https://reviews.llvm.org/D86356
|
 | mlir/examples/toy/Ch7/toyc.cpp |
 | mlir/test/SDBM/sdbm-api-test.cpp |
 | mlir/lib/Translation/Translation.cpp |
 | mlir/lib/CAPI/IR/IR.cpp |
 | mlir/tools/mlir-reduce/mlir-reduce.cpp |
 | mlir/unittests/Pass/AnalysisManagerTest.cpp |
 | mlir/lib/IR/MLIRContext.cpp |
 | mlir/tools/mlir-opt/mlir-opt.cpp |
 | mlir/include/mlir/InitAllDialects.h |
 | mlir/unittests/SDBM/SDBMTest.cpp |
 | mlir/examples/toy/Ch6/toyc.cpp |
 | mlir/include/mlir/IR/Dialect.h |
 | mlir/tools/mlir-cuda-runner/mlir-cuda-runner.cpp |
 | mlir/tools/mlir-cpu-runner/mlir-cpu-runner.cpp |
 | mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp |
 | mlir/unittests/Dialect/Quant/QuantizationUtilsTest.cpp |
 | mlir/unittests/Dialect/SPIRV/DeserializationTest.cpp |
 | mlir/examples/toy/Ch5/toyc.cpp |
 | mlir/lib/Dialect/SPIRV/Serialization/TranslateRegistration.cpp |
 | mlir/tools/mlir-vulkan-runner/mlir-vulkan-runner.cpp |
 | mlir/examples/toy/Ch2/toyc.cpp |
 | mlir/lib/Support/MlirOptMain.cpp |
 | mlir/lib/ExecutionEngine/JitRunner.cpp |
 | mlir/test/EDSC/builder-api-test.cpp |
 | mlir/tools/mlir-rocm-runner/mlir-rocm-runner.cpp |
 | mlir/unittests/IR/DialectTest.cpp |
 | mlir/examples/standalone/standalone-opt/standalone-opt.cpp |
 | mlir/examples/toy/Ch3/toyc.cpp |
 | mlir/lib/IR/Dialect.cpp |
 | mlir/unittests/IR/OperationSupportTest.cpp |
 | mlir/unittests/Dialect/SPIRV/SerializationTest.cpp |
 | mlir/unittests/TableGen/OpBuildGen.cpp |
 | mlir/include/mlir/IR/MLIRContext.h |
 | mlir/unittests/TableGen/StructsGenTest.cpp |
 | mlir/examples/toy/Ch4/toyc.cpp |
 | mlir/unittests/IR/AttributeTest.cpp |
Commit
b6204b995eaa2ec771f947a2109bd2ef338e688c
by ravishankarm[mlir][Vector] Introduce UnrollVectorOptions to control vector unrolling.
The current pattern for vector unrolling takes the native shape to unroll to at pattern instantiation time, but the native shape might defer based on the types of the operand. Introduce a UnrollVectorOptions struct which allows for using a function that will return the native shape based on the operation. Move other options of unrolling like `filterConstraints` into this struct.
Differential Revision: https://reviews.llvm.org/D89744
|
 | mlir/test/Dialect/Vector/vector-unroll-options.mlir |
 | mlir/test/lib/Transforms/TestVectorTransforms.cpp |
 | mlir/include/mlir/Dialect/Vector/VectorTransforms.h |
Commit
b6b589ca84841f7ef4ac8c67570ec1e43b29aa76
by psteinfeld[flang] An erroneous type bound procedure was causing a call to CHECK()
I added a test to verify that the associated symbol did not have errors before doing the anaylsis of a call to a component ref along with a test that triggers the original problem.
Differential Revision: https://reviews.llvm.org/D90074
|
 | flang/lib/Semantics/expression.cpp |
 | flang/test/Semantics/bindings01.f90 |
Commit
6ec2c5e402a724ba99bce82a9cac7a3006d660f4
by apilipenkoGC-parseable element atomic memcpy/memmove
This change introduces a GC parseable lowering for element atomic memcpy/memmove intrinsics. This way runtime can provide an implementation which can take a safepoint during copy operation.
See "GC-parseable element atomic memcpy/memmove" thread on llvm-dev for the background and details: https://groups.google.com/g/llvm-dev/c/NnENHzmX-b8/m/3PyN8Y2pCAAJ
Differential Revision: https://reviews.llvm.org/D88861
|
 | llvm/test/Transforms/RewriteStatepointsForGC/unordered-atomic-memcpy.ll |
 | llvm/docs/LangRef.rst |
 | llvm/lib/Transforms/Utils/Local.cpp |
 | llvm/docs/Statepoints.rst |
 | llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp |
 | llvm/test/Transforms/RewriteStatepointsForGC/unordered-atomic-memcpy-no-deopt.ll |
Commit
f98bb414f58ee447481e4de19625baff22718343
by aaron.smithAdd a mlir natvis file for debugging with Visual Studio
Differential Revision: https://reviews.llvm.org/D89601
|
 | mlir/utils/MLIRVisualizers/mlir.natvis |
Commit
a1cc274cb35fae64399158f059e67a601caa10f1
by mcinally[SVE] Lower fixed length VECREDUCE_SEQ_FADD operation
Differential Revision: https://reviews.llvm.org/D89162
|
 | llvm/test/CodeGen/AArch64/sve-fixed-length-fp-reduce.ll |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.h |
 | llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h |
 | llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
Commit
6a72635881e98dbac458323fe9666af6507a09ec
by joker.ephRevert "Remove global dialect registration"
This reverts commit b22e2e4c6e420b78a8a4c307f0cf002f51af9590.
Investigating broken builds
|
 | mlir/tools/mlir-opt/mlir-opt.cpp |
 | mlir/unittests/TableGen/OpBuildGen.cpp |
 | mlir/unittests/IR/DialectTest.cpp |
 | mlir/unittests/TableGen/StructsGenTest.cpp |
 | mlir/lib/IR/MLIRContext.cpp |
 | mlir/examples/toy/Ch7/toyc.cpp |
 | mlir/tools/mlir-vulkan-runner/mlir-vulkan-runner.cpp |
 | mlir/examples/toy/Ch3/toyc.cpp |
 | mlir/examples/toy/Ch5/toyc.cpp |
 | mlir/lib/Dialect/SPIRV/Serialization/TranslateRegistration.cpp |
 | mlir/lib/ExecutionEngine/JitRunner.cpp |
 | mlir/tools/mlir-cuda-runner/mlir-cuda-runner.cpp |
 | mlir/examples/toy/Ch2/toyc.cpp |
 | mlir/tools/mlir-cpu-runner/mlir-cpu-runner.cpp |
 | mlir/tools/mlir-rocm-runner/mlir-rocm-runner.cpp |
 | mlir/test/SDBM/sdbm-api-test.cpp |
 | mlir/unittests/SDBM/SDBMTest.cpp |
 | mlir/unittests/IR/AttributeTest.cpp |
 | mlir/include/mlir/IR/MLIRContext.h |
 | mlir/examples/standalone/standalone-opt/standalone-opt.cpp |
 | mlir/lib/Support/MlirOptMain.cpp |
 | mlir/unittests/IR/OperationSupportTest.cpp |
 | mlir/lib/CAPI/IR/IR.cpp |
 | mlir/lib/IR/Dialect.cpp |
 | mlir/lib/Translation/Translation.cpp |
 | mlir/unittests/Pass/AnalysisManagerTest.cpp |
 | mlir/include/mlir/InitAllDialects.h |
 | mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp |
 | mlir/examples/toy/Ch4/toyc.cpp |
 | mlir/unittests/Dialect/Quant/QuantizationUtilsTest.cpp |
 | mlir/test/EDSC/builder-api-test.cpp |
 | mlir/examples/toy/Ch6/toyc.cpp |
 | mlir/tools/mlir-reduce/mlir-reduce.cpp |
 | mlir/unittests/Dialect/SPIRV/DeserializationTest.cpp |
 | mlir/include/mlir/IR/Dialect.h |
 | mlir/unittests/Dialect/SPIRV/SerializationTest.cpp |
Commit
cb9b9842d31d6082c6a2259a64eb5d47bd680d32
by richardPR47954 / DR2126: permit temporary objects that are lifetime-extended by variables that are usable in constant expressions to themselves be usable in constant expressions.
|
 | clang/lib/AST/ExprCXX.cpp |
 | clang/test/SemaCXX/constant-expression-cxx11.cpp |
 | clang/include/clang/AST/ExprCXX.h |
 | clang/test/CodeGenCXX/const-init-cxx11.cpp |
 | clang/test/CXX/drs/dr21xx.cpp |
 | clang/www/cxx_dr_status.html |
 | clang/lib/AST/ExprConstant.cpp |
Commit
fe9a7d962781a15a7823194a3f0e5d841e7af80b
by evandro.menezes[RISCV] Use the commercial name for scheduling model (NFC)
Use the commercial name for the scheduling model for the SiFive 7 Series.
|
 | llvm/lib/Target/RISCV/RISCVSchedBullet.td |
 | llvm/lib/Target/RISCV/RISCV.td |
 | llvm/lib/Target/RISCV/RISCVSchedSiFive7.td |
Commit
71e1a56de153536b9ff655fe740ccbf3f6b1faf0
by Akira[CodeGen] Emit destructor calls to destruct non-trivial C struct temporaries created by conditional and assignment operators
rdar://problem/64989559
Differential Revision: https://reviews.llvm.org/D83448
|
 | clang/lib/CodeGen/CGExprAgg.cpp |
 | clang/test/CodeGenObjC/strong-in-c-struct.m |
Commit
77cbf2595331b11018c2cffb76eb5b8db69f4577
by alexshap[llvm-install-name-tool] Add -prepend_rpath option
This diff adds the option -prepend_rpath which inserts an rpath as the first rpath in the binary.
Test plan: make check-all
Differential revision: https://reviews.llvm.org/D89605
|
 | llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp |
 | llvm/tools/llvm-objcopy/CopyConfig.h |
 | llvm/tools/llvm-objcopy/InstallNameToolOpts.td |
 | llvm/test/tools/llvm-objcopy/MachO/install-name-tool-prepend-rpath.test |
 | llvm/tools/llvm-objcopy/CopyConfig.cpp |
Commit
245d71bae5a9cad472d5ec4cad67a9be0e0d261b
by aeubanks[test] Simplify pr33641_remove_arg_dbgvalue.ll
This makes it pass under the NPM. The legacy PM pass ran passes on SCCs in a different order, causing argpromotion to not trigger on @bar().
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D89889
|
 | llvm/test/Transforms/ArgumentPromotion/pr33641_remove_arg_dbgvalue.ll |
Commit
ba22c403b2b316d59902ba55e8774a7a34d2d056
by aeubanks[Inliner][NPM] Properly pass callee AAResults
Fixes noalias-calls.ll under NPM.
Differential Revision: https://reviews.llvm.org/D89592
|
 | llvm/lib/Transforms/IPO/Inliner.cpp |
 | llvm/test/Transforms/Inline/noalias-calls.ll |
Commit
baffd052b0f7c6ce52cf958e39726545d8edddf2
by aeubanks[StructurizeCFG][NewPM] Port -structurizecfg to NPM
This doesn't support -structurizecfg-skip-uniform-regions since that would require porting LegacyDivergenceAnalysis.
The NPM doesn't support adding a non-analysis pass as a dependency of another, so I had to add -lowerswitch to some tests or pin them to the legacy PM.
This is the only RegionPass in tree, so I simply copied the logic for finding all Regions from the legacy PM's RGManager into StructurizeCFG::run().
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D89026
|
 | llvm/lib/Transforms/Scalar/StructurizeCFG.cpp |
 | llvm/test/Transforms/StructurizeCFG/nested-loop-order.ll |
 | llvm/lib/Passes/PassBuilder.cpp |
 | llvm/test/Transforms/StructurizeCFG/AMDGPU/uniform-regions.ll |
 | llvm/test/Transforms/StructurizeCFG/switch.ll |
 | llvm/include/llvm/Transforms/Scalar/StructurizeCFG.h |
 | llvm/include/llvm/InitializePasses.h |
 | llvm/lib/Passes/PassRegistry.def |
 | llvm/lib/Transforms/Scalar/Scalar.cpp |
 | llvm/test/Transforms/StructurizeCFG/interleaved-loop-order.ll |
Commit
eeba325b12c4e40ca1ce09788fc5c7dd115fa904
by tejohnson[MemProf] Attempt to debug avr bot failure
Reverts the XFAIL added in b67a2aef8ac9fd9c10666a05d72d909315140dcb, which had no effect.
Adjust the test to make sure all output is dumped to stderr, so that hopefully I can get a better idea of where/why this is failing.
Remove some redundant checking while here.
|
 | compiler-rt/test/memprof/TestCases/log_path_test.cpp |
Commit
dc62d5ec97261429b553f2d6b45d96a137211f14
by mmoroz[libFuzzer] Added -print_full_coverage flag.
-print_full_coverage=1 produces a detailed branch coverage dump when run on a single file. Uses same infrastructure as -print_coverage flag, but prints all branches (regardless of coverage status) in an easy-to-parse format. Usage: For internal use with machine learning fuzzing models which require detailed coverage information on seed files to generate mutations.
Differential Revision: https://reviews.llvm.org/D85928
|
 | compiler-rt/lib/fuzzer/FuzzerTracePC.h |
 | compiler-rt/test/fuzzer/dso-cov-input.txt |
 | compiler-rt/lib/fuzzer/FuzzerTracePC.cpp |
 | compiler-rt/test/fuzzer/full-coverage.test |
 | compiler-rt/lib/fuzzer/FuzzerDriver.cpp |
 | compiler-rt/lib/fuzzer/FuzzerFlags.def |
 | compiler-rt/lib/fuzzer/FuzzerOptions.h |
 | compiler-rt/lib/fuzzer/FuzzerInternal.h |
 | compiler-rt/lib/fuzzer/FuzzerLoop.cpp |
Commit
1b5baa42bc93432e6ae33e0a0fdce4d3e7c98dcb
by kparzysz[Hexagon] Handle selection between HVX vector predicates
Make sure that (select i1 q0 q1) is handled properly.
|
 | llvm/lib/Target/Hexagon/HexagonISelLowering.h |
 | llvm/lib/Target/Hexagon/HexagonPatternsHVX.td |
 | llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp |
 | llvm/test/CodeGen/Hexagon/autohvx/isel-q-legalization-loop.ll |
 | llvm/test/CodeGen/Hexagon/autohvx/isel-select-q.ll |
Commit
ccca93b5a2cb284dcdfecd34db1ca14632d6a1c1
by richardDon't allow structured binding declarations to decompose a lambda-expression's captures.
The built-in structured binding rules for classes require that all fields can be accessed by name, and the fields introduced for lambda captures are unnamed, so decomposing a capturing lambda is ill-formed.
|
 | clang/lib/Sema/SemaDeclCXX.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/test/SemaCXX/cxx1z-decomposition.cpp |
Commit
48d8af98251613261805891a3476e9fb01932f43
by a20012251[intel-pt] Disable/Enable tracing to guarantee the trace is correct
As mentioned in the comment inside the code, the Intel documentation states that the internal CPU buffer is flushed out to RAM only when tracing is disabled. Otherwise, the buffer on RAM might be stale.
This diff disables tracing when the trace buffer is going to be read. This is a quite safe operation, as the reading is done when the inferior is paused at a breakpoint, so we are not losing any packets because there's no code being executed.
After the reading is finished, tracing is enabled back.
It's a bit hard to write a test for this now, but Greg Clayton and I will refactor the PT support and writing tests for it will be easier. However I tested it manually by doing a script that automates the following flow
``` (lldb) b main Breakpoint 1: where = a.out`main + 15 at main.cpp:4:7, address = 0x000000000040050f (lldb) r Process 3078226 stopped * thread #1, name = 'a.out', stop reason = breakpoint 1.1 frame #0: 0x000000000040050f a.out`main at main.cpp:4:7 (lldb) processor-trace start (lldb) b 5 Breakpoint 2: where = a.out`main + 22 at main.cpp:5:12, address = 0x0000000000400516 (lldb) c Process 3078226 resuming Process 3078226 stopped * thread #1, name = 'a.out', stop reason = breakpoint 2.1 frame #0: 0x0000000000400516 a.out`main at main.cpp:5:12 (lldb) processor-trace show-instr-log thread #1: tid=3078226 0x40050f <+15>: movl $0x0, -0x8(%rbp)
>>> Before, some runs of the script up to this point lead to empty traces
(lldb) b 6 Breakpoint 3: where = a.out`main + 42 at main.cpp:6:14, address = 0x000000000040052a (lldb) c Process 3092991 resuming Process 3092991 stopped * thread #1, name = 'a.out', stop reason = breakpoint 3.1 frame #0: 0x000000000040052a a.out`main at main.cpp:6:14 (lldb) processor-trace show-instr-log thread #1: tid=3092991 0x40050f <+15>: movl $0x0, -0x8(%rbp) 0x400516 <+22>: movl $0x0, -0xc(%rbp) 0x40051d <+29>: cmpl $0x2710, -0xc(%rbp) ; imm = 0x2710 0x400524 <+36>: jge 0x400546 ; <+70> at main.cpp 0x400524 <+36>: jge 0x400546 ; <+70> at main.cpp
>>> The trace was re-enabled correctly and includes the instruction of the first reading. ``` Those instructions correspond to these lines ``` 3 int main() { 4 int z = 0; 5 for (int i = 0; i < 10000; i++) { 6 z += fun(z) ... ```
Differential Revision: https://reviews.llvm.org/D85241
|
 | lldb/source/Plugins/Process/Linux/ProcessorTrace.cpp |
Commit
035a6b95c3125e1b044d1b43f819fac93a56dc5c
by joker.ephFix a few warnings from GCC (NFC)
|
 | mlir/lib/Transforms/Bufferize.cpp |
 | mlir/include/mlir/CAPI/IR.h |
 | mlir/lib/TableGen/TypeDef.cpp |
Commit
3a4b832b1ba8a58cfd12d66474ccb0cb322c24c4
by joker.ephTopologically sort the library to link to mlir-cpu-runner which is required with some linkers like BFD (NFC)
|
 | mlir/tools/mlir-cpu-runner/CMakeLists.txt |
Commit
e7021232e66f4a8e21f2bcd77d9841d1fb414245
by joker.ephRemove global dialect registration
This has been deprecated for >1month now and removal was announced in:
https://llvm.discourse.group/t/rfc-revamp-dialect-registration/1559/11
Differential Revision: https://reviews.llvm.org/D86356
|
 | mlir/examples/standalone/standalone-opt/standalone-opt.cpp |
 | mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp |
 | mlir/unittests/SDBM/SDBMTest.cpp |
 | mlir/examples/toy/Ch2/toyc.cpp |
 | mlir/lib/ExecutionEngine/JitRunner.cpp |
 | mlir/lib/Dialect/SPIRV/Serialization/TranslateRegistration.cpp |
 | mlir/tools/mlir-cuda-runner/mlir-cuda-runner.cpp |
 | mlir/unittests/Dialect/Quant/QuantizationUtilsTest.cpp |
 | mlir/examples/toy/Ch4/toyc.cpp |
 | mlir/test/EDSC/builder-api-test.cpp |
 | mlir/unittests/TableGen/StructsGenTest.cpp |
 | mlir/examples/toy/Ch6/toyc.cpp |
 | mlir/tools/mlir-cpu-runner/mlir-cpu-runner.cpp |
 | mlir/lib/IR/MLIRContext.cpp |
 | mlir/tools/mlir-vulkan-runner/mlir-vulkan-runner.cpp |
 | mlir/include/mlir/IR/MLIRContext.h |
 | mlir/unittests/IR/DialectTest.cpp |
 | mlir/examples/toy/Ch7/toyc.cpp |
 | mlir/lib/Translation/Translation.cpp |
 | mlir/include/mlir/IR/Dialect.h |
 | mlir/include/mlir/InitAllDialects.h |
 | mlir/lib/Support/MlirOptMain.cpp |
 | mlir/lib/CAPI/IR/IR.cpp |
 | mlir/examples/toy/Ch5/toyc.cpp |
 | mlir/tools/mlir-rocm-runner/mlir-rocm-runner.cpp |
 | mlir/test/SDBM/sdbm-api-test.cpp |
 | mlir/tools/mlir-opt/mlir-opt.cpp |
 | mlir/examples/toy/Ch3/toyc.cpp |
 | mlir/unittests/Dialect/SPIRV/DeserializationTest.cpp |
 | mlir/unittests/Dialect/SPIRV/SerializationTest.cpp |
 | mlir/unittests/IR/OperationSupportTest.cpp |
 | mlir/unittests/TableGen/OpBuildGen.cpp |
 | mlir/unittests/Pass/AnalysisManagerTest.cpp |
 | mlir/tools/mlir-reduce/mlir-reduce.cpp |
 | mlir/lib/IR/Dialect.cpp |
 | mlir/unittests/IR/AttributeTest.cpp |
Commit
8f492f646781ed6c894775f95846520728d9119e
by joker.ephRemove unused verifyRegStateMapping() function in RegAllocFast (NFC)
This fixes compiler warning when building with assertions.
|
 | llvm/lib/CodeGen/RegAllocFast.cpp |
Commit
a16cbdd676bb40e7f1c0e3f87a61023331002508
by hoy[AutoFDO] Remove a broken assert in merging inlinee samples
Duplicated callsites share the same callee profile if the original callsite was inlined. The sharing also causes the profile of callee's callee to be shared. This breaks the assert introduced ealier by D84997 in a tricky way.
To illustrate, I'm using an abstract example. Say we have three functions `A`, `B` and `C`. A calls B twice and B calls C once. Some optimize performed prior to the sample profile loader duplicates first callsite to `B` and the program may look like
``` A() { B(); // with nested profile B1 and C1 B(); // duplicated, with nested profile B1 and C1 B(); // with nested profile B2 and C2 } ```
For some reason, the sample profile loader inliner then decides to only inline the first callsite in `A` and transforms `A` into
``` A() { C(); // with nested profile C1 B(); // duplicated, with nested profile B1 and C1 B(); // with nested profile B2 and C2. } ```
Here is what happens next:
1. Failing to inline the callsite `C()` results in `C1`'s samples returned to `C`'s base (outlined) profile. In the meantime, `C1`'s head samples are updated to `C1`'s entry sample. This also affects the profile of the middle callsite which shares `C1` with the first callsite. 2. Failing to inline the middle callsite results in `B1` returned to `B`'s base profile, which in turn will cause `C1` merged into `B`'s base profile. Note that the nest `C` profile in `B`'s base has a non-zero head sample count now. The value actually equals to `C1`'s entry count. 3. Failing to inline last callsite results in `B2` returned to `B`'s base profile. Note that the nested `C` profile in `B`'s base now has an entry count equal to the sum of that of `C1` and `C2`, with the head count equal to that of `C1`. This will trigger the assert later on. 4. Compiling `B` using `B`'s base profile. Failing to inline `C` there triggers the returning of the nested `C` profile. Since the nested `C` profile has a non-zero head count, the returning doesn't go through. Instead, the assert goes off.
It's good that `C1` is only returned once, based on using a non-zero head count to ensure an inline profile is only returned once. However C2 is never returned. While it seems hard to solve this perfectly within the current framework, I'm just removing the broken assert. This should be reasonably fixed by the upcoming CSSPGO work where counts returning is based on context-sensitivity and a distribution factor for callsite probes.
The simple example is extracted from one of our internal services. In reality, why the original callsite `B()` and duplicate one having different inline behavior is a magic. It has to do with imperfect counts in profile and extra complicated inlining that makes the hotness for them different.
Reviewed By: wenlei
Differential Revision: https://reviews.llvm.org/D90056
|
 | llvm/lib/Transforms/IPO/SampleProfile.cpp |
Commit
81ac81f8644a7c6ed19bea95385794f7870d0fda
by Duncan P. N. Exon SmithFileManager: Reorder declarations of FileEntry and FileEntryRef, NFC
This reduces noise in a future patch, but shouldn't change anything otherwise.
Differential Revision: https://reviews.llvm.org/D89521
|
 | clang/include/clang/Basic/FileManager.h |
Commit
4bde9aa9644a54e6e650809d8460cff0b9e17c2a
by joker.ephAdd CMake dependency from MLIRJitRunner on all dialects
This dependency was already existing indirectly, but is now more direct since the registration relies on a inline function. This fixes the link of the tools with BFD.
|
 | mlir/tools/mlir-cpu-runner/CMakeLists.txt |
 | mlir/lib/ExecutionEngine/CMakeLists.txt |
Commit
434f3774f629f5896614e9efb4eda82d813402ed
by Duncan P. N. Exon Smithclangd: Stop calling FileEntryRef::FileEntryRef
In `ReplayPreamble::replay`, use `getFileRef` instead of `getFile`, and then use that `FileEntryRef` later to avoid needing `FileEntryRef::FileEntryRef`. The latter is going to become private to `FileManager` in a later commit.
|
 | clang-tools-extra/clangd/ParsedAST.cpp |
Commit
0ec5baa1324d61e79bc21a1307ea52aa43a12352
by dblaikiellvm-dwarfdump: Support verbose printing DW_OP_convert to print the CU local offset before the resolved absolute offset
|
 | llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp |
 | llvm/test/DebugInfo/X86/convert-debugloc.ll |
 | llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h |
 | llvm/lib/DebugInfo/DWARF/DWARFContext.cpp |
 | llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp |
 | llvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp |
 | llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h |
 | llvm/lib/DebugInfo/DWARF/DWARFDie.cpp |
 | llvm/tools/llvm-readobj/DwarfCFIEHPrinter.h |
 | llvm/unittests/DebugInfo/DWARF/DWARFDebugFrameTest.cpp |
Commit
74910cbbd8d1df824ab1d5e742c50641d0fee907
by Duncan P. N. Exon SmithHeaderSearch: Simplify use of FileEntryRef in HeaderSearch::LookupFile, NFC
Simplify `HeaderSearch::LookupFile`. Instead of deconstructing a `FileEntryRef` into a name and `FileEntry` and then rebuilding it later, use it as is. This helps to unblock making the constructor of `FileEntryRef` private to `FileManager`.
Differential Revision:
|
 | clang/lib/Lex/HeaderSearch.cpp |
Commit
776a15d8aecad2768f1391092099e9b173b8148b
by Vitaly Buka[NFC][UBSAN] Avoid "not FileCheck" in tests
It's not clear if "not FileCheck" succeeded because input is empty or because input does not match "CHECK:" pattern.
|
 | compiler-rt/test/ubsan/TestCases/ImplicitConversion/unsigned-integer-truncation-blacklist.c |
 | compiler-rt/test/ubsan/TestCases/ImplicitConversion/signed-integer-truncation-blacklist.c |
 | compiler-rt/test/ubsan/TestCases/ImplicitConversion/integer-sign-change-blacklist.c |
 | compiler-rt/test/ubsan/TestCases/ImplicitConversion/signed-integer-truncation-or-sign-change-blacklist.c |
 | compiler-rt/test/ubsan/TestCases/ImplicitConversion/unsigned-integer-truncation.c |
Commit
0b057320453b90bb409f55f74386b6841546d48a
by dblaikiefix lldb for recent libDebugInfoDWARF API change
|
 | lldb/source/Symbol/UnwindPlan.cpp |
 | lldb/unittests/Symbol/PostfixExpressionTest.cpp |
 | lldb/unittests/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpressionTests.cpp |
 | lldb/source/Expression/DWARFExpression.cpp |
Commit
e92eeaf3c21923151cf86c706e396b613145f142
by zequanwu[llvm-cov] don't include all source files when provided source files are filtered out
When all provided source files are filtered out either due to `--ignore-filename-regex` or not part of binary, don't generate coverage reults for all source files. Because if users want to generate coverage results for all source files, they don't even need to provid selected source files or `--ignore-filename-regex`.
Differential Revision: https://reviews.llvm.org/D89359
|
 | llvm/test/tools/llvm-cov/warnings.h |
 | llvm/tools/llvm-cov/CodeCoverage.cpp |
 | llvm/test/tools/llvm-cov/sources-specified.test |
 | llvm/test/tools/llvm-cov/native_separators.c |
 | llvm/test/tools/llvm-cov/universal_bin_wrapping_archives.test |
Commit
b57937861f68305068d8a35154811b4303ce52e5
by llvm-project[flang][windows] Support platform-specific path separator.
Remove the assumption that the path separator is `/`. Use functions from `llvm::sys::path` instead.
Reviewed By: isuruf, klausler
Differential Revision: https://reviews.llvm.org/D89369
|
 | flang/lib/Parser/source.cpp |
 | flang/test/Semantics/getsymbols02.f90 |
Commit
0b671a44ad2d606647aa14d5782425b39aed9271
by llvm-project[flang][msvc] Fix lambda capture ambiguity. NFC.
Patch D88695 introduces a new local variable inside a lambda with the same name as a variable outside of it. In some of the if constexpr regions, msvc prioritizes the outer declaration and emits the error. ``` C:\Users\meinersbur\src\llvm-project\flang\lib\Evaluate\fold-implementation.h(1200): error C3493: 'context' cannot be implicitly captured because no default capture mode has been specified ```
This is fixed by giving the inner variable a different name.
Reviewed By: klausler
Differential Revision: https://reviews.llvm.org/D89367
|
 | flang/lib/Evaluate/fold-implementation.h |
Commit
fa66bcf4bc9467514dddacdba711a42e0a83cf9d
by peterhwasan: Disable operator {new,delete} interceptors when interceptors are disabled.
Differential Revision: https://reviews.llvm.org/D89827
|
 | compiler-rt/lib/hwasan/hwasan.h |
Commit
21d64c32eca63e98a94675cfc074f82371cadfe7
by Vitaly Buka[NFC][UBSAN] Refine CHECK pattern in test
As-is it was failed by unrelated linker warning with filename in the output.
|
 | compiler-rt/test/ubsan_minimal/TestCases/alignment-assumption.c |
Commit
64c4dac60e3af340c0e97ce213206472463c4873
by medismail.bennani[llvm/DebugInfo] Emit DW_OP_implicit_value when tuning for LLDB
This patch enables emitting DWARF `DW_OP_implicit_value` opcode when tuning debug information for LLDB (`-debugger-tune=lldb`).
This will also propagate to Darwin platforms, since they use LLDB tuning as a default.
rdar://67406059
Differential Revision: https://reviews.llvm.org/D90001
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
|
 | llvm/test/DebugInfo/X86/implicit_value-double.ll |
 | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp |
 | llvm/test/DebugInfo/X86/implicit_value-float.ll |
 | llvm/test/DebugInfo/X86/stack-value-piece.ll |
Commit
d590c854303959bcaa78746a62b9a8f81583c111
by llvm-project[flang] Fix pimpl idiom for IntrinsicProcTable.
The class IntrinsicProcTable uses the pimpl idiom and manages its own pointer-to-implementation. However, it violates the rule-of-five and does not implement a move-constructor or assignment-operator. Due to differences between compilers in implementation copy elision, these may or may not be used. Due to the missing user implementation for resource handling, using the results in runtime errors.
Fix my using `std::unique_ptr` instead of custom resource management.
Reviewed By: klausler
Differential Revision: https://reviews.llvm.org/D88794
|
 | flang/include/flang/Common/idioms.h |
 | flang/include/flang/Evaluate/intrinsics.h |
 | flang/lib/Evaluate/intrinsics.cpp |
Commit
bf6518a806acc3fc20e5413586607d045b7c2732
by Tony.Tye[AMDGPU] Cleanup AMDGPUUsage.rst
- Layout and typo improvements. - Add memory spaces section. - reStructure syntax fixes.
Differential Revision: https://reviews.llvm.org/D90002
|
 | llvm/docs/AMDGPUUsage.rst |
Commit
84ce6b9991bb6db1c37897aca55978a377ce931a
by martin[lldb] Fix building with GCC 7. NFC.
|
 | lldb/source/Target/Target.cpp |
Commit
d96cb52830fd7109cead60956a9b108935988e5c
by mgorny[lldb] [Process/NetBSD] Use XStateRegSet for all FPU registers
Unify the x86 regset API to use XStateRegSet for all FPU registers, therefore eliminating the legacy API based on FPRegSet. This makes the code a little bit simpler but most notably, it provides future compatibility for register caching.
Since the NetBSD kernel takes care of providing compatibility with pre-XSAVE processors, PT_{G,S}ETXSTATE can be used on systems supporting only FXSAVE or even plain FSAVE (and unlike PT_{G,S}ETXMMREGS, it clearly indicates that XMM registers are not supported).
Differential Revision: https://reviews.llvm.org/D90034
|
 | lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp |
 | lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.h |
Commit
7c026a83ee903f00cb0a2827519ccd6f16b6ed03
by paulsson[SystemZ] Define MaxInstLength to have the value of 6.
This value had the default value of 4 which caused branch relaxation to fail.
Review: Ulrich Weigand
Differential Revision: https://reviews.llvm.org/D90065
|
 | llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp |
 | llvm/test/CodeGen/SystemZ/Large/branch-range-13.py |
Commit
d09c5921421c362ecc24c9a804e87c2bc1d48997
by nikita.ppv[BasicAA] Fix caching in the presence of phi cycles
Any time we insert a block into VisitedPhiBBs, previously cached values may no longer be valid for the recursive alias queries. As such, perform them using an empty AAQueryInfo.
Note that if we recurse to the same phi, the block will already be inserted, so we reuse the old AAQueryInfo, and thus still protect against infinite recursion.
This problem can appear with with an without BatchAA, but is more likely to occur with BatchAA, as more values are cached.
Differential Revision: https://reviews.llvm.org/D90066
|
 | llvm/unittests/Analysis/AliasAnalysisTest.cpp |
 | llvm/lib/Analysis/BasicAliasAnalysis.cpp |
Commit
1a7a9efec3cf872dcf3e1a6e6fe39e797c4d9fc6
by nikita.ppv[BasicAA] Avoid duplicate cache lookup (NFCI)
Rather than performing the cache lookup with both possible orders for the locations, use the same canonicalization as the other AliasCache lookups in BasicAA.
|
 | llvm/lib/Analysis/BasicAliasAnalysis.cpp |
Commit
62b17a76971cd17c1ebd4ce00a536b0b74af98b2
by llvm-dev[LegalizeTypes] Legalize vector rotate operations
Lower vector rotate operations as long as the legalization occurs outside of LegalizeVectorOps.
This fixes https://bugs.llvm.org/show_bug.cgi?id=47320
Patch By: @rsanthir.quic (Ryan Santhirarajan)
Differential Revision: https://reviews.llvm.org/D89497
|
 | llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp |
 | llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp |
 | llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp |
 | llvm/test/CodeGen/AArch64/expand-vector-rot.ll |
 | llvm/include/llvm/CodeGen/TargetLowering.h |
 | llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp |
Commit
ce356e1546c9c538134dcdfc9f2d728b8ba0719c
by llvm-dev[DAG] Add BuildVectorSDNode::getRepeatedSequence helper to recognise multi-element splat patterns
Replace the X86 specific isSplatZeroExtended helper with a generic BuildVectorSDNode method.
I've just used this to simplify the X86ISD::BROADCASTM lowering so far (and remove isSplatZeroExtended), but we should be able to use this in more places to lower to complex broadcast patterns.
Differential Revision: https://reviews.llvm.org/D87930
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/unittests/CodeGen/AArch64SelectionDAGTest.cpp |
 | llvm/include/llvm/CodeGen/SelectionDAGNodes.h |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp |
Commit
310f62b4ff3ecb67cf696a977b194cceb326fa43
by llvm-dev[InstCombine] narrowFunnelShift - fold trunc/zext or(shl(a,x),lshr(b,sub(bw,x))) -> fshl(a,b,x) (PR35155)
As discussed on PR35155, this extends narrowFunnelShift (recently renamed from narrowRotate) to support basic funnel shift patterns.
Unlike matchFunnelShift we don't include the computeKnownBits limitation as extracting the pattern from the zext/trunc layers should be a indicator of reasonable funnel shift codegen, in D89139 we demonstrated how to efficiently promote funnel shifts to wider types.
Differential Revision: https://reviews.llvm.org/D89542
|
 | llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp |
 | llvm/test/Transforms/InstCombine/funnel.ll |
Commit
b481e00bf4de31eeb20b95f83b1eae3dcdb4b79c
by llvm-devFix some signed/unsigned comparison gcc warnings from D87930
|
 | llvm/unittests/CodeGen/AArch64SelectionDAGTest.cpp |
Commit
138b9f1928454a6096bb928195bacb7ccd46fd00
by Stefan Gränitz[JITLink][ELF] PCRel32GOTLoad relocations are resolved like regular PCRel32 ones
The difference is that the former are indirect and go to the GOT while the latter go to the target directly. This info can be used to relax indirect ones that don't need the GOT (because the target is in range). We check for this optimization beforehand. For formal correctness and to avoid confusion, we should only change the relocation kind if we actually apply the relaxation.
|
 | llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp |
Commit
e9955b0843cc1e5876430f3f051494d4197419f3
by Stefan Gränitz[jitlink][ELF] Add zero-fill blocks for symbols in section SHN_COMMON
Symbols with special section index SHN_COMMON (0xfff2) haven't been handled so far and caused an invalid section error.
This is a more or less straightforward use of the code commented out at the end of the function. I checked with the ELF spec, that the symbol value gives the alignment.
Reviewed By: lhames
Differential Revision: https://reviews.llvm.org/D89795
|
 | llvm/test/ExecutionEngine/JITLink/X86/ELF_x86-64_common.s |
 | llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp |
Commit
060a4fccf101b120cc9c36d4aa1041ee07044766
by tu.da.wei[LoopVersioning] Form dedicated exits for versioned loop to preserve simplify form
The exit blocks of the versioned and non-versioned loops are not dedicated and thus the two loops are not in simplify form. Insert dummy exit blocks after loop versioning with `formDedicatedExits()` to preserve the simplify form for subsequence passes.
Reviewed By: aeubanks
Differential Revision: https://reviews.llvm.org/D89569
|
 | llvm/test/Transforms/LoopDistribute/outside-use.ll |
 | llvm/test/Transforms/LoopVersioning/basic.ll |
 | llvm/test/Transforms/LoopDistribute/followup.ll |
 | llvm/test/Transforms/LoopDistribute/scev-inserted-runtime-check.ll |
 | llvm/test/Transforms/LoopVersioning/incorrect-phi.ll |
 | llvm/test/Transforms/LoopDistribute/basic-with-memchecks.ll |
 | llvm/test/Transforms/LoopVersioning/add-phi-update-users.ll |
 | llvm/lib/Transforms/Utils/LoopVersioning.cpp |
Commit
10b1a61bafba39fd7400a814a7272f41222ad579
by Stefan GränitzRevert "[jitlink][ELF] Add zero-fill blocks for symbols in section SHN_COMMON"
This reverts commit e9955b0843cc1e5876430f3f051494d4197419f3. Cannot reproduce the buildbot failures yet. Reverting in the meantime.
|
 | llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp |
 | llvm/test/ExecutionEngine/JITLink/X86/ELF_x86-64_common.s |
Commit
65a36bbc3d79f4f23843ec632e86363bc87b02d9
by tu.da.wei[NPM] Port -loop-versioning-licm to NPM
Reviewed By: aeubanks
Differential Revision: https://reviews.llvm.org/D89371
|
 | llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM2.ll |
 | llvm/test/Transforms/LoopVersioningLICM/convergent.ll |
 | llvm/lib/Passes/PassRegistry.def |
 | llvm/include/llvm/InitializePasses.h |
 | llvm/test/Transforms/LoopVersioningLICM/metadata.ll |
 | llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM1.ll |
 | llvm/lib/Passes/PassBuilder.cpp |
 | llvm/include/llvm/Transforms/Scalar/LoopVersioningLICM.h |
 | llvm/lib/Transforms/Scalar/LoopVersioningLICM.cpp |
 | llvm/lib/Transforms/Scalar/Scalar.cpp |
 | llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM3.ll |
Commit
4c5906cffd04202387d2f6b50a47d39c0e4f2c0e
by andrzej.warzynski[Flang][Driver] Add infrastructure for basic frontend actions and file I/O
This patch introduces the dependencies required to read and manage input files provided by the command line option. It also adds the infrastructure to create and write to output files. The output is sent to either stdout or a file (specified with the `-o` flag).
Separately, in order to be able to test the code for file I/O, it adds infrastructure to create frontend actions. As a basic testable example, it adds the `InputOutputTest` FrontendAction. The sole purpose of this action is to read a file from the command line and print it either to stdout or the output file. This action is run by using the `-test-io` flag also introduced in this patch (available for `flang-new` and `flang-new -fc1`). With this patch: ``` flang-new -test-io input-file.f90 ``` will read input-file.f90 and print it in the output file.
The `InputOutputTest` frontend action has been introduced primarily to facilitate testing. It is hidden from users (i.e. it's only displayed with `--help-hidden`). Currently Clang doesn’t have an equivalent action.
`-test-io` is used to trigger the InputOutputTest action in the Flang frontend driver. This patch makes sure that “flang-new” forwards it to “flang-new -fc1" by creating a preprocessor job. However, in Flang.cpp, `-test-io` is passed to “flang-new -fc1” without `-E`. This way we make sure that the preprocessor is _not_ run in the frontend driver. This is the desired behaviour: `-test-io` should only read the input file and print it to the output stream.
co-authored-by: Andrzej Warzynski <andrzej.warzynski@arm.com>
Differential Revision: https://reviews.llvm.org/D87989
|
 | clang/lib/Driver/Types.cpp |
 | clang/lib/Driver/Driver.cpp |
 | clang/include/clang/Driver/Options.td |
 | flang/test/Flang-Driver/emit-obj.f90 |
 | flang/unittests/Frontend/InputOutputTest.cpp |
 | flang/test/Frontend/multiple-input-files.f90 |
 | flang/include/flang/Frontend/CompilerInvocation.h |
 | flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp |
 | flang/test/Frontend/input-output-file.f90 |
 | flang/lib/Frontend/FrontendOptions.cpp |
 | flang/test/Flang-Driver/driver-help-hidden.f90 |
 | flang/lib/Frontend/FrontendAction.cpp |
 | flang/lib/Frontend/CompilerInvocation.cpp |
 | flang/include/flang/Frontend/FrontendAction.h |
 | flang/lib/Frontend/CompilerInstance.cpp |
 | clang/test/Driver/immediate-options.c |
 | flang/test/lit.cfg.py |
 | flang/lib/FrontendTool/CMakeLists.txt |
 | flang/include/flang/Frontend/FrontendOptions.h |
 | flang/include/flang/Frontend/CompilerInstance.h |
 | flang/lib/Frontend/FrontendActions.cpp |
 | flang/unittests/Frontend/CompilerInstanceTest.cpp |
 | flang/test/Flang-Driver/driver-help.f90 |
 | flang/test/Frontend/Inputs/hello-world.f90 |
 | flang/unittests/Frontend/CMakeLists.txt |
 | flang/include/flang/Frontend/FrontendActions.h |
 | flang/tools/flang-driver/fc1_main.cpp |
 | flang/lib/Frontend/CMakeLists.txt |
 | clang/lib/Driver/ToolChains/Flang.cpp |
 | clang/include/clang/Driver/Options.h |
 | flang/include/flang/FrontendTool/Utils.h |
Commit
b6ef40891c7fb076a2f4ea860f8ee4135ae72aae
by Stefan Gränitz[JITLink][ELF] PCRel32GOTLoad edge offset can be smaller three
Offset is 2 for MOVL instruction in test ELF_x86-64_common. This should fix the test failures.
Differential Revision: https://reviews.llvm.org/D89795
|
 | llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp |
Commit
66abe650fff6031074171ea9c7c6aa180bc2cbe9
by Stefan GränitzReapply "[jitlink][ELF] Add zero-fill blocks for symbols in section SHN_COMMON"
Root cause of the test failure was fixed with: [JITLink][ELF] PCRel32GOTLoad edge offset can be smaller three
This reverts commit 10b1a61bafba39fd7400a814a7272f41222ad579.
|
 | llvm/test/ExecutionEngine/JITLink/X86/ELF_x86-64_common.s |
 | llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp |
Commit
cbb7f1420b747aae09a7f728c186bb0c2702eb02
by andrzej.warzynski[flang][tests] Fix Python bug in the lit config
Without this change LIT tests for Flang fail with: ``` TypeError: append() takes exactly one argument (2 given) ```
|
 | flang/test/lit.cfg.py |
Commit
92205bf122b14e4beaaade612b6681dd21a926ab
by david.green[ARM] Remove some dead code. NFC
|
 | llvm/lib/Target/ARM/ARMInstrInfo.td |
Commit
9068c209655efc597b31b23fc41630d82c5b98a4
by dfukalov[AMDGPU][CostModel] Refine cost model for half- and quarter-rate instructions.
1. Throughput and codesize costs estimations was separated and updated. 2. Updated fdiv cost estimation for different cases. 3. Added scalarization processing for types that are treated as !isSimple() to improve codesize estimation in getArithmeticInstrCost() and getArithmeticInstrCost(). The code was borrowed from TCK_RecipThroughput path of base implementation.
Next step is unify scalarization part in base class that is currently works for TCK_RecipThroughput path only.
Reviewed By: rampitec
Differential Revision: https://reviews.llvm.org/D89973
|
 | llvm/test/Analysis/CostModel/AMDGPU/shifts.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp |
 | llvm/test/Analysis/CostModel/AMDGPU/fma.ll |
 | llvm/test/Analysis/CostModel/AMDGPU/fadd.ll |
 | llvm/test/Analysis/CostModel/AMDGPU/fmul.ll |
 | llvm/test/Analysis/CostModel/AMDGPU/mul.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h |
 | llvm/test/Analysis/CostModel/AMDGPU/fdiv.ll |
 | llvm/test/Analysis/CostModel/AMDGPU/fsub.ll |
 | llvm/test/Analysis/CostModel/AMDGPU/fused_costs.ll |
Commit
b8d2b6f6cf6015751fc950c3e8149404e8b37fe8
by benny.kraUnbreak the clang-interpreter example after 0aec49c8531bc5282b095730d34681455826bc2c
|
 | clang/examples/clang-interpreter/main.cpp |
Commit
bd2cf96c098ed0020f5178eda12cf30d3980d9bd
by benny.kra[X86] Add a stub for znver3 based on the little public information there is in AMD's manuals
No scheduling, no autodetection. Just enough so -march=znver3 works.
|
 | llvm/lib/Target/X86/X86.td |
 | clang/test/Misc/target-invalid-cpu-note.c |
 | clang/lib/Basic/Targets/X86.cpp |
 | llvm/include/llvm/Support/X86TargetParser.h |
 | clang/test/Preprocessor/predefined-arch-macros.c |
 | llvm/test/CodeGen/X86/cpus-amd.ll |
 | llvm/lib/Support/X86TargetParser.cpp |
Commit
39a0d6889dee636af3b7fbb69e1ac5c8af777ad0
by benny.kra[X86] Add a stub for Intel's alderlake.
No scheduling, no autodetection.
|
 | clang/test/Preprocessor/predefined-arch-macros.c |
 | clang/lib/Basic/Targets/X86.cpp |
 | llvm/lib/Target/X86/X86.td |
 | llvm/docs/ReleaseNotes.rst |
 | llvm/include/llvm/Support/X86TargetParser.h |
 | clang/test/Driver/x86-march.c |
 | clang/test/CodeGen/attr-target-mv.c |
 | clang/test/Misc/target-invalid-cpu-note.c |
 | clang/docs/ReleaseNotes.rst |
 | llvm/include/llvm/Support/X86TargetParser.def |
 | llvm/test/CodeGen/X86/cpus-intel.ll |
 | clang/test/CodeGen/target-builtin-noerror.c |
 | compiler-rt/lib/builtins/cpu_model.c |
 | llvm/lib/Support/X86TargetParser.cpp |
Commit
22d10b8ab44f703b72b8316a9b3b8adc623ca73f
by spatel[CostModel] remove cost-kind predicate for vector reduction costs
This is similar in spirit to 01ea93d85d6e (memcpy) except that here the underlying caller assumptions were created for vectorizer use (throughput) rather than other passes.
That meant targets could have an enormous throughput cost with no corresponding size, latency, or blended cost increase. The ARM costs show a small difference between throughput and size because there's an underlying difference in cmp/sel costs that is also predicated on cost-kind.
Paraphrasing from the previous commits: This may not make sense for some callers, but at least now the costs will be consistently wrong instead of mysteriously wrong.
Targets should provide better overrides if the current modeling is not accurate.
|
 | llvm/test/Analysis/CostModel/X86/intrinsic-cost-kinds.ll |
 | llvm/include/llvm/CodeGen/BasicTTIImpl.h |
 | llvm/test/Analysis/CostModel/ARM/reduce-add.ll |
 | llvm/test/Analysis/CostModel/ARM/intrinsic-cost-kinds.ll |
Commit
6f9d84bb26f15845e984170be40f7c1383425eea
by thakisRevert "hwasan: Disable operator {new,delete} interceptors when interceptors are disabled."
This reverts commit fa66bcf4bc9467514dddacdba711a42e0a83cf9d. Seems to break tests, see https://reviews.llvm.org/D89827#2351930
|
 | compiler-rt/lib/hwasan/hwasan.h |
Commit
d5adadb3a564236a894cbb5f189496a65d9e9742
by i[AArch64][GlobalISel] Fix -Wunused-variable. NFC
|
 | llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp |
Commit
29480c6c746cd3eda90b7060233bdc04a3f2e3dd
by mcgrathr[asan][fuchsia] set current thread before reading thread state
When enabling stack use-after-free detection, we discovered that we read the thread ID on the main thread while it is still set to 2^24-1.
This patch moves our call to AsanThread::Init() out of CreateAsanThread, so that we can call SetCurrentThread first on the main thread.
Reviewed By: mcgrathr
Differential Revision: https://reviews.llvm.org/D89606
|
 | compiler-rt/lib/asan/asan_thread.cpp |
 | compiler-rt/lib/asan/asan_fuchsia.cpp |
Commit
1e09dbb6a942ec5558dc84b5dbc8a842891135d4
by mcgrathr[asan] Fix stack-use-after-free checks on non-main thread on Fuchsia
While some platforms call `AsanThread::Init()` from the context of the thread being started, others (like Fuchsia) call `AsanThread::Init()` from the context of the thread spawning a child. Since `AsyncSignalSafeLazyInitFakeStack` writes to a thread-local, we need to avoid calling it from the spawning thread on Fuchsia. Skipping the call here on Fuchsia is fine; it'll get called from the new thread lazily on first attempted access.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D89607
|
 | compiler-rt/lib/asan/asan_thread.cpp |
Commit
f04d92af94a8d763e91ae38fe35319e426dc466c
by i[X86] Produce R_X86_64_GOTPCRELX for test/binop instructions (MOV32rm/TEST32rm/...) when -Wa,-mrelax-relocations=yes is enabled
We have been producing R_X86_64_REX_GOTPCRELX (MOV64rm/TEST64rm/...) and R_X86_64_GOTPCRELX for CALL64m/JMP64m without the REX prefix since 2016 (to be consistent with GNU as), but not for MOV32rm/TEST32rm/...
|
 | llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp |
 | llvm/test/MC/ELF/got.s |
 | llvm/test/MC/X86/gotpcrelx.s |
 | llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp |
 | llvm/test/MC/ELF/got-relaxed.s |
Commit
398b81067c8202d2b3e4fec23547b6b64d181459
by i[ELF] Don't crash on R_X86_64_GOTPCRELX for test/binop instructions
While MC did not produce R_X86_64_GOTPCRELX for test/binop instructions (movl/adcl/addl/andl/...) before the previous commit, this code path has been exercised by -fno-integrated-as for GNU as since 2016: -no-pie relaxing may incorrectly access loc[-3] and produce a corrupted instruction.
Simply handle test/binop R_X86_64_GOTPCRELX like R_X86_64_GOTPCREL.
|
 | lld/test/ELF/x86-64-gotpc-relax-nopic.s |
 | lld/ELF/Arch/X86_64.cpp |
Commit
c039e83a2ceebb48af2353b5e939ee6bcb732104
by aeubanksFix typo SSC -> SCC
|
 | llvm/lib/Passes/PassBuilder.cpp |
Commit
aaa8b44d19918ea1764339224cec68c27445aa8e
by zeratul976[clangd] Add a TestWorkspace utility
TestWorkspace allows easily writing tests involving multiple files that can have inclusion relationships between them.
BackgroundIndexTest.RelationsMultiFile is refactored to use TestWorkspace, and moved to FileIndexTest as it no longer depends on BackgroundIndex.
Differential Revision: https://reviews.llvm.org/D89297
|
 | clang-tools-extra/clangd/unittests/TestTU.cpp |
 | clang-tools-extra/clangd/unittests/TestTU.h |
 | clang-tools-extra/clangd/unittests/CMakeLists.txt |
 | clang-tools-extra/clangd/unittests/TestWorkspace.cpp |
 | clang-tools-extra/clangd/unittests/FileIndexTests.cpp |
 | llvm/utils/gn/secondary/clang-tools-extra/clangd/unittests/BUILD.gn |
 | clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp |
 | clang-tools-extra/clangd/unittests/TestWorkspace.h |
Commit
7b3515880c22c887cd5ca4825dfb060ad82d3ebc
by richardFor P0732R2, P1907R1: ensure that template parameter objects don't refer to disallowed objects or have non-constant destruction.
|
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/include/clang/Basic/DiagnosticCommonKinds.td |
 | clang/test/SemaTemplate/temp_arg_nontype_cxx1z.cpp |
 | clang/test/CXX/drs/dr1xx.cpp |
 | clang/test/CXX/temp/temp.param/p8-cxx20.cpp |
 | clang/include/clang/Basic/PartialDiagnostic.h |
 | clang/include/clang/AST/Expr.h |
 | clang/test/SemaTemplate/temp_arg_nontype_cxx20.cpp |
 | clang/lib/AST/ExprConstant.cpp |
 | clang/include/clang/Basic/LLVM.h |
 | clang/lib/Sema/SemaChecking.cpp |
 | clang/lib/Sema/SemaOverload.cpp |
Commit
13c62ce99aab2e0192e56767c46c5fab476a81c2
by tejohnson[MemProf] Temporarily disable part of test
Disable the part of this test that started failing only on the llvm-avr-linux bot after 5c20d7db9f2791367b9311130eb44afecb16829c. Unfortunately, "XFAIL: avr" does not work. Still in the process of trying to figure out how to debug.
|
 | compiler-rt/test/memprof/TestCases/log_path_test.cpp |
Commit
1c8371692dfe8245bc6690ff1262dcced4649d21
by martinRevert "[CostModel] remove cost-kind predicate for vector reduction costs"
This reverts commit 22d10b8ab44f703b72b8316a9b3b8adc623ca73f.
This broke compilation e.g. like this: $ cat synth.c *a; float *b; c() { for (;;) { float d = -*b * *a++; d -= *--b * *a++; d -= *--b * *a; d -= *--b * *a; e(d); } } $ clang -target x86_64-linux-gnu -c -O2 -ffast-math synth.c clang: ../include/llvm/Support/Casting.h:104: static bool llvm::isa_impl _cl<To, const From*>::doit(const From*) [with To = llvm::PointerType; Fr om = llvm::Type]: Assertion `Val && "isa<> used on a null pointer"' fail ed.
|
 | llvm/test/Analysis/CostModel/ARM/intrinsic-cost-kinds.ll |
 | llvm/test/Analysis/CostModel/ARM/reduce-add.ll |
 | llvm/test/Analysis/CostModel/X86/intrinsic-cost-kinds.ll |
 | llvm/include/llvm/CodeGen/BasicTTIImpl.h |
Commit
a222d832d531afca294bb43d80388b97d45a9aea
by craig.topper[X86] Use TargetConstant for FPDiff with X86::TC_RETURN.
It's required to be a constant and can never be in a register so make it explicit.
|
 | llvm/lib/Target/X86/X86InstrCompiler.td |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
f81f09ba8950a199af88e5a622155fb9801b11b7
by richard[c++20] For P0732R2: Support string literal operator templates.
|
 | clang/lib/Sema/SemaLookup.cpp |
 | clang/include/clang/Sema/Sema.h |
 | clang/lib/Sema/SemaDeclCXX.cpp |
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/test/CXX/lex/lex.literal/lex.ext/p5.cpp |
Commit
5e9f172295d011cc0a186a3e133b3b628556287f
by llvm-dev[InstCombine] Add test for or(fshl(),fshl()) bswap pattern.
Currently InstCombinerImpl::matchBSwapOrBitReverse won't match starting from funnel shifts.
|
 | llvm/test/Transforms/InstCombine/bswap.ll |
Commit
3052e474eceb25e3699940d6a7270550eed66606
by llvm-dev[InstCombine] matchBSwapOrBitReversem - recognise or(fshl(),fshl()) bswap patterns.
I'm not certain InstCombinerImpl::matchBSwapOrBitReverse needs to filter the or(op0(),op1()) ops - there are just too many cases that recognizeBSwapOrBitReverseIdiom/collectBitParts handle now (and quickly).
|
 | llvm/test/Transforms/InstCombine/bswap.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp |
Commit
2e204e23911b1f8bd1463535da40c6e48747a138
by melanie.blower[clang] Enable support for #pragma STDC FENV_ACCESS
Reviewers: rjmccall, rsmith, sepavloff
Differential Revision: https://reviews.llvm.org/D87528
|
 | clang/include/clang/Sema/ScopeInfo.h |
 | clang/test/CXX/expr/expr.const/p2-0x.cpp |
 | clang/lib/Serialization/ASTReaderDecl.cpp |
 | clang/lib/CodeGen/CodeGenModule.cpp |
 | clang/lib/Parse/ParsePragma.cpp |
 | clang/include/clang/Sema/Sema.h |
 | clang/lib/CodeGen/CodeGenFunction.cpp |
 | clang/lib/Sema/SemaTemplateInstantiateDecl.cpp |
 | clang/lib/Sema/SemaStmt.cpp |
 | clang/test/Parser/pragma-fenv_access.c |
 | clang/include/clang/Basic/DiagnosticParseKinds.td |
 | clang/lib/Sema/SemaAttr.cpp |
 | clang/lib/CodeGen/CodeGenModule.h |
 | clang/lib/Sema/ScopeInfo.cpp |
 | clang/lib/Sema/SemaDecl.cpp |
 | clang/test/CodeGen/pragma-fenv_access.c |
 | clang/include/clang/AST/Decl.h |
 | clang/docs/UsersManual.rst |
 | clang/lib/AST/ExprConstant.cpp |
 | clang/test/CodeGen/fp-floatcontrol-pragma.cpp |
 | clang/include/clang/Basic/Attr.td |
 | clang/lib/Parse/ParseStmt.cpp |
 | clang/test/Preprocessor/pragma_unknown.c |
 | clang/lib/Serialization/ASTWriterDecl.cpp |
 | clang/include/clang/Basic/LangOptions.h |
 | clang/lib/CodeGen/CGCall.cpp |
 | clang/include/clang/Basic/DiagnosticASTKinds.td |
 | clang/test/Parser/fp-floatcontrol-syntax.cpp |
Commit
d64ea0f18994e06c4428548c4093b3ce7a35cb98
by llvm-devRemove superfluous whitespace around if(). NFC.
|
 | llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp |
Commit
968aa6b917f7ffb3bda059c53f9e836934a9d16e
by flo[SLP] Add AArch64 tests with vectorizable compare/select patterns.
This patch adds an additional set of tests that can be vectorized efficiently on AArch64, using CMxx & BFI.
|
 | llvm/test/Transforms/SLPVectorizer/AArch64/vectorizable-selects-uniform-cmps.ll |
Commit
576d436c828f84f18277e4675e6e5337d2b77fde
by melanie.blowerCorrect LIT test failure detected on buildbot after mibintc committed rG2e204e23911b: [clang] Enable support for #pragma STDC FENV_ACCESS D87528
|
 | clang/test/Parser/pragma-fenv_access.c |
Commit
7de2add8296fb26fd49106173c9f140ebd0abedc
by spatel[InstSimplify] add tests for logic-of-cmps with not op; NFC
One variant of this is shown in: https://llvm.org/PR47858
|
 | llvm/test/Transforms/InstSimplify/and-or-icmp-min-max.ll |
Commit
e77ba263fe0eaa41a973583fc82089721c881593
by spatel[InstSimplify] peek through 'not' operand in logic-of-icmps fold
This extends D78430 to solve cases like: https://llvm.org/PR47858
There are still missed opportunities shown in the tests, and as noted in the earlier patches, we have related functionality in InstCombine, so we may want to extend other folds in a similar way.
A semi-random sampling of test diff proofs in this patch: https://rise4fun.com/Alive/sS4C
|
 | llvm/test/Transforms/InstSimplify/and-or-icmp-min-max.ll |
 | llvm/lib/Analysis/InstructionSimplify.cpp |
Commit
c5718253c9383bc02b384109743de30792c2b122
by nikita.ppv[IndVars] Regenerate test checks (NFC)
Also run the test case through -instnamer.
|
 | llvm/test/Transforms/IndVarSimplify/X86/pr35406.ll |
Commit
0dda6333175c1749f12be660456ecedade3bcf21
by nikita.ppv[SCEV] Strength nowrap flags after constant folding
We should first try to constant fold the add expression and only strengthen nowrap flags afterwards. This allows us to determine stronger flags if e.g. only two operands are left after constant folding (and thus "guaranteed no wrap region" code applies) or the resulting operands are non-negative and thus nsw->nuw strengthening applies.
|
 | llvm/test/Transforms/IndVarSimplify/X86/pr35406.ll |
 | llvm/test/Transforms/LoopReroll/nonconst_lb.ll |
 | llvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll |
 | llvm/lib/Analysis/ScalarEvolution.cpp |
 | llvm/test/Analysis/ScalarEvolution/trip-count15.ll |
 | llvm/test/Analysis/ScalarEvolution/ptrtoint-constantexpr-loop.ll |
 | llvm/test/Transforms/IndVarSimplify/X86/eliminate-trunc.ll |
 | llvm/test/Analysis/ScalarEvolution/trip-count9.ll |
 | llvm/test/Transforms/IndVarSimplify/eliminate-comparison.ll |
Commit
22a5cde541c3306e53279fd02c6d60ae6178ef10
by nikita.ppv[SCEV] Separate out constant folding in mul expr creation
Separate out the code handling constant folding into a separate block, that is independent of other folds that need a constant first operand. Also make some minor adjustments to make the constant folding look nearly identical to the same code in getAddExpr().
The only reason this change is not strictly NFC is that the C1*(C2+V) fold is moved below the constant folding, which means that it now also applies to C1*C2*(C3+V), as it should.
|
 | llvm/lib/Analysis/ScalarEvolution.cpp |
Commit
1ff313f0989009f8a080418e93fe510ec66e8999
by nikita.ppv[SCEV] Always constant fold mul expression operands
Establish parity with the handling of add expressions, by always constant folding mul expression operands before checking the depth limit (this is a non-recursive simplification). The code was already unconditionally constant folding the case where all operands were constants, but was not folding multiple constant operands together if there were also non-constant operands.
This requires picking out a different demonstration for depth-based folding differences in the limit-depth.ll test.
|
 | llvm/test/Analysis/ScalarEvolution/limit-depth.ll |
 | llvm/lib/Analysis/ScalarEvolution.cpp |
Commit
5250a03a9959c2701a8338fe1a1ffa8bd93d6173
by aaronpuchertThread safety analysis: Consider global variables in scope
Instead of just mutex members we also consider mutex globals. Unsurprisingly they are always in scope. Now the paper [1] says that
> The scope of a class member is assumed to be its enclosing class, > while the scope of a global variable is the translation unit in > which it is defined.
But I don't think we should limit this to TUs where a definition is available - a declaration is enough to acquire the mutex, and if a mutex is really limited in scope to a translation unit, it should probably be only declared there.
The previous attempt in 9dcc82f34ea was causing false positives because I wrongly assumed that LiteralPtrs were always globals, which they are not. This should be fixed now.
[1] https://static.googleusercontent.com/media/research.google.com/en/us/pubs/archive/42958.pdf
Fixes PR46354.
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D84604
|
 | clang/lib/Analysis/ThreadSafety.cpp |
 | clang/test/SemaCXX/warn-thread-safety-negative.cpp |
 | clang/test/SemaCXX/warn-thread-safety-analysis.cpp |
Commit
b296c64e64a0bc600538c8bc67d4ccc2564e3c72
by aaronpuchertThread safety analysis: Nullability improvements in TIL, NFCI
The constructor of Project asserts that the contained ValueDecl is not null, use that in the ThreadSafetyAnalyzer. In the case of LiteralPtr it's the other way around.
Also dyn_cast<> is sufficient if we know something isn't null.
|
 | clang/lib/Analysis/ThreadSafety.cpp |
 | clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h |
 | clang/lib/Analysis/ThreadSafetyCommon.cpp |
Commit
ebeef022aa6d244c3b151b247399e97e31d392ff
by nikita.ppv[SCEV] Strenthen nowrap flags after constant folding for mul exprs
Same change as 0dda6333175c1749f12be660456ecedade3bcf21, but for mul expressions. We want to first fold any constant operans and then strengthen the nowrap flags, as we can compute more precise flags at that point.
|
 | llvm/test/Transforms/IndVarSimplify/ARM/code-size.ll |
 | llvm/test/Analysis/IVUsers/quadradic-exit-value.ll |
 | llvm/test/Analysis/LoopAccessAnalysis/wrapping-pointer-versioning.ll |
 | llvm/test/Analysis/ScalarEvolution/zext-divrem.ll |
 | llvm/test/Transforms/IndVarSimplify/replace-loop-exit-folds.ll |
 | llvm/lib/Analysis/ScalarEvolution.cpp |
Commit
74ffc823ed2128dfce40181a13e3b2076a61126f
by spatel[CostModel] fix operand/type accounting for fadd/fmul reductions
I'm not sure if/how this ever worked, but it must not be tested currently because the basic tests added here were crashing as noted in the post-review comments for 1c83716 (which reverted another cost-model fix in 22d10b8ab44f).
|
 | llvm/test/Analysis/CostModel/X86/reduce-fadd.ll |
 | llvm/test/Analysis/CostModel/X86/reduce-fmul.ll |
 | llvm/include/llvm/CodeGen/BasicTTIImpl.h |
Commit
f2c25c70791de95d2466e09b5b58fc37f6ccd7a4
by spatel[CostModel] remove cost-kind predicate for some vector reduction costs
This is a modified 2nd try of 22d10b8ab44f (reverted by 1c8371692d because it managed to expose an existing crashing bug that should be fixed by 74ffc823 ).
Original commit message:
This is similar in spirit to 01ea93d85d6e (memcpy) except that here the underlying caller assumptions were created for vectorizer use (throughput) rather than other passes.
That meant targets could have an enormous throughput cost with no corresponding size, latency, or blended cost increase. The ARM costs show a small difference between throughput and size because there's an underlying difference in cmp/sel costs that is also predicated on cost-kind.
Paraphrasing from the previous commits: This may not make sense for some callers, but at least now the costs will be consistently wrong instead of mysteriously wrong.
Targets should provide better overrides if the current modeling is not accurate.
|
 | llvm/test/Analysis/CostModel/ARM/reduce-add.ll |
 | llvm/test/Analysis/CostModel/ARM/intrinsic-cost-kinds.ll |
 | llvm/test/Analysis/CostModel/X86/intrinsic-cost-kinds.ll |
 | llvm/include/llvm/CodeGen/BasicTTIImpl.h |
Commit
2ed16aa66f706ea565d1238e4fa6f7ae97c7d948
by craig.topper[X86] Use TargetConstant instead of Constant for operands to X86vaarg64.
|
 | llvm/lib/Target/X86/X86InstrCompiler.td |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
63ba82ed00ffe3e5d5f4ce907c4523d8d980fc8a
by craig.topper[X86] Use TargetConstant for immediates for VASTART_SAVE_XMM_REGS.
|
 | llvm/lib/Target/X86/X86InstrCompiler.td |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
180548c5c7848f82ceac5d6a3528a8cb14c20fed
by chen3.liu[X86] VEX/EVEX prefix doesn't work for inline assembly.
For now, we lost the encoding information if we using inline assembly. The encoding for the inline assembly will keep default even if we add the vex/evex prefix.
Differential Revision: https://reviews.llvm.org/D90009
|
 | llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp |
 | llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp |
 | llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h |
 | clang/test/CodeGen/X86/att-inline-asm-prefix.c |
Commit
82974e0114f02ffc07557e217d87f8dc4e100a26
by craig.topper[X86] Don't disassemble wbinvd with 0xf2 or 0x66 prefix.
The 0xf3 prefix has been defined as wbnoinvd on Icelake Server. So the prefix isn't ignored by the CPU. AMD documentation suggests that wbnoinvd is treated as wbinvd on older processors. Intel documentation is not clear. Perhaps 0xf2 and 0x66 are treated the same, but its not documented.
This patch changes TB to PS in the td file so 0xf2 and 0x66 will be treated as errors. This matches versions of objdump after wbnoinvd was added.
|
 | llvm/test/MC/Disassembler/X86/x86-64.txt |
 | llvm/test/MC/Disassembler/X86/x86-32.txt |
 | llvm/lib/Target/X86/X86InstrSystem.td |
 | llvm/test/MC/Disassembler/X86/invalid-wbinvd.txt |
Commit
5a061041ec4c8e16ba8d8321353d3a35ca77858f
by Christudasan.Devadasan[AMDGPU] Avoid offset register in MUBUF for direct stack object accesses
We use an absolute address for stack objects and it would be necessary to have a constant 0 for soffset field.
Fixes: SWDEV-228562
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D89234
|
 | llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp |
 | llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp |
 | llvm/test/CodeGen/AMDGPU/call-argument-types.ll |
Commit
15f6bad6d74a993e366c8fc93a9c91f213ac6bc3
by kbobyrev[clangd] Add dependency on remote index service proto
It requires Index.proto to be built first. Failed builds: https://github.com/clangd/clangd/runs/1305985916
|
 | clang-tools-extra/clangd/index/remote/CMakeLists.txt |
Commit
c019099053c147c6fb924a88e30c0993144ce22e
by mkazantsev[IndVars] Use contextual knowledge when proving trivial conds
No exact example where it would help, but it's a generally a more powerful way to prove predicates.
|
 | llvm/lib/Transforms/Scalar/IndVarSimplify.cpp |
Commit
4b5e848befdf786f5c905adf3b6c589216a24bff
by mkazantsev[NFC] Factor out common code into lambda for further improvement
|
 | llvm/lib/Transforms/Scalar/IndVarSimplify.cpp |
Commit
cdccc82f4825a1c9ac1bc0df2a222acdf5e820d4
by mkazantsev[NFC] Remove unused funciton param
|
 | llvm/lib/Transforms/Scalar/IndVarSimplify.cpp |
Commit
bfabd7878b3240732d64b09eeadbc1eccc21910a
by mkazantsevFix broken build after previous commit
|
 | llvm/lib/Transforms/Scalar/IndVarSimplify.cpp |
Commit
52f03fe1151f65278c855651bb8f325cca8500ea
by marukawa[VE] Support atomic fence
Support atomic fence instruction and add a regression test. Add MEMBARRIER pseudo insturction also to use it as a barrier against to the compiler optimizations.
Reviewed By: simoll
Differential Revision: https://reviews.llvm.org/D90112
|
 | llvm/lib/Target/VE/VEISelLowering.cpp |
 | llvm/lib/Target/VE/VEInstrInfo.td |
 | llvm/lib/Target/VE/VEISelLowering.h |
 | llvm/test/CodeGen/VE/atomic_fence.ll |
Commit
61bc18de0b2edf8659053b06d73dfd2563143572
by david.green[Schedule] Add a MultiHazardRecognizer
This adds a MultiHazardRecognizer and starts to make use of it in the ARM backend. The idea of the class is to allow multiple independent hazard recognizers to be added to a single base MultiHazardRecognizer, allowing them to all work in parallel without requiring them to be chained into subclasses. They can then be added or not based on cpu or subtarget features, which will become useful in the ARM backend once more hazard recognizers are being used for various things.
This also renames ARMHazardRecognizer to ARMHazardRecognizerFPMLx in the process, to more clearly explain what that recognizer is designed for.
Differential Revision: https://reviews.llvm.org/D72939
|
 | llvm/lib/CodeGen/CMakeLists.txt |
 | llvm/lib/Target/ARM/ARMHazardRecognizer.cpp |
 | llvm/lib/Target/ARM/ARMHazardRecognizer.h |
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp |
 | llvm/include/llvm/CodeGen/MultiHazardRecognizer.h |
 | llvm/lib/CodeGen/MultiHazardRecognizer.cpp |
Commit
8000d277bafa15f52061961e1ff1020306487e38
by llvmgnsyncbot[gn build] Port 61bc18de0b2
|
 | llvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn |
Commit
d613e39d52d263823324a695614c3c2981e94927
by eleviant[ARM][SchedModels] Convert IsLdrAm3NegRegOffPred to MCSchedPredicate
Differential revision: https://reviews.llvm.org/D90045
|
 | llvm/lib/Target/ARM/ARMScheduleA57.td |
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp |
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.h |
 | llvm/test/tools/llvm-mca/ARM/cortex-a57-memory-instructions.s |
 | llvm/include/llvm/Target/TargetInstrPredicate.td |
 | llvm/lib/Target/ARM/ARMSchedule.td |
Commit
a4fc18e6410f1d88ef3171e4eb6afc33d750f69a
by eleviant[ARM][SchedModels] Convert IsLdstsoMinusRegPred to MCSchedPredicate
Differential revision: https://reviews.llvm.org/D90029
|
 | llvm/lib/Target/ARM/ARMScheduleA57.td |
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.h |
 | llvm/test/tools/llvm-mca/ARM/cortex-a57-memory-instructions.s |
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp |
 | llvm/lib/Target/ARM/ARMSchedule.td |
Commit
99b2756517f23252d1bd60f2a15c5799df054ef3
by eleviant[ARM][SchedModels] Get rid of IsLdrAm2ScaledPred
Differential revision: https://reviews.llvm.org/D90024
|
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp |
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.h |
 | llvm/test/tools/llvm-mca/ARM/cortex-a57-memory-instructions.s |
 | llvm/lib/Target/ARM/ARMScheduleA57.td |
Commit
f32992ad24470e0abfc310dcd62359f35378be7b
by marukawa[VE] Support atomic load
Support atomic load instruction and add a regression test. VE uses release consitency, so need to insert fence around atomic instructions. This patch enable AtomicExpandPass and use emitLeadingFence and emitTrailingFence mechanism for such purpose.
Reviewed By: simoll
Differential Revision: https://reviews.llvm.org/D90135
|
 | llvm/lib/Target/VE/VETargetMachine.cpp |
 | llvm/lib/Target/VE/VEInstrInfo.td |
 | llvm/test/CodeGen/VE/atomic_load.ll |
 | llvm/lib/Target/VE/VEISelLowering.cpp |
 | llvm/lib/Target/VE/VEISelLowering.h |
Commit
82150dae8660c005823ed2da5c86cc1559a40c7b
by lkail[PowerPC] Add test case for pr47830. NFC.
|
 | llvm/test/CodeGen/PowerPC/pr47830.ll |
Commit
a95ce5f65f13608f652d554ee37e61d9df7fa0d3
by eleviant[ARM][SchedModels] Rename and generalize predicate. NFC
|
 | llvm/lib/Target/ARM/ARMSchedule.td |
 | llvm/lib/Target/ARM/ARMScheduleA57.td |
Commit
a094b4fa4b7f00d3e389a55c401e4078534494b8
by sebastian.neubauer[AMDGPU] Emit new pal metadata by default
If no pal metadata is given, default to the msgpack format instead of the legacy metadata. This makes tests better readable.
Differential Revision: https://reviews.llvm.org/D90035
|
 | llvm/test/CodeGen/AMDGPU/wave_dispatch_regs.ll |
 | llvm/test/CodeGen/AMDGPU/amdpal-vs.ll |
 | llvm/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.cpp |
 | llvm/test/CodeGen/AMDGPU/amdpal-hs.ll |
 | llvm/test/CodeGen/AMDGPU/elf-notes.ll |
 | llvm/test/CodeGen/AMDGPU/amdpal-ls.ll |
 | llvm/test/CodeGen/AMDGPU/amdpal.ll |
 | llvm/test/CodeGen/AMDGPU/amdpal-es.ll |
 | llvm/test/CodeGen/AMDGPU/amdpal-gs.ll |
 | llvm/test/CodeGen/AMDGPU/amdpal-cs.ll |
 | llvm/test/CodeGen/AMDGPU/amdpal-psenable.ll |
Commit
b2bec7cece9bb7d17799ac0af65a770cab4397ee
by flo[AsmPrinter] Add per BB instruction mix remark.
This patch adds a remarks that provides counts for each opcode per basic block.
An snippet of the generated information can be seen below.
The current implementation uses the target specific opcode for the counts. For example, on AArch64 this means we currently get 2 entries for `add` instructions if the block contains 32 and 64 bit adds. Similarly, immediate version are treated differently.
Unfortunately there seems to be no convenient way to get only the mnemonic part of the instruction as a string AFAIK. This could be improved in the future.
``` --- !Analysis Pass: asm-printer Name: InstructionMix DebugLoc: { File: arm64-instruction-mix-remarks.ll, Line: 30, Column: 30 } Function: foo Args: - String: 'BasicBlock: ' - BasicBlock: else - String: "\n" - String: INST_MADDWrrr - String: ': ' - INST_MADDWrrr: '2' - String: "\n" - String: INST_MOVZWi - String: ': ' - INST_MOVZWi: '1' ```
Reviewed By: anemet, thegameg, paquette
Differential Revision: https://reviews.llvm.org/D89892
|
 | llvm/test/CodeGen/AArch64/arm64-instruction-mix-remarks.ll |
 | llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp |
Commit
0acf7002433052c02487645759540431c3b94829
by marukawa[VE] Add integer arithmetic vector instructions
Add VADD/VADS/VADX/VSUB/VSBS/VSBX/VMPY/VMPS/VMPX/VMPD/VDIV/VDVS/VDVX instructions. Also add regression tests.
Reviewed By: simoll
Differential Revision: https://reviews.llvm.org/D89642
|
 | llvm/test/MC/VE/VMPD.s |
 | llvm/test/MC/VE/VDVX.s |
 | llvm/test/MC/VE/VADD.s |
 | llvm/test/MC/VE/VADX.s |
 | llvm/test/MC/VE/VADS.s |
 | llvm/test/MC/VE/VDVS.s |
 | llvm/test/MC/VE/VSBS.s |
 | llvm/test/MC/VE/VSUB.s |
 | llvm/test/MC/VE/VMPS.s |
 | llvm/test/MC/VE/VMPX.s |
 | llvm/lib/Target/VE/VEInstrVec.td |
 | llvm/test/MC/VE/VSBX.s |
 | llvm/test/MC/VE/VDIV.s |
 | llvm/test/MC/VE/VMPY.s |
Commit
8aa60f67dc8c67390680b7a3be0d31384300f09f
by marukawa[VE] Add vector comparison and min/max
Add VCMP/VCPS/VCPX/VCMS/VCMX vector instructions. Also add regression tests.
Reviewed By: simoll
Differential Revision: https://reviews.llvm.org/D89643
|
 | llvm/test/MC/VE/VCPS.s |
 | llvm/test/MC/VE/VCMP.s |
 | llvm/test/MC/VE/VCMX.s |
 | llvm/lib/Target/VE/VEInstrVec.td |
 | llvm/test/MC/VE/VCPX.s |
 | llvm/test/MC/VE/VCMS.s |
Commit
d3205bbca3e0002d76282878986993e7e7994779
by tyker[Annotation] Allows annotation to carry some additional constant arguments.
This allows using annotation in a much more contexts than it currently has. especially when annotation with template or constexpr.
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D88645
|
 | llvm/test/Analysis/CostModel/X86/free-intrinsics.ll |
 | clang/test/CodeGen/annotations-loc.c |
 | llvm/test/Analysis/CostModel/free-intrinsics-datalayout.ll |
 | clang/test/CodeGen/annotations-var.c |
 | clang/test/Misc/pragma-attribute-objc.m |
 | clang/test/CodeGen/annotations-field.c |
 | clang/include/clang/Sema/Sema.h |
 | clang/test/SemaCXX/attr-annotate.cpp |
 | clang/test/CodeGen/annotations-global.c |
 | clang/test/Sema/annotate.c |
 | clang/lib/CodeGen/CodeGenModule.h |
 | clang/test/CodeGenCXX/attr-annotate.cpp |
 | clang/test/Parser/objc-implementation-attrs.m |
 | llvm/test/CodeGen/Generic/ptr-annotate.ll |
 | clang/test/AST/ast-dump-attr.cpp |
 | clang/lib/CodeGen/CodeGenFunction.h |
 | llvm/test/Analysis/CostModel/free-intrinsics-no_info.ll |
 | clang/lib/CodeGen/CodeGenModule.cpp |
 | llvm/test/Transforms/InstCombine/assume_inevitable.ll |
 | clang/test/Sema/pragma-attribute.c |
 | clang/lib/Sema/SemaDeclAttr.cpp |
 | clang/include/clang/Sema/ParsedAttr.h |
 | clang/lib/CodeGen/CodeGenFunction.cpp |
 | clang/test/Misc/pragma-attribute-cxx.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/test/CodeGenCXX/attr-annotate2.cpp |
 | llvm/include/llvm/IR/Intrinsics.td |
 | clang/lib/Sema/SemaTemplateInstantiateDecl.cpp |
 | clang/include/clang/Basic/Attr.td |
 | clang/test/Parser/access-spec-attrs.cpp |
 | clang/lib/CodeGen/CGBuiltin.cpp |
Commit
878b526409acb04b11f0a6b83c561bfee3521e57
by jperier[flang] Tighten rules to resolve procedure as intrinsic procedure
2 Bug fixes:
- Do not resolve procedure as intrinsic if they appeared in an EXTERNAL attribute statement (one path was not considering this flag)
- Emit an error if a procedure resolved to be an intrinsic function (resp. subroutine) is used as a subroutine (resp. function). Lowering was attempted while the evaluate::Expression for the call was missing without any errors.
1 behavior change:
- Do not implicitly resolve subroutines (resp. functions) as intrinsics because their name is the name of an intrinsic function (resp. subroutine). Add justification in documentation.
Reviewed By: klausler, tskeith
Differential Revision: https://reviews.llvm.org/D90049
|
 | flang/docs/Intrinsics.md |
 | flang/include/flang/Evaluate/intrinsics.h |
 | flang/lib/Semantics/resolve-names.cpp |
 | flang/test/Semantics/call16.f90 |
 | flang/test/Semantics/symbol19.f90 |
 | flang/lib/Evaluate/intrinsics.cpp |
Commit
4afa077899b1e3def4cff475deae73681db04e21
by tykerTry to fix buildbots after d3205bbca3e0002d76282878986993e7e7994779
|
 | llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-no-op-intrinsics.ll |
 | llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll |
Commit
7acf2e2e1e8f7e2eac2dd5bbf7d752ba7ad4e79c
by mgorny[lldb] [Process/FreeBSDRemote] Fix #include for i386 compat
Include <x86/fpu.h> rather than <machine/fpu.h>, as the latter is not present on i386.
Differential Revision: https://reviews.llvm.org/D90128
|
 | lldb/source/Plugins/Process/FreeBSDRemote/NativeRegisterContextFreeBSD_x86_64.cpp |
Commit
37d4d3bb4daf409102237132ae8e1db250da83be
by mgorny[lldb] [test/Register] Use initial state for write tests
Reset registers to their 'initial' state instead of a semi-random pattern in write tests. While the latter might have been helpful while debugging failures (i.e. to distinguish unmodified registers from mistakenly written zeroes), the former makes it possible to test whether xstate_bv field is written correctly when using XSAVE.
With this change, the four relevant tests start failing on NetBSD without D90105.
Differential Revision: https://reviews.llvm.org/D90114
|
 | lldb/test/Shell/Register/Inputs/x86-ymm-write.cpp |
 | lldb/test/Shell/Register/Inputs/x86-64-write.cpp |
 | lldb/test/Shell/Register/Inputs/x86-zmm-write.cpp |
 | lldb/test/Shell/Register/Inputs/x86-mm-xmm-write.cpp |
Commit
a8902376651a7adbacd0c1934d9f70bdb9fad7f0
by mgorny[lldb] [Process/NetBSD] Set xs_xstate_bv correctly when setting regs
Ensure that xs_xstate_bv is set correctly before calling WriteRegisterSet(). The bit can be clear if the relevant registers were at their initial state when they were read, and it needs to be set in order to apply changes from the XState structure.
Differential Revision: https://reviews.llvm.org/D90105
|
 | lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp |
Commit
f5ca27569eacc398f0e4fc63a9b55cafac398c04
by mgorny[lldb] [Process/Linux] Reuse NativeRegisterContextWatchpoint_x86
Differential Revision: https://reviews.llvm.org/D90119
|
 | lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux.h |
 | lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp |
 | lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux.cpp |
 | lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp |
 | lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp |
 | lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp |
 | lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_ppc64le.cpp |
 | lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_s390x.cpp |
 | lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.h |
Commit
97ca9ca180f0810adcc1637d1a6dd32a04f63cfe
by pavel[lldb] Fix bitfield "frame var" for pointers (pr47743)
Displaying large packed bitfields did not work if one was accessing them through a pointer, and he used the "->" notation ("[0]." notation is fine). The reason for that is that implicit dereference in -> is plumbed all the way down to ValueObjectChild::UpdateValue, where the process of fetching the child value was forked for this flag. The bitfield "sliding" code was implemented only for the branch which did not require dereferencing.
This patch restructures the function to avoid this mistake. Processing now happens in two stages. - first the parent is dereferenced (if needed) - then the child value is computed (this step includes sliding and is common for both branches)
Differential Revision: https://reviews.llvm.org/D89236
|
 | lldb/source/Core/ValueObjectChild.cpp |
 | lldb/test/API/lang/c/bitfields/main.c |
 | lldb/test/API/lang/c/bitfields/TestBitfields.py |
Commit
e4cc6e9bcdff5fe979ab72025cb803d723cd9c31
by pavel[lldb] Modernize PseudoTerminal::Fork
|
 | lldb/include/lldb/Host/PseudoTerminal.h |
 | lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp |
 | lldb/source/Host/common/PseudoTerminal.cpp |
Commit
a64b2c93662d8c9bbe49561980ed6c78892491d3
by djtodoro[NFC][InstrRefLDV] Fix a typo
|
 | llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp |
Commit
1876d06ea31f38411012841971a3ff69b4a864d4
by eleviant[llvm-mca] Add few memory instructions to cortex-a57 test
|
 | llvm/test/tools/llvm-mca/ARM/cortex-a57-memory-instructions.s |
Commit
5cad535ccfebf9b41a57cf2788d8de7a765f7f35
by dvyukovtsan: add mips64 support in lib/tsan/go/buildgo.sh
Enable mips64 support in buildgo.sh.
Author: mzh (Meng Zhuo) Reviewed-in: https://reviews.llvm.org/D90130
|
 | compiler-rt/lib/sanitizer_common/sanitizer_platform.h |
 | compiler-rt/lib/tsan/rtl/tsan_platform.h |
 | compiler-rt/lib/tsan/go/buildgo.sh |
 | compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp |
Commit
821f3b763ae506b329144550028a4fd0cba0a361
by llvm-dev[InstCombine] Add rotate tests where the shift amount is zero extended after masking
|
 | llvm/test/Transforms/InstCombine/rotate.ll |
Commit
6b2eb31e1e2db1f3ca7a5c4914ab08cb18698de7
by llvm-dev[InstCombine] Add support for zext(and(neg(amt),width-1)) rotate shift amount patterns
Alive2: https://alive2.llvm.org/ce/z/bCvvHd
|
 | llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp |
 | llvm/test/Transforms/InstCombine/rotate.ll |
Commit
efa9aaad703e6b150980ed1a74b4e7c9da7d85a2
by hokein.wu[clang] Suppress "follow-up" diagnostics on recovery call expressions.
Because of typo-correction, the AST can be transformed, and the transformed AST is marginally useful for diagnostics purpose, the following diagnostics usually do harm than good (easily cause confusions).
Given the following code:
``` void abcc(); void test() { if (abc()); // diagnostic 1 (for the typo-correction): the typo is correct to `abcc()`, so the code is treate as `if (abcc())` in AST perspective; // diagnostic 2 (for mismatch type): we perform an type-analysis on `if`, discover the type is not match } ```
The secondary diagnostic "convertable to bool" is likely bogus to users.
The idea is to use RecoveryExpr (clang's dependent mechanism) to preserve the recovery behavior but suppress all follow-up diagnostics.
Differential Revision: https://reviews.llvm.org/D89946
|
 | clang/test/SemaCXX/typo-correction-delayed.cpp |
 | clang/test/AST/ast-dump-recovery.cpp |
 | clang/lib/Sema/SemaOverload.cpp |
Commit
cae4067ec1cdf7846aa46dab13d3bc1f58b76016
by antiagainst[MLIR][mlir-spirv-cpu-runner] A pass to emulate a call to kernel in LLVM
This patch introduces a pass for running `mlir-spirv-cpu-runner` - LowerHostCodeToLLVMPass.
This pass emulates `gpu.launch_func` call in LLVM dialect and lowers the host module code to LLVM. It removes the `gpu.module`, creates a sequence of global variables that are later linked to the varables in the kernel module, as well as a series of copies to/from them to emulate the memory transfer to/from the host or to/from the device sides. It also converts the remaining Standard dialect into LLVM dialect, emitting C wrappers.
Reviewed By: mravishankar
Differential Revision: https://reviews.llvm.org/D86112
|
 | mlir/include/mlir/Conversion/Passes.td |
 | mlir/include/mlir/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVMPass.h |
 | mlir/lib/Conversion/SPIRVToLLVM/CMakeLists.txt |
 | mlir/test/Conversion/SPIRVToLLVM/lower-host-to-llvm-calls.mlir |
 | mlir/lib/Conversion/SPIRVToLLVM/ConvertLaunchFuncToLLVMCalls.cpp |
Commit
e4991867fb5ace434640bfacfd28720ad031d33c
by llvm-dev[clang-fuzzer] CreateAndRunJITFunc - fix use after move static analyzer warning.
We were using the unique_ptr M to determine the triple after it had been moved in the EngineBuilder constructor.
|
 | clang/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp |
Commit
2add7c5cf3ebbba629d2756b3e91728e55b40881
by andrew.ng[llvm-ar][Object] Fix detection of need for 64-bit archive symbol tables
The code to detect the requirement for 64-bit offsets in the archive symbol table was not correctly accounting for the archive file signature and the size of all the contents of the symbol table itself, e.g. the symbol table's header and string table. Also was not considering the variation in symbol table formats. This could result in the creation of large archives with a corrupt symbol table.
Change the testing environment variable SYM64_THRESHOLD to be an absolute value rather than a power of 2 in order to enable precise testing of this detection code.
Differential Revision: https://reviews.llvm.org/D89891
|
 | llvm/lib/Object/ArchiveWriter.cpp |
 | llvm/test/Object/archive-symtab.test |
Commit
ffa6d2afa4a6f35e2e99172a17d489bcec7f0353
by fraser[DAGCombine] Add test case showing incorrect DAGCombine optimization
This optmization produces incorrect results when the vector element type is not byte-sized. Related to D78568.
|
 | llvm/test/CodeGen/AMDGPU/extract-load-i1.ll |
Commit
89808ce7343b22586bfd0d3fafddcdbba94fbcbb
by antiagainst[MLIR][mlir-spirv-cpu-runner] A SPIR-V cpu runner prototype
This patch introduces a SPIR-V runner. The aim is to run a gpu kernel on a CPU via GPU -> SPIRV -> LLVM conversions. This is a first prototype, so more features will be added in due time.
- Overview The runner follows similar flow as the other runners in-tree. However, having converted the kernel to SPIR-V, we encode the bind attributes of global variables that represent kernel arguments. Then SPIR-V module is converted to LLVM. On the host side, we emulate passing the data to device by creating in main module globals with the same symbolic name as in kernel module. These global variables are later linked with ones from the nested module. We copy data from kernel arguments to globals, call the kernel function from nested module and then copy the data back.
- Current state At the moment, the runner is capable of running 2 modules, nested one in another. The kernel module must contain exactly one kernel function. Also, the runner supports rank 1 integer memref types as arguments (to be scaled).
- Enhancement of JitRunner and ExecutionEngine To translate nested modules to LLVM IR, JitRunner and ExecutionEngine were altered to take an optional (default to `nullptr`) function reference that is a custom LLVM IR module builder. This allows to customize LLVM IR module creation from MLIR modules.
Reviewed By: ftynse, mravishankar
Differential Revision: https://reviews.llvm.org/D86108
|
 | mlir/test/mlir-spirv-cpu-runner/CMakeLists.txt |
 | mlir/tools/mlir-spirv-cpu-runner/mlir-spirv-cpu-runner.cpp |
 | mlir/lib/ExecutionEngine/ExecutionEngine.cpp |
 | mlir/examples/toy/Ch7/toyc.cpp |
 | mlir/test/lit.site.cfg.py.in |
 | mlir/CMakeLists.txt |
 | mlir/tools/mlir-spirv-cpu-runner/CMakeLists.txt |
 | mlir/include/mlir/ExecutionEngine/ExecutionEngine.h |
 | mlir/test/mlir-spirv-cpu-runner/mlir_test_spirv_cpu_runner_c_wrappers.cpp |
 | mlir/include/mlir/ExecutionEngine/JitRunner.h |
 | mlir/test/mlir-spirv-cpu-runner/lit.local.cfg |
 | mlir/test/mlir-spirv-cpu-runner/double.mlir |
 | mlir/test/CMakeLists.txt |
 | mlir/test/mlir-spirv-cpu-runner/simple_add.mlir |
 | mlir/examples/toy/Ch6/toyc.cpp |
 | mlir/lib/ExecutionEngine/JitRunner.cpp |
 | mlir/tools/CMakeLists.txt |
 | mlir/test/lit.cfg.py |
Commit
58d0ef2d0466a893ab400f6a9829057b9d851038
by kbobyrev[clangd] Fix remote index build failures due to lack of proto dependency
Previous attempt (15f6bad6d74a993e366c8fc93a9c91f213ac6bc3) introduced add_dependencies but unfortunately it does not actually add a dependency between RemoteIndexProto and RemoteIndexServiceProto. This is likely due to some requirements of it that clang_add_library violates.
As a workaround, we will link RemoteIndexProto library to RemoteIndexServiceProto which is logical because the library can not be without linking to RemoteIndexProto anyway.
|
 | clang-tools-extra/clangd/index/remote/CMakeLists.txt |
Commit
1747aae9fc64448fb9b4f715dcd327c94f2fa4a6
by flo[LV] Add cost-model test for AArch64 select costs.
Currently, the cost of some compare/select patterns is overestimated on AArch64.
|
 | llvm/test/Transforms/LoopVectorize/AArch64/select-costs.ll |
Commit
0ca4124798df6518bb7b3b3722e0ab788acdd494
by jay.foad[AMDGPU] Make more use of printNamedBit in AMDGPUInstPrinter. NFC.
|
 | llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp |
Commit
16f126df437f9ea19383c5486181c5e2797227f2
by llvm-dev[InstCombine] Add bswap test pattern using bitreverse intrinsic
This is mainly to help with future better bitreverse folding support but we can test it via bswap matching for now.
|
 | llvm/test/Transforms/InstCombine/bswap.ll |
Commit
d0ee1d8efe804b3184b1073cd367a307867f1372
by Raphael Isemann[lldb][NFC] Make GetShellSafeArgument simpler and faster
Escaping by inserting characters in the middle of a std::string isn't cheap. It's much more verbose than just prepending a backslash in a loop.
|
 | lldb/source/Utility/Args.cpp |
Commit
1704704e762f232e827849ee881ebe74b5db7ef1
by kbobyrev[clangd] NFC: Update FIXME comment regarding lack of c/dtor support
Both `SymbolKind` and `indexSymbolKindToSymbolKind` support constructors and separate them into a different category from regular methods.
Reviewed By: kadircet
Differential Revision: https://reviews.llvm.org/D89935
|
 | clang-tools-extra/clangd/XRefs.cpp |
 | clang-tools-extra/clangd/FindSymbols.cpp |
Commit
532f3bec3e019a3e6089edf6bd21e9b9b540542b
by llvm-dev[InstCombine] collectBitParts - add bitreverse intrinsic support.
|
 | llvm/test/Transforms/InstCombine/bswap.ll |
 | llvm/lib/Transforms/Utils/Local.cpp |
Commit
206e8d8905035f6e9049b97c9cd8af0eaa5aa118
by Raphael IsemannFix SBError::SetErrorToGenericError
`SBError::SetErrorToGenericError` should call `Status::SetErrorToGenericError`, not `Status::SetErrorToErrno`.
Reviewed By: teemperor
Differential Revision: https://reviews.llvm.org/D90151
|
 | lldb/test/API/python_api/sberror/TestSBError.py |
 | lldb/source/API/SBError.cpp |
Commit
26e2e9f2de7efdfb843a5440e7a94c4e919efd7a
by paul[TableGen] [tests] Change integer ranges to use new '...' punctuation
Differential Revision: https://reviews.llvm.org/D90057
|
 | llvm/unittests/TableGen/Automata.td |
 | llvm/test/TableGen/Common/reg-with-subregs-common.td |
 | llvm/test/TableGen/FixedLenDecoderEmitter/conflict.td |
 | llvm/test/TableGen/FixedLenDecoderEmitter/InitValue.td |
Commit
32efb81ea60a9e99571923bf9308598f6cd341f2
by dpetrov[analyzer] [NFC] Simplify SVal::getAsLocSymbol function using existing functions
Summary: Method of obtaining MemRegion from LocAsInteger/MemRegionVal already exists in SVal::getAsRegion function. Replace repetitive conditions in SVal::getAsLocSymbol with SVal::getAsRegion function.
Differential Revision: https://reviews.llvm.org/D89982
|
 | clang/lib/StaticAnalyzer/Core/SVals.cpp |
Commit
cfefef50c18a481040203f15b55edf89c1fafceb
by marukawa[VE] Support atomic store
Support atomic store instructions and add a regression test.
Reviewed By: simoll
Differential Revision: https://reviews.llvm.org/D90137
|
 | llvm/lib/Target/VE/VEInstrInfo.td |
 | llvm/test/CodeGen/VE/atomic_store.ll |
Commit
83cb423c6e19f3aad819b89140b1d74203b23180
by marukawa[VE] Add vector logical instructions
Add VAND/VOR/VXOE/VEQV/VLDZ/VPCNT/VBRV/VSEQ instrucitons and regression tests.
Reviewed By: simoll
Differential Revision: https://reviews.llvm.org/D90141
|
 | llvm/test/MC/VE/VXOR.s |
 | llvm/test/MC/VE/VEQV.s |
 | llvm/lib/Target/VE/VEInstrVec.td |
 | llvm/test/MC/VE/VSEQ.s |
 | llvm/test/MC/VE/VAND.s |
 | llvm/test/MC/VE/VBRV.s |
 | llvm/test/MC/VE/VOR.s |
 | llvm/test/MC/VE/VLDZ.s |
 | llvm/test/MC/VE/VPCNT.s |
Commit
9d0db405b57b892d5dad75549dea942c337e9f0d
by marukawa[VE] Add vector shift instructions
Add VSLL/VSLD/VSRL/VSLA/VSLAX/VSRA/VSRAX/VSFA instructionss. Add additonal AsmParser for VSLD special operand. Also add regression tests.
Reviewed By: simoll
Differential Revision: https://reviews.llvm.org/D90143
|
 | llvm/test/MC/VE/VSRAX.s |
 | llvm/test/MC/VE/VSLD.s |
 | llvm/test/MC/VE/VSLA.s |
 | llvm/test/MC/VE/VSLAX.s |
 | llvm/test/MC/VE/VSLL.s |
 | llvm/lib/Target/VE/VEInstrVec.td |
 | llvm/test/MC/VE/VSFA.s |
 | llvm/test/MC/VE/VSRA.s |
 | llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp |
Commit
2030db328ae319b53c358923009f3d48d6fd4b52
by llvm-dev[X86] Use mtriple instead of march in MIR tests
|
 | llvm/test/CodeGen/X86/x87-reg-usage.mir |
 | llvm/test/CodeGen/X86/opt_phis2.mir |
 | llvm/test/CodeGen/X86/unreachable-mbb-undef-phi.mir |
 | llvm/test/CodeGen/X86/opt_phis.mir |
Commit
a562dc82a8d9488d35ff535302716141bc6feaa3
by flo[AArch64] Add 2 cases where insertelement lowering could be improved.
|
 | llvm/test/CodeGen/AArch64/arm64-vector-insertion.ll |
Commit
d6a0957467e86d5a87964d45fae18733e212c86f
by Andrey.Churbanov[OpenMP] changing OMP rtl to use shared memory instead of env variable
Patch by Erdner, Todd <todd.erdner@intel.com>
Differential Revision: https://reviews.llvm.org/D89898
|
 | openmp/runtime/cmake/config-ix.cmake |
 | openmp/runtime/src/kmp_runtime.cpp |
 | openmp/runtime/cmake/LibompHandleFlags.cmake |
Commit
0ef6a25e195bafa285d3b957f247bfb23b2cf704
by llvm-dev[InstCombine] Add bswap test pattern using truncates
|
 | llvm/test/Transforms/InstCombine/bswap.ll |
Commit
d3024a074be09f6589eccac00cecabccd8258f2d
by Louis Dionne[libc++] Add a CI jobs to test the Standalone builds
|
 | libcxx/utils/ci/run-buildbot.sh |
 | libcxx/utils/ci/buildkite-pipeline.yml |
 | libcxx/src/CMakeLists.txt |
Commit
4604441386dc5fcd3165f4b39f5fa2e2c600f1bc
by joe.ellis[SVE][CodeGen][DAGCombiner] Fix TypeSize warning in redundant store elimination
The modified code in visitSTORE was missing a scalable vector check, and still using the now deprecated implicit cast of TypeSize to uint64_t through the overloaded operator. This patch fixes these issues.
This brings the logic in line with the comment on the context line immediately above the added precondition.
Add a test in Redundantstores.ll that the warning is not triggered.
|
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
 | llvm/test/CodeGen/AArch64/Redundantstore.ll |
Commit
6536d6040f5cd20d554901e265519b80dd8119f2
by peter.wallerRevert "[SVE][CodeGen][DAGCombiner] Fix TypeSize warning in redundant store elimination"
This reverts commit 4604441386dc5fcd3165f4b39f5fa2e2c600f1bc.
Reverting because it was not the intended version of the patch, which follows this patch.
|
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
 | llvm/test/CodeGen/AArch64/Redundantstore.ll |
Commit
5b742a0c106fbed11779d6dd99854a6f97643524
by peter.waller[SVE][CodeGen][DAGCombiner] Fix TypeSize warning in redundant store elimination
The modified code in visitSTORE was missing a scalable vector check, and still using the now deprecated implicit cast of TypeSize to uint64_t through the overloaded operator. This patch fixes these issues.
This brings the logic in line with the comment on the context line immediately above the added precondition.
Add a test in sve-redundant-store.ll that the warning is not triggered.
Differential Revision: https://reviews.llvm.org/D89701
|
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
 | llvm/test/CodeGen/AArch64/sve-redundant-store.ll |
Commit
c686dfd61705f33419875b22eb08bd197a72cd18
by thakisUnconfuse gcc5.3 after 2e204e23911b1f / D87528
The local variable CmpResult added in that change shadowed the type CmpResult, which confused an older gcc. Rename the variable CmpResult to APFloatCmpResult.
|
 | clang/lib/AST/ExprConstant.cpp |
Commit
88374f76ee19d21b2c64425c95f05a20d37a84fa
by Louis Dionne[libc++] Fix indentation of buildkite-pipeline.yml
|
 | libcxx/utils/ci/buildkite-pipeline.yml |
Commit
85e2af7ffeed1e4d2e07b502a2030eff09a06636
by benny.kra[lld][ELF] Don't write output to the test directory. NFC.
|
 | lld/test/ELF/lto/warn-backrefs.ll |
Commit
dd7095f52bda36e0f3cd37574a1cb97c7a46cffe
by benny.kra[clang][unittest] Don't hardcode the string "Assertion"
This depends on the libc implementation. Use the string from the assertion message instead. Overly specific, but so is this entire test.
|
 | clang/unittests/Basic/LineOffsetMappingTest.cpp |
Commit
b777d3049652746881b74152416e3ffb025a887c
by benny.kra[AMDGPU] Avoid unused variable warning in Release builds. NFC.
SIRegisterInfo.cpp:480:19: error: unused variable 'SOffset'
|
 | llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp |
Commit
a877bda397bb0ace3688c687281dbc3e8d00204a
by eleviantFix issue in cortex-a57 sched model
Differential revision: https://reviews.llvm.org/D90152
|
 | llvm/test/tools/llvm-mca/ARM/cortex-a57-basic-instructions.s |
 | llvm/lib/Target/ARM/ARMScheduleA57WriteRes.td |
Commit
37e0fdd072a95b51bcd0eb6b08d2762aa304e766
by nicolas.vasilache[mlir][Linalg] Add basic support for TileAndFuse on Linalg on tensors.
This revision allows the fusion of the producer of input tensors in the consumer under a tiling transformation (which produces subtensors). Many pieces are still missing (e.g. support init_tensors, better refactor LinalgStructuredOp interface support, try to merge implementations and reuse code) but this still allows getting started.
The greedy pass itself is just for testing purposes and will be extracted in a separate test pass.
Differential revision: https://reviews.llvm.org/D89491
|
 | mlir/lib/Dialect/Linalg/Analysis/DependenceAnalysis.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp |
 | mlir/include/mlir/Dialect/Linalg/Utils/Utils.h |
 | mlir/test/Dialect/Linalg/tile-and-fuse-tensors.mlir |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOpsInterface.td |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.h |
Commit
e74f66125ebb3b43720b6803b4715c8a9c361a2f
by eleviant[ARM][SchedModels] Convert IsLdstsoScaledNotOptimalPred to MCSchedPredicate
Differential revision: https://reviews.llvm.org/D90150
|
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.h |
 | llvm/test/tools/llvm-mca/ARM/cortex-a57-memory-instructions.s |
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp |
 | llvm/lib/Target/ARM/ARMScheduleA57.td |
 | llvm/lib/Target/ARM/ARMSchedule.td |
Commit
242e1e9910441ad00118e580e4cbd5743c77ea5e
by zequanwu[lldb][PDB] Add ObjectFile PDB plugin
To allow loading PDB file with `target symbols add` command.
Differential Revision: https://reviews.llvm.org/D89812
|
 | lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.h |
 | lldb/source/Plugins/ObjectFile/PDB/ObjectFilePDB.cpp |
 | lldb/source/Plugins/SymbolFile/NativePDB/PdbIndex.h |
 | lldb/test/Shell/SymbolFile/NativePDB/load-pdb.cpp |
 | lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp |
 | lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp |
 | lldb/source/Plugins/ObjectFile/CMakeLists.txt |
 | lldb/source/Plugins/SymbolFile/NativePDB/PdbIndex.cpp |
 | lldb/test/Shell/ObjectFile/PDB/object.test |
 | lldb/source/Plugins/ObjectFile/PDB/ObjectFilePDB.h |
 | lldb/source/Plugins/ObjectFile/PDB/CMakeLists.txt |
 | lldb/source/Plugins/SymbolFile/NativePDB/CMakeLists.txt |
Commit
66d03af88c2e4932ae53787e07f502b90ab220cc
by orlando.hyams[DebugInfo][dexter] Add dexter tests for escaped locals
Recently there has been renewed interest in improving debug-info for variables that (partially or otherwise) live on the stack in optimised code.
At the moment instcombine speculates that stack slots are probably going to be promoted to registers, and prepares the debug-info accordingly. It runs a function called LowerDbgDeclare which converts dbg.declares to a set of dbg.values after loads, and before stores and calls. Sometimes the stack location remains (e.g. for escaped locals). If any dbg.values become undef where the stack location is still valid we end up unnecessarily reducing variable location coverage due to our inability to track multiple locations simultaneously. There is a flag to disable this feature (-instcombine-lower-dbg-declare=0), which prevents this conversion at the cost of sometimes providing incorrect location info in the face of DSE, DCE, GVN, CSE etc.
This has been discussed fairly extensively on PR34136.
The idea of these tests is to provide examples of situations that we should consider when designing a new system, to aid discussions and eventually help evaluate the implementation.
Dexter isn't ideal for observing specific optimisation behaviour. Writing an exaustive test suite would be difficult, and the resultant suite would be fragile. However, I think having some concrete executable examples is useful at least as a reference.
Differential Revision: https://reviews.llvm.org/D89543
|
 | debuginfo-tests/dexter-tests/memvars/ctrl-flow.c |
 | debuginfo-tests/dexter-tests/memvars/ptr-to.c |
 | debuginfo-tests/dexter-tests/memvars/inlining-dse.c |
 | debuginfo-tests/dexter-tests/memvars/loop.c |
 | debuginfo-tests/dexter-tests/memvars/bitcast.c |
 | debuginfo-tests/dexter-tests/memvars/inlining.c |
 | debuginfo-tests/dexter-tests/memvars/implicit-ptr.c |
 | debuginfo-tests/dexter-tests/memvars/const-branch.c |
 | debuginfo-tests/dexter-tests/memvars/struct-dse.c |
Commit
467e5cf40f5da942419624d6a722567976b28a45
by joe.ellis[SVE][AArch64] Fix TypeSize warning in loop vectorization legality
The warning would fire when calling isDereferenceableAndAlignedInLoop with a scalable load. Calling isDereferenceableAndAlignedInLoop with a scalable load would result in the use of the now deprecated implicit cast of TypeSize to uint64_t through the overloaded operator.
This patch fixes this issue by:
- no longer considering vector loads as candidates in canVectorizeWithIfConvert. This doesn't make sense in the context of identifying scalar loads to vectorize.
- making use of getFixedSize inside isDereferenceableAndAlignedInLoop -- this removes the dependency on the deprecated interface, and will trigger an assertion error if the function is ever called with a scalable type.
Reviewed By: sdesmalen
Differential Revision: https://reviews.llvm.org/D89798
|
 | llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp |
 | llvm/lib/Analysis/Loads.cpp |
 | llvm/test/Transforms/LoopVectorize/AArch64/sve-scalable-load-in-loop.ll |
Commit
0383a1a8c230581aec4f2d9d4bfb5f5ed32d2bf5
by joe.ellis[SVE][AArch64] Fix TypeSize warning in GEP cost analysis
The warning would fire when calling getGEPCost for analyzing the cost of a GEP instruction. This would result in the use of the now deprecated implicit cast of TypeSize to uint64_t through the overloaded operator.
This patch fixes the issue by using getKnownMinSize instead of the implicit cast. This is possible because the code is already scalable-vector aware. The semantic behaviour of the code is unchanged by this patch.
Reviewed By: sdesmalen, fpetrogalli
Differential Revision: https://reviews.llvm.org/D89872
|
 | llvm/test/Analysis/CostModel/AArch64/cost-scalable-vector-gep.ll |
 | llvm/include/llvm/Analysis/TargetTransformInfoImpl.h |
Commit
0f8350559325db35e0ee3423db5d29113e4eec12
by joe.ellis[SVE][InstCombine] Fix TypeSize warning in canReplaceGEPIdxWithZero
The warning would fire when calling canReplaceGEPIdxWithZero on a GEP whose source element type is a scalable vector. The size of scalable vector types is not known, so this optimization cannot be performed.
This patch fixes the issue by:
- bailing out early in this routine if the GEP instruction's source element type is a scalable vector.
- making use of getFixedSize -- this removes the dependency on the deprecated interface.
Reviewed By: fpetrogalli
Differential Revision: https://reviews.llvm.org/D89968
|
 | llvm/test/Transforms/InstCombine/gep-can-replace-gep-idx-with-zero-typesize.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp |
Commit
bf60bb26ecbf4dace2a03886180be66b3ef5608a
by joe.ellis[SVE] Fix TypeSize warning in llvm::getGEPInductionOperand
We do not need to use the implicit cast here. We can instead can rely on a comparison between two TypeSize objects instead. This algorithm will work fine with scalable vectors.
Reviewed By: DavidTruby
Differential Revision: https://reviews.llvm.org/D90146
|
 | llvm/lib/Analysis/VectorUtils.cpp |
 | llvm/test/Analysis/LoopAccessAnalysis/gep-induction-operand-typesize-warning.ll |
Commit
bd07be4f3f7fc062c7c80122b8796838be91abd3
by thomasraoux[mlir][vector] Update doc strings for insert_map/extract_map and fix insert_map semantic
Based on discourse discussion, fix the doc string and remove examples with wrong semantic. Also fix insert_map semantic by adding missing operand for vector we are inserting into.
Differential Revision: https://reviews.llvm.org/D89563
|
 | mlir/test/lib/Transforms/TestVectorTransforms.cpp |
 | mlir/test/Dialect/Vector/ops.mlir |
 | mlir/lib/Dialect/Vector/VectorTransforms.cpp |
 | mlir/test/Dialect/Vector/invalid.mlir |
 | mlir/lib/Dialect/Vector/VectorOps.cpp |
 | mlir/test/Dialect/Vector/vector-distribution.mlir |
 | mlir/include/mlir/Dialect/Vector/VectorOps.td |
Commit
89485efc2672f79d0acc0644830d0b9975068199
by flo[AArch64] Extend tests for insertelement improvements.
Extends the tests added in a562dc82a8d9488d35ff535302716141bc6feaa3 to cover more vector variants.
|
 | llvm/test/CodeGen/AArch64/arm64-vector-insertion.ll |
Commit
0387015d7549fc2c0cc8c45d3e78114cc4fd153f
by Duncan P. N. Exon SmithSourceManager: Return non-const references in getOrCreateContentCache and related, NFC
Update a few APIs to return non-const references instead of pointers, and remove associated `const_cast`s and non-null assertions.
Differential Revision: https://reviews.llvm.org/D90067
|
 | clang/lib/Basic/SourceManager.cpp |
 | clang/lib/Serialization/ASTReader.cpp |
 | clang/include/clang/Basic/SourceManager.h |
Commit
b888463f8d6b1a0b003fa329c28e7348356787b5
by Louis Dionne[libc++abi] Make sure we can run the tests in Standalone mode
The tests would previously fail if the `python` executable wasn't found, because we were missing the mandatory find_package.
|
 | libcxx/utils/ci/run-buildbot.sh |
 | libcxxabi/CMakeLists.txt |
Commit
c8f84bd0947d770a5df5e15d568a25a4f190df0b
by ndesaulniers[Clang][CodeGen] fix failed assertion
Ensure we can emit symbol aliases via function attribute even when function signatures contain incomplete types.
Via bugreport: https://reviews.llvm.org/D66492#2350947
Reviewed By: erichkeane
Differential Revision: https://reviews.llvm.org/D90073
|
 | clang/lib/CodeGen/CodeGenModule.cpp |
 | clang/test/CodeGen/alias.c |
Commit
4b83747ab1577b7899116b0ddb75f05de2471694
by zequanwu[lldb][NativePDB] fix test load-pdb.cpp
|
 | lldb/test/Shell/SymbolFile/NativePDB/load-pdb.cpp |
Commit
8cd7786e489d989266154a724603673056dfecef
by Louis Dionne[libc++] NFC: Consistent indentation for buildkite-pipeline.yml
|
 | libcxx/utils/ci/buildkite-pipeline.yml |
Commit
ad8131bb03d0abd9e0586b9fa91d45cbf90ca83e
by Stanislav.Mekhanoshin[AMDGPU] Fix VC warning about singed/unsigned comparison. NFC.
This is the warning reported in https://reviews.llvm.org/D89599
|
 | llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp |
Commit
a2ac64dd905422ed84e273a98d846df022a5e2ec
by zequanwuRevert "Ensure that checkInitIsICE is called exactly once for every variable" This causing `Assertion Result && "Could not evaluate expression"' failed` at https://bugs.chromium.org/p/chromium/issues/detail?id=1142009
This reverts commit 76c0092665867a6defcd328ba0d0d976eb65d991.
|
 | clang/lib/Serialization/ASTWriterDecl.cpp |
 | clang/test/Sema/enable_if.c |
 | clang/include/clang/Serialization/ASTRecordWriter.h |
 | clang/lib/CodeGen/ItaniumCXXABI.cpp |
 | clang/lib/AST/ExprConstant.cpp |
 | clang/include/clang/AST/Decl.h |
 | clang/lib/Sema/SemaDeclCXX.cpp |
 | clang/lib/Sema/SemaDecl.cpp |
 | clang/test/OpenMP/threadprivate_codegen.cpp |
 | clang/lib/AST/ComparisonCategories.cpp |
 | clang/test/SemaCXX/i-c-e-cxx.cpp |
 | clang/test/CodeGen/enable_if.c |
 | clang/lib/Serialization/ASTWriter.cpp |
 | clang/test/SemaCXX/constant-expression.cpp |
 | clang/lib/AST/Decl.cpp |
 | clang/lib/Serialization/ASTReaderDecl.cpp |
Commit
e56e7bd4698d29f6197a5f756b6f0bab02d0b3c8
by zequanwuRevert "Revert "Ensure that checkInitIsICE is called exactly once for every variable""
This reverts commit a2ac64dd905422ed84e273a98d846df022a5e2ec.
|
 | clang/lib/AST/ExprConstant.cpp |
 | clang/lib/CodeGen/ItaniumCXXABI.cpp |
 | clang/lib/AST/ComparisonCategories.cpp |
 | clang/lib/AST/Decl.cpp |
 | clang/test/SemaCXX/constant-expression.cpp |
 | clang/lib/Serialization/ASTWriterDecl.cpp |
 | clang/test/CodeGen/enable_if.c |
 | clang/lib/Sema/SemaDecl.cpp |
 | clang/lib/Serialization/ASTReaderDecl.cpp |
 | clang/test/SemaCXX/i-c-e-cxx.cpp |
 | clang/test/OpenMP/threadprivate_codegen.cpp |
 | clang/include/clang/Serialization/ASTRecordWriter.h |
 | clang/test/Sema/enable_if.c |
 | clang/include/clang/AST/Decl.h |
 | clang/lib/Sema/SemaDeclCXX.cpp |
 | clang/lib/Serialization/ASTWriter.cpp |
Commit
d6ab0474c6efc5a614a28ed21070f11d587467f8
by pifon[mlir] Convert MemRefReinterpretCastOp to LLVM.
https://llvm.discourse.group/t/rfc-standard-memref-cast-ops/1454/15
Differential Revision: https://reviews.llvm.org/D90033
|
 | mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp |
 | mlir/test/Conversion/StandardToLLVM/convert-dynamic-memref-ops.mlir |
 | mlir/test/mlir-cpu-runner/memref_reinterpret_cast.mlir |
Commit
26750a1264b3df114a1efae7cde6f0784206b2ce
by benny.kra[clang-tidy] Silence unused variable warning in Release builds. NFCI.
ExpandModularHeadersPPCallbacks.cpp:55:15: warning: unused variable 'FileEntry' for (auto FileEntry : FilesToRecord) ^
|
 | clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp |
Commit
1e076a8d8099a6c179c8773f2e621f9408ee2402
by joeturnerMake sure Objective-C category support in IncludeSorter handles top-level imports
Currently, this would not correctly associate a category with the related include if it was top-level (i.e. no slashes in the path). This ensures that we explicitly think about that case.
Reviewed By: gribozavr2
Differential Revision: https://reviews.llvm.org/D89608
|
 | clang-tools-extra/unittests/clang-tidy/IncludeInserterTest.cpp |
 | clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp |
Commit
a28388f95beb029241b4ab221b279698a5559f82
by eleviant[ARM][SchedModels] Move IsLDMBaseRegInListPred to ARMSchedule.td. NFC
This predicate is not specific to cortex-a57 and can be used in other processor models as well.
|
 | llvm/lib/Target/ARM/ARMScheduleA57.td |
 | llvm/lib/Target/ARM/ARMSchedule.td |
Commit
139785dc98ae94717eebaed083eeaad5d775b495
by aaronpuchertAdd release tarballs for libclc
Fixes PR47917.
Reviewed By: tstellar
Differential Revision: https://reviews.llvm.org/D90100
|
 | llvm/utils/release/export.sh |
Commit
22e6b1863e74136908842d71b4f942313d89b273
by Duncan P. N. Exon SmithSourceManager: Fix an SLocEntry memory regression introduced with FileEntryRef
4dc5573acc0d2e7c59d8bac2543eb25cb4b32984 added `FileEntryRef` in order to help enable sharing of a `FileManager` between `CompilerInstance`s.
It also added a `StringRef` with the filename on `FileInfo`. This doubled `sizeof(FileInfo)`, bloating `sizeof(SLocEntry)`, of which we have one for each (loaded and unloaded) file and macro expansion. This causes a memory regression in modules builds.
Move the filename down into the `ContentCache`, which is a side data structure for `FileInfo` that does not impact `sizeof(SLocEntry)`. Once `FileEntryRef` is used for `ContentCache::OrigEntry` this can go away.
Differential Revision: https://reviews.llvm.org/D89580 Radar-Id: rdar://59908826
|
 | clang/lib/Basic/SourceManager.cpp |
 | clang/include/clang/Basic/SourceManager.h |
Commit
d071bba9a4477290d0b164a2d338fb22ad2d3c3d
by kbobyrev[clangd] Add back dependency on proto generated targets
Previous attempts:
* 15f6bad6d74a993e366c8fc93a9c91f213ac6bc3 * 58d0ef2d0466a893ab400f6a9829057b9d851038
The combination results in both link- and build-time dependency which is the desired behavior.
|
 | clang-tools-extra/clangd/index/remote/CMakeLists.txt |
Commit
00928a1956a1618f394ffe99fc63b0d81e1f88c7
by Stanislav.MekhanoshinFix SROA with a PHI mergig values from a same block
This fixes the bug 47945. It is legal to have a PHI with values from from the same block, but values must stay the same. In this case it is illegal to merge different values.
Differential Revision: https://reviews.llvm.org/D89978
|
 | llvm/lib/Transforms/Scalar/SROA.cpp |
 | llvm/test/Transforms/SROA/phi-gep.ll |
Commit
0b11d018cc2f2c6bea5dac8dc72140cdb502ca02
by ndesaulniers[BitCode] decode nossp fn attr
I missed this in https://reviews.llvm.org/D87956.
Reviewed By: void
Differential Revision: https://reviews.llvm.org/D90177
|
 | llvm/lib/Bitcode/Reader/BitcodeReader.cpp |
 | llvm/test/Bitcode/attributes.ll |
Commit
56a5b4b1bfafa27dcc0fe48a3095ebc19ac26256
by dblaikiellvm-reduce: Test reduction for D88684 ( ee6e25e4391a6d3ac0a3c89615474e512f44cda6 )
|
 | llvm/test/Reduce/no-replace-intrinsic-callee-with-undef.ll |
Commit
612e02ee8c3e8f204378796af2eb526cf5e348f0
by kostyak[GWP-ASan] Refactor memory mapping functions
In preparation for Fuchsia support, this CL refactors the memory mapping functions.
The new functions are as follows: - for Freeslots and Metadata: `void *map(size_t Size, const char *Name) const;` `void unmap(void *Ptr, size_t Size) const;` - for the Pool: `void *reservePool(size_t Size);` `void commitPool(void *Ptr, size_t Size) const;` `void decommitPool(void *Ptr, size_t Size) const;` `void unreservePool();` Note that those don't need a `Name` parameter as those are fixed per function. `{reserve,unreserve}Pool` are not `const` because they will modify platform specific class member on Fuchsia.
I added a plethora of `assert()` as the initial code was not enforcing page alignment for sizes and addresses, which caused problem in the initial Fuchsia draft. All sizes should now be properly rounded up to a page.
Differential Revision: https://reviews.llvm.org/D89993
|
 | compiler-rt/lib/gwp_asan/guarded_pool_allocator.h |
 | compiler-rt/lib/gwp_asan/guarded_pool_allocator.cpp |
 | compiler-rt/lib/gwp_asan/platform_specific/guarded_pool_allocator_posix.cpp |
Commit
b03ea054db1bcf9452b3a70e21d3372b6e58759a
by Louis Dionne[libc++] NFC: Minor refactoring in filesystem_test_helper.h to ease readability
The variable declarations interleaved with logic was really difficult to read. Instead, simply have two different implementations for _WIN32 and others.
|
 | libcxx/test/support/filesystem_test_helper.h |
Commit
437d7551c50d6ea60264b7971bd61b7fd308618b
by spatel[InstCombine] reduce code duplication in icmp intrinsic folds; NFC
|
 | llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp |
Commit
05f011b2b6e5992b1637bf306a7f61c17fde83b0
by spatel[InstCombine] add tests for ctpop at bitwidth limit; NFC
|
 | llvm/test/Transforms/InstCombine/cmp-intrinsic.ll |
Commit
5a6e66ec72382d370046e04c415f8c3cb7e8b68d
by spatel[InstCombine] add folds for icmp+ctpop
https://alive2.llvm.org/ce/z/XjFPQJ
define void @src(i64 %value) { %t0 = call i64 @llvm.ctpop.i64(i64 %value) %gt = icmp ugt i64 %t0, 63 %lt = icmp ult i64 %t0, 64 call void @use(i1 %gt, i1 %lt) ret void }
define void @tgt(i64 %value) { %eq = icmp eq i64 %value, -1 %ne = icmp ne i64 %value, -1 call void @use(i1 %eq, i1 %ne) ret void }
declare i64 @llvm.ctpop.i64(i64) #1 declare void @use(i1, i1)
|
 | llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp |
 | llvm/test/Transforms/InstCombine/cmp-intrinsic.ll |
Commit
3d4aebbb9d99642fcc277c8bd199ead400de2703
by Xiangling.Liao[AIX] Also error on -G for link-only step
Error on -G on AIX for all modes(preprocess, assemble, compile, link).
Differential Revision: https://reviews.llvm.org/D90063
|
 | clang/lib/Driver/Driver.cpp |
 | clang/lib/Driver/ToolChains/Clang.cpp |
 | clang/test/Driver/aix-err-options.c |
Commit
ba71a0746f31a2f5f9af992f569a9418133a9a38
by tejohnson[MemProf] Decouple memprof build from COMPILER_RT_BUILD_SANITIZERS
The MemProf compiler-rt support relies on some of the support only built when COMPILER_RT_BUILD_SANITIZERS was enabled. This showed up in some initial bot failures, and I addressed those by making the memprof runtime build also conditional on COMPILER_RT_BUILD_SANITIZERS (3ed77ecd0a5d5e5c33770f0f9d3d75cf2f80c80b). However, this resulted in another inconsistency with how the tests were set up that was hit by Chromium: https://bugs.chromium.org/p/chromium/issues/detail?id=1142191
Undo the original bot fix and address this with a more comprehensive fix that enables memprof to be built even when COMPILER_RT_BUILD_SANITIZERS is disabled, by also building the necessary pieces under COMPILER_RT_BUILD_MEMPROF.
Tested by configuring with a similar command as to what was used in the failing Chromium configure. I reproduced the Chromium failure, as well as the original bot failure I tried to fix in 3ed77ecd0a5d5e5c33770f0f9d3d75cf2f80c80b, with that fix reverted. Confirmed it now works.
Differential Revision: https://reviews.llvm.org/D90190
|
 | compiler-rt/include/CMakeLists.txt |
 | compiler-rt/lib/CMakeLists.txt |
Commit
89ec5091cc95e062712f544167abd692c9092f7f
by Louis Dionne[libc++] Get rid of <iostream> in a filesystem test
|
 | libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file_large.pass.cpp |
Commit
d4c667c9af0335ac20015decce204c43f03a6cee
by Duncan P. N. Exon SmithAvoid unnecessary uses of `MDNode::getTemporary`, NFC
This is a long-delayed follow-up to 5e5b85098dbeaea2cfa5d01695b5d2982634d7dd.
`TempMDNode` includes a bunch of machinery for RAUW, and should only be used when necessary. RAUW wasn't being used in any of these cases... it was just a placeholder for a self-reference.
Where the real node was using `MDNode::getDistinct`, just replace the temporary argument with `nullptr`.
Where the real node was using `MDNode::get`, the `replaceOperandWith` call was "promoting" the node to a distinct one implicitly due to self-reference detection in `MDNode::handleChangedOperand`. The `TempMDNode` was serving a purpose by delaying uniquing, but it's way simpler to just call `MDNode::getDistinct` in the first place.
Note that using a self-reference at all in these places is a hold-over from before `distinct` metadata existed. It was an old trick to create distinct nodes. It would be intrusive to change, including bitcode upgrades, etc., and it's harmless so I'm not sure there's much value in removing it from existing schemas. After this commit it still has a tiny memory cost (in the extra metadata operand) but no more overhead in construction.
Differential Revision: https://reviews.llvm.org/D90079
|
 | clang/lib/CodeGen/CGLoopInfo.cpp |
 | llvm/lib/Analysis/LoopInfo.cpp |
 | llvm/lib/IR/MDBuilder.cpp |
 | polly/lib/CodeGen/IRBuilder.cpp |
Commit
9aa7a721ce3dc84d0ad2d987af72cf14ff76d8a7
by tmsriramTest to check backtraces with machine function splitting.
clang supports option -fsplit-machine-functions and this test checks if the backtraces are sane when functions are split.
With -fsplit-machine-functions, a function with profiles can get split into 2 parts, the original function containing hot code and a cold part as determined by the profile info and the cold cutoff threshold.. The cold part gets the ".cold" suffix to disambiguate its symbol from the hot part and can be placed arbitrarily in the address space.
This test checks if the back-trace looks correct when the cold part is executed.
Differential Revision: https://reviews.llvm.org/D90081
|
 | lldb/test/Shell/Unwind/split-machine-functions.test |
 | lldb/test/Shell/Unwind/Inputs/split-machine-functions.ll |
Commit
357715ce97d0bc937301b0b006d145c24a9d23aa
by Xiangling.Liao[NFC] Remove max_align.c LIT testcase
Since we fixed the definition of `SuitableAlign`[https://reviews.llvm.org/D88659], `max_align_t` and `__BIGGEST_ALIGNMENT__` are not necessarily the same always.
The original testcase was added here: https://reviews.llvm.org/D59048
Differential Revision: https://reviews.llvm.org/D90187
|
 | clang/test/Headers/max_align.c |
Commit
df6d2e8ab1a4212284e4763724a2211df2c7394a
by martin[libunwind] Add -Wno-dll-attribute-on-redeclaration when building for windows
It's not worth trying to fix these warnings within libunwind, instead silence them.
Differential Revision: https://reviews.llvm.org/D90075
|
 | libunwind/CMakeLists.txt |
Commit
ad1b9daa4bf40c1907794fd5de7807aad1f0553c
by tmsriramPrepend "__uniq" to symbol names hash with -funique-internal-linkage-names.
Prepend the module name hash with a fixed string ".__uniq." which helps tools that consume sampled profiles and attribute it to functions to understand that this symbol belongs to a unique internal linkage type symbol.
Symbols with suffixes can result from various optimizations in the compiler. Function Multiversioning, function splitting, parameter constant propogation, unique internal linkage names.
External tools like sampled profile aggregators combine profiles from multiple runs of a binary. They use various heuristics with symbols that have suffixes to try and attribute the profile to the right function instance. For instance multi-versioned symbols like foo.avx, foo.sse4.2, etc even though different should be attributed to the same source function if a single function is versioned, using attribute target_clones (supported in GCC but yet to land in LLVM). Similarly, functions that are split (split part having a .cold suffix) could have profiles for both the original and split symbols but would be aggregated and attributed to the original function that was split.
Unique internal linkage functions however have different source instances and the aggregator must not put them together but attribute it to the appropriate function instance. To be sure that we are dealing with a symbol of a unique internal linkage function, we would like to prepend the hash with a known string ".__uniq." which these tools can check to understand the suffix type.
Differential Revision: https://reviews.llvm.org/D89617
|
 | llvm/test/Transforms/UniqueInternalLinkageNames/unique_symbol_names.ll |
 | llvm/lib/Transforms/Utils/UniqueInternalLinkageNames.cpp |
 | clang/test/CodeGen/unique-internal-linkage-names.cpp |
Commit
c551ba0e90bd2b49ef501d591f8362ba44e5484d
by kiran.chandramohanRun test only if X86 target is available
This fixes failures in AArch64 buildbots by running the clang/test/CodeGen/X86/att-inline-asm-prefix.c only when the X86 target is available.
|
 | clang/test/CodeGen/X86/att-inline-asm-prefix.c |
Commit
038d884a50a4e72d3f65a315d28d35bda024cb4a
by Stanislav.Mekhanoshin[AMDGPU] Use flat scratch instructions where available
The support is disabled by default. So far there is instruction selection, spilling, and frame elimination. It also changes SP from unswizzled to swizzled as used by flat scratch instructions, so it cannot be mixed with MUBUF stack access.
At the very least missing:
- GlobalISel; - Some optimizations in frame elimination in between vector and scalar ALU; - It shall finally allow to always materialize frame index as an SGPR, but that is not implemented and frame elimination cannot handle it yet; - Unaligned and/or multidword flat scratch shall work, but it is legalized now for MUBUF; - Operand folding cannot optimize FI like with MUBUF yet; - It will need scaling the value of the SP/FP in the DWARF expression to recover the unswizzled scratch address;
Differential Revision: https://reviews.llvm.org/D89170
|
 | llvm/lib/Target/AMDGPU/AMDGPU.td |
 | llvm/test/CodeGen/AMDGPU/flat-scratch.ll |
 | llvm/lib/Target/AMDGPU/SIInstrInfo.td |
 | llvm/test/CodeGen/AMDGPU/local-stack-alloc-block-sp-reference.ll |
 | llvm/test/CodeGen/AMDGPU/call-preserved-registers.ll |
 | llvm/test/CodeGen/AMDGPU/non-entry-alloca.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp |
 | llvm/lib/Target/AMDGPU/SIFoldOperands.cpp |
 | llvm/test/CodeGen/AMDGPU/fast-unaligned-load-store.private.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp |
 | llvm/lib/Target/AMDGPU/SIInstrInfo.h |
 | llvm/test/CodeGen/AMDGPU/sgpr-spill.mir |
 | llvm/test/CodeGen/AMDGPU/load-lo16.ll |
 | llvm/test/CodeGen/AMDGPU/pei-scavenge-sgpr-gfx9.mir |
 | llvm/test/CodeGen/AMDGPU/pei-scavenge-vgpr-spill.mir |
 | llvm/test/CodeGen/AMDGPU/store-hi16.ll |
 | llvm/test/CodeGen/AMDGPU/spill-scavenge-offset.ll |
 | llvm/lib/Target/AMDGPU/SIISelLowering.cpp |
 | llvm/test/CodeGen/AMDGPU/chain-hi-to-lo.ll |
 | llvm/test/CodeGen/AMDGPU/scratch-simple.ll |
 | llvm/test/CodeGen/AMDGPU/load-hi16.ll |
 | llvm/test/CodeGen/AMDGPU/frame-index-elimination.ll |
 | llvm/lib/Target/AMDGPU/SIFrameLowering.cpp |
 | llvm/lib/Target/AMDGPU/BUFInstructions.td |
 | llvm/test/CodeGen/AMDGPU/callee-frame-setup.ll |
 | llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp |
 | llvm/test/CodeGen/AMDGPU/stack-pointer-offset-relative-frameindex.ll |
 | llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp |
 | llvm/test/CodeGen/AMDGPU/multi-dword-vgpr-spill.ll |
 | llvm/lib/Target/AMDGPU/FLATInstructions.td |
 | llvm/lib/Target/AMDGPU/SIRegisterInfo.h |
 | llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h |
 | llvm/test/CodeGen/AMDGPU/memcpy-fixed-align.ll |
Commit
f52b4a65f09caf46413d19417505a5f44b36b931
by antiagainst[mlir] NFC: properly align IR in comments
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D90164
|
 | mlir/include/mlir/Dialect/Vector/VectorTransforms.h |
Commit
d1afe2e25c29d040f978d0d0ac93fc5aea797901
by Louis Dionne[libc++] Remove the reliance of several <random> tests on <iostream>
|
 | libcxx/test/std/numerics/rand/rand.eng/rand.eng.mers/discard.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.eng/rand.eng.mers/default.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.bin/eval.PR44847.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.bin/eval.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.eng/rand.eng.mers/eval.pass.cpp |
Commit
4f98eaf655800720739867da7082edb829d84ffd
by plotfi[NFC] Fixing comment heading for MachineStableHash.h.
Wrong filename and description.
|
 | llvm/include/llvm/CodeGen/MachineStableHash.h |
Commit
7611c5bb42a96c13d0e53ade546633bf9ed56f0c
by jan.kratochvil[nfc] [lldb] Refactor DWARFUnit::GetDIE
Reduce indentation of the code by early returns for failed code paths.
|
 | lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp |
Commit
03e6f40cdba61e6fbe0fef00e92ae1ebaf8431a7
by zinenko[mlir] Do not print back 0 alignment in LLVM dialect 'alloca' op
The alignment attribute in the 'alloca' op treats the '0' value as 'unset'. When parsing the custom form of the 'alloca' op, ignore the alignment attribute with if its value is '0' instead of actually creating it and producing a slightly different textually yet equivalent semantically form in the output.
Reviewed By: rriddle
Differential Revision: https://reviews.llvm.org/D90179
|
 | mlir/include/mlir/IR/OperationSupport.h |
 | mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp |
 | mlir/lib/IR/OperationSupport.cpp |
 | mlir/test/Dialect/LLVMIR/invalid.mlir |
Commit
78a7941e5cff263f20f10c51331f575234417f7e
by qcolombet[TargetRegisterInfo] Fix a couple of typos in the comments
Spotted by Nicolas Guillemot <nguillemot@apple.com>.
Thanks Nicolas!
NFC
|
 | llvm/include/llvm/CodeGen/TargetRegisterInfo.h |
Commit
515973222ed29abe49f241e89edb6854f44162d4
by akhuang[CodeView] Emit static data members as S_CONSTANTs.
We used to only emit static const data members in CodeView as S_CONSTANTS when they were used; this patch makes it so they are always emitted.
I changed CodeViewDebug.cpp to find the static const members from the class debug info instead of creating DIGlobalVariables in the IR whenever a static const data member is used.
Bug: https://bugs.llvm.org/show_bug.cgi?id=47580
Differential Revision: https://reviews.llvm.org/D89072
|
 | llvm/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp |
 | clang/test/CodeGenCXX/debug-info-static-member.cpp |
 | llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp |
 | llvm/test/DebugInfo/COFF/global-constants.ll |
 | llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h |
 | clang/lib/CodeGen/CGDebugInfo.cpp |
 | llvm/test/DebugInfo/COFF/types-array-unsized.ll |
Commit
db4863ffd1ff0beaf8b13a50beb81d22c8f1137d
by zinenko[MLIR] Fix AttributeInterface declaration.
Substitues `Type` by `Attribute` in the declaration of AttributeInterface. It looks like the code was written by copy-pasting the definition of TypeInterface, but the substitution of Type by Attribute was missing at some places.
Reviewed By: rriddle, ftynse
Differential Revision: https://reviews.llvm.org/D90138
|
 | mlir/include/mlir/IR/Attributes.h |
Commit
b2b7cf39d596b1528cd64015575b3f5d1461c011
by Duncan P. N. Exon SmithIR: Clarify ownership of ConstantDataSequentials, NFC
Change `ConstantDataSequential::Next` to a `unique_ptr<ConstantDataSequential>` and update `CDSConstants` to a `StringMap<unique_ptr<ConstantDataSequential>>`, making the ownership more obvious.
Differential Revision: https://reviews.llvm.org/D90083
|
 | llvm/lib/IR/LLVMContextImpl.cpp |
 | llvm/lib/IR/Constants.cpp |
 | llvm/lib/IR/LLVMContextImpl.h |
 | llvm/include/llvm/IR/Constants.h |
Commit
905f874c449cc114d74eaeb19639664779fd0b6e
by Vedant Kumar[cmake] Add LLVM_UBSAN_FLAGS, to allow overriding UBSan flags
Allow overriding the default set of flags used to enable UBSan when building llvm.
This can be used to test new checks or opt out of certain checks.
Differential Revision: https://reviews.llvm.org/D89439
|
 | llvm/CMakeLists.txt |
 | llvm/docs/CMake.rst |
 | llvm/cmake/modules/HandleLLVMOptions.cmake |
Commit
745c1671b16afd6faac84c660eeab881dd6401cf
by stephen.neuendorffer[mlir] Document 'ParentOneOf' with the HasParent trait
Differential Revision: https://reviews.llvm.org/D90197
|
 | mlir/docs/Traits.md |
|
 | llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp |
Commit
0b2f4cdf2bd4e48974099cd441afaabc18ead227
by rahmanlExplicitly check for entry basic block, rather than relying on MachineBasicBlock::pred_empty.
Sometimes in unoptimized code, we have dangling unreachable basic blocks with no predecessors. Basic block sections should be emitted for those as well. Without this patch, the included test fails with a fatal error in `AsmPrinter::emitBasicBlockEnd`.
Reviewed By: tmsriram
Differential Revision: https://reviews.llvm.org/D89423
|
 | llvm/test/CodeGen/X86/basic-block-sections-unreachable.ll |
 | llvm/include/llvm/CodeGen/MachineBasicBlock.h |
 | llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp |
 | llvm/include/llvm/CodeGen/AsmPrinter.h |
 | llvm/lib/CodeGen/MachineBasicBlock.cpp |
Commit
78f37b74da60ccdca200e457df195d58d76b3b8f
by ravishankarm[mlir][Linalg] Miscalleneous enhancements to cover more fusion cases.
Adds support for - Dropping unit dimension loops for indexed_generic ops. - Folding consecutive folding (or expanding) reshapes when the result (or src) is a scalar. - Fixes to indexed_generic -> generic fusion when zero-dim tensors are involved.
Differential Revision: https://reviews.llvm.org/D90118
|
 | mlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir |
 | mlir/test/Dialect/Linalg/fusion-tensor.mlir |
 | mlir/test/Dialect/Linalg/canonicalize.mlir |
 | mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp |
 | mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp |
Commit
5b3bf8b453b8cc00efd5269009a1e63c4442a30e
by Adrian Prantl[DebugInfo] Expose Fortran array debug info attributes through DIBuilder.
The support of a few debug info attributes specifically for Fortran arrays have been added to LLVM recently, but there's no way to take advantage of them through DIBuilder. This patch extends DIBuilder::createArrayType to enable the settings of those attributes.
Patch by Chih-Ping Chen!
Differential Revision: https://reviews.llvm.org/D89817
|
 | llvm/include/llvm/IR/DIBuilder.h |
 | llvm/unittests/IR/DebugInfoTest.cpp |
 | llvm/lib/IR/DIBuilder.cpp |
Commit
a77a739abcfa1c5734d374e1afb51cebdb6f36bd
by Vedant Kumar[profile] Suppress spurious 'expected profile to require unlock' warning
In %c (continuous sync) mode, avoid attempting to unlock an already-unlocked profile.
The profile is only locked when profile merging is enabled.
|
 | compiler-rt/test/profile/ContinuousSyncMode/multiple-DSOs.c |
 | compiler-rt/lib/profile/InstrProfilingFile.c |
Commit
803cc3aff2ce7fe07a59289070477d0ea0c9cf09
by amy.kwan1[PowerPC] Implement Set Boolean Condition Instructions
This patch implements the set boolean condition instructions introduced in POWER10.
The set boolean condition instructions (set[n]bc[r]) are used during the following situations: - sign/zero/any extending i1 to an i32 or i64, - reg+reg, reg+imm or floating point comparisons being sign/zero extended to i32 or i64, - spilling CR bits (using the setnbc instruction)
Differential Revision: https://reviews.llvm.org/D87705
|
 | llvm/test/CodeGen/PowerPC/p10-setbcr-rr.ll |
 | llvm/test/CodeGen/PowerPC/testComparesi32ltu.ll |
 | llvm/test/CodeGen/PowerPC/CompareEliminationSpillIssue.ll |
 | llvm/test/CodeGen/PowerPC/p10-spill-crgt.ll |
 | llvm/test/CodeGen/PowerPC/p10-setnbcr-ri.ll |
 | llvm/test/CodeGen/PowerPC/testComparesi32gtu.ll |
 | llvm/test/CodeGen/PowerPC/testComparesi32leu.ll |
 | llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp |
 | llvm/test/CodeGen/PowerPC/p10-spill-crun.ll |
 | llvm/test/CodeGen/PowerPC/p10-setbc-rr.ll |
 | llvm/test/CodeGen/PowerPC/p10-setbc-ri.ll |
 | llvm/test/CodeGen/PowerPC/p10-setnbc-ri.ll |
 | llvm/test/CodeGen/PowerPC/p10-spill-creq.ll |
 | llvm/test/CodeGen/PowerPC/crbits.ll |
 | llvm/lib/Target/PowerPC/PPCInstrPrefix.td |
 | llvm/test/CodeGen/PowerPC/p10-setboolean-ext-fp.ll |
 | llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp |
 | llvm/test/CodeGen/PowerPC/p10-setbcr-ri.ll |
 | llvm/test/CodeGen/PowerPC/p10-setnbcr-rr.ll |
 | llvm/lib/Target/PowerPC/PPCInstrInfo.td |
 | llvm/test/CodeGen/PowerPC/p10-setnbc-rr.ll |
 | llvm/test/CodeGen/PowerPC/p10-spill-crlt.ll |
Commit
a5c7b46862ec0531964eb52329cdf009862abecf
by richardFix checking for C++98 ICEs in C++11-and-later mode to not consider use of a reference to be acceptable.
|
 | clang/test/SemaCXX/MicrosoftCompatibility.cpp |
 | clang/lib/AST/ExprConstant.cpp |
Commit
b698ad00cbc76f34f48bb639ffb1cfee47a9737e
by n.james93[clang][NFC] Rearrange Comment Token and Lexer fields to reduce padding
Rearrange the fields to reduce the size of the classes
Reviewed By: gribozavr2
Differential Revision: https://reviews.llvm.org/D90127
|
 | clang/lib/AST/CommentLexer.cpp |
 | clang/include/clang/AST/CommentLexer.h |
Commit
779deb9750a4853485ac7beca86f518b067ad6d6
by zequanwu[lldb][NativePDB] fix test load-pdb.cpp
|
 | lldb/test/Shell/SymbolFile/NativePDB/load-pdb.cpp |
Commit
17cdba61d4364ac7d89f6be770afdd4cc8daef83
by gjn[NFC] Use [MC]Register in RegAllocPBQP & RegisterCoalescer
Differential Revision: https://reviews.llvm.org/D90008
|
 | llvm/lib/CodeGen/RegisterCoalescer.h |
 | llvm/include/llvm/CodeGen/RegAllocPBQP.h |
 | llvm/lib/CodeGen/RegAllocPBQP.cpp |
 | llvm/include/llvm/MC/MCRegister.h |
 | llvm/include/llvm/CodeGen/MachineRegisterInfo.h |
 | llvm/lib/CodeGen/RegisterCoalescer.cpp |
Commit
aab50af8c18ab2eb2149bb516c8a0993ffc5abb7
by Duncan P. N. Exon SmithSourceManager: Use the same fake SLocEntry whenever it fails to load
Instead of putting a fake `SLocEntry` at `LoadedSLocEntryTable[Index]` when it fails to load in `SourceManager::loadSLocEntry`, allocate a fake one. Unless someone is sniffing the address of the returned `SLocEntry` (doubtful), this won't be a functionality change. Note that `SLocEntryLoaded[Index]` wasn't being set to `true` either before or after this change so no accessor is every going to look at `LoadedSLocEntryTable[Index]`.
As a side effect, drop the `mutable` from `LoadedSLocEntryTable`.
Differential Revision: https://reviews.llvm.org/D89748
|
 | clang/include/clang/Basic/SourceManager.h |
 | clang/lib/Basic/SourceManager.cpp |
Commit
8a1ca2cd347cf80b377b36d1a7af3f31ec5b575e
by riddleriver[mlir] Add a conversion pass between PDL and the PDL Interpreter Dialect
The conversion between PDL and the interpreter is split into several different parts. ** The Matcher:
The matching section of all incoming pdl.pattern operations is converted into a predicate tree and merged. Each pattern is first converted into an ordered list of predicates starting from the root operation. A predicate is composed of three distinct parts: * Position - A position refers to a specific location on the input DAG, i.e. an existing MLIR entity being matched. These can be attributes, operands, operations, results, and types. Each position also defines a relation to its parent. For example, the operand `[0] -> 1` has a parent operation position `[0]` (the root). * Question - A question refers to a query on a specific positional value. For example, an operation name question checks the name of an operation position. * Answer - An answer is the expected result of a question. For example, when matching an operation with the name "foo.op". The question would be an operation name question, with an expected answer of "foo.op".
After the predicate lists have been created and ordered(based on occurrence of common predicates and other factors), they are formed into a tree of nodes that represent the branching flow of a pattern match. This structure allows for efficient construction and merging of the input patterns. There are currently only 4 simple nodes in the tree: * ExitNode: Represents the termination of a match * SuccessNode: Represents a successful match of a specific pattern * BoolNode/SwitchNode: Branch to a specific child node based on the expected answer to a predicate question.
Once the matcher tree has been generated, this tree is walked to generate the corresponding interpreter operations.
** The Rewriter: The rewriter portion of a pattern is generated in a very straightforward manor, similarly to lowerings in other dialects. Each PDL operation that may exist within a rewrite has a mapping into the interpreter dialect. The code for the rewriter is generated within a FuncOp, that is invoked by the interpreter on a successful pattern match. Referenced values defined in the matcher become inputs the generated rewriter function.
An example lowering is shown below:
```mlir // The following high level PDL pattern: pdl.pattern : benefit(1) { %resultType = pdl.type %inputOperand = pdl.input %root, %results = pdl.operation "foo.op"(%inputOperand) -> %resultType pdl.rewrite %root { pdl.replace %root with (%inputOperand) } }
// is lowered to the following: module { // The matcher function takes the root operation as an input. func @matcher(%arg0: !pdl.operation) { pdl_interp.check_operation_name of %arg0 is "foo.op" -> ^bb2, ^bb1 ^bb1: pdl_interp.return ^bb2: pdl_interp.check_operand_count of %arg0 is 1 -> ^bb3, ^bb1 ^bb3: pdl_interp.check_result_count of %arg0 is 1 -> ^bb4, ^bb1 ^bb4: %0 = pdl_interp.get_operand 0 of %arg0 pdl_interp.is_not_null %0 : !pdl.value -> ^bb5, ^bb1 ^bb5: %1 = pdl_interp.get_result 0 of %arg0 pdl_interp.is_not_null %1 : !pdl.value -> ^bb6, ^bb1 ^bb6: // This operation corresponds to a successful pattern match. pdl_interp.record_match @rewriters::@rewriter(%0, %arg0 : !pdl.value, !pdl.operation) : benefit(1), loc([%arg0]), root("foo.op") -> ^bb1 } module @rewriters { // The inputs to the rewriter from the matcher are passed as arguments. func @rewriter(%arg0: !pdl.value, %arg1: !pdl.operation) { pdl_interp.replace %arg1 with(%arg0) pdl_interp.return } } } ```
Differential Revision: https://reviews.llvm.org/D84580
|
 | mlir/include/mlir/Conversion/Passes.h |
 | mlir/include/mlir/Support/StorageUniquer.h |
 | mlir/test/Conversion/PDLToPDLInterp/pdl-to-pdl-interp-matcher.mlir |
 | mlir/include/mlir/Dialect/PDLInterp/IR/PDLInterpOps.td |
 | mlir/lib/Conversion/PDLToPDLInterp/PredicateTree.h |
 | mlir/lib/Conversion/PDLToPDLInterp/Predicate.h |
 | mlir/lib/Conversion/PDLToPDLInterp/PredicateTree.cpp |
 | mlir/include/mlir/Conversion/Passes.td |
 | mlir/include/mlir/Conversion/PDLToPDLInterp/PDLToPDLInterp.h |
 | mlir/lib/Conversion/CMakeLists.txt |
 | mlir/lib/Conversion/PassDetail.h |
 | mlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp |
 | mlir/test/Conversion/PDLToPDLInterp/pdl-to-pdl-interp-rewriter.mlir |
 | mlir/lib/Conversion/PDLToPDLInterp/Predicate.cpp |
 | mlir/lib/Conversion/PDLToPDLInterp/CMakeLists.txt |
Commit
b99bd771626fbbf8b9b29ce312d4151968796826
by riddleriver[mlir][Pattern] Refactor the Pattern class into a "metadata only" class
The Pattern class was originally intended to be used for solely matching operations, but that use never materialized. All of the pattern infrastructure uses RewritePattern, and the infrastructure for pure matching(Matchers.h) is implemented inline. This means that this class isn't a useful abstraction at the moment, so this revision refactors it to solely encapsulate the "metadata" of a pattern. The metadata includes the various state describing a pattern; benefit, root operation, etc. The API on PatternApplicator is updated to now operate on `Pattern`s as nothing special from `RewritePattern` is necessary.
This refactoring is also necessary for the upcoming use of PDL patterns alongside C++ rewrite patterns.
Differential Revision: https://reviews.llvm.org/D86258
|
 | mlir/lib/IR/PatternMatch.cpp |
 | mlir/docs/PatternRewriter.md |
 | mlir/lib/Transforms/DialectConversion.cpp |
 | mlir/include/mlir/IR/PatternMatch.h |
 | mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp |
 | mlir/test/lib/Dialect/Test/TestPatterns.cpp |
Commit
b6eb26fd0e316b36e3750f7cba7ebdb10219790c
by riddleriver[mlir][NFC] Move around the code related to PatternRewriting to improve layering
There are several pieces of pattern rewriting infra in IR/ that really shouldn't be there. This revision moves those pieces to a better location such that they are easier to evolve in the future(e.g. with PDL). More concretely this revision does the following:
* Create a Transforms/GreedyPatternRewriteDriver.h and move the apply*andFold methods there. The definitions for these methods are already in Transforms/ so it doesn't make sense for the declarations to be in IR.
* Create a new lib/Rewrite library and move PatternApplicator there. This new library will be focused on applying rewrites, and will also include compiling rewrites with PDL.
Differential Revision: https://reviews.llvm.org/D89103
|
 | mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp |
 | mlir/test/lib/Transforms/TestLinalgTransforms.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/CodegenStrategy.cpp |
 | mlir/test/lib/Transforms/TestExpandTanh.cpp |
 | mlir/lib/Dialect/Affine/Transforms/SimplifyAffineStructures.cpp |
 | mlir/test/lib/Transforms/TestLinalgFusionTransforms.cpp |
 | mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp |
 | mlir/lib/Transforms/CMakeLists.txt |
 | mlir/lib/Transforms/Utils/DialectConversion.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp |
 | mlir/include/mlir/IR/PatternMatch.h |
 | mlir/lib/Conversion/ShapeToStandard/ConvertShapeConstraints.cpp |
 | mlir/lib/CMakeLists.txt |
 | mlir/test/lib/Dialect/Test/TestPatterns.cpp |
 | mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp |
 | mlir/lib/Dialect/Quant/Transforms/ConvertSimQuant.cpp |
 | mlir/lib/Transforms/DialectConversion.cpp |
 | mlir/test/lib/Transforms/TestConvVectorization.cpp |
 | mlir/lib/Transforms/Canonicalizer.cpp |
 | mlir/test/lib/Transforms/TestVectorTransforms.cpp |
 | mlir/lib/Transforms/Inliner.cpp |
 | mlir/lib/IR/PatternMatch.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Loops.cpp |
 | mlir/test/lib/Dialect/Affine/TestAffineDataCopy.cpp |
 | mlir/lib/Rewrite/PatternApplicator.cpp |
 | mlir/test/lib/Dialect/Test/TestTraits.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp |
 | mlir/lib/Transforms/Utils/CMakeLists.txt |
 | mlir/include/mlir/Transforms/GreedyPatternRewriteDriver.h |
 | mlir/lib/Conversion/StandardToSPIRV/LegalizeStandardForSPIRV.cpp |
 | mlir/include/mlir/Rewrite/PatternApplicator.h |
 | mlir/lib/Dialect/Affine/Transforms/AffineDataCopyGeneration.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp |
 | mlir/lib/Rewrite/CMakeLists.txt |
 | mlir/test/lib/Transforms/TestGpuRewrite.cpp |
 | mlir/lib/Dialect/Affine/Utils/Utils.cpp |
 | mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp |
 | mlir/lib/Dialect/Shape/Transforms/RemoveShapeConstraints.cpp |
 | mlir/lib/Transforms/Utils/LoopUtils.cpp |
 | mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp |
 | mlir/lib/Dialect/Quant/Transforms/ConvertConst.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp |
Commit
3fffffa882c0c3702e1ce4c6eaf8a380ac4ab065
by riddleriver[mlir][Pattern] Add a new FrozenRewritePatternList class
This class represents a rewrite pattern list that has been frozen, and thus immutable. This replaces the uses of OwningRewritePatternList in pattern driver related API, such as dialect conversion. When PDL becomes more prevalent, this API will allow for optimizing a set of patterns once without the need to do this per run of a pass.
Differential Revision: https://reviews.llvm.org/D89104
|
 | mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp |
 | mlir/lib/Dialect/Affine/Utils/Utils.cpp |
 | mlir/examples/toy/Ch6/mlir/LowerToLLVM.cpp |
 | mlir/lib/Transforms/Inliner.cpp |
 | mlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRVPass.cpp |
 | mlir/lib/Rewrite/FrozenRewritePatternList.cpp |
 | mlir/include/mlir/Transforms/DialectConversion.h |
 | mlir/lib/Dialect/StandardOps/Transforms/Bufferize.cpp |
 | mlir/lib/Dialect/SPIRV/Transforms/DecorateSPIRVCompositeTypeLayoutPass.cpp |
 | mlir/lib/Rewrite/PatternApplicator.cpp |
 | mlir/test/lib/Dialect/Test/TestPatterns.cpp |
 | mlir/lib/Dialect/SPIRV/Transforms/LowerABIAttributesPass.cpp |
 | mlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp |
 | mlir/test/lib/Dialect/Test/TestTraits.cpp |
 | mlir/examples/toy/Ch7/mlir/LowerToLLVM.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Loops.cpp |
 | mlir/include/mlir/Transforms/GreedyPatternRewriteDriver.h |
 | mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp |
 | mlir/examples/toy/Ch7/mlir/LowerToAffineLoops.cpp |
 | mlir/lib/Conversion/LinalgToSPIRV/LinalgToSPIRVPass.cpp |
 | mlir/test/lib/Dialect/SPIRV/TestAvailability.cpp |
 | mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp |
 | mlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp |
 | mlir/lib/Dialect/Affine/Transforms/AffineDataCopyGeneration.cpp |
 | mlir/lib/Transforms/Canonicalizer.cpp |
 | mlir/lib/Transforms/Utils/DialectConversion.cpp |
 | mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h |
 | mlir/lib/Conversion/StandardToSPIRV/LegalizeStandardForSPIRV.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp |
 | mlir/lib/Conversion/AffineToStandard/AffineToStandard.cpp |
 | mlir/lib/Conversion/SCFToStandard/SCFToStandard.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/CodegenStrategy.cpp |
 | mlir/lib/Dialect/Shape/Transforms/Bufferize.cpp |
 | mlir/lib/Conversion/SPIRVToLLVM/ConvertLaunchFuncToLLVMCalls.cpp |
 | mlir/test/lib/Transforms/TestLinalgFusionTransforms.cpp |
 | mlir/test/lib/Transforms/TestConvertCallOp.cpp |
 | mlir/include/mlir/IR/PatternMatch.h |
 | mlir/include/mlir/Rewrite/FrozenRewritePatternList.h |
 | mlir/lib/Dialect/Affine/Transforms/SimplifyAffineStructures.cpp |
 | mlir/test/lib/Transforms/TestBufferPlacement.cpp |
 | mlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRVPass.cpp |
 | mlir/examples/toy/Ch5/mlir/LowerToAffineLoops.cpp |
 | mlir/lib/Dialect/Shape/Transforms/ShapeToShapeLowering.cpp |
 | mlir/lib/Conversion/AVX512ToLLVM/ConvertAVX512ToLLVM.cpp |
 | mlir/lib/Conversion/VectorToROCDL/VectorToROCDL.cpp |
 | mlir/lib/Rewrite/CMakeLists.txt |
 | mlir/lib/Conversion/OpenMPToLLVM/OpenMPToLLVM.cpp |
 | mlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp |
 | mlir/lib/Dialect/Quant/Transforms/ConvertSimQuant.cpp |
 | mlir/lib/Dialect/Quant/Transforms/ConvertConst.cpp |
 | mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp |
 | mlir/test/lib/Transforms/TestGpuRewrite.cpp |
 | mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp |
 | mlir/lib/Dialect/Shape/Transforms/RemoveShapeConstraints.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp |
 | mlir/test/lib/Transforms/TestConvVectorization.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp |
 | mlir/include/mlir/Rewrite/PatternApplicator.h |
 | mlir/lib/Dialect/StandardOps/Transforms/ExpandAtomic.cpp |
 | mlir/test/lib/Transforms/TestExpandTanh.cpp |
 | mlir/lib/Conversion/SCFToGPU/SCFToGPUPass.cpp |
 | mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp |
 | mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp |
 | mlir/lib/Conversion/VectorToSPIRV/VectorToSPIRV.cpp |
 | mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp |
 | mlir/test/lib/Transforms/TestVectorTransforms.cpp |
 | mlir/lib/Conversion/LinalgToStandard/LinalgToStandard.cpp |
 | mlir/lib/Dialect/SCF/Transforms/Bufferize.cpp |
 | mlir/test/lib/Transforms/TestLinalgTransforms.cpp |
 | mlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVMPass.cpp |
 | mlir/examples/toy/Ch6/mlir/LowerToAffineLoops.cpp |
Commit
52821f6a71a568f966427b627839d40641653757
by Duncan P. N. Exon SmithIR: Add a comment at missing std::make_unique calls from b2b7cf39d596b1528cd64015575b3f5d1461c011, NFC
|
 | llvm/lib/IR/Constants.cpp |
Commit
0efbfa38ae009c1d5a47ba84c3ba9b9681689996
by tu.da.wei[NPM] Port -slsr to NPM
`-separate-const-offset-from-gep` has not yet be ported, so some tests are not updated.
Reviewed By: aeubanks
Differential Revision: https://reviews.llvm.org/D90149
|
 | llvm/test/Transforms/StraightLineStrengthReduce/AMDGPU/pr23975.ll |
 | llvm/test/Transforms/StraightLineStrengthReduce/slsr-add.ll |
 | llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp |
 | llvm/include/llvm/InitializePasses.h |
 | llvm/test/Transforms/StraightLineStrengthReduce/slsr-mul.ll |
 | llvm/include/llvm/Transforms/Scalar/StraightLineStrengthReduce.h |
 | llvm/lib/Transforms/Scalar/Scalar.cpp |
 | llvm/lib/Passes/PassBuilder.cpp |
 | llvm/lib/Passes/PassRegistry.def |
 | llvm/test/Transforms/StraightLineStrengthReduce/X86/no-slsr.ll |
 | llvm/test/Transforms/StraightLineStrengthReduce/slsr-gep.ll |
Commit
7a880ab3889227469c5d6f0d5579f32747420234
by carl.ritson[AMDGPU] Move WQM Pass after MI Scheduler
Exec mask manipulation inserted by SIWholeQuadMode barriers to instruction scheduling. Move the entire pass after the machine instruction scheduler and make changes so pass is correct for non-SSA operation. These changes should leave the pass still usable pre-scheduler, although tests have be updated to reflect post-scheduler results.
Reviewed By: nhaehnle
Differential Revision: https://reviews.llvm.org/D88081
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.gather4.dim.ll |
 | llvm/test/CodeGen/AMDGPU/atomic_optimizations_pixelshader.ll |
 | llvm/test/CodeGen/AMDGPU/atomic_optimizations_raw_buffer.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.d16.dim.ll |
 | llvm/test/CodeGen/AMDGPU/wwm-reserved.ll |
 | llvm/test/CodeGen/AMDGPU/atomic_optimizations_buffer.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.gather4.a16.dim.ll |
 | llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp |
 | llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ps.live.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.gather4.o.dim.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.dim.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.softwqm.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.a16.dim.ll |
 | llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll |
 | llvm/test/CodeGen/AMDGPU/wqm.ll |
 | llvm/test/CodeGen/AMDGPU/atomic_optimizations_struct_buffer.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.gather4.a16.dim.ll |
Commit
aaf7ffd4e1aa81c7f4cc8da4f943982ca2e131f4
by chandlercTeach `-fsanitize=fuzzer` to respect `-static` and `-static-libstdc++` when adding C++ standard libraries.
Summary: Makes linking the sanitizers follow the same logic as the rest of the driver with respect to the static linking strategy for the C++ standard library.
Subscribers: mcrosier, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D80488
|
 | clang/lib/Driver/ToolChains/CommonArgs.cpp |
 | clang/test/Driver/fuzzer.c |
Commit
470d2d1d28c6ffa45cc40ad8c35cb79851741131
by craig.topperUpdate email addresses in CODE_OWNERS.
|
 | llvm/CODE_OWNERS.TXT |
Commit
ebb4ea1d53aaccd91138bfd6afdc9b39fd784d83
by Duncan P. N. Exon SmithIR: Simplify two loops walking ConstantDataSequential, NFC
Follow-up to b2b7cf39d596b1528cd64015575b3f5d1461c011.
Differential Revision: https://reviews.llvm.org/D90198
|
 | llvm/lib/IR/Constants.cpp |
Commit
f057e6dc5e29751dbba700bc62d8c42c57a502b0
by Duncan P. N. Exon SmithSourceManager: clang-format the SrcMgr namespace, NFC
|
 | clang/include/clang/Basic/SourceManager.h |
Commit
00e573cadb2791804fd0859d0ee05b27b702e11e
by czhengsz[LSR] fix typo in comments and rename for a new added hook.
|
 | llvm/include/llvm/CodeGen/BasicTTIImpl.h |
 | llvm/include/llvm/Analysis/TargetTransformInfo.h |
 | llvm/lib/Analysis/TargetTransformInfo.cpp |
 | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp |
 | llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h |
 | llvm/include/llvm/Analysis/TargetTransformInfoImpl.h |
 | llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp |
Commit
e20d64c3d9d81cad701f31d8481367222c76c787
by tianshilei1992[Clang][OpenMP] Fixed an issue of segment fault when using target nowait
The implementation of target nowait just wraps the target region into a task. The essential four parameters (base ptr, ptr, size, mapper) are taken as firstprivate such that they will be copied to the private location. When there is no user-defined mapper, the mapper variable will be nullptr. However, it will be still copied to the corresponding place. Therefore, a memcpy will be generated and the source pointer will be nullptr, causing a segmentation fault. The root cause is when calling `emitOffloadingArraysArgument`, the last argument `Options` has a field about whether it requires a task. It only takes depend clause into account. In this patch, the nowait clause is also included.
There're two things that will be done in another patches: 1. target data nowait has not been supported yet. D90099 added the support. 2. When there is no mapper, the mapper array can be nullptr no matter whether it requires outer task or not. It can avoid an unnecessary data copy. This is an optimization that is covered in D90101.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D89844
|
 | openmp/libomptarget/test/offloading/bug47654.cpp |
 | clang/lib/CodeGen/CGOpenMPRuntime.cpp |
Commit
67f52f35d62b25f929646e972287c7b5397a044e
by riddleriver[mlir][StorageUniquer] Refactor parametric storage to use sharded dense sets
This revisions implements sharding in the storage of parametric instances to decrease lock contention by sharding out the allocator/mutex/etc. to use for a specific storage instance based on the hash key. This is a somewhat common approach to reducing lock contention on data structures, and is used by the concurrent hashmaps provided by folly/java/etc. For several compilations tested, this removed all/most lock contention from profiles and reduced compile time by several seconds.
Differential Revision: https://reviews.llvm.org/D89659
|
 | mlir/lib/Support/StorageUniquer.cpp |
 | mlir/include/mlir/Support/StorageUniquer.h |
Commit
eda450bb27c4638ba191deaa92526c5ad0fcb87f
by riddleriver[mlir][SymbolTable] Use Identifier instead of StringRef when looking up symbol name attributes
Using an Identifier is much more efficient for attribute lookups because it uses pointer comparison as opposed to string comparison.
Differential Revision: https://reviews.llvm.org/D89660
|
 | mlir/lib/IR/SymbolTable.cpp |
Commit
90c0b0d3d67caf8d64b04b3e2cfb9b7ef0fbbd74
by aeubanksPort -objc-arc-apelim to NPM
Reviewed By: asbirlea
Differential Revision: https://reviews.llvm.org/D90181
|
 | llvm/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp |
 | llvm/lib/Passes/PassRegistry.def |
 | llvm/test/Transforms/ObjCARC/apelim.ll |
 | llvm/include/llvm/Transforms/ObjCARC.h |
Commit
3dd1c724581ab7aab8bae7bb6e0566c52b1f9a9d
by aeubanksPort -objc-arc-expand to NPM
Reviewed By: asbirlea
Differential Revision: https://reviews.llvm.org/D90182
|
 | llvm/include/llvm/Transforms/ObjCARC.h |
 | llvm/lib/Transforms/ObjCARC/ObjCARCExpand.cpp |
 | llvm/lib/Passes/PassRegistry.def |
 | llvm/test/Transforms/ObjCARC/expand.ll |
Commit
a87f618ea7950f096093953b41baba24775b397f
by aeubanks[PlaceSafepoints] Pin tests to legacy PM
This pass isn't used in tree and can be ported to the NPM later on if desired.
Differential Revision: https://reviews.llvm.org/D90189
|
 | llvm/test/Transforms/PlaceSafepoints/finite-loops.ll |
 | llvm/test/Transforms/PlaceSafepoints/statepoint-coreclr.ll |
 | llvm/test/Transforms/PlaceSafepoints/call-in-loop.ll |
 | llvm/test/Transforms/PlaceSafepoints/memset.ll |
 | llvm/test/Transforms/PlaceSafepoints/libcall.ll |
 | llvm/test/Transforms/PlaceSafepoints/split-backedge.ll |
 | llvm/test/Transforms/PlaceSafepoints/statepoint-frameescape.ll |
 | llvm/test/Transforms/PlaceSafepoints/basic.ll |
 | llvm/test/Transforms/PlaceSafepoints/no-statepoints.ll |
Commit
504fbec7a61cdfbb5f6e1b25cf14afe5195ccaf6
by aeubanks[AlwaysInliner] Pass callee AAResults to InlineFunction()
Test copied from noalias-calls.ll with small changes.
Reviewed By: asbirlea
Differential Revision: https://reviews.llvm.org/D89609
|
 | llvm/test/Transforms/Inline/noalias-calls-always.ll |
 | llvm/lib/Transforms/IPO/AlwaysInliner.cpp |
Commit
2c08f1b4b69e1953044abdcdf06f78613e01cc8c
by bing1.yu[CostModel][X86] teach TTI calculate cost of chain of vector inserts/extracts more precisely and correctly:In each 128-lane, if there is at least one index is demanded and not all indices are demanded...
In each 128-lane, if there is at least one index is demanded and not all indices are demanded and this 128-lane is not the first 128-lane of the legalized-vector, then this 128-lane needs a extracti128; If in each 128-lane, there is at least one index is demanded, this 128-lane needs a inserti128.
The following cases will help you build a better understanding: Assume we insert several elements into a v8i32 vector in avx2, Case#1: inserting into 1th index needs vpinsrd + inserti128 Case#2: inserting into 5th index needs extracti128 + vpinsrd + inserti128 Case#3: inserting into 4,5,6,7 index needs 4*vpinsrd + inserti128.
Reviewed By: pengfei, RKSimon
Differential Revision: https://reviews.llvm.org/D89767
|
 | llvm/test/Analysis/CostModel/X86/arith-fp.ll |
 | llvm/test/Analysis/CostModel/X86/sitofp.ll |
 | llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost.ll |
 | llvm/test/Analysis/CostModel/X86/fptosi.ll |
 | llvm/lib/Target/X86/X86TargetTransformInfo.cpp |
 | llvm/test/Analysis/CostModel/X86/fptoui.ll |
 | llvm/test/Analysis/CostModel/X86/load_store.ll |
Commit
4af5ba17263a5103ce983f9ebccdbd9c5d9d0e33
by aeubanksRevert "[AlwaysInliner] Pass callee AAResults to InlineFunction()"
This reverts commit 504fbec7a61cdfbb5f6e1b25cf14afe5195ccaf6.
Test failure.
|
 | llvm/lib/Transforms/IPO/AlwaysInliner.cpp |
 | llvm/test/Transforms/Inline/noalias-calls-always.ll |
Commit
e5766f25c62c185632e3a75bf45b313eadab774b
by aeubanksUse uint64_t for branch weights instead of uint32_t
CallInst::updateProfWeight() creates branch_weights with i64 instead of i32. To be more consistent everywhere and remove lots of casts from uint64_t to uint32_t, use i64 for branch_weights.
Reviewed By: davidxl
Differential Revision: https://reviews.llvm.org/D88609
|
 | llvm/test/Transforms/PGOProfile/branch1.ll |
 | llvm/test/Transforms/SimplifyCFG/preserve-branchweights-switch-create.ll |
 | llvm/lib/Transforms/Utils/Local.cpp |
 | llvm/test/Transforms/PGOProfile/chr.ll |
 | llvm/test/Transforms/PGOProfile/multiple_hash_profile.ll |
 | compiler-rt/test/profile/instrprof-override-filename-with-env.c |
 | llvm/test/Transforms/JumpThreading/threading_prof2.ll |
 | llvm/test/Transforms/PGOProfile/instr_entry_bb.ll |
 | llvm/test/Transforms/SampleProfile/entry_counts_cold.ll |
 | clang/test/Profile/cxx-lambda.cpp |
 | compiler-rt/test/profile/Inputs/comdat_rename_1.cpp |
 | llvm/include/llvm/IR/MDBuilder.h |
 | llvm/test/Transforms/PGOProfile/thinlto_indirect_call_promotion.ll |
 | llvm/test/Transforms/CodeExtractor/MultipleExitBranchProb.ll |
 | llvm/test/Analysis/BranchProbabilityInfo/basic.ll |
 | llvm/test/Transforms/JumpThreading/update-edge-weight.ll |
 | llvm/test/Transforms/PGOProfile/icp_vararg.ll |
 | llvm/test/Transforms/PGOProfile/select1.ll |
 | llvm/test/Transforms/SampleProfile/profile-format-compress.ll |
 | clang/test/CodeGen/catch-undef-behavior.c |
 | llvm/test/Transforms/LowerExpectIntrinsic/phi_merge.ll |
 | llvm/test/Transforms/Util/libcalls-shrinkwrap-long-double.ll |
 | llvm/lib/Transforms/Utils/MisExpect.cpp |
 | compiler-rt/test/profile/instrprof-write-file.c |
 | llvm/test/Transforms/SimpleLoopUnswitch/basictest-profmd.ll |
 | llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll |
 | clang/test/CodeGenCXX/static-initializer-branch-weights.cpp |
 | compiler-rt/test/profile/instrprof-write-file-atexit-explicitly.c |
 | compiler-rt/test/profile/Linux/instrprof-cs.c |
 | llvm/test/Transforms/PGOProfile/switch.ll |
 | llvm/test/Transforms/PGOProfile/icp_covariant_invoke_return.ll |
 | clang/test/Profile/c-counter-overflows.c |
 | llvm/test/Transforms/SimpleLoopUnswitch/trivial-unswitch-profmd.ll |
 | llvm/test/Transforms/PGOProfile/fix_entry_count.ll |
 | llvm/include/llvm/IR/Instructions.h |
 | llvm/test/Transforms/LowerExpectIntrinsic/phi_or.ll |
 | llvm/test/Transforms/PGOProfile/icp_covariant_call_return.ll |
 | llvm/test/Instrumentation/AddressSanitizer/basic.ll |
 | llvm/test/Transforms/Util/libcalls-shrinkwrap-float.ll |
 | llvm/test/Transforms/PGOProfile/noreturncall.ll |
 | clang/test/Profile/cxx-rangefor.cpp |
 | llvm/lib/Transforms/IPO/SampleProfile.cpp |
 | compiler-rt/test/profile/Linux/instrprof-basic.c |
 | llvm/test/Transforms/PGOProfile/cspgo_profile_summary.ll |
 | clang/test/Profile/cxx-class.cpp |
 | llvm/test/Transforms/PGOProfile/icp_invoke.ll |
 | clang/test/CodeGenCXX/microsoft-abi-thread-safe-statics.cpp |
 | llvm/test/Transforms/PGOProfile/memop_size_opt.ll |
 | clang/test/Profile/objc-general.m |
 | llvm/test/Transforms/SampleProfile/inline-mergeprof.ll |
 | llvm/test/Transforms/PGOProfile/remap.ll |
 | clang/test/CodeGenCXX/attr-likelihood-if-branch-weights.cpp |
 | llvm/test/Transforms/PGOProfile/branch2.ll |
 | llvm/test/Transforms/LowerExpectIntrinsic/expect_nonboolean.ll |
 | llvm/test/Transforms/SCCP/switch.ll |
 | clang/test/CodeGenCXX/attr-likelihood-switch-branch-weights.cpp |
 | llvm/test/Transforms/LoopVectorize/check-prof-info.ll |
 | llvm/test/Transforms/PGOProfile/thinlto_cspgo_use.ll |
 | llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp |
 | llvm/include/llvm/Transforms/Utils/MisExpect.h |
 | llvm/test/Transforms/PGOProfile/loop1.ll |
 | compiler-rt/test/profile/instrprof-set-filename.c |
 | clang/test/CodeGenCXX/profile-remap.cpp |
 | llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp |
 | llvm/lib/IR/Instructions.cpp |
 | llvm/test/Transforms/SimplifyCFG/invoke_unwind.ll |
 | llvm/test/Transforms/LoopUnroll/peel-loop-pgo.ll |
 | llvm/unittests/Analysis/ProfileSummaryInfoTest.cpp |
 | compiler-rt/test/profile/Inputs/comdat_rename_2.cpp |
 | llvm/test/Transforms/SampleProfile/indirect-call.ll |
 | compiler-rt/test/profile/instrprof-basic.c |
 | compiler-rt/test/profile/instrprof-set-filename-then-reset-default.c |
 | llvm/lib/Analysis/BranchProbabilityInfo.cpp |
 | llvm/lib/IR/MDBuilder.cpp |
 | llvm/test/Transforms/PGOProfile/landingpad.ll |
 | compiler-rt/test/profile/instrprof-hostname.c |
 | compiler-rt/test/profile/instrprof-reset-counters.c |
 | clang/test/Profile/c-captured.c |
 | llvm/test/Transforms/SampleProfile/inline-mergeprof-dup.ll |
 | compiler-rt/test/profile/instrprof-write-file-only.c |
 | llvm/lib/Transforms/Utils/SimplifyCFG.cpp |
 | compiler-rt/test/profile/instrprof-override-filename.c |
 | llvm/test/Transforms/PGOProfile/loop2.ll |
 | clang/test/Profile/cxx-throws.cpp |
 | llvm/test/Transforms/CorrelatedValuePropagation/profmd.ll |
 | clang/test/Profile/gcc-flag-compatibility.c |
 | llvm/test/Transforms/SampleProfile/profile-format.ll |
 | llvm/test/Transforms/LowerExpectIntrinsic/phi_tern.ll |
 | compiler-rt/test/profile/instrprof-dump.c |
 | llvm/test/Transforms/PGOProfile/indirect_call_promotion_musttail.ll |
 | llvm/test/Transforms/LowerExpectIntrinsic/expect-with-probability.ll |
 | llvm/test/Transforms/PGOProfile/criticaledge.ll |
 | clang/test/Profile/cxx-templates.cpp |
 | llvm/lib/Transforms/Scalar/JumpThreading.cpp |
 | llvm/test/Transforms/Util/libcalls-shrinkwrap-double.ll |
 | llvm/test/Analysis/BranchProbabilityInfo/basic_i32.ll |
 | clang/test/CodeGenCXX/attr-likelihood-if-vs-builtin-expect.cpp |
 | compiler-rt/test/profile/instrprof-override-filename-then-reset-default.c |
 | compiler-rt/test/profile/instrprof-without-libc.c |
 | llvm/lib/Transforms/Utils/CodeExtractor.cpp |
 | llvm/test/Transforms/LowerExpectIntrinsic/basic.ll |
 | clang/lib/CodeGen/CodeGenPGO.cpp |
 | llvm/test/Transforms/JumpThreading/threading_prof1.ll |
 | llvm/test/Transforms/LoopUnroll/peel-loop-pgo-deopt.ll |
 | llvm/test/Transforms/PGOProfile/indirect_call_promotion.ll |
 | llvm/test/Transforms/LoopVectorize/tripcount.ll |
 | llvm/test/Transforms/PGOProfile/indirectbr.ll |
 | llvm/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h |
 | llvm/test/Transforms/PGOProfile/select2.ll |
 | llvm/test/Transforms/LoopUnroll/runtime-loop-branchweight.ll |
 | llvm/test/Transforms/PGOProfile/indirect_call_promotion_vla.ll |
 | clang/test/Profile/c-general.c |
 | llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp |
 | llvm/test/Transforms/SimplifyCFG/switch-profmd.ll |
Commit
42f76e193b696219d43ceb40ee61e4e07ccf0d42
by aeubanksReland [AlwaysInliner] Pass callee AAResults to InlineFunction()
Test copied from noalias-calls.ll with small changes.
Reviewed By: asbirlea
Differential Revision: https://reviews.llvm.org/D89609
|
 | llvm/lib/Transforms/IPO/AlwaysInliner.cpp |
 | llvm/test/Transforms/Inline/noalias-calls-always.ll |
Commit
c4ef3115b4296321090ce33987d6fdf7fa337fc1
by Jonas DevlieghereFix calls to (p)read on macOS when size > INT32_MAX
On macOS, the read and pread syscalls return EINVAL when the number of bytes to read exceeds INT32_MAX:
https://github.com/apple/darwin-xnu/blob/a449c6a3b8014d9406c2ddbdc81795da24aa7443/bsd/kern/sys_generic.c#L355
rdar://68751407
Differential revision: https://reviews.llvm.org/D90201
|
 | llvm/lib/Support/Unix/Path.inc |
Commit
d38788b357ad29083eb3b03027db908559aae2a6
by tianshilei1992[Clang][OpenMP] Avoid unnecessary privatization of mapper array when there is no user defined mapper
In current implementation, if it requires an outer task, the mapper array will be privatized no matter whether it has mapper. In fact, when there is no mapper, the mapper array only contains number of nullptr. In the libomptarget, the use of mapper array is `if (mappers_array && mappers_array[i])`, which means we can directly set mapper array to nullptr if there is no mapper. This can avoid unnecessary data copy.
In this patch, the data privatization will not be emitted if the mapper array is nullptr. When it comes to the emit of task body, the nullptr will be used directly.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D90101
|
 | clang/test/OpenMP/target_enter_data_depend_codegen.cpp |
 | clang/test/OpenMP/target_teams_distribute_parallel_for_simd_depend_codegen.cpp |
 | clang/test/OpenMP/target_parallel_for_depend_codegen.cpp |
 | clang/test/OpenMP/target_teams_depend_codegen.cpp |
 | clang/test/OpenMP/target_teams_distribute_parallel_for_depend_codegen.cpp |
 | clang/test/OpenMP/target_update_depend_codegen.cpp |
 | clang/test/OpenMP/target_parallel_depend_codegen.cpp |
 | clang/test/OpenMP/target_parallel_for_codegen.cpp |
 | clang/test/OpenMP/target_teams_codegen.cpp |
 | clang/test/OpenMP/target_teams_distribute_simd_depend_codegen.cpp |
 | clang/lib/CodeGen/CGOpenMPRuntime.cpp |
 | clang/test/OpenMP/target_simd_depend_codegen.cpp |
 | clang/lib/CodeGen/CGStmtOpenMP.cpp |
 | clang/test/OpenMP/target_teams_distribute_codegen.cpp |
 | clang/test/OpenMP/target_parallel_for_simd_depend_codegen.cpp |
 | clang/test/OpenMP/target_teams_distribute_simd_codegen.cpp |
 | clang/test/OpenMP/target_codegen.cpp |
 | clang/test/OpenMP/target_exit_data_depend_codegen.cpp |
 | clang/test/OpenMP/target_teams_distribute_depend_codegen.cpp |
Commit
c6ca26c0bfedb8f80d6f8cb9adde25b1d6aac1c5
by mkazantsev[IndVars] Remove monotonic checks with unknown exit count
Even if the exact exit count is unknown, we can still prove that this exit will not be taken. If we can prove that the predicate is monotonic, fulfilled on first & last iteration, and no overflow happened in between, then the check can be removed.
Differential Revision: https://reviews.llvm.org/D87832 Reviewed By: apilipenko
|
 | llvm/lib/Transforms/Scalar/IndVarSimplify.cpp |
 | llvm/lib/Analysis/ScalarEvolution.cpp |
 | llvm/test/Transforms/IndVarSimplify/monotonic_checks.ll |
 | llvm/test/Transforms/IndVarSimplify/predicated_ranges.ll |
 | llvm/include/llvm/Analysis/ScalarEvolution.h |
Commit
b69919b537fffcc5b6aaa6d78e2c039725a81f5b
by serguei.katkov[GVN LoadPRE] Add an option to disable splitting backedge
GVN Load PRE can split the backedge causing breaking the loop structure where the latch contains the conditional branch with for example induction variable.
Different optimizations expect this form of the loop, so it is better to preserve it for some time. This CL adds an option to control an ability to split backedge.
Default value is true so technically it is NFC and current behavior is not changed.
Reviewers: fedor.sergeev, mkazantsev, nikic, reames, fhahn Reviewed By: mkazasntsev Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D89854
|
 | llvm/test/Transforms/GVN/PRE/load-pre-split-backedge.ll |
 | llvm/lib/Transforms/Scalar/GVN.cpp |
 | llvm/include/llvm/Transforms/Scalar/GVN.h |
 | llvm/lib/Passes/PassBuilder.cpp |
Commit
2756e2ee0bceaf532d4990cbb4f2a84fe62b6b84
by zeratul976[libTooling] Recognize sccache as a compiler wrapper in compilation database commands
sccache is a compiler caching tool similar to ccache.
Differential Revision: https://reviews.llvm.org/D88790
|
 | clang/unittests/Tooling/CompilationDatabaseTest.cpp |
 | clang/lib/Tooling/JSONCompilationDatabase.cpp |
Commit
245b61a330abee06b81ac7d93da4582db51b1de7
by zeratul976[clangd] Increase the TooMany limit for index-based textual navigation to 5
Differential Revision: https://reviews.llvm.org/D90134
|
 | clang-tools-extra/clangd/XRefs.cpp |
Commit
fdc845b36130d162e5a66e427bf69b2c37b6c6bb
by mkazantsev[NFC] Factor away lambda's redundant parameter
|
 | llvm/lib/Transforms/Scalar/IndVarSimplify.cpp |
Commit
e851e566d4aee6770ac4f347b80373492d46e674
by csigg[mlir] Fix TypeID lookup in GDB pretty printers.
The TypeID instance was moved in D89153.
It wasn't caught that it broke MLIR pretty printers because pre-merge checks don't run check-debuginfo.
Avoid disabling all MLIR printers in case this happens again by catching the exception.
Reviewed By: stellaraccident
Differential Revision: https://reviews.llvm.org/D90191
|
 | mlir/utils/gdb-scripts/prettyprinters.py |
Commit
d602e79a81adceca3ecc0259d6eda305fe9c86c0
by apollo.mobility[X86] Encode global address in small code model
In small code model, program and its symbols are linked in the lower 2 GB of the address space. Try encoding global address even when the range is unknown in such case.
Differential Revision: https://reviews.llvm.org/D89341
|
 | llvm/test/CodeGen/X86/br-fold.ll |
 | llvm/test/CodeGen/X86/critical-edge-split-2.ll |
 | llvm/lib/Target/X86/X86ISelDAGToDAG.cpp |
 | llvm/test/CodeGen/X86/relocimm-small-model.ll |
 | llvm/test/CodeGen/X86/pr33290.ll |
Commit
f385823e04f300c92ec03dbd660d621cc618a271
by craig.topper[X86] Alternate implementation of D88194.
This uses PreprocessISelDAG to replace the constant before instruction selection instead of matching opcodes after.
Reviewed By: pengfei
Differential Revision: https://reviews.llvm.org/D89178
|
 | llvm/lib/Target/X86/X86ISelDAGToDAG.cpp |
 | llvm/test/CodeGen/X86/cet_endbr_imm_enhance.ll |
 | llvm/lib/Target/X86/X86IndirectBranchTracking.cpp |
Commit
c6a05eb62f2ab392eba4e7a056e95c821587ae47
by sam.mccall[Syntax] Disallow invalid Node operations
Copy/move break invariants (move could be fixed). Node/Tree should have no public constructors, they're abstract. Destructor is private to enforce arena allocation.
(Making the constructor of all subclasses private doesn't seem worthwhile)
Differential Revision: https://reviews.llvm.org/D90163
|
 | clang/include/clang/Tooling/Syntax/Tree.h |
Commit
6335446c99eb7263b8ae89a071df8a2cd66940d5
by mkazantsev[Test] One more range check test
|
 | llvm/test/Transforms/IndVarSimplify/predicated_ranges.ll |
Commit
2ef2841c0d0b49a76ea9026f37207a473d7d1332
by sam.mccall[clangd] Fix proto deps, for real this time.
This is ugly (layering violation) but we can clean it up once we know it works in CI.
|
 | clang-tools-extra/clangd/index/remote/CMakeLists.txt |
Commit
0fc1aa22ee6ac337a5d51fa5666c9cd61da61b07
by kiran.chandramohanUpdating llvm.mlir test to match recent IR change
Recent change updated branch weights to use i64 instead of i32. Updating llvm.mlir test to match this change. https://reviews.llvm.org/D88609
|
 | mlir/test/Target/llvmir.mlir |
Commit
2c2dc7c392a3f28d4dbec3018e3137d5d4f8c6c8
by hokein.wu[clang][RecoveryExpr] Add tests for ObjectiveC.
to demonstrate it works for some cases.
Differential Revision: https://reviews.llvm.org/D90140
|
 | clang/test/AST/ast-dump-recovery.m |
Commit
2618247c61c25cf9bd4cb315ee51cff2b3ab3add
by tykerCorrect examples after d3205bbca3e0002d76282878986993e7e7994779
|
 | clang/examples/AnnotateFunctions/AnnotateFunctions.cpp |
Commit
89eab30e5cde90dd3777254f27805b31af780412
by zinenko[mlir] use OpBuilderDAG instead of OpBuilder
A recent commit introduced a new syntax for specifying builder arguments in ODS, which is better amenable to automated processing, and deprecated the old form. Transition all dialects as well as Linalg ODS generator to use the new syntax.
Add a deprecation notice to ODS generator.
Reviewed By: rriddle, jpienaar
Differential Revision: https://reviews.llvm.org/D90038
|
 | mlir/examples/toy/Ch6/include/toy/Ops.td |
 | mlir/include/mlir/Dialect/SPIRV/SPIRVCompositeOps.td |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td |
 | mlir/docs/Tutorials/Toy/Ch-2.md |
 | mlir/include/mlir/Dialect/Affine/IR/AffineOps.td |
 | mlir/include/mlir/Dialect/Async/IR/AsyncOps.td |
 | mlir/include/mlir/Dialect/SPIRV/SPIRVLogicalOps.td |
 | mlir/include/mlir/Dialect/SPIRV/SPIRVStructureOps.td |
 | mlir/include/mlir/Dialect/SCF/SCFOps.td |
 | mlir/include/mlir/Dialect/StandardOps/IR/Ops.td |
 | mlir/test/lib/Dialect/Test/TestOps.td |
 | mlir/examples/toy/Ch2/include/toy/Ops.td |
 | mlir/include/mlir/Dialect/PDL/IR/PDLOps.td |
 | mlir/include/mlir/Dialect/SPIRV/SPIRVAtomicOps.td |
 | mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp |
 | mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td |
 | mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td |
 | mlir/examples/toy/Ch5/include/toy/Ops.td |
 | mlir/examples/toy/Ch7/include/toy/Ops.td |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td |
 | mlir/examples/toy/Ch4/include/toy/Ops.td |
 | mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp |
 | mlir/include/mlir/Dialect/GPU/GPUOps.td |
 | mlir/include/mlir/Dialect/Vector/VectorOps.td |
 | mlir/examples/toy/Ch3/include/toy/Ops.td |
 | mlir/include/mlir/Dialect/PDLInterp/IR/PDLInterpOps.td |
 | mlir/include/mlir/Dialect/SPIRV/SPIRVNonUniformOps.td |
 | mlir/include/mlir/Dialect/SPIRV/SPIRVControlFlowOps.td |
 | mlir/include/mlir/Dialect/SPIRV/SPIRVOps.td |
Commit
ad299364a7ee2ab1669dfe10347b0430140ee0ce
by david.green[ARM][AArch64] Add VLDN shuffled interleaving tests. NFC
|
 | llvm/test/CodeGen/AArch64/vldn_shuffle.ll |
 | llvm/test/CodeGen/Thumb2/mve-vldshuffle.ll |
Commit
f067bc3c0ad6b8800f63066d654ad15c3dd33fd1
by flo[LoopRotation] Allow loop header duplication if vectorization is forced.
-Oz normally does not allow loop header duplication so this loop wouldn't be vectorized. However the vectorization pragma should override this and allow for loop rotation.
rdar://problem/49281061
Original patch by Adam Nemet.
Reviewed By: Meinersbur
Differential Revision: https://reviews.llvm.org/D59832
|
 | llvm/test/Transforms/LoopVectorize/AArch64/Oz-and-forced-vectorize.ll |
 | llvm/lib/Transforms/Scalar/LoopRotation.cpp |
Commit
2d59ed4e62a9842be428f32976760dbb9cf336af
by grimar[yaml2obj] - Add a way to override the sh_addralign field of a section.
Imagine the following declaration of a section: ``` Sections: - Name: .dynsym Type: SHT_DYNSYM AddressAlign: 0x1111111111111111 ```
The aligment is large and yaml2obj reports an error currently: "the desired output size is greater than permitted. Use the --max-size option to change the limit"
This patch implements the "ShAddrAlign" key, which is similar to other "Sh*" keys we have. With it it is possible to override the `sh_addralign` field, ignoring the writing of alignment bytes.
Differential revision: https://reviews.llvm.org/D90019
|
 | llvm/lib/ObjectYAML/ELFEmitter.cpp |
 | llvm/lib/ObjectYAML/ELFYAML.cpp |
 | llvm/test/tools/yaml2obj/ELF/override-shaddralign.yaml |
 | llvm/include/llvm/ObjectYAML/ELFYAML.h |
Commit
1f933ff999f2c0373c79ddf23539873cbfa923e5
by Raphael Isemann[lldb][NFC] Rewrite TestQuoting
TestQuoting's different test methods all build their own test binaries but we can just reuse the same test binary by merging all asserts into one method. This reduces the test runtime from 8 seconds to 4 seconds on my machine. This also removes the ability to have partial failures in this test, but given how rarely this code is touched this seems like a fair tradeoff (and we will be able to re-add this feature once we updated our test framework).
Some other small changes: * Fixed that we cleanup "stdout.txt" instead of "output.txt" in the cleanup. * Fixed some formatting issues. * Call `build` instead of directly calling `buildDefault`.
|
 | lldb/test/API/commands/settings/quoting/TestQuoting.py |
Commit
6539ebe97d9777513015c4f8ae5fd8899094d671
by jay.foad[AMDGPU] Use DPP instead of Ext in a couple of class names. NFC.
|
 | llvm/lib/Target/AMDGPU/SIInstrInfo.td |
Commit
a3aea0193d8cb164742890c2b92ee797a1432420
by medismail.bennani[llvm/DebugInfo] Simplify DW_OP_implicit_value condition (NFC)
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
|
 | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp |
Commit
f855a553339aa78225a309a6f9b5fcae767de8da
by grimar[llvm-readelf] - Implement --section-details option.
--section-details/-t is a GNU readelf option that produce an output that is an alternative to --sections.
Differential revision: https://reviews.llvm.org/D89304
|
 | llvm/test/tools/llvm-readobj/ELF/section-details.test |
 | llvm/test/tools/llvm-readobj/ELF/symbols.test |
 | llvm/tools/llvm-readobj/llvm-readobj.cpp |
 | llvm/docs/CommandGuide/llvm-readelf.rst |
 | llvm/tools/llvm-readobj/ELFDumper.cpp |
 | llvm/test/tools/llvm-readobj/basic.test |
 | llvm/tools/llvm-readobj/ObjDumper.h |
Commit
443ab4d2e01246bf93cd410db945dc9ab6adf1b3
by mikhail.maltsev[clang][Basic] Integrate SourceLocation with FoldingSet, NFCI
This patch removes the necessity to access the SourceLocation internal representation in several places that use FoldingSet objects.
Reviewed By: dexonsmith
Differential Revision: https://reviews.llvm.org/D69844
|
 | clang/lib/Basic/SourceLocation.cpp |
 | clang/lib/StaticAnalyzer/Core/BugReporter.cpp |
 | clang/lib/Analysis/PathDiagnostic.cpp |
 | clang/include/clang/Basic/SourceLocation.h |
Commit
d26dd743084a886382204ede5eeed146cd29fcd6
by kbobyrev[clangd] Separate final_result into a different message
This is a breaking change in remote index protocol.
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D89851
|
 | clang-tools-extra/clangd/index/remote/server/Server.cpp |
 | clang-tools-extra/clangd/index/remote/Index.proto |
 | clang-tools-extra/clangd/index/remote/Client.cpp |
Commit
ccb6191f048927e55bac82b92eeba8ff0f9f8fe5
by marukawa[VE] Add missing regression test
In the previous "Add vector shift instructions", I forgot to add regression tests for VSRL and VSRD instructions. This patch is adding them.
Reviewed By: simoll
Differential Revision: https://reviews.llvm.org/D90167
|
 | llvm/test/MC/VE/VSRD.s |
 | llvm/test/MC/VE/VSRL.s |
Commit
c5fa6bae12ff01b34698abd0f7431c4450daece0
by marukawa[VE] Add vector float instructions
Add VFAD/VFSB/VFMP/VFDV/VFSQRT/VFCP/VFCM/VFMAD/VFMSB/VFNMAD/VFNMSB/ VRCP/VRSQRT/VRSQRTNEX/VFIX/VFIXX/VFLT/VFLTX/VCVS/VCVD instructions. Add regression tests too. Also add additional AsmParser for VFIX and VFIXX instructions to parse their mnemonic.
Reviewed By: simoll
Differential Revision: https://reviews.llvm.org/D90166
|
 | llvm/test/MC/VE/VFMP.s |
 | llvm/lib/Target/VE/VEInstrVec.td |
 | llvm/test/MC/VE/VFNMSB.s |
 | llvm/test/MC/VE/VRSQRTNEX.s |
 | llvm/test/MC/VE/VCVS.s |
 | llvm/test/MC/VE/VFIXX.s |
 | llvm/test/MC/VE/VFLT.s |
 | llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp |
 | llvm/test/MC/VE/VCVD.s |
 | llvm/test/MC/VE/VRCP.s |
 | llvm/test/MC/VE/VFCP.s |
 | llvm/test/MC/VE/VFMAD.s |
 | llvm/test/MC/VE/VFLTX.s |
 | llvm/test/MC/VE/VFSB.s |
 | llvm/test/MC/VE/VFAD.s |
 | llvm/test/MC/VE/VFNMAD.s |
 | llvm/test/MC/VE/VRSQRT.s |
 | llvm/test/MC/VE/VFCM.s |
 | llvm/test/MC/VE/VFMSB.s |
 | llvm/test/MC/VE/VFDV.s |
 | llvm/test/MC/VE/VFIX.s |
 | llvm/test/MC/VE/VFSQRT.s |
Commit
6482f3239af193e00b30c0a8f1459be4f22cb141
by lebedev.ri[NFC][InstCombine] Add more exhaustive test coverage for `(x >>? X1) << C2` pattern (PR37872)
|
 | llvm/test/Transforms/InstCombine/canonicalize-ashr-shl-to-masking.ll |
 | llvm/test/Transforms/InstCombine/canonicalize-lshr-shl-to-masking.ll |
Commit
90152a602c127e1572d67139b07f09fa37047ed0
by lebedev.ri[NFC][InstCombine] Autogenerate cast.ll test
|
 | llvm/test/Transforms/InstCombine/cast.ll |
Commit
5e3a8953ace7f5783ef592f1786d7f10610648ad
by lebedev.ri[NFC][PhaseOrdering] Autogenerate basic.ll test
|
 | llvm/test/Transforms/PhaseOrdering/basic.ll |
Commit
0ac56e8eaaeb41b59a952fa465872f647c930347
by lebedev.ri[InstCombine] Fold `(X >>? C1) << C2` patterns to shift+bitmask (PR37872)
This is essentially finalizes a revert of rL155136, because nowadays the situation has improved, SCEV can model all these patterns well, and we canonicalize rotate-like patterns into a funnel shift intrinsics in InstCombine. So this should not cause any pessimization.
I've verified the canonicalize-{a,l}shr-shl-to-masking.ll transforms with alive, which confirms that we can freely preserve exact-ness, and no-wrap flags.
Profs: * base: https://rise4fun.com/Alive/gPQ * exact-ness preservation: https://rise4fun.com/Alive/izi * nuw preservation: https://rise4fun.com/Alive/DmD * nsw preservation: https://rise4fun.com/Alive/SLN6N * nuw nsw preservation: https://rise4fun.com/Alive/Qp7
Refs. https://reviews.llvm.org/D46760
|
 | llvm/test/Transforms/InstCombine/apint-shift.ll |
 | llvm/test/Transforms/InstCombine/gep-combine-loop-invariant.ll |
 | llvm/test/Transforms/InstCombine/known-signbit-shift.ll |
 | llvm/test/Transforms/InstCombine/canonicalize-ashr-shl-to-masking.ll |
 | llvm/test/Transforms/InstCombine/2010-11-01-lshr-mask.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp |
 | llvm/test/Transforms/InstCombine/shift.ll |
 | llvm/test/Transforms/InstCombine/canonicalize-lshr-shl-to-masking.ll |
 | llvm/test/Transforms/InstCombine/cast.ll |
 | llvm/test/Transforms/InstCombine/trunc.ll |
Commit
f8a3b9b06c4a46fe2a83ec52f8e396d335b44fdd
by david.spickett[lldb] Correct vFile:pread/pwrite packet docs
The statement that lldb-server can handle decimal and hex numbers is misleading. (it can only handle hex with 0x prefix)
Mentioning non decimal numbers at all is just creating more confusion for anyone who tries to use them with lldb-server.
Differential Revision: https://reviews.llvm.org/D89383
|
 | lldb/docs/lldb-platform-packets.txt |
Commit
673f2f702b03be8c003889cbb5923e111c3e24d0
by sebastian.neubauermsgpack: Improve error for empty node
|
 | llvm/lib/BinaryFormat/MsgPackDocument.cpp |
Commit
22e4346e054a4474a68fd293324db295fffed34c
by Alexander.Richardson[ValueTracking] Add tracking of the alignment assume bundle
This patch is to add the support of the value tracking of the alignment assume bundle.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D88669
|
 | llvm/test/Analysis/ValueTracking/assume-queries-counter.ll |
 | llvm/test/Analysis/BasicAA/featuretest.ll |
 | llvm/test/Transforms/InstCombine/assume-align.ll |
 | llvm/lib/Analysis/ValueTracking.cpp |
Commit
565f4e72dafa0abd250e0435e2bb62cdd91c908f
by Alexander.Richardson[ValueTracking] Add more tests for alignment assume bundles
I noticed that alignment was no longer inferred as well after I last merged our CHERI fork from upstream. I opened this review before seeing that D88669 already fixes the same problem, so this commit simply adds the new test that I added as part of this change.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D89830
|
 | llvm/unittests/Analysis/ValueTrackingTest.cpp |
Commit
d323c8f791ac1160813508f1742f845444b6459a
by Alexander.Richardson[ValueTracking][NFC] Use Log2(Align) instead of countTrailingZeroes
The latter can probably be optimized to the same final code, but this might help -O0 builds.
|
 | llvm/lib/Analysis/ValueTracking.cpp |
Commit
850325348ae82cd5e26ea9edfd04219d0fbe7828
by Alexander.Richardson[clang-format] Fix misformatted macro definitions after D86959
After D86959 the code `#define lambda [](const decltype(x) &ptr) {}` was formatted as `#define lambda [](const decltype(x) & ptr) {}` due to now parsing the '&' token as a BinaryOperator. The problem was caused by the condition `Line.InPPDirective && (!Left->Previous || !Left->Previous->is(tok::identifier))) {` being matched and therefore not performing the checks for "previous token is one of decltype/_Atomic/etc.". This patch moves those checks after the existing if/else chain to ensure the left-parent token classification is always run after checking whether the contents of the parens is an expression or not.
This change also introduces a new TokenAnnotatorTest that checks the token kind and Role of Tokens after analyzing them. This is used to check for TT_PointerOrReference, in addition to indirectly testing this based on the resulting formatting.
Reviewed By: MyDeveloperDay
Differential Revision: https://reviews.llvm.org/D88956
|
 | clang/lib/Format/TokenAnnotator.cpp |
 | clang/unittests/Format/TestLexer.h |
 | clang/unittests/Format/FormatTest.cpp |
 | clang/unittests/Format/CMakeLists.txt |
 | clang/unittests/Format/TokenAnnotatorTest.cpp |
Commit
89031cffd1de0ce70106cda1bf5188f7a11726a2
by Alexander.RichardsonFix sancov.py when objdump is llvm-objdump
The sanitizer-coverage.cpp test case was always failing for me. It turns out the reason for this is that I was building with -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON and sancov.py's grep regex does not handle llvm-objdump's disassembly format (hex immediates have a leading "0x"). While touching those lines also change them to use raw string literals since invalid escape sequnces will become an error in future python versions. Also simplify the code by using subprocess.check_output() instead of Popen(). This also works with python2.
Fixes https://bugs.llvm.org/show_bug.cgi?id=44504
Reviewed By: #sanitizers, vitalybuka
Differential Revision: https://reviews.llvm.org/D89648
|
 | compiler-rt/lib/sanitizer_common/scripts/sancov.py |
Commit
2107e4b10ea5010019ed4e57989ec7cbe84dadc0
by llvmgnsyncbot[gn build] Port 850325348ae
|
 | llvm/utils/gn/secondary/clang/unittests/Format/BUILD.gn |
Commit
5d0308009284a0c8b75fb683eaba89c2e0c677f6
by sven.vanhaastregt[TargetLowering] Add i1 condition for bit comparison fold
For i1 types, boolean false is represented identically regardless of the boolean content, so we can allow optimizations that otherwise would not be correct for booleans with false represented as a negative one.
Patch by Erik Hogeman.
Differential Revision: https://reviews.llvm.org/D90145
|
 | llvm/test/CodeGen/NVPTX/pow2_mask_cmp.ll |
 | llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp |
Commit
cca049ad2b307dadedd8b5b6fbb05ca74b153a0d
by djtodoro[NFC][IntrRefLDV] Some code clean up
As reading the source code, I've found some minor nits: -Use using instead of typedef -Fix a comment -Refactor
Differential Revision: https://reviews.llvm.org/D90155
|
 | llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp |
Commit
e562a40871da14cef6685efef09760bca2718269
by zahira.ammarguellatFix for PR47544. Clang is crashing after generating the right diagnostic for a re-declaration of a friend method.d https://reviews.llvm.org/D88112
|
 | clang/lib/Parse/ParseCXXInlineMethods.cpp |
 | clang/test/SemaCXX/invalid-decl.cpp |
Commit
0905bd5c2fa42bd4c0e6e0aaa08b966f165b9dfa
by llvm-dev[InstCombine] collectBitParts - add trunc support.
This should allow us to remove the rather limited matchOrConcat fold and just use recognizeBSwapOrBitReverseIdiom.
|
 | llvm/test/Transforms/InstCombine/bswap.ll |
 | llvm/lib/Transforms/Utils/Local.cpp |
Commit
5a855551cb6fedfb3027b4de4172a962d04834ce
by llvm-dev[X86] Regenerate vector shift tests. NFCI.
Merge prefixes where possible, use 'X86' instead of 'X32' (which we try to only use for gnux32 triple tests).
|
 | llvm/test/CodeGen/X86/vshift-6.ll |
 | llvm/test/CodeGen/X86/vec_shift3.ll |
 | llvm/test/CodeGen/X86/vshift-4.ll |
 | llvm/test/CodeGen/X86/vshift_split2.ll |
 | llvm/test/CodeGen/X86/vshift-2.ll |
 | llvm/test/CodeGen/X86/vec_shift4.ll |
 | llvm/test/CodeGen/X86/vshift_split.ll |
 | llvm/test/CodeGen/X86/vec_shift2.ll |
 | llvm/test/CodeGen/X86/vshift-1.ll |
 | llvm/test/CodeGen/X86/vec_shift5.ll |
 | llvm/test/CodeGen/X86/vshift-5.ll |
 | llvm/test/CodeGen/X86/x86-shifts.ll |
 | llvm/test/CodeGen/X86/vshift-3.ll |
 | llvm/test/CodeGen/X86/vec_shift6.ll |
 | llvm/test/CodeGen/X86/vec_shift7.ll |
 | llvm/test/CodeGen/X86/vec_shift.ll |
Commit
2bc2e2e9fe25c5568cfb8681e441fcc6a194daa4
by llvm-dev[MallocChecker] Remove duplicate QCoreApplication::postEvent check. NFCI.
This appears to have been in the original patch in D14170.
Reported as "Snippet 11" in https://www.viva64.com/en/b/0771/
|
 | clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp |
Commit
b19473cf590eca13d23a20191c820d0f9d835beb
by llvm-dev[clang] RewriteObjCClassMetaData - remove superfluous null pointer check. NFCI.
We've already dereferenced the pointer and no other getClassInterface() calls appear to bother with such a check.
Reported as "Snippet 6" in https://www.viva64.com/en/b/0771/
|
 | clang/lib/Frontend/Rewrite/RewriteObjC.cpp |
Commit
2a4e704c92e8ec3d9217a7333368ea53cf3a583f
by thakisRevert "Use uint64_t for branch weights instead of uint32_t"
This reverts commit e5766f25c62c185632e3a75bf45b313eadab774b. Makes clang assert when building Chromium, see https://crbug.com/1142813 for a repro.
|
 | clang/test/Profile/cxx-lambda.cpp |
 | compiler-rt/test/profile/instrprof-write-file.c |
 | llvm/include/llvm/IR/Instructions.h |
 | compiler-rt/test/profile/Inputs/comdat_rename_2.cpp |
 | llvm/test/Transforms/PGOProfile/indirectbr.ll |
 | compiler-rt/test/profile/instrprof-without-libc.c |
 | compiler-rt/test/profile/Linux/instrprof-basic.c |
 | llvm/test/Transforms/SimpleLoopUnswitch/trivial-unswitch-profmd.ll |
 | llvm/test/Transforms/SimplifyCFG/switch-profmd.ll |
 | compiler-rt/test/profile/instrprof-hostname.c |
 | llvm/test/Transforms/LowerExpectIntrinsic/phi_merge.ll |
 | compiler-rt/test/profile/instrprof-basic.c |
 | llvm/test/Transforms/PGOProfile/icp_covariant_invoke_return.ll |
 | llvm/lib/IR/Instructions.cpp |
 | llvm/test/Transforms/SampleProfile/profile-format.ll |
 | llvm/test/Transforms/PGOProfile/multiple_hash_profile.ll |
 | llvm/test/Transforms/PGOProfile/select2.ll |
 | llvm/lib/Transforms/IPO/SampleProfile.cpp |
 | llvm/test/Transforms/PGOProfile/thinlto_cspgo_use.ll |
 | llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp |
 | llvm/lib/Transforms/Utils/Local.cpp |
 | compiler-rt/test/profile/instrprof-set-filename-then-reset-default.c |
 | compiler-rt/test/profile/Inputs/comdat_rename_1.cpp |
 | llvm/test/Transforms/LowerExpectIntrinsic/phi_or.ll |
 | llvm/lib/Analysis/BranchProbabilityInfo.cpp |
 | llvm/test/Transforms/LoopVectorize/tripcount.ll |
 | compiler-rt/test/profile/instrprof-reset-counters.c |
 | clang/lib/CodeGen/CodeGenPGO.cpp |
 | compiler-rt/test/profile/instrprof-override-filename-with-env.c |
 | clang/test/CodeGenCXX/static-initializer-branch-weights.cpp |
 | llvm/test/Instrumentation/AddressSanitizer/basic.ll |
 | llvm/test/Transforms/CodeExtractor/MultipleExitBranchProb.ll |
 | llvm/test/Transforms/PGOProfile/landingpad.ll |
 | llvm/test/Transforms/PGOProfile/memop_size_opt.ll |
 | llvm/lib/Transforms/Scalar/JumpThreading.cpp |
 | llvm/test/Transforms/PGOProfile/icp_invoke.ll |
 | llvm/test/Transforms/JumpThreading/threading_prof1.ll |
 | llvm/test/Transforms/LoopUnroll/runtime-loop-branchweight.ll |
 | llvm/test/Transforms/PGOProfile/criticaledge.ll |
 | compiler-rt/test/profile/instrprof-write-file-atexit-explicitly.c |
 | compiler-rt/test/profile/Linux/instrprof-cs.c |
 | llvm/test/Transforms/JumpThreading/threading_prof2.ll |
 | llvm/test/Transforms/LowerExpectIntrinsic/phi_tern.ll |
 | compiler-rt/test/profile/instrprof-write-file-only.c |
 | llvm/test/Transforms/CorrelatedValuePropagation/profmd.ll |
 | llvm/test/Transforms/PGOProfile/remap.ll |
 | llvm/lib/IR/MDBuilder.cpp |
 | llvm/test/Transforms/SimplifyCFG/invoke_unwind.ll |
 | llvm/test/Transforms/PGOProfile/loop2.ll |
 | llvm/test/Transforms/LowerExpectIntrinsic/expect_nonboolean.ll |
 | llvm/lib/Transforms/Utils/MisExpect.cpp |
 | llvm/test/Transforms/LowerExpectIntrinsic/basic.ll |
 | clang/test/Profile/cxx-class.cpp |
 | llvm/lib/Transforms/Utils/SimplifyCFG.cpp |
 | llvm/test/Transforms/PGOProfile/thinlto_indirect_call_promotion.ll |
 | llvm/test/Transforms/PGOProfile/switch.ll |
 | llvm/test/Transforms/SampleProfile/entry_counts_cold.ll |
 | llvm/test/Transforms/LoopVectorize/check-prof-info.ll |
 | clang/test/Profile/cxx-rangefor.cpp |
 | compiler-rt/test/profile/instrprof-dump.c |
 | compiler-rt/test/profile/instrprof-set-filename.c |
 | llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp |
 | llvm/unittests/Analysis/ProfileSummaryInfoTest.cpp |
 | llvm/test/Transforms/Util/libcalls-shrinkwrap-float.ll |
 | llvm/test/Transforms/PGOProfile/loop1.ll |
 | llvm/test/Transforms/SampleProfile/profile-format-compress.ll |
 | clang/test/Profile/c-counter-overflows.c |
 | clang/test/CodeGen/catch-undef-behavior.c |
 | llvm/test/Transforms/PGOProfile/indirect_call_promotion.ll |
 | llvm/test/Transforms/LowerExpectIntrinsic/expect-with-probability.ll |
 | llvm/test/Transforms/SCCP/switch.ll |
 | llvm/test/Transforms/SampleProfile/inline-mergeprof-dup.ll |
 | llvm/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h |
 | clang/test/CodeGenCXX/profile-remap.cpp |
 | llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp |
 | llvm/test/Transforms/PGOProfile/branch2.ll |
 | llvm/test/Transforms/PGOProfile/cspgo_profile_summary.ll |
 | llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll |
 | clang/test/Profile/objc-general.m |
 | compiler-rt/test/profile/instrprof-override-filename-then-reset-default.c |
 | llvm/include/llvm/Transforms/Utils/MisExpect.h |
 | llvm/test/Transforms/Util/libcalls-shrinkwrap-double.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/basictest-profmd.ll |
 | clang/test/Profile/cxx-throws.cpp |
 | clang/test/CodeGenCXX/attr-likelihood-switch-branch-weights.cpp |
 | llvm/test/Transforms/LoopUnroll/peel-loop-pgo-deopt.ll |
 | clang/test/Profile/gcc-flag-compatibility.c |
 | llvm/test/Transforms/LoopUnroll/peel-loop-pgo.ll |
 | llvm/include/llvm/IR/MDBuilder.h |
 | llvm/test/Transforms/PGOProfile/noreturncall.ll |
 | llvm/test/Transforms/JumpThreading/update-edge-weight.ll |
 | clang/test/CodeGenCXX/attr-likelihood-if-branch-weights.cpp |
 | llvm/test/Transforms/SimplifyCFG/preserve-branchweights-switch-create.ll |
 | llvm/test/Transforms/SampleProfile/indirect-call.ll |
 | compiler-rt/test/profile/instrprof-override-filename.c |
 | llvm/test/Transforms/PGOProfile/chr.ll |
 | llvm/test/Transforms/PGOProfile/indirect_call_promotion_musttail.ll |
 | llvm/test/Transforms/PGOProfile/select1.ll |
 | clang/test/CodeGenCXX/microsoft-abi-thread-safe-statics.cpp |
 | llvm/test/Analysis/BranchProbabilityInfo/basic.ll |
 | llvm/test/Transforms/PGOProfile/branch1.ll |
 | llvm/test/Transforms/PGOProfile/instr_entry_bb.ll |
 | llvm/test/Transforms/PGOProfile/icp_covariant_call_return.ll |
 | clang/test/Profile/cxx-templates.cpp |
 | llvm/test/Transforms/PGOProfile/icp_vararg.ll |
 | llvm/test/Transforms/Util/libcalls-shrinkwrap-long-double.ll |
 | llvm/lib/Transforms/Utils/CodeExtractor.cpp |
 | clang/test/CodeGenCXX/attr-likelihood-if-vs-builtin-expect.cpp |
 | clang/test/Profile/c-general.c |
 | clang/test/Profile/c-captured.c |
 | llvm/test/Transforms/PGOProfile/fix_entry_count.ll |
 | llvm/test/Transforms/PGOProfile/indirect_call_promotion_vla.ll |
 | llvm/test/Analysis/BranchProbabilityInfo/basic_i32.ll |
 | llvm/test/Transforms/SampleProfile/inline-mergeprof.ll |
Commit
3bc5824181e9cdbd027b44245026b6faa8a9e228
by llvm-dev[X86] Regenerate all-ones vector tests with common prefixes.
|
 | llvm/test/CodeGen/X86/all-ones-vector.ll |
Commit
35f7cbf9dfeced33561c811fb1a3b750a2e35640
by benny.kra[X86] Don't crash on CVTPS2PH with wide vector inputs.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 |