Commit
0cd73dbe2c0d169ec2cdd9a8264f4ee1695b53b7
by richard[c++20] For P1907R1: Add checking for structural types for non-type template parameters.
No support for the new kinds of non-type template argument yet.
This is not entirely NFC for prior language modes: we have historically incorrectly accepted rvalue references as the types of non-type template parameters. Such invalid code is now rejected.
|
 | clang/lib/Sema/SemaTemplate.cpp |
 | clang/include/clang/AST/Type.h |
 | clang/test/CXX/temp/temp.param/p7.cpp |
 | clang/test/SemaCXX/invalid-template-params.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/test/CodeGenCXX/debug-info-template.cpp |
 | clang/include/clang/AST/CXXRecordDeclDefinitionBits.def |
 | clang/lib/AST/DeclCXX.cpp |
 | clang/lib/AST/Type.cpp |
 | clang/include/clang/Sema/Sema.h |
 | clang/test/SemaTemplate/temp_arg_nontype_cxx20.cpp |
 | clang/include/clang/AST/DeclCXX.h |
Commit
0a7e56f74c2adde9a4bc2c1163e7ed3aff984584
by jezng[lld-macho] Mark weak symbols in symbol table
Reviewed By: #lld-macho, smeenai
Differential Revision: https://reviews.llvm.org/D86908
|
 | lld/MachO/SyntheticSections.cpp |
 | lld/test/MachO/symtab.s |
Commit
abd70fb3983f342bc1c90f9c70a7b59790ad5206
by jezng[lld-macho] Export trie addresses should be relative to the image base
We didn't notice this earlier this we were only testing the export trie encoded in a dylib, whose image base starts at zero. But a regular executable contains `__PAGEZERO`, which means it has a non-zero image base. This bug was discovered after attempting to run some programs that performed `dlopen` on an executable.
Reviewed By: #lld-macho, smeenai
Differential Revision: https://reviews.llvm.org/D87780
|
 | lld/test/MachO/export-trie.s |
 | lld/MachO/ExportTrie.h |
 | lld/MachO/SyntheticSections.cpp |
 | lld/MachO/ExportTrie.cpp |
Commit
dbc616e9825080f617865f7698647985d7c24e5e
by i[EHStreamer] Fix a "Continue to action" -fverbose-asm comment when multi-byte LEB128 encoding is needed
This only happens with more than 64 action records and it is difficult to construct a test.
|
 | llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp |
Commit
000eb1f314c1fc194454ad6c128f3c110eb8a34d
by SourabhSingh.Tomar[docs][flang] Fix typos
Reviewed By: SouraVX
Differential Revision: https://reviews.llvm.org/D87885
|
 | flang/docs/Calls.md |
Commit
dabe67948841542d14823976c65baecaaabb9bf1
by joker.ephAdd missing new line after debug logging in MLIRContext (NFC)
|
 | mlir/lib/IR/MLIRContext.cpp |
Commit
aa769358d8c80d06963d7bc529dd6edd76d3f0de
by richard[c++20] Consistent with the intent to allow all plausible types in non-type template parameters, permit vector types.
|
 | clang/lib/AST/Type.cpp |
 | clang/lib/AST/DeclCXX.cpp |
 | clang/test/CXX/temp/temp.param/p7.cpp |
Commit
bb5b28f12fbd029773dc93d18a82ef42f4889b2a
by ecaldas[SyntaxTree][Synthesis] Improve testing `createLeaf`
The new test shows that `createLeaf` depends on the C++ version.
Differential Revision: https://reviews.llvm.org/D87896
|
 | clang/unittests/Tooling/Syntax/SynthesisTest.cpp |
Commit
f8f1e5fb39d20985974658fb3d4401a80c0fcccd
by hokein.wu[AST] Fix dependence-bits for CXXDefaultInitExpr.
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D87382
|
 | clang/include/clang/AST/ComputeDependence.h |
 | clang/lib/AST/ComputeDependence.cpp |
 | clang/lib/AST/ExprCXX.cpp |
 | clang/test/SemaCXX/invalid-constructor-init.cpp |
Commit
e616a4259889b55ed1bf5bf095f0e59658c6e311
by ecaldas[SyntaxTree] Test for '\' inside token.
Differential Revision: https://reviews.llvm.org/D87895
|
 | clang/unittests/Tooling/Syntax/BuildTreeTest.cpp |
Commit
349af8054218017a2ac0c4bfeddd63e6ccbf4a21
by david.spickett[clang][AArch64] Correct return type of Neon vqmovun intrinsics
Neon intrinsics vqmovunh_s16, vqmovuns_s32, vqmovund_s64 should have unsigned return types.
See https://developer.arm.com/architectures/instruction-sets/simd-isas/neon/intrinsics?search=vqmovun
Fixes https://bugs.llvm.org/show_bug.cgi?id=46840
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D85118
|
 | clang/include/clang/Basic/arm_neon.td |
 | clang/test/CodeGen/aarch64-neon-misc.c |
 | clang/test/CodeGen/aarch64-neon-intrinsics.c |
 | clang/test/Sema/arm64-neon-header.c |
Commit
4eae6fc95f95563a73a510a8b09cfce01004930a
by andrzej.warzynski[clang] Fix incorrect call to TextDiagnostic::printDiagnosticMessage
As per the documentation, the 2nd argument in printDiagnosticMessage should be a bool that specifies whether the underlying message is a continuation note diagnostic or not. More specifically, it should be: ``` Level == DiagnosticsEngine::Note ``` instead of: ``` Level ```
This change means that `no input file` in the following scenario will be now correctly printed in bold: ``` $ bin/clang clang: error: no input files ``` In terminals that don't support text formatting the behaviour doesn't change.
Differential Revision: https://reviews.llvm.org/D87816
|
 | clang/lib/Frontend/TextDiagnosticPrinter.cpp |
Commit
57ae9bb9323548b2ad4ba8274c3910bf9c764983
by flo[LSR] Preserve MSSA when using SplitCriticalEdge.
LSR claims to MemorySSA, but we also have to make sure it is preserved when splitting critical edges. This can be done by passing MSSAU to SplitCriticalEdge.
Fixes PR47557.
|
 | llvm/test/Analysis/MemorySSA/update-remove-dead-blocks.ll |
 | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp |
Commit
702f06ad14ac61d364b773e5a1f4d8b0b0214553
by joker.ephFix crash in the pass pipeline when local reproducer is enabled
This crash only happens when a function pass is followed by a module pass. In this case the splitting of the pass pipeline didn't handle properly the verifier passes and ended up with an odd number of pass in the pipeline, breaking an assumption of the local crash reproducer executor and hitting an assertion.
Differential Revision: https://reviews.llvm.org/D88000
|
 | mlir/test/Pass/crash-recovery.mlir |
 | mlir/lib/Pass/Pass.cpp |
Commit
53d238a961d14eae46f6f2b296ce48026c7bd0a1
by lucas.prates[CodeGen] Fixing inconsistent ABI mangling of vlaues in SelectionDAGBuilder
SelectionDAGBuilder was inconsistently mangling values based on ABI Calling Conventions when getting them through copyFromRegs in SelectionDAGBuilder, causing duplicate value type convertions for function arguments. The checking for the mangling requirement was based on the value's originating instruction and was performed outside of, and inspite of, the regular Calling Convention Lowering.
The issue could be observed in a scenario such as:
``` %arg1 = load half, half* %const, align 2 %arg2 = call fastcc half @someFunc() call fastcc void @otherFunc(half %arg1, half %arg2) ; Here, %arg2 was incorrectly mangled twice, as the CallConv data from ; the call to @someFunc() was taken into consideration for the check ; when getting the value for processing the call to @otherFunc(...), ; after the proper convertion had taken place when lowering the return ; value of the first call. ```
This patch fixes the issue by disregarding the Calling Convention information for such copyFromRegs, making sure the ABI mangling is properly contanined in the Calling Convention Lowering.
This fixes Bugzilla #47454.
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D87844
|
 | llvm/test/CodeGen/ARM/pr47454.ll |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp |
Commit
98aed8aa00dcc021686972734b5356c831328721
by mkazantsev[Test] Test auto-update
|
 | llvm/test/Transforms/IndVarSimplify/eliminate-comparison.ll |
Commit
fa6da90aef004339e768c84d648f449348a5b13c
by james.henderson[lld][ELF][test] Add additional LTO testing
The additional testing is testing we previously had in a downstream test suite.
Reviewed by: grimar, MaskRay
Differential Revision: https://reviews.llvm.org/D87824
|
 | lld/test/ELF/lto/archive-mixed.test |
 | lld/test/ELF/lto/internalize-basic.ll |
 | lld/test/ELF/lto/undef-mixed2.test |
 | lld/test/ELF/lto/wrap-2.ll |
Commit
8cf6778d3040b33db768bb7542630d9820a72e28
by Alexander.Richardson[RISC-V] Implement RISCVInstrInfo::isCopyInstrImpl()
This does not result in changes for any of the current tests, but it might improve debug information in some cases.
Reviewed By: luismarques
Differential Revision: https://reviews.llvm.org/D86522
|
 | llvm/lib/Target/RISCV/RISCVInstrInfo.cpp |
 | llvm/lib/Target/RISCV/RISCVInstrInfo.h |
Commit
aa85c6f2a528792e2ff778a36fb6f35a01e8191c
by Alexander.Richardson[compiler-rt] Fix atomic support functions on 32-bit architectures
The code currently uses __c11_atomic_is_lock_free() to detect whether an atomic operation is natively supported. However, this can result in a runtime function call to determine whether the given operation is lock-free and clang generating a call to e.g. __atomic_load_8 since the branch is not a constant zero. Since we are implementing those runtime functions, we must avoid those calls. This patch replaces __c11_atomic_is_lock_free() with __atomic_always_lock_free() which always results in a compile-time constant value. This problem was found while compiling atomic.c for MIPS32 since the -Watomic-alignment warning was being triggered and objdump showed an undefined reference to _atomic_is_lock_free.
In addition to fixing 32-bit platforms this also enables the 16-byte case that was disabled in r153779 (185f2edd70a34d28b305df0cd8ce519ecbca2cfd).
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D86510
|
 | compiler-rt/lib/builtins/atomic.c |
Commit
4a5cc389c51d267f39286a9a8c58c32f758b9d4b
by ecaldas[SyntaxTree][Synthesis] Implement `deepCopy`
Differential Revision: https://reviews.llvm.org/D87749
|
 | clang/lib/Tooling/Syntax/Synthesis.cpp |
 | clang/include/clang/Tooling/Syntax/BuildTree.h |
 | clang/unittests/Tooling/Syntax/SynthesisTest.cpp |
Commit
ffdd4a46a9a90d7b63b840c4b3c775074815f3ed
by tpopp[mlir] Shape.AssumingOp implements RegionBranchOpInterface.
This adds support for the interface and provides unambigious information on the control flow as it is unconditional on any runtime values. The code is tested through confirming that buffer-placement behaves as expected.
Differential Revision: https://reviews.llvm.org/D87894
|
 | mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td |
 | mlir/lib/Dialect/Shape/IR/Shape.cpp |
 | mlir/test/Transforms/buffer-placement.mlir |
Commit
4b8ade837e36b7f0181ce86fc23f33851d0fdd35
by sjoerd.meijer[AArch64] Cortex-A55 scheduler model
This is an initial commit adding the A55 model, but it isn't used/enabled yet. We will follow up on this to improve the model, then flip the switch.
The optimisation guide describing Cortex-A55 micro-architecture in more detail can be found here:
https://static.docs.arm.com/epm128372/20/arm_cortex_a55_software_optimization_guide_v2.pdf
Original patch by Javed Absar.
Differential Revision: https://reviews.llvm.org/D46884
|
 | llvm/lib/Target/AArch64/AArch64SchedA55.td |
 | llvm/lib/Target/AArch64/AArch64.td |
Commit
13c73632c7cfcc2c8e70c93781d8fb9872153ede
by sam.parker[NFC][ARM] More tail predication tests.
Add mir tests for use/def of P0.
|
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt.mir |
Commit
095f6fbbd7b61af205d761f6951a869ec4a61722
by grimar[llvm-readelf/obj] - Stop printing invalid names for unnamed section symbols.
We have an issue with `ELFDumper<ELFT>::getSymbolSectionName`: 1) It is used deeply for both LLVM/GNU styles and might return LLVM-style only values to describe symbols: "Undefined", "Processor Specific", "Absolute", etc.
2) `getSymbolSectionName` is used by `getFullSymbolName` and these special values might appear instead of symbol names in many places. This occurs for unnamed section symbols currently.
This patch extracts the LLVM specific logic to `LLVMStyle<ELFT>::printSymbolSection`, which seems to be the only place where we want to print the special values mentioned. It also adds a meaningful new warning that is reported when we are unable to get a section index for a section symbol.
Differential revision: https://reviews.llvm.org/D87764
|
 | llvm/tools/llvm-readobj/ELFDumper.cpp |
 | llvm/test/tools/llvm-readobj/ELF/mips-plt.test |
 | llvm/test/tools/llvm-readobj/ELF/hash-symbols.test |
 | llvm/test/tools/llvm-readobj/ELF/symbol-shndx.test |
 | llvm/test/tools/llvm-readobj/ELF/dyn-symbols.test |
 | llvm/test/tools/llvm-readobj/ELF/mips-got.test |
Commit
2a774411174466010c69a2460c81b8d0d4f7165f
by sgueltonDo not dereference an array out of bound just to take its address
This is UB by the standard, and caught by the libstdc++ asserts
Differential Revision: https://reviews.llvm.org/D87892
|
 | flang/lib/Parser/token-sequence.cpp |
Commit
f4c5cadbcbb41f13cff0905449cfff4aef6a083c
by david.green[ARM] Select f32 constants with vmov.f16
This adds lowering for f32 values using the vmov.f16, which zeroes the top bits whilst setting the lower bits to a pattern. This range of values does not often come up, except where a f16 constant value has been converted to a f32.
Differential Revision: https://reviews.llvm.org/D87790
|
 | llvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h |
 | llvm/lib/Target/ARM/ARMISelLowering.cpp |
 | llvm/test/CodeGen/ARM/fp16-bitcast.ll |
 | llvm/lib/Target/ARM/ARMInstrVFP.td |
 | llvm/test/CodeGen/ARM/cmse-clear-float-hard.ll |