[all-commits] [llvm/llvm-project] f06900: [RISCV] Remove floating point condition code legal...
Ruizhe Zhao via All-commits
all-commits at lists.llvm.org
Mon Apr 12 02:55:44 PDT 2021
Branch: refs/heads/dev-newmaster
Home: https://github.com/llvm/llvm-project
Commit: f069000b433c3d08157a57b554a3a17c46cba04d
https://github.com/llvm/llvm-project/commit/f069000b433c3d08157a57b554a3a17c46cba04d
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
Log Message:
-----------
[RISCV] Remove floating point condition code legalization from lowerFixedLengthVectorSetccToRVV.
After D98939, this is done by LegalizeVectorOps making this code dead.
Reviewed By: frasercrmck
Differential Revision: https://reviews.llvm.org/D99519
Commit: 292816d2b613fdf5efbd4287b656bb793ad18e12
https://github.com/llvm/llvm-project/commit/292816d2b613fdf5efbd4287b656bb793ad18e12
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsRISCV.td
Log Message:
-----------
[RISCV] Don't set the SplatOperand flag on intrinsics that take a shift amount.
The shift amount should always be a vector or an XLen scalar.
The SplatOperand flag is used to indicate we need to legalize
non-XLen scalars including special handling for i64 on RV32.
This will prevent us from silently adjusting these operands if
the intrinsics are misused.
I'll probably adjust the name of the SplatOperand flag slightly
in a follow up patch.
Reviewed By: khchen, frasercrmck
Differential Revision: https://reviews.llvm.org/D99545
Commit: 9ca0b01eb4fdf08199dbf9235a8d63f79a753a4f
https://github.com/llvm/llvm-project/commit/9ca0b01eb4fdf08199dbf9235a8d63f79a753a4f
Author: Nick Lewycky <nicholas at mxc.ca>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/test/LTO/X86/strip-debug-info.ll
Log Message:
-----------
Remove dead CHECK-ERR line.
Commit: a9968c0a339ab47f5d6da1c513b2754f1e98a596
https://github.com/llvm/llvm-project/commit/a9968c0a339ab47f5d6da1c513b2754f1e98a596
Author: Tomas Matheson <tomas.matheson at arm.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/include/llvm/CodeGen/TargetRegisterInfo.h
M llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
M llvm/lib/CodeGen/GCRootLowering.cpp
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/CodeGen/MachineFrameInfo.cpp
M llvm/lib/CodeGen/PrologEpilogInserter.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/StackMaps.cpp
M llvm/lib/CodeGen/TargetRegisterInfo.cpp
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
M llvm/lib/Target/AMDGPU/SIRegisterInfo.h
M llvm/lib/Target/ARC/ARCFrameLowering.cpp
M llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
M llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
M llvm/lib/Target/ARM/ARMFrameLowering.cpp
M llvm/lib/Target/ARM/Thumb1FrameLowering.cpp
M llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
M llvm/lib/Target/Lanai/LanaiFrameLowering.cpp
M llvm/lib/Target/Lanai/LanaiRegisterInfo.cpp
M llvm/lib/Target/M68k/M68kFrameLowering.cpp
M llvm/lib/Target/M68k/M68kISelLowering.cpp
M llvm/lib/Target/M68k/M68kRegisterInfo.cpp
M llvm/lib/Target/Mips/MipsFrameLowering.cpp
M llvm/lib/Target/Mips/MipsRegisterInfo.cpp
M llvm/lib/Target/Mips/MipsSEFrameLowering.cpp
M llvm/lib/Target/Mips/MipsSERegisterInfo.cpp
M llvm/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp
M llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
M llvm/lib/Target/Sparc/SparcFrameLowering.cpp
M llvm/lib/Target/VE/VEFrameLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
M llvm/lib/Target/X86/X86FrameLowering.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86InstrInfo.cpp
M llvm/lib/Target/X86/X86RegisterInfo.cpp
Log Message:
-----------
[NFC][CodeGen] Tidy up TargetRegisterInfo stack realignment functions
Currently needsStackRealignment returns false if canRealignStack returns false.
This means that the behavior of needsStackRealignment does not correspond to
it's name and description; a function might need stack realignment, but if it
is not possible then this function returns false. Furthermore,
needsStackRealignment is not virtual and therefore some backends have made use
of canRealignStack to indicate whether a function needs stack realignment.
This patch attempts to clarify the situation by separating them and introducing
new names:
- shouldRealignStack - true if there is any reason the stack should be
realigned
- canRealignStack - true if we are still able to realign the stack (e.g. we
can still reserve/have reserved a frame pointer)
- hasStackRealignment = shouldRealignStack && canRealignStack (not target
customisable)
Targets can now override shouldRealignStack to indicate that stack realignment
is required.
This change will make it easier in a future change to handle the case where we
need to realign the stack but can't do so (for example when the register
allocator creates an aligned spill after the frame pointer has been
eliminated).
Differential Revision: https://reviews.llvm.org/D98716
Change-Id: Ib9a4d21728bf9d08a545b4365418d3ffe1af4d87
Commit: f5e9be6fdbdbe2a11f0227963fd4c15e3c319a44
https://github.com/llvm/llvm-project/commit/f5e9be6fdbdbe2a11f0227963fd4c15e3c319a44
Author: Amara Emerson <amara at apple.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
Log Message:
-----------
[GlobalISel] Implement lowering for G_ROTR and G_ROTL.
This is a straightforward port.
Differential Revision: https://reviews.llvm.org/D99449
Commit: a33fcafaf0493fe30106be099070a96d10882e9d
https://github.com/llvm/llvm-project/commit/a33fcafaf0493fe30106be099070a96d10882e9d
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
A llvm/test/CodeGen/RISCV/calling-conv-half.ll
M llvm/test/CodeGen/RISCV/copysign-casts.ll
Log Message:
-----------
[RISCV] Pass 'half' in the lower 16 bits of an f32 value when F extension is enabled, but Zfh is not.
Without Zfh the half type isn't legal, but it could still be
used as an argument/return in IR. Clang will not generate this today.
Previously we promoted the half value to float for arguments and
returns if the F extension is enabled but Zfh isn't. Then depending on
which ABI is enabled we would pass it in either an FPR or a GPR in
float format.
If the F extension isn't enabled, it would get passed in the lower
16 bits of a GPR in half format.
With this patch the value will always in half format and will be
in the lower bits of a GPR or FPR. This should be consistent
with where the bits are located when Zfh is enabled.
I've based this implementation off of how this is done on ARM.
I've manually nan-boxed the value to 32 bits using integer ops.
It looks like flw, fsw, fmv.s, fmv.w.x, fmf.x.w won't
canonicalize nans so should leave the value alone. I think those
are the instructions that could get used on this value.
Reviewed By: kito-cheng
Differential Revision: https://reviews.llvm.org/D98670
Commit: c62ef12079bcc7ce72040dddaae13408b120d995
https://github.com/llvm/llvm-project/commit/c62ef12079bcc7ce72040dddaae13408b120d995
Author: Michał Górny <mgorny at moritz.systems>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M lldb/test/API/tools/lldb-server/TestLldbGdbServer.py
Log Message:
-----------
[lldb] [test] Mark more lldb-server tests xfail on Windows
Commit: c8e56f394af0b9e32c413d62a0e7aebbba3e6b70
https://github.com/llvm/llvm-project/commit/c8e56f394af0b9e32c413d62a0e7aebbba3e6b70
Author: Nick Lewycky <nicholas at mxc.ca>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/tools/llvm-link/llvm-link.cpp
Log Message:
-----------
Add -disable-verify flag to llvm-link.
This flag allows the developer to see the result of linking even if it fails the verifier, as a step in debugging cases where the linked module fails the verifier.
Differential Revision: https://reviews.llvm.org/D99382
Commit: 7a4d630764829ad40738ae4e5944a411529728ef
https://github.com/llvm/llvm-project/commit/7a4d630764829ad40738ae4e5944a411529728ef
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M mlir/include/mlir-c/ExecutionEngine.h
M mlir/lib/Bindings/Python/ExecutionEngine.cpp
M mlir/lib/Bindings/Python/mlir/execution_engine.py
M mlir/lib/CAPI/ExecutionEngine/ExecutionEngine.cpp
M mlir/test/Bindings/Python/execution_engine.py
Log Message:
-----------
Add a "register_runtime" method to the mlir.execution_engine and show calling back from MLIR into Python
This exposes the ability to register Python functions with the JIT and
exposes them to the MLIR jitted code. The provided test case illustrates
the mechanism.
Differential Revision: https://reviews.llvm.org/D99562
Commit: e3d3327edbf133da6ed50767eed4560a541a751d
https://github.com/llvm/llvm-project/commit/e3d3327edbf133da6ed50767eed4560a541a751d
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M lldb/test/Shell/Reproducer/Functionalities/TestImageList.test
Log Message:
-----------
[lldb] Remove reproducer from previous test run
Commit: 700431128e212d5ef53afb6d20da098ca264cadd
https://github.com/llvm/llvm-project/commit/700431128e212d5ef53afb6d20da098ca264cadd
Author: Jessica Paquette <jpaquette at apple.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
M llvm/include/llvm/Target/GlobalISel/Combine.td
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/Target/AArch64/AArch64Combine.td
M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerCombiner.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/form-bitfield-extract-from-sextinreg.mir
Log Message:
-----------
[GlobalISel][AArch64] Combine G_SEXT_INREG + right shift -> G_SBFX
Basically a port of isBitfieldExtractOpFromSExtInReg in AArch64ISelDAGToDAG.
This is only done post-legalization for now. Once the legalizer knows how to
decompose these back into shifts, this requirement can probably be removed.
Differential Revision: https://reviews.llvm.org/D99230
Commit: eae3b2a715d7fd1aea0ce1c78ac7a04957b72728
https://github.com/llvm/llvm-project/commit/eae3b2a715d7fd1aea0ce1c78ac7a04957b72728
Author: John Brawn <john.brawn at arm.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M clang/lib/Frontend/CompilerInvocation.cpp
Log Message:
-----------
[clang][cli] Fix round-trip of OPT_plugin_arg
The test Frontend/plugin-delayed-template.cpp is failing when asserts
are enabled because it hits an assertion in denormalizeStringImpl when
trying to round-trip OPT_plugin_arg. Fix this by adjusting how the
option is handled, as the first part is joined to -plugin-arg and the
second is separate.
Differential Revision: https://reviews.llvm.org/D99606
Commit: 3e3fc431dfe4c0f118f8e3d78bb3e7e96a7d4c35
https://github.com/llvm/llvm-project/commit/3e3fc431dfe4c0f118f8e3d78bb3e7e96a7d4c35
Author: Hongtao Yu <hoy at fb.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h
M llvm/include/llvm/Transforms/IPO/SampleContextTracker.h
M llvm/lib/Transforms/IPO/SampleContextTracker.cpp
M llvm/lib/Transforms/IPO/SampleProfile.cpp
M llvm/test/Transforms/SampleProfile/ctxsplit.ll
M llvm/test/Transforms/SampleProfile/inline-mergeprof.ll
M llvm/test/Transforms/SampleProfile/profile-context-order.ll
M llvm/test/Transforms/SampleProfile/profile-context-tracker-debug.ll
M llvm/test/Transforms/SampleProfile/profile-topdown-order.ll
M llvm/tools/llvm-profgen/CSPreInliner.cpp
Log Message:
-----------
[CSSPGO] Top-down processing order based on full profile.
Use profiled call edges to augment the top-down order. There are cases that the top-down order computed based on the static call graph doesn't reflect real execution order. For example:
1. Incomplete static call graph due to unknown indirect call targets. Adjusting the order by considering indirect call edges from the profile can enable the inlining of indirect call targets by allowing the caller processed before them.
2. Mutual call edges in an SCC. The static processing order computed for an SCC may not reflect the call contexts in the context-sensitive profile, thus may cause potential inlining to be overlooked. The function order in one SCC is being adjusted to a top-down order based on the profile to favor more inlining.
3. Transitive indirect call edges due to inlining. When a callee function is inlined into into a caller function in LTO prelink, every call edge originated from the callee will be transferred to the caller. If any of the transferred edges is indirect, the original profiled indirect edge, even if considered, would not enforce a top-down order from the caller to the potential indirect call target in LTO postlink since the inlined callee is gone from the static call graph.
4. #3 can happen even for direct call targets, due to functions defined in header files. Header functions, when included into source files, are defined multiple times but only one definition survives due to ODR. Therefore, the LTO prelink inlining done on those dropped definitions can be useless based on a local file scope. More importantly, the inlinee, once fully inlined to a to-be-dropped inliner, will have no profile to consume when its outlined version is compiled. This can lead to a profile-less prelink compilation for the outlined version of the inlinee function which may be called from external modules. while this isn't easy to fix, we rely on the postlink AutoFDO pipeline to optimize the inlinee. Since the survived copy of the inliner (defined in headers) can be inlined in its local scope in prelink, it may not exist in the merged IR in postlink, and we'll need the profiled call edges to enforce a top-down order for the rest of the functions.
Considering those cases, a profiled call graph completely independent of the static call graph is constructed based on profile data, where function objects are not even needed to handle case #3 and case 4.
I'm seeing an average 0.4% perf win out of SPEC2017. For certain benchmark such as Xalanbmk and GCC, the win is bigger, above 2%.
The change is an enhancement to https://reviews.llvm.org/D95988.
Reviewed By: wmi, wenlei
Differential Revision: https://reviews.llvm.org/D99351
Commit: 22998738e8f78b447b04a7fd23efa4deaeda306b
https://github.com/llvm/llvm-project/commit/22998738e8f78b447b04a7fd23efa4deaeda306b
Author: spupyrev <spupyrev at fb.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/lib/IR/Metadata.cpp
M llvm/lib/Transforms/IPO/SampleProfile.cpp
A llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-profile-metadata.prof
A llvm/test/Transforms/SampleProfile/pseudo-probe-profile-metadata.ll
Log Message:
-----------
[SamplePGO] Keeping prof metadata for IndirectBrInst
Currently prof metadata with branch counts is added only for BranchInst and SwitchInst, but not for IndirectBrInst. As a result, BPI/BFI make incorrect inferences for indirect branches, which can be very hot.
This diff adds metadata for IndirectBrInst, in addition to BranchInst and SwitchInst.
Reviewed By: wmi, wenlei
Differential Revision: https://reviews.llvm.org/D99550
Commit: 6c9fbcf5b1cb6d2e0fb4a518f8c61a5eebfe6021
https://github.com/llvm/llvm-project/commit/6c9fbcf5b1cb6d2e0fb4a518f8c61a5eebfe6021
Author: Eugene Zhulenev <ezhulenev at google.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M mlir/test/Dialect/Linalg/codegen-strategy.mlir
M mlir/test/lib/Transforms/TestLinalgCodegenStrategy.cpp
Log Message:
-----------
[mlir] Linalg: add tile interchange flag to test-linalg-codegen-strategy pass
Interchange options was missing in the pass flags.
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D99397
Commit: f13f0505515dcb1d256673c5224cc3ca55569122
https://github.com/llvm/llvm-project/commit/f13f0505515dcb1d256673c5224cc3ca55569122
Author: Sourabh Singh Tomar <SourabhSingh.Tomar at amd.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/include/llvm/IR/DebugInfoMetadata.h
M llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
M llvm/lib/IR/AsmWriter.cpp
M llvm/lib/IR/DebugInfoMetadata.cpp
A llvm/test/DebugInfo/X86/global-constants.ll
A llvm/test/DebugInfo/X86/invalid-global-constants.ll
M llvm/test/DebugInfo/X86/stack-value-dwarf4.ll
M llvm/test/Transforms/StripSymbols/strip-dead-debug-info.ll
Log Message:
-----------
[DebugInfo] Support for signed constants inside DIExpression
Negative numbers are represented using DW_OP_consts along with signed representation
of the number as the argument.
Test case IR is generated using Fortran front-end.
Reviewed By: aprantl
Differential Revision: https://reviews.llvm.org/D99273
Commit: 91887cd4ecc7e71715677e7a256ba243d54c781f
https://github.com/llvm/llvm-project/commit/91887cd4ecc7e71715677e7a256ba243d54c781f
Author: Amara Emerson <amara at apple.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
M llvm/include/llvm/Target/GlobalISel/Combine.td
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/prelegalizercombiner-funnel-shifts-to-rotates.mir
Log Message:
-----------
[AArch64][GlobalISel] Combine funnel shifts to rotates.
Differential Revision: https://reviews.llvm.org/D99388
Commit: 1bc90847ee3ef027f194ed740bb0bb72b8d7579a
https://github.com/llvm/llvm-project/commit/1bc90847ee3ef027f194ed740bb0bb72b8d7579a
Author: Amara Emerson <amara at apple.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.h
A llvm/test/CodeGen/AArch64/GlobalISel/legalize-rotr-rotl.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
Log Message:
-----------
[AArch64][GlobalISel] Define some legalization rules for G_ROTR and G_ROTL.
For imported pattern purposes, we have a custom rule that promotes the rotate
amount to 64b as well.
Differential Revision: https://reviews.llvm.org/D99463
Commit: a35c2c7942e4c66aedf6b9133ad6398b602c0198
https://github.com/llvm/llvm-project/commit/a35c2c7942e4c66aedf6b9133ad6398b602c0198
Author: Amara Emerson <amara at apple.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
M llvm/include/llvm/CodeGen/GlobalISel/Utils.h
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-reduce-add.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-reduce-fadd.mir
M llvm/test/CodeGen/AArch64/arm64-vabs.ll
Log Message:
-----------
[GlobalISel] Implement fewerElements legalization for vector reductions.
This patch adds 3 methods, one for power-of-2 vectors which use tree
reductions using vector ops, before a final reduction op. For non-pow-2
types it generates multiple narrow reductions and combines the values with
scalar ops.
Differential Revision: https://reviews.llvm.org/D97163
Commit: d857a81437cbd9066b29dffceec500e3ea1edc0e
https://github.com/llvm/llvm-project/commit/d857a81437cbd9066b29dffceec500e3ea1edc0e
Author: Huihui Zhang <huihuiz at quicinc.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.h
Log Message:
-----------
[VPlan] Use SetVector for VPExternalDefs to prevent non-determinism.
Use SetVector instead of SmallPtrSet for external definitions created for VPlan.
Doing this can help avoid non-determinism caused by iterating over unordered containers.
This bug was found with reverse iteration turning on,
--extra-llvm-cmake-variables="-DLLVM_REVERSE_ITERATION=ON".
Failing LLVM-Unit test VPRecipeTest.dump.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D99544
Commit: 79ae41991c6bfe7e68e8c43d520297cf95853dc3
https://github.com/llvm/llvm-project/commit/79ae41991c6bfe7e68e8c43d520297cf95853dc3
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/test/Transforms/InstCombine/abs-intrinsic.ll
Log Message:
-----------
[InstCombine] add test for abs() demanded bits; NFC
Commit: c2ebad8d55bd90ac921b1219b25c1d1a864655ff
https://github.com/llvm/llvm-project/commit/c2ebad8d55bd90ac921b1219b25c1d1a864655ff
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
M llvm/test/Transforms/InstCombine/abs-intrinsic.ll
Log Message:
-----------
[InstCombine] add fold for demand of low bit of abs()
This is one problem shown in https://llvm.org/PR49763
https://alive2.llvm.org/ce/z/cV6-4K
https://alive2.llvm.org/ce/z/9_3g-L
Commit: 73adc05cedb2da5c0f4b83a26478203937e3f501
https://github.com/llvm/llvm-project/commit/73adc05cedb2da5c0f4b83a26478203937e3f501
Author: Fangrui Song <i at maskray.me>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
Log Message:
-----------
[GlobalISel] Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=off builds after D99463
Commit: 3ad6dd5d8f0a70756f665e8179ad7c5210022c11
https://github.com/llvm/llvm-project/commit/3ad6dd5d8f0a70756f665e8179ad7c5210022c11
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaConcept.cpp
M clang/lib/Sema/SemaExprCXX.cpp
M clang/lib/Sema/SemaType.cpp
M clang/test/CXX/expr/expr.prim/expr.prim.req/compound-requirement.cpp
Log Message:
-----------
[clang] Use decltype((E)) for compound requirement type constraint
See PR45088.
Compound requirement type constraints were using decltype(E) instead of
decltype((E)), as per `[expr.prim.req]p1.3.3`.
Since neither instantiation nor type dependence should matter for
the constraints, this uses an approach where a `decltype` type is not built,
and just the canonical type of the expression after template instantiation
is used on the requirement.
Signed-off-by: Matheus Izvekov <mizvekov at gmail.com>
Reviewed By: rsmith
Differential Revision: https://reviews.llvm.org/D98160
Commit: ae217bf1f3277b8c14590a130ee5e63cc1664443
https://github.com/llvm/llvm-project/commit/ae217bf1f3277b8c14590a130ee5e63cc1664443
Author: David Blaikie <dblaikie at gmail.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/test/CMakeLists.txt
Log Message:
-----------
Conditionalize the JIT test dependency
Commit: eb4967c8bd341b1623453bcbb67379e223a7cad7
https://github.com/llvm/llvm-project/commit/eb4967c8bd341b1623453bcbb67379e223a7cad7
Author: Luís Marques <luismarques at lowrisc.org>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M compiler-rt/lib/sanitizer_common/tests/sanitizer_allocator_test.cpp
Log Message:
-----------
[Sanitizer][RISCV][AArch64][Android] Adjust allocator tests
On 64-bit systems with small VMAs (e.g. 39-bit) we can't use
SizeClassAllocator64 parameterized with size class maps containing a large
number of classes, as that will make the allocator region size too small
(< 2^32). Several tests were already disabled for Android because of this.
This patch provides the correct allocator configuration for RISC-V
(riscv64), generalizes the gating condition for tests that can't be enabled
for small VMA systems, and tweaks the tests that can be made compatible with
those systems to enable them.
I think the previous gating on Android should instead be AArch64+Android, so
the patch reflects that.
Differential Revision: https://reviews.llvm.org/D97234
Commit: e2c7bf08cc8e9c2461dd18b283b76ed2b3c59630
https://github.com/llvm/llvm-project/commit/e2c7bf08cc8e9c2461dd18b283b76ed2b3c59630
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M clang/lib/CodeGen/CGStmtOpenMP.cpp
A clang/test/OpenMP/debug-info-complex-byval.cpp
Log Message:
-----------
[OPENMP]Fix PR48607: Crash during clang openmp codegen for firstprivate() of `float _Complex`.
Need to cast the argument for the debug wrapper function call to the
corresponding parameter type to avoid crash.
Differential Revision: https://reviews.llvm.org/D99617
Commit: 3a6365a439ede4b7c65076bb42b1b7dbf72216b5
https://github.com/llvm/llvm-project/commit/3a6365a439ede4b7c65076bb42b1b7dbf72216b5
Author: David Green <david.green at arm.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/lib/Target/ARM/ARM.td
Log Message:
-----------
[ARM] Add FeatureHasNoBranchPredictor for Thumb1 cores
Mark v6m/v8m-baseline cores as having no branch predictors. This should
not alter very much on its own, but is more correct as the cores do not
have branch predictors and can help in the future.
Commit: c06a8f9caa51c7ea71dac716e0a35f5e343e4546
https://github.com/llvm/llvm-project/commit/c06a8f9caa51c7ea71dac716e0a35f5e343e4546
Author: Louis Dionne <ldionne at apple.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M libcxx/CMakeLists.txt
M libcxx/benchmarks/CMakeLists.txt
M libcxx/cmake/Modules/HandleLibCXXABI.cmake
M libcxx/docs/TestingLibcxx.rst
M libcxx/include/CMakeLists.txt
M libcxx/include/__config
M libcxx/test/configs/legacy.cfg.in
M libcxx/utils/ci/run-buildbot
M libcxx/utils/libcxx/test/config.py
M libcxxabi/test/libcxxabi/test/config.py
M libunwind/test/libunwind/test/config.py
Log Message:
-----------
[libc++] Include <__config_site> from <__config>
Prior to this patch, we would generate a fancy <__config> header by
concatenating <__config_site> and <__config>. This complexifies the
build system and also increases the difference between what's tested
and what's actually installed.
This patch removes that complexity and instead simply installs <__config_site>
alongside the libc++ headers. <__config_site> is then included by <__config>,
which is much simpler. Doing this also opens the door to having different
<__config_site> headers depending on the target, which was impossible before.
It does change the workflow for testing header-only changes to libc++.
Previously, we would run `lit` against the headers in libcxx/include.
After this patch, we run it against a fake installation root of the
headers (containing a proper <__config_site> header). This makes use
closer to testing what we actually install, which is good, however it
does mean that we have to update that root before testing header changes.
Thus, we now need to run `ninja check-cxx-deps` before running `lit` by
hand.
Differential Revision: https://reviews.llvm.org/D97572
Commit: b7899ba0e8b7a7b8fbab06a8b3f2d70f16d7a250
https://github.com/llvm/llvm-project/commit/b7899ba0e8b7a7b8fbab06a8b3f2d70f16d7a250
Author: Mike Rice <michael.p.rice at intel.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M clang/include/clang-c/Index.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/AST/StmtOpenMP.h
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/StmtNodes.td
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/lib/AST/StmtOpenMP.cpp
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/Basic/OpenMPKinds.cpp
M clang/lib/CodeGen/CGStmt.cpp
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Sema/SemaExceptionSpec.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
A clang/test/OpenMP/dispatch_ast_print.cpp
A clang/test/OpenMP/dispatch_messages.cpp
M clang/tools/libclang/CIndex.cpp
M clang/tools/libclang/CXCursor.cpp
M llvm/include/llvm/Frontend/OpenMP/OMP.td
M llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
Log Message:
-----------
[OPENMP51]Initial support for the dispatch directive.
Added basic parsing/sema/serialization support for dispatch directive.
Differential Revision: https://reviews.llvm.org/D99537
Commit: 58cbb222ebba687d1f710de56649f1e201f646dc
https://github.com/llvm/llvm-project/commit/58cbb222ebba687d1f710de56649f1e201f646dc
Author: Jon Roelofs <jonathan_roelofs at apple.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/docs/Contributing.rst
Log Message:
-----------
[docs] Fix up dead clang-format links after monorepo move. NFC
Commit: d535a05ca1a6b959399762d5e14efde1fcfe6af8
https://github.com/llvm/llvm-project/commit/d535a05ca1a6b959399762d5e14efde1fcfe6af8
Author: Wei Mi <wmi at google.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M clang/lib/CodeGen/BackendUtil.cpp
M clang/test/CodeGen/thinlto_backend.ll
M llvm/include/llvm/LTO/LTOBackend.h
M llvm/lib/LTO/LTO.cpp
M llvm/lib/LTO/LTOBackend.cpp
Log Message:
-----------
[ThinLTO] During module importing, close one source module before open
another one for distributed mode.
Currently during module importing, ThinLTO opens all the source modules,
collect functions to be imported and append them to the destination module,
then leave all the modules open through out the lto backend pipeline. This
patch refactors it in the way that one source module will be closed before
another source module is opened. All the source modules will be closed after
importing phase is done. It will save some amount of memory when there are
many source modules to be imported.
Note that this patch only changes the distributed thinlto mode. For in
process thinlto mode, one source module is shared acorss different thinlto
backend threads so it is not changed in this patch.
Differential Revision: https://reviews.llvm.org/D99554
Commit: 427d3597219ec16c1bc92a0f4c9e39015e80c923
https://github.com/llvm/llvm-project/commit/427d3597219ec16c1bc92a0f4c9e39015e80c923
Author: Greg McGary <gkm at fb.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M lld/MachO/Arch/ARM64.cpp
M lld/MachO/Arch/X86_64.cpp
M lld/MachO/Driver.cpp
M lld/MachO/InputSection.cpp
M lld/MachO/MapFile.cpp
M lld/MachO/UnwindInfoSection.cpp
M lld/MachO/Writer.cpp
Log Message:
-----------
[lld-macho][NFC] Drop unnecessary macho:: namespace prefix on unambiguous references to Symbol
Within `lld/macho/`, only `InputFiles.cpp` and `Symbols.h` require the `macho::` namespace qualifier to disambiguate references to `class Symbol`.
Add braces to outer `for` of a 5-level single-line `if`/`for` nest.
Differential Revision: https://reviews.llvm.org/D99555
Commit: a360a9786f5f82f4beff6fdcec12b40ee392db7a
https://github.com/llvm/llvm-project/commit/a360a9786f5f82f4beff6fdcec12b40ee392db7a
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M mlir/lib/IR/Operation.cpp
M mlir/lib/Transforms/Utils/DialectConversion.cpp
M mlir/test/Transforms/test-legalizer.mlir
M mlir/test/lib/Dialect/Test/TestOps.td
M mlir/test/lib/Dialect/Test/TestPatterns.cpp
Log Message:
-----------
Fix deletion of operations through the rewriter in a pattern matching a consumer operation
This allows for the conversion to match `A(B()) -> C()` with a pattern matching
`A` and marking `B` for deletion.
Also add better assertions when an operation is erased while still having uses.
Differential Revision: https://reviews.llvm.org/D99442
Commit: ee176d2e6e9d58af2dd1856f3c1f54ae85f2b89b
https://github.com/llvm/llvm-project/commit/ee176d2e6e9d58af2dd1856f3c1f54ae85f2b89b
Author: Richard Smith <richard at metafoo.co.uk>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M clang/www/cxx_status.html
Log Message:
-----------
[www] Color Clang 11 and Clang 12 features as green and not yellow, and
Clang 13 features as yellow not green.
Commit: eabd55b1b2c5e322c3b36cb44348f178692890c8
https://github.com/llvm/llvm-project/commit/eabd55b1b2c5e322c3b36cb44348f178692890c8
Author: Zequan Wu <zequanwu at google.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M lld/COFF/LTO.cpp
Log Message:
-----------
[lld-link] Enable addrsig table in COFF lto
This allow safe-icf mode to work when linking with LTO.
Differential Revision: https://reviews.llvm.org/D99613
Commit: 1705136590cd88176729efec8d291e98249713cb
https://github.com/llvm/llvm-project/commit/1705136590cd88176729efec8d291e98249713cb
Author: Richard Smith <richard at metafoo.co.uk>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/test/Sema/warn-cast-function-type.c
R clang/test/Sema/warn-cast-function-type.cpp
A clang/test/SemaCXX/warn-cast-function-type.cpp
Log Message:
-----------
Fix pluralization error in diagnostic, and move C++ testcase to proper
directory.
Commit: d87384f7dfa1158150d9759654d5f19a929b81b7
https://github.com/llvm/llvm-project/commit/d87384f7dfa1158150d9759654d5f19a929b81b7
Author: Richard Smith <richard at metafoo.co.uk>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M clang/include/clang/Basic/AttrDocs.td
Log Message:
-----------
[www] Fix build of attribute documentation.
Commit: c5f174905b73620cf8690dbe68ea05b29d09f4a1
https://github.com/llvm/llvm-project/commit/c5f174905b73620cf8690dbe68ea05b29d09f4a1
Author: Richard Smith <richard at metafoo.co.uk>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
R clang/docs/DiagnosticsReference.rst
Log Message:
-----------
Delete checked-in generated copy of diagnostic reference.
The documentation build rule will generate an up-to-date version of this
if it's not checked in.
Commit: 144ec1c38ef1d3a6d37dadf7240ef5f04c10daae
https://github.com/llvm/llvm-project/commit/144ec1c38ef1d3a6d37dadf7240ef5f04c10daae
Author: Heejin Ahn <aheejin at gmail.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/lib/Object/WasmObjectFile.cpp
A llvm/test/MC/WebAssembly/event-section-encoding.ll
Log Message:
-----------
[WebAssembly] Encode numbers in ULEB128 in event section
The number of events and the type index should be encoded in ULEB128,
but they were incorrctly encoded in LEB128. The smallest number with
which its LEB128 and ULEB128 encodings are different is 64.
There's no way we can generate 64 events in the C++ toolchain
implementation so we can't test that, but the attached test tests when
the type index is 64.
Reviewed By: dschuff
Differential Revision: https://reviews.llvm.org/D99627
Commit: d6d3d21cd1cb1567eaf7ff8c0867b07227a19d99
https://github.com/llvm/llvm-project/commit/d6d3d21cd1cb1567eaf7ff8c0867b07227a19d99
Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
M lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp
M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp
M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.h
M lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp
M lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.h
M lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp
Log Message:
-----------
[LLDB] Add support for Arm64/Linux dynamic register sets
This is patch adds support for adding dynamic register sets for
AArch64 dynamic features in LLDB. AArch64 has optional features like
SVE, Pointer Authentication and MTE which means LLDB needs to decide
at run time which registers it needs to pull in for the current
executable based on underlying support for a certain feature.
This patch makes necessary adjustments to make way for dynamic
register infos and dynamic register sets.
Reviewed By: labath
Differential Revision: https://reviews.llvm.org/D96458
Commit: 1164b4e2957290e814c3dd781a68e504dd39148e
https://github.com/llvm/llvm-project/commit/1164b4e2957290e814c3dd781a68e504dd39148e
Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
M lldb/source/Plugins/Process/Linux/NativeThreadLinux.h
M lldb/source/Plugins/Process/POSIX/NativeProcessELF.h
M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp
M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.h
M lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h
Log Message:
-----------
[LLDB] Arm64/Linux Add MTE and Pointer Authentication registers
This patch adds two new dynamic register sets for AArch64 MTE and
Pointer Authentication features. These register sets are dynamic and
will only be available if underlying hardware support either of these
features. LLDB will pull in Aux vector information and create register
infos based on that information.
A follow up patch will add a test case to test these feature registers.
Reviewed By: labath, DavidSpickett
Differential Revision: https://reviews.llvm.org/D96460
Commit: 9ab677180091a690cd99d4ac55d5fb9e1149b1ec
https://github.com/llvm/llvm-project/commit/9ab677180091a690cd99d4ac55d5fb9e1149b1ec
Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbtest.py
A lldb/test/API/commands/register/register/aarch64_dynamic_regset/Makefile
A lldb/test/API/commands/register/register/aarch64_dynamic_regset/TestArm64DynamicRegsets.py
A lldb/test/API/commands/register/register/aarch64_dynamic_regset/main.c
Log Message:
-----------
[LLDB] Arm64/Linux test case for MTE and Pointer Authentication regset
This patch adds a test case to test AArch64 dynamic register sets.
This tests for the availability of certain register sets and query
their registers accordingly.
Reviewed By: labath, DavidSpickett
Differential Revision: https://reviews.llvm.org/D96463
Commit: c23ee7718ea4f9292622af3d80efe2491eb2a506
https://github.com/llvm/llvm-project/commit/c23ee7718ea4f9292622af3d80efe2491eb2a506
Author: Richard Smith <richard at metafoo.co.uk>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M clang/utils/TableGen/ClangDiagnosticsEmitter.cpp
Log Message:
-----------
[www] List both the regular and expanded form of %diff in the
diagnostics reference.
In passing, properly validate and diagnose errors in %diff format
specifiers.
Commit: 0b69756110db444282c40ea16929186b2910c3b1
https://github.com/llvm/llvm-project/commit/0b69756110db444282c40ea16929186b2910c3b1
Author: Walter Erquinigo <a20012251 at gmail.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M lldb/docs/lldb-gdb-remote.txt
M lldb/include/lldb/Core/PluginManager.h
M lldb/include/lldb/Host/common/NativeProcessProtocol.h
M lldb/include/lldb/Target/Process.h
M lldb/include/lldb/Target/ProcessTrace.h
M lldb/include/lldb/Target/StopInfo.h
M lldb/include/lldb/Target/Target.h
A lldb/include/lldb/Target/ThreadPostMortemTrace.h
R lldb/include/lldb/Target/ThreadTrace.h
M lldb/include/lldb/Target/Trace.h
M lldb/include/lldb/Target/TraceSessionFileParser.h
M lldb/include/lldb/Utility/StringExtractorGDBRemote.h
A lldb/include/lldb/Utility/TraceGDBRemotePackets.h
A lldb/include/lldb/Utility/TraceIntelPTGDBRemotePackets.h
M lldb/include/lldb/Utility/TraceOptions.h
M lldb/include/lldb/lldb-enumerations.h
M lldb/include/lldb/lldb-forward.h
M lldb/include/lldb/lldb-private-interfaces.h
M lldb/source/API/SBThread.cpp
M lldb/source/API/SBTrace.cpp
M lldb/source/Commands/CommandObjectProcess.cpp
M lldb/source/Commands/CommandObjectThread.cpp
M lldb/source/Commands/CommandObjectThreadUtil.cpp
M lldb/source/Commands/CommandObjectThreadUtil.h
M lldb/source/Commands/CommandObjectTrace.cpp
M lldb/source/Commands/CommandObjectTrace.h
M lldb/source/Core/PluginManager.cpp
M lldb/source/Interpreter/CommandInterpreter.cpp
M lldb/source/Plugins/Process/Linux/CMakeLists.txt
A lldb/source/Plugins/Process/Linux/IntelPTManager.cpp
A lldb/source/Plugins/Process/Linux/IntelPTManager.h
M lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
M lldb/source/Plugins/Process/Linux/NativeProcessLinux.h
M lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp
M lldb/source/Plugins/Process/Linux/NativeThreadLinux.h
R lldb/source/Plugins/Process/Linux/ProcessorTrace.cpp
R lldb/source/Plugins/Process/Linux/ProcessorTrace.h
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
M lldb/source/Plugins/Trace/intel-pt/CommandObjectTraceStartIntelPT.cpp
M lldb/source/Plugins/Trace/intel-pt/CommandObjectTraceStartIntelPT.h
M lldb/source/Plugins/Trace/intel-pt/DecodedThread.cpp
M lldb/source/Plugins/Trace/intel-pt/DecodedThread.h
M lldb/source/Plugins/Trace/intel-pt/IntelPTDecoder.cpp
M lldb/source/Plugins/Trace/intel-pt/IntelPTDecoder.h
M lldb/source/Plugins/Trace/intel-pt/TraceIntelPT.cpp
M lldb/source/Plugins/Trace/intel-pt/TraceIntelPT.h
M lldb/source/Plugins/Trace/intel-pt/TraceIntelPTOptions.td
M lldb/source/Plugins/Trace/intel-pt/TraceIntelPTSessionFileParser.cpp
M lldb/source/Plugins/Trace/intel-pt/TraceIntelPTSessionFileParser.h
A lldb/source/Plugins/Trace/intel-pt/forward-declarations.h
M lldb/source/Target/CMakeLists.txt
M lldb/source/Target/Process.cpp
M lldb/source/Target/ProcessTrace.cpp
M lldb/source/Target/StopInfo.cpp
M lldb/source/Target/Target.cpp
M lldb/source/Target/Thread.cpp
A lldb/source/Target/ThreadPostMortemTrace.cpp
R lldb/source/Target/ThreadTrace.cpp
M lldb/source/Target/Trace.cpp
M lldb/source/Target/TraceSessionFileParser.cpp
M lldb/source/Utility/CMakeLists.txt
M lldb/source/Utility/StringExtractorGDBRemote.cpp
A lldb/source/Utility/TraceGDBRemotePackets.cpp
A lldb/source/Utility/TraceIntelPTGDBRemotePackets.cpp
R lldb/source/Utility/TraceOptions.cpp
M lldb/test/API/commands/trace/TestTraceLoad.py
M lldb/test/API/commands/trace/TestTraceSchema.py
M lldb/test/API/commands/trace/TestTraceStartStop.py
M lldb/test/API/commands/trace/intelpt-trace-multi-file/multi-file-no-ld.json
M lldb/test/API/commands/trace/intelpt-trace/trace.json
M lldb/test/API/commands/trace/intelpt-trace/trace_2threads.json
M lldb/test/API/commands/trace/intelpt-trace/trace_bad.json
M lldb/test/API/commands/trace/intelpt-trace/trace_bad2.json
M lldb/test/API/commands/trace/intelpt-trace/trace_bad3.json
M lldb/test/API/commands/trace/intelpt-trace/trace_bad4.json
M lldb/test/API/commands/trace/intelpt-trace/trace_bad5.json
M lldb/test/API/commands/trace/intelpt-trace/trace_bad_image.json
M lldb/test/API/commands/trace/intelpt-trace/trace_wrong_cpu.json
A lldb/test/API/commands/trace/multiple-threads/Makefile
A lldb/test/API/commands/trace/multiple-threads/TestTraceStartStopMultipleThreads.py
A lldb/test/API/commands/trace/multiple-threads/main.cpp
M lldb/tools/lldb-vscode/JSONUtils.cpp
M lldb/tools/lldb-vscode/LLDBUtils.cpp
M lldb/unittests/Process/Linux/CMakeLists.txt
A lldb/unittests/Process/Linux/IntelPTManagerTests.cpp
R lldb/unittests/Process/Linux/ProcessorTraceTest.cpp
M lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
Log Message:
-----------
[trace][intel-pt] Implement trace start and trace stop
This implements the interactive trace start and stop methods.
This diff ended up being much larger than I anticipated because, by doing it, I found that I had implemented in the beginning many things in a non optimal way. In any case, the code is much better now.
There's a lot of boilerplate code due to the gdb-remote protocol, but the main changes are:
- New tracing packets: jLLDBTraceStop, jLLDBTraceStart, jLLDBTraceGetBinaryData. The gdb-remote packet definitions are quite comprehensive.
- Implementation of the "process trace start|stop" and "thread trace start|stop" commands.
- Implementaiton of an API in Trace.h to interact with live traces.
- Created an IntelPTDecoder for live threads, that use the debugger's stop id as checkpoint for its internal cache.
- Added a functionality to stop the process in case "process tracing" is enabled and a new thread can't traced.
- Added tests
I have some ideas to unify the code paths for post mortem and live threads, but I'll do that in another diff.
Differential Revision: https://reviews.llvm.org/D91679
Commit: fb0b19c3de3b49bd6c343d6c02293cbcc77520fb
https://github.com/llvm/llvm-project/commit/fb0b19c3de3b49bd6c343d6c02293cbcc77520fb
Author: Nico Weber <thakis at chromium.org>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/utils/gn/secondary/clang/tools/driver/BUILD.gn
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
M llvm/utils/gn/secondary/libcxx/src/BUILD.gn
M llvm/utils/gn/secondary/libcxxabi/src/BUILD.gn
Log Message:
-----------
Reland "[gn build] port 48e4b0f (__config_site)"
This reverts commit 13aff21f0da7007c42d407b4ec5c1f6b24cb6831,
since the CMake part relanded in c06a8f9caa51c7ea7.
The GN part is a bit simpler than last time due to the
prior simplifications in acea470c167fc40.
Commit: f59ba0849f7a148265dcc89d36a11717d365f368
https://github.com/llvm/llvm-project/commit/f59ba0849f7a148265dcc89d36a11717d365f368
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/include/llvm/IR/DataLayout.h
M llvm/lib/IR/DataLayout.cpp
Log Message:
-----------
[StructLayout] Use TrailingObjects to allocate space for MemberOffsets.
MemberOffsets are stored at the end of StructLayout. The class
contains a single entry array to mark the start of the member
offsets. getStructLayout calculates the additional space needed
for additional elements before allocating memory.
This patch converts this to use TrailingObjects. This simplifies
the size computation in getStructLayout and gets rid of the
single entry array.
This is prep work, but to use TypeSize instead of uint64_t for
D98169. The single entry array doesn't work with TypeSize because
TypeSize doesn't have a default constructor. We thought this
change was an improvement by itself so we've separated it out.
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D99608
Commit: 9eef0fae2b840cef0b44cf94517f70a41cd84d42
https://github.com/llvm/llvm-project/commit/9eef0fae2b840cef0b44cf94517f70a41cd84d42
Author: Richard Smith <richard at metafoo.co.uk>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M clang/test/TableGen/emit-diag-docs.td
Log Message:
-----------
Fix test expectations for %diff documentation.
Commit: 3a83b8b2d29e020b8ccde42d0949db45c7eb356a
https://github.com/llvm/llvm-project/commit/3a83b8b2d29e020b8ccde42d0949db45c7eb356a
Author: Lang Hames <lhames at gmail.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
Log Message:
-----------
[JITLink] Add a setProtectionFlags method to jitlink::Section.
This allows clients to modify the memory protection settings on sections via
jitlink passes. This can be used to, for example, override the default settings
on text pages and make them Read/Write/Executable under the JIT.
Commit: a4ee79c8ae5ca1bbfa8d78a2782918d1f23f15b2
https://github.com/llvm/llvm-project/commit/a4ee79c8ae5ca1bbfa8d78a2782918d1f23f15b2
Author: Walter Erquinigo <a20012251 at gmail.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M lldb/source/Target/Target.cpp
M lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
Log Message:
-----------
Fix errors in 0b69756110db444282c40ea16929186b2910c3b1
Errors found in
https://lab.llvm.org/buildbot/#/builders/68/builds/9681/steps/6/logs/stdio
Commit: 99fd0662278470f5405b8abd79b681b96cac7856
https://github.com/llvm/llvm-project/commit/99fd0662278470f5405b8abd79b681b96cac7856
Author: Ta-Wei Tu <tu.da.wei at gmail.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M clang/lib/Sema/SemaDecl.cpp
A clang/test/SemaCXX/PR49534.cpp
Log Message:
-----------
[clang][Sema] Don't try to initialize implicit variable of invalid anonymous union/struct
This fixes https://bugs.llvm.org/show_bug.cgi?id=49534, where the call to the constructor
of the anonymous union is checked and triggers assertion failure when trying to retrieve
the alignment of the `this` argument (which is a union with virtual function).
The extra check for alignment was introduced in D97187.
Reviewed By: tmatheson
Differential Revision: https://reviews.llvm.org/D98548
Commit: 431a40e1e28f181e87dd247b91a5e6872dd64ab4
https://github.com/llvm/llvm-project/commit/431a40e1e28f181e87dd247b91a5e6872dd64ab4
Author: Juneyoung Lee <aqjune at gmail.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
Log Message:
-----------
[LoopUnswitch] Assert that branch condition is either and/or but not both
as suggested at https://reviews.llvm.org/rG5bb38e84d3d0#986321
Commit: 05998701b93e7db18e6327293e6f634bd31bc4d8
https://github.com/llvm/llvm-project/commit/05998701b93e7db18e6327293e6f634bd31bc4d8
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
Log Message:
-----------
[RISCV] Remove some unused ImmLeafs. NFC
These got left behind when we switched RV32 to use selectImm to
match RV64.
Commit: 0d7fd9f0d09812c6344a7df6498ce504c8d646d1
https://github.com/llvm/llvm-project/commit/0d7fd9f0d09812c6344a7df6498ce504c8d646d1
Author: Yang Fan <nullptr.cpp at gmail.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
Log Message:
-----------
[GlobalISel] Fix Wint-in-bool-context warning (NFC)
GCC warning:
```
/llvm-project/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp: In member function ‘bool llvm::CombinerHelper::matchFunnelShiftToRotate(llvm::MachineInstr&)’:
/llvm-project/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp:3882:35: warning: ?: using integer constants in boolean context, the expression will always evaluate to ‘true’ [-Wint-in-bool-context]
3882 | Opc == TargetOpcode::G_FSHL ? TargetOpcode::G_ROTL : TargetOpcode::G_ROTR;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
Commit: 5db19cc01017ed67ec443dd7b0e7b54d991a67da
https://github.com/llvm/llvm-project/commit/5db19cc01017ed67ec443dd7b0e7b54d991a67da
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
Log Message:
-----------
[RISCV] simm12_plus1 should not inherit from Operand. NFC
We only use this in Pat patterns, so it just needs to be an
ImmLeaf. If we did need it as an instruction operand, the
ParserMatchClass, EncoderMethod, and DecoderMethod were probably wrong.
Commit: 3e5ee194c00dc0303593340daaba3bacbf1caa68
https://github.com/llvm/llvm-project/commit/3e5ee194c00dc0303593340daaba3bacbf1caa68
Author: Fangrui Song <i at maskray.me>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
Log Message:
-----------
[SimpleLoopUnswitch] Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=off builds after 431a40e1e28f181e87dd247b91a5e6872dd64ab4
Commit: d332bbee45b5dcd01b3fb7c83c7b3a15292953d7
https://github.com/llvm/llvm-project/commit/d332bbee45b5dcd01b3fb7c83c7b3a15292953d7
Author: Zhiwei Chen <chenzhiwei03 at kuaishou.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/utils/emacs/llvm-mode.el
Log Message:
-----------
[Utils][Emacs] Improve syntax highlight
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D99404
Commit: eb51dd719f34be09d21b1ef485edc4209fcf811b
https://github.com/llvm/llvm-project/commit/eb51dd719f34be09d21b1ef485edc4209fcf811b
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/include/llvm/Transforms/Coroutines.h
M llvm/include/llvm/Transforms/Coroutines/CoroSplit.h
M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
M llvm/lib/Transforms/Coroutines/CoroInternal.h
M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
A llvm/test/Transforms/Coroutines/coro-debug-O2.ll
Log Message:
-----------
[Coroutine] [Debug] Insert dbg.declare to entry.resume to print alloca in the coroutine frame under O2
Summary: Try to insert dbg.declare to entry.resume basic block in resume
function. In this way, we could print alloca such as __promise in
gdb/lldb under O2, which would be beneficial to debug coroutine program.
Test Plan: check-llvm
Reviewed by: aprantl
Differential Revision: https://reviews.llvm.org/D96938
Commit: 0269a407f3afb7301594d9977093cb428d059935
https://github.com/llvm/llvm-project/commit/0269a407f3afb7301594d9977093cb428d059935
Author: Lang Hames <lhames at gmail.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
M llvm/include/llvm/ExecutionEngine/JITLink/x86_64.h
M llvm/include/llvm/ExecutionEngine/RuntimeDyldChecker.h
M llvm/lib/ExecutionEngine/JITLink/EHFrameSupport.cpp
M llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp
M llvm/lib/ExecutionEngine/JITLink/JITLink.cpp
M llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp
M llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp
M llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp
M llvm/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp
M llvm/lib/ExecutionEngine/JITLink/x86_64.cpp
M llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
M llvm/tools/llvm-jitlink/llvm-jitlink-elf.cpp
M llvm/tools/llvm-jitlink/llvm-jitlink-macho.cpp
M llvm/tools/llvm-jitlink/llvm-jitlink.cpp
M llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp
M llvm/unittests/ExecutionEngine/JITLink/LinkGraphTests.cpp
Log Message:
-----------
[JITLink] Switch from StringRef to ArrayRef<char>, add some generic x86-64 utils
Adds utilities for creating anonymous pointers and jump stubs to x86_64.h. These
are used by the GOT and Stubs builder, but may also be used by pass writers who
want to create pointer stubs for indirection.
This patch also switches the underlying type for LinkGraph content from
StringRef to ArrayRef<char>. This avoids any confusion when working with buffers
that contain null bytes in the middle like, for example, a newly added null
pointer content array. ;)
Commit: 4e0045cc9b00ed18a7b8981d468a9d01eb4f6780
https://github.com/llvm/llvm-project/commit/4e0045cc9b00ed18a7b8981d468a9d01eb4f6780
Author: Nathan Chancellor <nathan at kernel.org>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M libc/CMakeLists.txt
Log Message:
-----------
libc: Default LIBC_INSTALL_PREFIX to ${CMAKE_INSTALL_PREFIX}
b22f448c21e718a3b6 added a rule to install libllvmlibc.a to
${LIBC_INSTALL_PREFIX}/${LIBC_INSTALL_LIBRARY_DIR}, which will be /lib
by default, which is disruptive to builds that stay within a user's
/home holder:
$ ninja install
...
-- Installing: /lib/libllvmlibc.a
CMake Error at projects/libc/lib/cmake_install.cmake:54 (file):
file INSTALL cannot copy file
"/home/nathan/cbl/github/tc-build/build/llvm/stage1/projects/libc/lib/libllvmlibc.a"
to "/lib/libllvmlibc.a": Permission denied.
Call Stack (most recent call first):
projects/libc/cmake_install.cmake:51 (include)
projects/cmake_install.cmake:47 (include)
cmake_install.cmake:76 (include)
...
Change LIBC_INSTALL_PREFIX's default value to ${CMAKE_INSTALL_PREFIX} so
that 'ninja install' does not attempt to install anything outside of the
user's requested installation location.
Differential Revision: https://reviews.llvm.org/D99636
Reviewed By: sivachandra
Signed-off-by: Nathan Chancellor <nathan at kernel.org>
Commit: 9a9214fa2562b397764193517fa540a3dcbfd5a1
https://github.com/llvm/llvm-project/commit/9a9214fa2562b397764193517fa540a3dcbfd5a1
Author: Stella Laurenzo <stellaraccident at gmail.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M mlir/include/mlir-c/IR.h
M mlir/lib/Bindings/Python/IRCore.cpp
M mlir/lib/CAPI/IR/IR.cpp
M mlir/test/Bindings/Python/dialects.py
M mlir/test/CAPI/ir.c
Log Message:
-----------
[mlir] Add C and python API for is_registered_operation.
* Suggested to be broken out of D99578
Differential Revision: https://reviews.llvm.org/D99638
Commit: ec235dd3556d9879b0ec58ebd6009904d0ef0d24
https://github.com/llvm/llvm-project/commit/ec235dd3556d9879b0ec58ebd6009904d0ef0d24
Author: Lang Hames <lhames at gmail.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
M llvm/unittests/ExecutionEngine/JITLink/LinkGraphTests.cpp
Log Message:
-----------
[JITLink] Delete copy and move constructors for jitlink::Section.
Sections are not movable or copyable.
Commit: 32ca5a037ab9191d570bf9b5e0f13e28c3db27d9
https://github.com/llvm/llvm-project/commit/32ca5a037ab9191d570bf9b5e0f13e28c3db27d9
Author: Jim Lin <tclin914 at gmail.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M clang/test/Preprocessor/riscv-target-features.c
Log Message:
-----------
[RISCV] Refine pre-define macro tests
1. Undefined macro test for rv32i and rv64i.
a. Reorder it with canonical order.
b. Add missing undefined macro check.
c. Append defined value to `__riscv_a`, `__riscv_f` and `__riscv_c` to distinguish with
`__riscv_arch_test`, `__riscv_cmodel_medlow` and `__riscv_float_abi_soft`. They have the same prefix.
2. Move abi macro test below f and d.
3. Unify coding style for newline.
Reviewed By: HsiangKai
Differential Revision: https://reviews.llvm.org/D99631
Commit: 4a0a85becc9e19d288b5adcf713cb9e135c7f022
https://github.com/llvm/llvm-project/commit/4a0a85becc9e19d288b5adcf713cb9e135c7f022
Author: Martin Storsjö <martin at martin.st>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M libcxx/test/libcxx/strings/c.strings/version_cuchar.pass.cpp
M libcxx/test/std/strings/c.strings/cuchar.pass.cpp
Log Message:
-----------
[libcxx] [test] Fix tests of <cuchar> that unexpectedly succeed on windows
The tests expect that the <cuchar> include should fail. When libc++
is built on top of the MSVC runtime, the header does exist provided
by MSVC. Therefore, just mark the test as unsupported on windows,
to avoid tests that unexpectedly succeed.
Differential Revision: https://reviews.llvm.org/D99096
Commit: 7acfd85756736b2e240cc3a4ffd56f26d73ace9e
https://github.com/llvm/llvm-project/commit/7acfd85756736b2e240cc3a4ffd56f26d73ace9e
Author: Martin Storsjö <martin at martin.st>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M libcxx/utils/libcxx/test/config.py
Log Message:
-----------
[libcxx] [test] Don't add dirs from the LIB env var to PATH
The directories in LIB normally only contain import libraries or
static libraries, no runtime DLLs that would need to be found
while running tests.
This code stems from 1cd196e7b46e49d170a4b4013879a577dee59cb2,
which (among other things) tried to do this:
> * [Test] Fix handling of library runtime search paths by correctly adding them
> to the PATH variable when running the tests.
It's unclear to me exactly what this fixed (or tried to) at the time,
as the LIB var doesn't normally point to runtime libs.
Differential Revision: https://reviews.llvm.org/D99241
Commit: 7588ed3a49f1198dcf779067665f959fa6135ac9
https://github.com/llvm/llvm-project/commit/7588ed3a49f1198dcf779067665f959fa6135ac9
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/test/CodeGen/X86/tbm_patterns.ll
Log Message:
-----------
[X86] Regenerate test to add missing @PLT
Commit: afed50a14b34eb619624aed5c85f4f610f360650
https://github.com/llvm/llvm-project/commit/afed50a14b34eb619624aed5c85f4f610f360650
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-03-30 (Tue, 30 Mar 2021)
Changed paths:
M llvm/test/CodeGen/X86/bmi.ll
M llvm/test/CodeGen/X86/tbm_patterns.ll
Log Message:
-----------
[X86] Add test cases for PR48768 and D94856. NFC
This covers the BMI and TBM instructions. More tests will be
needed for other instructions.
Commit: 465b9a4a3303727df1584ca52bdced964a34efe9
https://github.com/llvm/llvm-project/commit/465b9a4a3303727df1584ca52bdced964a34efe9
Author: Alexander Belyaev <pifon at google.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M mlir/docs/BufferDeallocationInternals.md
M mlir/include/mlir/Dialect/MemRef/IR/MemRef.h
M mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
A mlir/include/mlir/Dialect/MemRef/Utils/MemRefUtils.h
M mlir/include/mlir/Transforms/BufferUtils.h
M mlir/include/mlir/Transforms/Passes.h
M mlir/include/mlir/Transforms/Passes.td
M mlir/lib/Dialect/MemRef/CMakeLists.txt
M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
A mlir/lib/Dialect/MemRef/Utils/MemRefUtils.cpp
M mlir/lib/Transforms/BufferDeallocation.cpp
M mlir/lib/Transforms/BufferUtils.cpp
M mlir/lib/Transforms/CMakeLists.txt
R mlir/lib/Transforms/CopyRemoval.cpp
M mlir/test/Transforms/buffer-deallocation.mlir
M mlir/test/Transforms/canonicalize.mlir
R mlir/test/Transforms/copy-removal.mlir
Log Message:
-----------
Revert "Revert "[mlir] Introduce CloneOp and adapt test cases in BufferDeallocation.""
This reverts commit 883912abe669ef246ada0adc9cf1c9748b742400.
Commit: 43b9fa3ce0ddfa673158af1596c3aac613b258b3
https://github.com/llvm/llvm-project/commit/43b9fa3ce0ddfa673158af1596c3aac613b258b3
Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M mlir/include/mlir-c/Dialect/Linalg.h
M mlir/include/mlir/Dialect/Linalg/IR/LinalgBase.td
M mlir/include/mlir/Dialect/Linalg/IR/LinalgTypes.h
M mlir/lib/Bindings/Python/CMakeLists.txt
A mlir/lib/Bindings/Python/DialectLinalg.cpp
A mlir/lib/Bindings/Python/DialectLinalg.h
M mlir/lib/Bindings/Python/MainModule.cpp
M mlir/lib/Bindings/Python/mlir/dialects/linalg/opdsl/lang/dsl.py
M mlir/lib/Bindings/Python/mlir/dialects/linalg/opdsl/lang/emitter.py
M mlir/lib/CAPI/Dialect/Linalg.cpp
M mlir/lib/Dialect/Linalg/IR/LinalgTypes.cpp
M mlir/test/Bindings/Python/dialects/linalg/ops.py
Log Message:
-----------
[mlir][Linalg][Python] Create the body of builtin named Linalg ops
This revision adds support to properly add the body of registered
builtin named linalg ops.
At this time, indexing_map and iterator_type support is still
missing so the op is not executable yet.
Differential Revision: https://reviews.llvm.org/D99578
Commit: 8fa570c96908a459d3b067a815b7c307f4555556
https://github.com/llvm/llvm-project/commit/8fa570c96908a459d3b067a815b7c307f4555556
Author: Alex Richardson <Alexander.Richardson at cl.cam.ac.uk>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/test/MC/WebAssembly/debug-info64.ll
Log Message:
-----------
[WebAssembly] Fix incorrect DW_TAG_pointer_type size in test
It should be 64 bits not 32 for wasm64-unknown-unknown. I noticed this
because this test was failing in our CHERI fork of LLVM due to a larger
.debug_abbrev section size. It turns out this happens because we add
DW_AT_byte_size for non-default pointer sizes to allow debugging our
hybrid compilation mode where we can have two different kinds of pointers.
Reviewed By: aardappel
Differential Revision: https://reviews.llvm.org/D99410
Commit: ce193ea9e8430f15d19dd60d73f13a66e4f374ac
https://github.com/llvm/llvm-project/commit/ce193ea9e8430f15d19dd60d73f13a66e4f374ac
Author: Alex Richardson <Alexander.Richardson at cl.cam.ac.uk>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M compiler-rt/test/asan/TestCases/Posix/asan-sigbus.cpp
Log Message:
-----------
[asan] Remove FreeBSD XFAIL from asan-sigbus.cpp test
This test passes for me on FreeBSD 12.2 and was probably fixed by
https://svnweb.freebsd.org/base?view=revision&revision=352807.
Reviewed By: emaste
Differential Revision: https://reviews.llvm.org/D98281
Commit: 44ce487bfe8badc3e3718e7cc81c289540e6725d
https://github.com/llvm/llvm-project/commit/44ce487bfe8badc3e3718e7cc81c289540e6725d
Author: Alex Richardson <Alexander.Richardson at cl.cam.ac.uk>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/utils/TableGen/CodeGenDAGPatterns.cpp
Log Message:
-----------
[TableGen] Emit more helpful error messages on empty type set
I have seen this error quite frequently in our out-of-tree CHERI backends
and the lack of location information sometimes makes it quite difficult
to track down the actual source of the error.
This patch changes the llvm_unreachable() to a PrintFatalError() so that
tablegen prints a stack of source locations.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D99468
Commit: b5995fced41de0885a5ef8f1b8a25ef45d8be711
https://github.com/llvm/llvm-project/commit/b5995fced41de0885a5ef8f1b8a25ef45d8be711
Author: Sven van Haastregt <sven.vanhaastregt at arm.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M clang/lib/Headers/opencl-c.h
M clang/lib/Sema/OpenCLBuiltins.td
Log Message:
-----------
[OpenCL] Limit popcount to OpenCL 1.2 and above
s6.15.3 of the OpenCL C Specification v3.0.6 states that OpenCL 1.2 or
newer is required.
Commit: 95f813504386aab17b16759602a37b0686115a1e
https://github.com/llvm/llvm-project/commit/95f813504386aab17b16759602a37b0686115a1e
Author: Matthias Springer <springerm at google.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M mlir/include/mlir/Dialect/Vector/VectorOps.h
M mlir/include/mlir/Dialect/Vector/VectorOps.td
M mlir/include/mlir/Dialect/Vector/VectorTransforms.h
M mlir/include/mlir/Interfaces/VectorInterfaces.td
M mlir/lib/Conversion/StandardToSPIRV/LegalizeStandardForSPIRV.cpp
M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
M mlir/lib/Conversion/VectorToROCDL/VectorToROCDL.cpp
M mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
M mlir/lib/Dialect/Vector/VectorOps.cpp
M mlir/lib/Dialect/Vector/VectorTransferOpTransforms.cpp
M mlir/lib/Dialect/Vector/VectorTransforms.cpp
M mlir/test/Conversion/LinalgToVector/linalg-to-vector.mlir
M mlir/test/Conversion/StandardToSPIRV/legalization.mlir
M mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
M mlir/test/Conversion/VectorToSCF/vector-to-loops.mlir
M mlir/test/Dialect/Linalg/forward-vector-transfers.mlir
M mlir/test/Dialect/Linalg/vectorization.mlir
M mlir/test/Dialect/Vector/canonicalize.mlir
M mlir/test/Dialect/Vector/invalid.mlir
M mlir/test/Dialect/Vector/ops.mlir
M mlir/test/Dialect/Vector/vector-transfer-full-partial-split.mlir
M mlir/test/Dialect/Vector/vector-transfer-lowering.mlir
M mlir/test/Dialect/Vector/vector-transferop-opt.mlir
M mlir/test/Dialect/Vector/vector-transforms.mlir
M mlir/test/Integration/Dialect/Vector/CPU/test-transfer-read.mlir
M mlir/test/Integration/Dialect/Vector/CPU/test-transfer-write.mlir
Log Message:
-----------
[mlir] Change vector.transfer_read/write "masked" attribute to "in_bounds".
This is in preparation for adding a new "mask" operand. The existing "masked" attribute was used to specify dimensions that may be out-of-bounds. Such transfers can be lowered to masked load/stores. The new "in_bounds" attribute is used to specify dimensions that are guaranteed to be within bounds. (Semantics is inverted.)
Differential Revision: https://reviews.llvm.org/D99639
Commit: 49c0ab6d7611050ae902f6369fc878e17da453ad
https://github.com/llvm/llvm-project/commit/49c0ab6d7611050ae902f6369fc878e17da453ad
Author: Balázs Kéri <1.int32 at gmail.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
A clang/test/Analysis/pthreadlock_state.c
Log Message:
-----------
[clang][Checkers] Extend PthreadLockChecker state dump (NFC).
Add printing of map 'DestroyRetVal'.
Reviewed By: steakhal
Differential Revision: https://reviews.llvm.org/D98502
Commit: 3ccbd4f3c7d164f7cb655ea15ab048176f7ba5b8
https://github.com/llvm/llvm-project/commit/3ccbd4f3c7d164f7cb655ea15ab048176f7ba5b8
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/lib/Analysis/InlineCost.cpp
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
M llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
M llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
Log Message:
-----------
NFC: Change getUserCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://reviews.llvm.org/D91174
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html
Depends on D97382
Reviewed By: ctetreau, paulwalker-arm
Differential Revision: https://reviews.llvm.org/D97466
Commit: 52e015081a7768e1ba00a811a8e1a456f8aeecb4
https://github.com/llvm/llvm-project/commit/52e015081a7768e1ba00a811a8e1a456f8aeecb4
Author: Florian Hahn <flo at fhahn.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/arm64-build-vector.ll
Log Message:
-----------
[AArch64] Avoid SCALAR_TO_VECTOR for single FP constant vector.
Currently the code only checks for integer constants (ConstantSDNode)
and triggers an infinite cycle for single-element floating point
vector constants. We need to check for both FP and integer constants.
Reviewed By: t.p.northover
Differential Revision: https://reviews.llvm.org/D99384
Commit: 936d1e97a32d05471f845d69496abcbf54687e72
https://github.com/llvm/llvm-project/commit/936d1e97a32d05471f845d69496abcbf54687e72
Author: Balazs Benics <balazsbenics at sigmatechnology.se>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M clang/unittests/AST/ASTImporterTest.cpp
Log Message:
-----------
[ASTImporter][NFC] Improve test coverage
All three cases were imported correctly.
For BlockDecls, correctly means that we don't support importing them, thus an
error is the expected behaviour.
- BlockDecls were not yet covered. I know that they are not imported but the
test at least documents it.
- Default values for ParmVarDecls were also uncovered.
- Importing bitfield FieldDecls were imported correctly.
Reviewed By: martong, shafik
Differential Revision: https://reviews.llvm.org/D99576
Commit: 5d0e9ddfa512ea3b2dd500e7abe93af30c1d9e11
https://github.com/llvm/llvm-project/commit/5d0e9ddfa512ea3b2dd500e7abe93af30c1d9e11
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
A llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-atomicrmw-fadd-global.mir
A llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-atomicrmw-fadd-local.mir
R llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-atomicrmw-fadd.mir
Log Message:
-----------
[AMDGPU][GlobalISel] Add support for global atomicrmw fadd
This includes gfx908 which only has a no-return version of the
global_atomic_add_f32 instruction, using the same hack that was
previously implemented for selecting from the
llvm.amdgcn.global.atomic.fadd intrinsic.
Differential Revision: https://reviews.llvm.org/D97767
Commit: 98d070396d2b80b8abcad1c24c5875b33495ada0
https://github.com/llvm/llvm-project/commit/98d070396d2b80b8abcad1c24c5875b33495ada0
Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M lldb/test/API/tools/lldb-vscode/disconnect/TestVSCode_disconnect.py
Log Message:
-----------
Revert "[LLDB] Skip TestVSCode_disconnect.test_launch arm/linux"
This reverts commit 73cf85e527f69c495daece7c74743b9073d4717c.
Commit: 10fc6e4358115258685cdf9c269a7eec30f97451
https://github.com/llvm/llvm-project/commit/10fc6e4358115258685cdf9c269a7eec30f97451
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.h
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-stepvector-rv32.ll
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-stepvector-rv64.ll
A llvm/test/CodeGen/RISCV/rvv/stepvector-rv32.ll
A llvm/test/CodeGen/RISCV/rvv/stepvector-rv64.ll
Log Message:
-----------
[RISCV] Add support for the stepvector intrinsic
This adds almost everything required for supporting the new stepvector
intrinsic on RVV. It is lowered to the existing VID_VL SDNode.
The only exception is a limitation that RV32 cannot yet lower the
intrinsic on i64 vectors. This is because the step operand is
(currently) required to be at least as large as the vector element type.
I will look into patching that out and loosening the requirement to only
an integer pointer type.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D99594
Commit: 9d474be11d71b5ae13490d3d8bd66150765560e3
https://github.com/llvm/llvm-project/commit/9d474be11d71b5ae13490d3d8bd66150765560e3
Author: Balazs Benics <balazsbenics at sigmatechnology.se>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M clang/unittests/AST/ASTImporterTest.cpp
Log Message:
-----------
[ASTImporter][NFC] Fix duplicated symbols in "Improve test coverage"
D99576 introduced a duplicate symbol, now im removing it.
Differential Revision: https://reviews.llvm.org/D99576
Commit: ce548aa236962f95ccaf59f8692ed0861f3769dd
https://github.com/llvm/llvm-project/commit/ce548aa236962f95ccaf59f8692ed0861f3769dd
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
M llvm/lib/Target/X86/X86.td
Log Message:
-----------
[X86] AMD Zen 3 has macro fusion
This is an improvement over Zen 2, where only branch fusion is supported,
as per Agner, 21.4 Instruction fusion.
AMD SOG 17h has no mention of fusion.
AMD SOG 19h, 2.9.3 Branch Fusion
The following flag writing instructions support branch fusion
with their reg/reg, reg/imm and reg/mem forms
* CMP
* TEST
* SUB
* ADD
* INC (no fusion with branches dependent on CF)
* DEC (no fusion with branches dependent on CF)
* OR
* AND
* XOR
Agner, 22.4 Instruction fusion
<...> This applies to CMP, TEST, ADD, SUB, AND, OR, XOR, INC, DEC and
all conditional jumps, except if the arithmetic or logic instruction has a rip-relative address or
both an address displacement and an immediate operand.
Commit: d2d6720a93a2469fb3a752bd59674bd2cf97d91f
https://github.com/llvm/llvm-project/commit/d2d6720a93a2469fb3a752bd59674bd2cf97d91f
Author: Liqiang Tao <taolq at outlook.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/Analysis/InlineCost.cpp
Log Message:
-----------
[InlineCost] Remove TODO comment that consider other forms of savings in the cost-benefit analysis
Attempts to compute savings more accurately cannot impact the set of critically important call sites.
Reviewed By: kazu
Differential Revision: https://reviews.llvm.org/D98577
Commit: feb6f2c78fa9474e7329c4a809f175b1675d0975
https://github.com/llvm/llvm-project/commit/feb6f2c78fa9474e7329c4a809f175b1675d0975
Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbtest.py
R lldb/test/API/commands/register/register/aarch64_dynamic_regset/Makefile
R lldb/test/API/commands/register/register/aarch64_dynamic_regset/TestArm64DynamicRegsets.py
R lldb/test/API/commands/register/register/aarch64_dynamic_regset/main.c
Log Message:
-----------
Revert "[LLDB] Arm64/Linux test case for MTE and Pointer Authentication regset"
This reverts commit 9ab677180091a690cd99d4ac55d5fb9e1149b1ec.
Reason: LLDB AArch64/Linux buildbot failure.
Commit: 71b648f7158c7a0b4918eaa3e94d307e4bbfce97
https://github.com/llvm/llvm-project/commit/71b648f7158c7a0b4918eaa3e94d307e4bbfce97
Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
M lldb/source/Plugins/Process/Linux/NativeThreadLinux.h
M lldb/source/Plugins/Process/POSIX/NativeProcessELF.h
M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp
M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.h
M lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h
Log Message:
-----------
Revert "[LLDB] Arm64/Linux Add MTE and Pointer Authentication registers"
This reverts commit 1164b4e2957290e814c3dd781a68e504dd39148e.
Reason: LLDB AArch64 Linux buildbot failure
Commit: 8396aeb07cddd8ab9a6a154a4ab7ac56fc24bda5
https://github.com/llvm/llvm-project/commit/8396aeb07cddd8ab9a6a154a4ab7ac56fc24bda5
Author: Max Kazantsev <mkazantsev at azul.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/test/Transforms/GVN/condprop.ll
Log Message:
-----------
[Test] Auto-update test checks
Commit: 2f56e1c6b1370f48877acbd774638e451685f6db
https://github.com/llvm/llvm-project/commit/2f56e1c6b1370f48877acbd774638e451685f6db
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/lib/Target/X86/X86TargetTransformInfo.h
Log Message:
-----------
NFC: Change getTypeBasedIntrinsicCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://reviews.llvm.org/D91174
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html
Depends on D97466
Reviewed By: dmgreen
Differential Revision: https://reviews.llvm.org/D97468
Commit: 2f6f249a49e6f21f601d89597253fe71c07dc5c0
https://github.com/llvm/llvm-project/commit/2f6f249a49e6f21f601d89597253fe71c07dc5c0
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
M llvm/lib/Target/ARM/ARMTargetTransformInfo.h
M llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
M llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/lib/Target/X86/X86TargetTransformInfo.h
Log Message:
-----------
NFC: Change getIntrinsicInstrCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://reviews.llvm.org/D91174
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html
Depends on D97468
Reviewed By: dmgreen
Differential Revision: https://reviews.llvm.org/D97469
Commit: ffcb4b43b799f518891088076ef083ca8f13c537
https://github.com/llvm/llvm-project/commit/ffcb4b43b799f518891088076ef083ca8f13c537
Author: Balázs Kéri <1.int32 at gmail.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
R clang/test/Analysis/pthreadlock_state.c
Log Message:
-----------
Revert "[clang][Checkers] Extend PthreadLockChecker state dump (NFC)."
This reverts commit 49c0ab6d7611050ae902f6369fc878e17da453ad.
Test failures showed up because non-deterministic output.
Commit: 9f4022ffeb20eff91c7461828592dc812ee5a28e
https://github.com/llvm/llvm-project/commit/9f4022ffeb20eff91c7461828592dc812ee5a28e
Author: Joerg Sonnenberger <joerg at bec.de>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M libcxx/include/thread
Log Message:
-----------
[libc++] Avoid <climits> dependency in <thread>
The standard guarantees sleep durations of 2^63-1 nanoseconds to work.
Instead of depending on INT64_MAX or ULONGLONG_MAX to exist via the
header pollution, fold the constant directly. That has the additional
positive side effect that it avoids long double arithmetic bugs in GCC.
Differential Revision: https://reviews.llvm.org/D99516
Commit: dc7ebd2cb0cf4a83bb6cd1bfc8853b0a30054777
https://github.com/llvm/llvm-project/commit/dc7ebd2cb0cf4a83bb6cd1bfc8853b0a30054777
Author: Anton Bikineev <bikineev at chromium.org>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M clang/include/clang/Basic/DiagnosticCommonKinds.td
M clang/include/clang/Lex/LiteralSupport.h
M clang/lib/Frontend/InitPreprocessor.cpp
M clang/lib/Lex/LiteralSupport.cpp
M clang/lib/Lex/PPExpressions.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/test/Lexer/cxx-features.cpp
A clang/test/Lexer/size_t-literal.cpp
M clang/test/SemaCXX/cxx1y-user-defined-literals.cpp
A clang/test/SemaCXX/size_t-literal.cpp
M clang/www/cxx_status.html
Log Message:
-----------
[C++2b] Support size_t literals
This adds support for C++2b's z/uz suffixes for size_t literals (P0330).
Commit: b6d05297803d8e6bae6a1159b66e85a07995d6fb
https://github.com/llvm/llvm-project/commit/b6d05297803d8e6bae6a1159b66e85a07995d6fb
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/test/Analysis/CostModel/AArch64/sve-intrinsics.ll
M llvm/test/Analysis/CostModel/AArch64/sve-math.ll
Log Message:
-----------
[CostModel] Align the cost model for intrinsics for scalable/fixed-width vectors.
Let getIntrinsicInstrCost call getTypeBasedIntrinsicInstrCost for scalable vectors,
similar to how this is done for fixed-width vectors, instead of falling back
on BaseT::getIntrinsicInstrCost().
If the intrinsic cannot be costed (or is not overloaded by the target),
it will return InstructionCost::getInvalid() instead.
Depends on D97469
Reviewed By: david-arm
Differential Revision: https://reviews.llvm.org/D97470
Commit: 7108b2dec17d895aec874477f62ccc6c663c2307
https://github.com/llvm/llvm-project/commit/7108b2dec17d895aec874477f62ccc6c663c2307
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Analysis/CostModel/AArch64/sve-intrinsics.ll
M llvm/test/Transforms/LoopVectorize/AArch64/scalable-call.ll
Log Message:
-----------
[SVE] Fix LoopVectorizer test scalalable-call.ll
This marks FSIN and other operations to EXPAND for scalable
vectors, so that they are not assumed to be legal by the cost-model.
Depends on D97470
Reviewed By: dmgreen, paulwalker-arm
Differential Revision: https://reviews.llvm.org/D97471
Commit: a8cf32baf57de151bb6a8341957e101b04a6e816
https://github.com/llvm/llvm-project/commit/a8cf32baf57de151bb6a8341957e101b04a6e816
Author: Luís Marques <luismarques at lowrisc.org>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M clang/test/CodeGen/sanitize-coverage-old-pm.c
Log Message:
-----------
[RISCV] Add XFAIL riscv32 for known issue with the old pass manager
See D80668, rG7b4832648a63 and https://bugs.llvm.org/show_bug.cgi?id=46117
for details of the issue.
Differential Revision: https://reviews.llvm.org/D99108
Commit: 3bdd674fbf767d719dc67e10bc079cb183dd3a3f
https://github.com/llvm/llvm-project/commit/3bdd674fbf767d719dc67e10bc079cb183dd3a3f
Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M libcxx/test/std/utilities/tuple/tuple.tuple/tuple.assign/convert_copy.pass.cpp
Log Message:
-----------
[libc++] Mark convert_copy.pass.cpp as UNSUPPORTED on clang-13 (i.e. trunk).
Because the constexpr-time codepath triggers a Clang bug. It seems
that Clang compiles it okay in release mode, but when Clang itself
is compiled in debug mode (with assertions turned on), this input
triggers an assertion failure in Clang itself. See comments on D96385
and Clang bug report https://bugs.llvm.org/show_bug.cgi?id=45879
This commit should get the debug-mode buildbots back to green.
Commit: 5018e15fdfda855f130cdb78acb88540046853af
https://github.com/llvm/llvm-project/commit/5018e15fdfda855f130cdb78acb88540046853af
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M clang/include/clang/Parse/Parser.h
M clang/lib/Parse/ParseDecl.cpp
M clang/lib/Parse/ParseDeclCXX.cpp
M clang/test/Parser/cxx0x-attributes.cpp
Log Message:
-----------
[clang][parser] Allow GNU-style attributes in explicit template...
... instantiations
They are currently not being diagnosed because ProhibitAttributes() does
not handle attribute lists with an invalid source range. But once it
does, we need to allow GNU attributes in this place.
Additionally, start optionally diagnosing empty attr lists in
ProhibitCXX11Attributes(), since ProhibitAttribute() does it.
Differential Revision: https://reviews.llvm.org/D97362
Commit: 4e52daa2540473286429862883a643869def8fe1
https://github.com/llvm/llvm-project/commit/4e52daa2540473286429862883a643869def8fe1
Author: Bradley Smith <bradley.smith at arm.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
A llvm/test/CodeGen/AArch64/sve-fixed-length-int-rem.ll
Log Message:
-----------
[AArch64][SVE] Add tests for UREM/SREM using fixed SVE types
Differential Revision: https://reviews.llvm.org/D99265
Commit: 07a6d07c482706268caa9c4f9e3a13d71f9c7fb9
https://github.com/llvm/llvm-project/commit/07a6d07c482706268caa9c4f9e3a13d71f9c7fb9
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/test/Transforms/InstCombine/abs-intrinsic.ll
Log Message:
-----------
[InstCombine] add tests for srem+abs; NFC
Commit: 1462bdf1b985256fb52ddccdbbe8fbf5a9ad48b5
https://github.com/llvm/llvm-project/commit/1462bdf1b985256fb52ddccdbbe8fbf5a9ad48b5
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/abs-intrinsic.ll
Log Message:
-----------
[InstCombine] fold abs(srem X, 2)
This is a missing optimization based on an example in:
https://llvm.org/PR49763
As noted there and the test here, we could add a more
general fold if that is shown useful.
https://alive2.llvm.org/ce/z/xEHdTv
https://alive2.llvm.org/ce/z/97dcY5
Commit: f38a9d63402d8a6b524e5397845a6435faedb10a
https://github.com/llvm/llvm-project/commit/f38a9d63402d8a6b524e5397845a6435faedb10a
Author: Heejin Ahn <aheejin at gmail.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
A llvm/test/MC/WebAssembly/event-section-decoding.ll
R llvm/test/MC/WebAssembly/event-section-encoding.ll
Log Message:
-----------
[WebAssembly] Raname a test and fix comments
D99627 fixed a decoding bug, not an encoding bug. This renames the test
to correct it and fix comments.
Reviewed By: dschuff
Differential Revision: https://reviews.llvm.org/D99644
Commit: 09b2419360e1bf35037fc7b4299074150e8e68a5
https://github.com/llvm/llvm-project/commit/09b2419360e1bf35037fc7b4299074150e8e68a5
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/tools/llvm-jitlink/llvm-jitlink.cpp
Log Message:
-----------
[llvm-jitlink] Fix -Wunused-function on Windows
Reviewed By: sgraenitz
Differential Revision: https://reviews.llvm.org/D99604
Commit: 04f10ab367b5c547f5de3285890e74146a5949b0
https://github.com/llvm/llvm-project/commit/04f10ab367b5c547f5de3285890e74146a5949b0
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoV.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
M llvm/test/CodeGen/RISCV/rvv/vsub-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vsub-rv64.ll
Log Message:
-----------
[RISCV] Add isel patterns to select vsub_vx intrinsic to vadd.vi if it uses a small enough immediate
Also modify the simm5_plus1 check because Imm-1 is UB if Imm happens
to be INT64_MIN. I don't think the compiler would optimize based on that in this
usage, but it could fail UBSan or -ftrapv.
Reviewed By: HsiangKai, frasercrmck
Differential Revision: https://reviews.llvm.org/D99637
Commit: a991ee330b6f008b7c68816ace9ec44561ce69de
https://github.com/llvm/llvm-project/commit/a991ee330b6f008b7c68816ace9ec44561ce69de
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.load.1d.ll
Log Message:
-----------
[AMDGPU] Use a common check prefix for some image tests. NFC.
Commit: b138cf115efaea69326b5852c3abbef1c1d03e79
https://github.com/llvm/llvm-project/commit/b138cf115efaea69326b5852c3abbef1c1d03e79
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.load.1d.ll
Log Message:
-----------
[AMDGPU] Add some image tests with enable-prt-strict-null disabled. NFC.
Commit: 2a8b7cab6a3b52ab27acc44ba50a1528c8aa2d44
https://github.com/llvm/llvm-project/commit/2a8b7cab6a3b52ab27acc44ba50a1528c8aa2d44
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.h
M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
M llvm/test/CodeGen/RISCV/rv64zbb.ll
Log Message:
-----------
[RISCV] Add RISCVISD opcodes for CLZW and CTZW.
Our CLZW isel pattern is quite easily broken by surrounding code
preventing it from matching sometimes. This usually results in
failing to remove the and X, 0xffffffff inserted by type
legalization. The add with -32 that type legalization also inserts
will often gets combined into other add/sub nodes. That doesn't
usually result in extra code when we don't use clzw.
CTTZ seems to be less fragile, but I wanted to keep it consistent
with CTLZ.
Reviewed By: asb, HsiangKai
Differential Revision: https://reviews.llvm.org/D99317
Commit: 563cdeaafd5812cb90656380a8f9d6b85d2abf08
https://github.com/llvm/llvm-project/commit/563cdeaafd5812cb90656380a8f9d6b85d2abf08
Author: Wael Yehia <wyehia at ca.ibm.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/include/llvm-c/lto.h
M llvm/include/llvm/LTO/legacy/LTOCodeGenerator.h
M llvm/lib/LTO/LTOCodeGenerator.cpp
M llvm/tools/lto/lto.cpp
M llvm/tools/lto/lto.exports
Log Message:
-----------
[LTO][Legacy] Decouple option parsing from LTOCodeGenerator
in this patch we add a new libLTO API to specify debug options independent of an lto_code_gen_t.
This allows clients to pass codegen flags (through libLTO) which otherwise today are ignored.
Reviewed By: steven_wu
Differential Revision: https://reviews.llvm.org/D92611
Commit: 50b8634a99b6f2f36a3fdbea7aa7892c9b881d64
https://github.com/llvm/llvm-project/commit/50b8634a99b6f2f36a3fdbea7aa7892c9b881d64
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/Target/X86/X86InstrInfo.cpp
M llvm/test/CodeGen/X86/bmi.ll
M llvm/test/CodeGen/X86/tbm_patterns.ll
Log Message:
-----------
[X86] Improve optimizeCompareInstr for signed comparisons after BMI/TBM instructions
We previously couldn't optimize out a TEST if the branch/setcc/cmov
used the overflow flag. This patches allows the TEST to be removed
if the flag producing instruction is known to clear the OF flag.
Thats what the TEST instruction would have done so that should be
equivalent.
Need to add test cases. I'll try to get back to this if I have bandwidth.
Fixes PR48768.
Reviewed By: RKSimon
Differential Revision: https://reviews.llvm.org/D94856
Commit: 00c0c8c87d300406d8121bcdf02ae75b9b1af9c3
https://github.com/llvm/llvm-project/commit/00c0c8c87d300406d8121bcdf02ae75b9b1af9c3
Author: Shimin Cui <scui at ca.ibm.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
M llvm/test/CodeGen/PowerPC/licm-tocReg.ll
Log Message:
-----------
[PowerPC] [MLICM] Enable hoisting of caller preserved registers on AIX
On ppc64 linux , MachineLICM will hoist caller preserved registers, including TOC loads of the global variable address, out of loops. This is to enable this on AIX for both ppc64 and ppc32.
Differential Revision: https://reviews.llvm.org/D99076
Commit: 437958d9fdb63779c10499befd7fb6ef67418a5f
https://github.com/llvm/llvm-project/commit/437958d9fdb63779c10499befd7fb6ef67418a5f
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/prefer-avx256-mulo.ll
M llvm/test/CodeGen/X86/vec_smulo.ll
M llvm/test/CodeGen/X86/vec_umulo.ll
Log Message:
-----------
[X86] Improve SMULO/UMULO codegen for vXi8 vectors.
The default expansion creates a MUL and either a MULHS/MULHU. Each
of those separately expand to sequences that use one or more
PMULLW instructions as well as additional instructions to
extend the types to vXi16. The MULHS/MULHU expansion computes the
whole 16-bit product, but only keeps the high part.
We can improve the lowering of SMULO/UMULO for some cases by using the MULHS/MULHU
expansion, but keep both the high and low parts. And we can use
those parts to calculate the overflow.
For AVX512 we might have vXi1 overflow outputs. We can improve those by using
vpcmpeqw to produce a k register if AVX512BW is enabled. This is a little better
than truncating the high result to use vpcmpeqb. If we don't have avx512bw we
can extend up to v16i32 to use vpcmpeqd to produce a k register.
Reviewed By: RKSimon
Differential Revision: https://reviews.llvm.org/D97624
Commit: ae7b1e8823a51068cfa64875fc5222e5b1d16760
https://github.com/llvm/llvm-project/commit/ae7b1e8823a51068cfa64875fc5222e5b1d16760
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/test/Analysis/ScalarEvolution/shift-recurrences.ll
Log Message:
-----------
[SCEV] Handle unreachable binop when matching shift recurrence
This fixes an issue introduced with my change d4648e, and reported in pr49768.
The root problem is that dominance collapses in unreachable code, and that LoopInfo explicitly only models reachable code. Since the recurrence matcher doesn't filter by reachability (and can't easily because not all consumers have domtree), we need to bailout before assuming that finding a recurrence implies we found a loop.
Commit: df0b97dab08abb8605533974f6b977c183f6be37
https://github.com/llvm/llvm-project/commit/df0b97dab08abb8605533974f6b977c183f6be37
Author: Juneyoung Lee <aqjune at gmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/unittests/Analysis/ValueTrackingTest.cpp
Log Message:
-----------
[ValueTracking] Add with.overflow intrinsics to poison analysis functions
This is a patch teaching ValueTracking that `s/u*.with.overflow` intrinsics do not
create undef/poison and they propagate poison.
I couldn't write a nice example like the one with ctpop; ValueTrackingTest.cpp were simply updated
to check these instead.
This patch helps reducing regression while fixing https://llvm.org/pr49688 .
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D99671
Commit: 45783d0e8a3632b7c1f5b0cdd258bfba1f8583e7
https://github.com/llvm/llvm-project/commit/45783d0e8a3632b7c1f5b0cdd258bfba1f8583e7
Author: Thomas Lively <tlively at google.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M clang/include/clang/Basic/BuiltinsWebAssembly.def
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/test/CodeGen/builtins-wasm.c
M llvm/include/llvm/IR/IntrinsicsWebAssembly.td
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
M llvm/test/CodeGen/WebAssembly/simd-comparisons.ll
M llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll
M llvm/test/CodeGen/WebAssembly/simd-select.ll
M llvm/test/MC/WebAssembly/simd-encodings.s
Log Message:
-----------
[WebAssembly] Implement i64x2 comparisons
Removes the prototype builtin and intrinsic for i64x2.eq and implements that
instruction as well as the other i64x2 comparison instructions in the final SIMD
spec. Unsigned comparisons were not included in the final spec, so they still
need to be scalarized via a custom lowering.
Differential Revision: https://reviews.llvm.org/D99623
Commit: fcf6800506862586e2d409aaa03a1cff818edfcc
https://github.com/llvm/llvm-project/commit/fcf6800506862586e2d409aaa03a1cff818edfcc
Author: Petr Hosek <phosek at google.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M clang/include/clang/Driver/ToolChain.h
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/Fuchsia.cpp
M clang/lib/Driver/ToolChains/Gnu.cpp
A clang/test/Driver/Inputs/basic_fuchsia_tree/include/c++/v1/.keep
Log Message:
-----------
[Driver] Move detectLibcxxIncludePath to ToolChain
This helper method is useful even outside of Gnu toolchains, so move
it to ToolChain so it can be reused in other toolchains such as Fuchsia.
Differential Revision: https://reviews.llvm.org/D88452
Commit: 888c5067b4dce403774536a08f79d59865db3d12
https://github.com/llvm/llvm-project/commit/888c5067b4dce403774536a08f79d59865db3d12
Author: Suraj Sudhir <Suraj.Sudhir at arm.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
A mlir/include/mlir/Dialect/Tosa/IR/TosaUtilOps.td
Log Message:
-----------
Move non-spec TOSA operators into TosaUtilOps.td
Reviewed By: stellaraccident
Differential Revision: https://reviews.llvm.org/D99628
Commit: fe5c4a06a49c697399323cc55e2135a5452ed616
https://github.com/llvm/llvm-project/commit/fe5c4a06a49c697399323cc55e2135a5452ed616
Author: Huihui Zhang <huihuiz at quicinc.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LoopVectorize] Use SetVector to track uniform uses to prevent non-determinism.
Use SetVector instead of SmallPtrSet to track values with uniform use. Doing this
can help avoid non-determinism caused by iterating over unordered containers.
This bug was found with reverse iteration turning on,
--extra-llvm-cmake-variables="-DLLVM_REVERSE_ITERATION=ON".
Failing LLVM test consecutive-ptr-uniforms.ll .
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D99549
Commit: 7f8da0791c33a9c87b357859ad84346fe3ccb5f2
https://github.com/llvm/llvm-project/commit/7f8da0791c33a9c87b357859ad84346fe3ccb5f2
Author: peter klausler <pklausler at nvidia.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M flang/include/flang/Evaluate/tools.h
M flang/include/flang/Evaluate/traverse.h
M flang/lib/Evaluate/check-expression.cpp
M flang/lib/Semantics/check-data.cpp
M flang/test/Semantics/init01.f90
Log Message:
-----------
[flang] Refine checks for pointer initialization targets
f18 was emitting a bogus error message about the lack of a TARGET
attribute when a pointer was initialized with a component of a
variable that was a legitimate TARGET.
Differential Revision: https://reviews.llvm.org/D99665
Commit: 10847f6217b159e01b72a34eb366a543ca612aa6
https://github.com/llvm/llvm-project/commit/10847f6217b159e01b72a34eb366a543ca612aa6
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/X86/inst_size_bug.ll
Log Message:
-----------
[SLP]Add a test for the bug in `getVectorElementSize()`, NFC.
Commit: 807b019ca292e53cc40cc76c1f0efd8a7b2efe62
https://github.com/llvm/llvm-project/commit/807b019ca292e53cc40cc76c1f0efd8a7b2efe62
Author: George Mitenkov <georgemitenk0v at gmail.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/test/Transforms/InstSimplify/ConstProp/overflow-ops.ll
Log Message:
-----------
[ConstantFolding] Fixing addo/subo with undef
When folding addo/subo with undef, the current
convention is to use { -1, false } for addo and
{ 0, false } for subo. This was fixed for InstSimplify in
https://reviews.llvm.org/rGf094d65beaa492e845b03561eddd75b5be653a01,
but not in ConstantFolding.
Reviewed By: nikic, lebedev.ri
Differential Revision: https://reviews.llvm.org/D99564
Commit: 9c61c76b127d53a5d14033cdb6abb4b3daaa0f67
https://github.com/llvm/llvm-project/commit/9c61c76b127d53a5d14033cdb6abb4b3daaa0f67
Author: Andrew Young <youngar17 at gmail.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M mlir/lib/Transforms/CSE.cpp
M mlir/test/Transforms/cse.mlir
Log Message:
-----------
[mlir][cse] do not replace operands in previously simplified operations
If an operation has been inserted as a key in to the known values
hashtable, then it can not be modified in a way which changes its hash.
This change avoids modifying the operands of any previously recorded
operation, which prevents their hash from changing.
In an SSACFG region, it is impossible to visit an operation before
visiting its operands, so this is not a problem. This situation can only
happen in regions without strict dominance, such as graph regions.
Reviewed By: rriddle
Differential Revision: https://reviews.llvm.org/D99486
Commit: 9e00b6660d2b6ffa83a7fb8c82fc6862d6b80c05
https://github.com/llvm/llvm-project/commit/9e00b6660d2b6ffa83a7fb8c82fc6862d6b80c05
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Log Message:
-----------
[SelectionDAG] Remove unneeded vector resize from the end of FoldConstantArithmetic. NFC
There's an assert right before that makes sure the size already matches.
Earlier in this function's life, scalars and vectors shared more
code.
Commit: 4ced958dc205de0de935e6d2f27767ebcec6c29f
https://github.com/llvm/llvm-project/commit/4ced958dc205de0de935e6d2f27767ebcec6c29f
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/AArch64/ext-trunc.ll
Log Message:
-----------
[SLP]Update test checks, NFC
Commit: 09aed384ba19ff8b74763bdc42467232c9c012b3
https://github.com/llvm/llvm-project/commit/09aed384ba19ff8b74763bdc42467232c9c012b3
Author: Jez Ng <jezng at fb.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M lld/test/MachO/lto-archive.ll
Log Message:
-----------
[lld-macho][nfc] Test that -ObjC will import bitcode with category sections
The functionality was originally added in {D95265}, but the test in that
diff only checked if `-ObjC` would cause bitcode containing ObjC class
symbols to be loaded. It neglected to test for bitcode containing
categories but no class symbols.
This diff also changes the lto-archive.ll test to use `-why_load`
instead of inspecting the output binary's symbol table. This is
motivated by the stacked diff {D99105}, which will hide irrelevant
bitcode symbols.
Reviewed By: #lld-macho, oontvoo
Differential Revision: https://reviews.llvm.org/D99215
Commit: 9b6dde8af8f0880690792e3faa7987a8529232f6
https://github.com/llvm/llvm-project/commit/9b6dde8af8f0880690792e3faa7987a8529232f6
Author: Jez Ng <jezng at fb.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M lld/ELF/Writer.cpp
M lld/MachO/Writer.cpp
A lld/include/lld/Common/Arrays.h
Log Message:
-----------
[lld-macho] Parallelize UUID hash computation
This reuses the approach (and some code) from LLD-ELF.
It's a decent win when linking chromium_framework on a Mac Pro (3.2 GHz 16-Core Intel Xeon W):
N Min Max Median Avg Stddev
x 20 4.58 4.83 4.66 4.6685 0.066591844
+ 20 4.42 4.61 4.5 4.505 0.04751731
Difference at 95.0% confidence
-0.1635 +/- 0.0370242
-3.5022% +/- 0.793064%
(Student's t, pooled s = 0.0578462)
The output binary is 381MB.
Reviewed By: #lld-macho, oontvoo
Differential Revision: https://reviews.llvm.org/D99279
Commit: 98f08e7d8132daba7f9723e7977f0f073b0302ad
https://github.com/llvm/llvm-project/commit/98f08e7d8132daba7f9723e7977f0f073b0302ad
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/test/Analysis/ScalarEvolution/shift-recurrences.ll
Log Message:
-----------
[tests] Exercise cases where SCEV can use trip counts to refine ashr/lshr recurrences
Commit: 66da4f6fc9c1cd2a63f089b9888729292f0709f8
https://github.com/llvm/llvm-project/commit/66da4f6fc9c1cd2a63f089b9888729292f0709f8
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/test/OpenMP/atomic_codegen.cpp
Log Message:
-----------
[OPENMP]Fix PR48658: [OpenMP 5.0] Compiler crash when OpenMP atomic sync hints used.
No need to consider hint clause kind as the main atomic clause kind at the
codegen.
Differential Revision: https://reviews.llvm.org/D99611
Commit: a28e835e9494af058bcbad667906271eec5da83b
https://github.com/llvm/llvm-project/commit/a28e835e9494af058bcbad667906271eec5da83b
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/test/OpenMP/declare_mapper_codegen.cpp
M clang/test/OpenMP/master_taskloop_firstprivate_codegen.cpp
M clang/test/OpenMP/master_taskloop_in_reduction_codegen.cpp
M clang/test/OpenMP/master_taskloop_lastprivate_codegen.cpp
M clang/test/OpenMP/master_taskloop_private_codegen.cpp
M clang/test/OpenMP/master_taskloop_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/master_taskloop_simd_in_reduction_codegen.cpp
M clang/test/OpenMP/master_taskloop_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/master_taskloop_simd_private_codegen.cpp
M clang/test/OpenMP/nvptx_param_translate.c
M clang/test/OpenMP/parallel_master_taskloop_firstprivate_codegen.cpp
M clang/test/OpenMP/parallel_master_taskloop_lastprivate_codegen.cpp
M clang/test/OpenMP/parallel_master_taskloop_private_codegen.cpp
M clang/test/OpenMP/parallel_master_taskloop_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/parallel_master_taskloop_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/parallel_master_taskloop_simd_private_codegen.cpp
M clang/test/OpenMP/target_codegen.cpp
M clang/test/OpenMP/target_depend_codegen.cpp
M clang/test/OpenMP/target_enter_data_codegen.cpp
M clang/test/OpenMP/target_enter_data_depend_codegen.cpp
M clang/test/OpenMP/target_exit_data_codegen.cpp
M clang/test/OpenMP/target_exit_data_depend_codegen.cpp
M clang/test/OpenMP/target_parallel_depend_codegen.cpp
M clang/test/OpenMP/target_parallel_for_codegen.cpp
M clang/test/OpenMP/target_parallel_for_depend_codegen.cpp
M clang/test/OpenMP/target_parallel_for_simd_depend_codegen.cpp
M clang/test/OpenMP/target_simd_depend_codegen.cpp
M clang/test/OpenMP/target_teams_codegen.cpp
M clang/test/OpenMP/target_teams_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_depend_codegen.cpp
M clang/test/OpenMP/target_update_codegen.cpp
M clang/test/OpenMP/target_update_depend_codegen.cpp
M clang/test/OpenMP/task_codegen.cpp
M clang/test/OpenMP/task_firstprivate_codegen.cpp
M clang/test/OpenMP/task_in_reduction_codegen.cpp
M clang/test/OpenMP/task_private_codegen.cpp
M clang/test/OpenMP/taskloop_firstprivate_codegen.cpp
M clang/test/OpenMP/taskloop_in_reduction_codegen.cpp
M clang/test/OpenMP/taskloop_lastprivate_codegen.cpp
M clang/test/OpenMP/taskloop_private_codegen.cpp
M clang/test/OpenMP/taskloop_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/taskloop_simd_in_reduction_codegen.cpp
M clang/test/OpenMP/taskloop_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/taskloop_simd_private_codegen.cpp
M clang/test/OpenMP/taskloop_with_atomic_codegen.cpp
Log Message:
-----------
[OPENMP]Fix PR48885: Crash in passing firstprivate args to tasks on Apple M1.
Need to bitcast the function pointer passed as a parameter to the real
type to avoid possible problem with calling conventions.
Differential Revision: https://reviews.llvm.org/D99521
Commit: 2c3cf62d4a26de85aab180bb43a579c913b17f3e
https://github.com/llvm/llvm-project/commit/2c3cf62d4a26de85aab180bb43a579c913b17f3e
Author: Aaron Puchert <aaronpuchert at alice-dsl.net>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/unittests/TableGen/CMakeLists.txt
M llvm/utils/TableGen/CMakeLists.txt
M llvm/utils/TableGen/GlobalISel/CMakeLists.txt
Log Message:
-----------
Make TableGenGlobalISel an object library
That's how it was originally intended but that wasn't possible because
we still needed to support older CMake versions.
The problem here is that the sources in TableGenGlobalISel are meant to
be linked into both llvm-tblgen and TableGenTests (a unit test), but not
be part of LLVM proper. So they shouldn't be an ordinary LLVM component.
Because they are used in llvm-tblgen, they can't draw in the LLVM dylib
dependency, but then we'd have to do the same thing in TableGenTests to
make sure we don't link both a static Support library and another copy
through the LLVM dylib.
With an object library we're just reusing the object files and don't
have to care about dependencies at all.
Reviewed By: beanz
Differential Revision: https://reviews.llvm.org/D74588
Commit: e8d8754c063c2bd3861bf0570012c827ee58e747
https://github.com/llvm/llvm-project/commit/e8d8754c063c2bd3861bf0570012c827ee58e747
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/unittests/TableGen/CMakeLists.txt
M llvm/utils/TableGen/CMakeLists.txt
M llvm/utils/TableGen/GlobalISel/CMakeLists.txt
Log Message:
-----------
Revert "Make TableGenGlobalISel an object library"
This reverts commit 2c3cf62d4a26de85aab180bb43a579c913b17f3e.
Causes build failures on x86_64, will respond to commit thread with link errors.
Commit: 43ded90094f761a4763497773e722c196c69d17e
https://github.com/llvm/llvm-project/commit/43ded90094f761a4763497773e722c196c69d17e
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
Log Message:
-----------
[NFC][LoopRotation] Count the number of instructions hoisted/cloned into preheader
Commit: e927053a0d6a3afcae1dc33ebac2fdabbf459e76
https://github.com/llvm/llvm-project/commit/e927053a0d6a3afcae1dc33ebac2fdabbf459e76
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/test/Transforms/InferFunctionAttrs/annotate.ll
Log Message:
-----------
[test, InferFunctionAttrs] Fix use of var defined in CHECK-NOT
LLVM test Transforms/InferFunctionAttrs/annotate contains two RUN
invokation (UNKNOWN and NVPTX lines) which involve a CHECK-NOT directive
with a variable not defined by the enabled CHECK prefixes. This commit
fixes that by:
- enabling CHECK prefix for unknown target with specialisation when it
differs from other targets
- checking for absence of bcmp with any attribute for NVPTX
Reviewed By: tra
Differential Revision: https://reviews.llvm.org/D99589
Commit: e4701471d69fc3b9f5fcbe3b4fc06343a453c11f
https://github.com/llvm/llvm-project/commit/e4701471d69fc3b9f5fcbe3b4fc06343a453c11f
Author: Jianzhou Zhao <jianzhouzh at google.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M compiler-rt/lib/dfsan/dfsan_custom.cpp
Log Message:
-----------
[dfsan] Set sigemptyset's return label to be 0
This was not set from when the wrapper was introduced.
Reviewed By: gbalats
Differential Revision: https://reviews.llvm.org/D99678
Commit: a879a1b034943318f2a8fa52c12bd142df5ebd51
https://github.com/llvm/llvm-project/commit/a879a1b034943318f2a8fa52c12bd142df5ebd51
Author: natashaknk <natashaknk at google.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
Log Message:
-----------
[mlir][tosa] Add tosa.reciprocal and tosa.sigmoid lowerings
Lowering reciprocal and sigmoid elementwise operations to linalg dialect.
Reviewed By: rsuderman
Differential Revision: https://reviews.llvm.org/D99676
Commit: 1c268a8ff4e90a85d0e634350b1104080614cf2b
https://github.com/llvm/llvm-project/commit/1c268a8ff4e90a85d0e634350b1104080614cf2b
Author: YangKeao <keao.yang at yahoo.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86FrameLowering.cpp
M llvm/lib/Target/X86/X86FrameLowering.h
M llvm/test/CodeGen/X86/stack-clash-medium-natural-probes-mutliple-objects.ll
M llvm/test/CodeGen/X86/stack-clash-medium-natural-probes.ll
M llvm/test/CodeGen/X86/stack-clash-medium.ll
M llvm/test/CodeGen/X86/stack-clash-unknown-call.ll
Log Message:
-----------
[X86] add dwarf annotation for inline stack probe
While probing stack, the stack register is moved without dwarf
information, which could cause panic if unwind the backtrace.
This commit only add annotation for the inline stack probe case.
Dwarf information for the loop case should be done in another
patch and need further discussion.
Reviewed By: nagisa
Differential Revision: https://reviews.llvm.org/D99579
Commit: c88ee1a094a9043da146dda0ffe4accbb81e7dd8
https://github.com/llvm/llvm-project/commit/c88ee1a094a9043da146dda0ffe4accbb81e7dd8
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVSchedRocket.td
M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
M llvm/lib/Target/RISCV/RISCVSchedule.td
Log Message:
-----------
[RISCV] Add UnsupportedSchedZfh multiclass to reduce duplicate lines from RISCVSchedRocket.td and RISCVSchedSiFive7.td. NFC
Commit: 777a58e05b22973d902e78091a2e06b99c71b65c
https://github.com/llvm/llvm-project/commit/777a58e05b22973d902e78091a2e06b99c71b65c
Author: Simonas Kazlauskas <git at kazlauskas.me>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/test/CodeGen/AArch64/srem-seteq-illegal-types.ll
M llvm/test/CodeGen/AArch64/srem-seteq-vec-nonsplat.ll
M llvm/test/CodeGen/AArch64/srem-seteq-vec-splat.ll
M llvm/test/CodeGen/AArch64/srem-seteq.ll
M llvm/test/CodeGen/AArch64/urem-seteq-illegal-types.ll
M llvm/test/CodeGen/AArch64/urem-seteq-nonzero.ll
M llvm/test/CodeGen/AArch64/urem-seteq-vec-nonsplat.ll
M llvm/test/CodeGen/AArch64/urem-seteq-vec-nonzero.ll
M llvm/test/CodeGen/AArch64/urem-seteq-vec-splat.ll
M llvm/test/CodeGen/AArch64/urem-seteq.ll
M llvm/test/CodeGen/AMDGPU/srem-seteq-illegal-types.ll
M llvm/test/CodeGen/AMDGPU/urem-seteq-illegal-types.ll
M llvm/test/CodeGen/ARM/srem-seteq-illegal-types.ll
M llvm/test/CodeGen/ARM/urem-seteq-illegal-types.ll
M llvm/test/CodeGen/Mips/srem-seteq-illegal-types.ll
M llvm/test/CodeGen/Mips/urem-seteq-illegal-types.ll
M llvm/test/CodeGen/PowerPC/srem-seteq-illegal-types.ll
M llvm/test/CodeGen/PowerPC/urem-seteq-illegal-types.ll
M llvm/test/CodeGen/RISCV/rvv/vmulh-sdnode-rv32.ll
M llvm/test/CodeGen/RISCV/srem-seteq-illegal-types.ll
M llvm/test/CodeGen/RISCV/urem-seteq-illegal-types.ll
M llvm/test/CodeGen/Thumb/srem-seteq-illegal-types.ll
M llvm/test/CodeGen/Thumb/urem-seteq-illegal-types.ll
M llvm/test/CodeGen/Thumb2/srem-seteq-illegal-types.ll
M llvm/test/CodeGen/Thumb2/urem-seteq-illegal-types.ll
M llvm/test/CodeGen/X86/omit-urem-of-power-of-two-or-zero-when-comparing-with-zero.ll
M llvm/test/CodeGen/X86/srem-seteq-illegal-types.ll
M llvm/test/CodeGen/X86/srem-seteq-vec-nonsplat.ll
M llvm/test/CodeGen/X86/srem-seteq-vec-splat.ll
M llvm/test/CodeGen/X86/urem-seteq-illegal-types.ll
M llvm/test/CodeGen/X86/urem-seteq-nonzero.ll
M llvm/test/CodeGen/X86/urem-seteq-vec-nonsplat.ll
M llvm/test/CodeGen/X86/urem-seteq-vec-nonzero.ll
M llvm/test/CodeGen/X86/urem-seteq-vec-splat.ll
Log Message:
-----------
Support {S,U}REMEqFold before legalization
This allows these optimisations to apply to e.g. `urem i16` directly
before `urem` is promoted to i32 on architectures where i16 operations
are not intrinsically legal (such as on Aarch64). The legalization then
later can happen more directly and generated code gets a chance to avoid
wasting time on computing results in types wider than necessary, in the end.
Seems like mostly an improvement in terms of results at least as far as x86_64 and aarch64 are concerned, with a few regressions here and there. It also helps in preventing regressions in changes like {D87976}.
Reviewed By: lebedev.ri
Differential Revision: https://reviews.llvm.org/D88785
Commit: 115a42ad1e1c25fee6d10d5faab999b1b5c8b52c
https://github.com/llvm/llvm-project/commit/115a42ad1e1c25fee6d10d5faab999b1b5c8b52c
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/include/llvm/Support/KnownBits.h
M llvm/lib/Support/KnownBits.cpp
Log Message:
-----------
Add debug printers for KnownBits [nfc]
Commit: 3cc3c0f8352ec33ca2f2636f94cb1d85fc57ac16
https://github.com/llvm/llvm-project/commit/3cc3c0f8352ec33ca2f2636f94cb1d85fc57ac16
Author: Jian Cai <jiancai at google.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
A clang/test/Driver/as-version.s
Log Message:
-----------
Add support to -Wa,--version in clang
Clang currently only supports -Wa,--version when -no-integrated-as is
used. This adds support to -Wa,--version with -integrated-as.
Link:
https://github.com/ClangBuiltLinux/linux/issues/1320
Reviewed By: nickdesaulniers, MaskRay
Differential Revision: https://reviews.llvm.org/D99556
Commit: 0f70a17d0ad971eaa4368be76f3439471b2ab13e
https://github.com/llvm/llvm-project/commit/0f70a17d0ad971eaa4368be76f3439471b2ab13e
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/test/Analysis/ValueTracking/monotonic-phi.ll
Log Message:
-----------
[tests] Add tests for ashr/lshr recurrences in isKnownNonZero
Commit: 4af4828a6ef5778609c6738f674a35bc28eaf829
https://github.com/llvm/llvm-project/commit/4af4828a6ef5778609c6738f674a35bc28eaf829
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Analysis/ValueTracking/monotonic-phi.ll
Log Message:
-----------
[ValueTracking] Handle non-zero ashr/lshr recurrences
If we know we don't shift out bits (e.g. exact), all we need to know is that input is non-zero.
Commit: f1e4e2fb204d24a62cc7eff912bcda08c4030977
https://github.com/llvm/llvm-project/commit/f1e4e2fb204d24a62cc7eff912bcda08c4030977
Author: Alexander Shaposhnikov <alexshap at fb.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M lld/MachO/Driver.cpp
M lld/MachO/InputFiles.cpp
M lld/MachO/InputFiles.h
M lld/MachO/Relocations.h
Log Message:
-----------
[lld][MachO] Refactor handling of subsections
This diff is a preparation for fixing FunStabs (incorrect size calculation).
std::map<uint32_t, InputSection*> (SubsectionMap) is replaced with
a sorted vector + binary search. If .subsections_via_symbols is set
this vector will contain the list of subsections, otherwise,
the offsets will be used for calculating the symbols sizes.
Test plan: make check-all
Differential revision: https://reviews.llvm.org/D98837
Commit: bf2479c347c8ca88fefdb144d8bae0a7a4231e2a
https://github.com/llvm/llvm-project/commit/bf2479c347c8ca88fefdb144d8bae0a7a4231e2a
Author: Nick Desaulniers <ndesaulniers at google.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
R clang/test/Driver/as-version.s
Log Message:
-----------
Revert "Add support to -Wa,--version in clang"
This reverts commit 3cc3c0f8352ec33ca2f2636f94cb1d85fc57ac16.
Breaks non-linux platforms.
https://reviews.llvm.org/D99556#2662706
Signed-off-by: Nick Desaulniers <ndesaulniers at google.com>
Commit: 62b74f75645f53610c1d3c5387072fc4fff98bb9
https://github.com/llvm/llvm-project/commit/62b74f75645f53610c1d3c5387072fc4fff98bb9
Author: qixingxue <qixingxue at outlook.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Utils/VNCoercion.cpp
Log Message:
-----------
[GVN][NFC] Refactor analyzeLoadFromClobberingWrite
This commit adjusts the order of two swappable if statements to
make code cleaner.
Reviewed By: lattner, nikic
Differential Revision: https://reviews.llvm.org/D99648
Commit: 565b28f57b55a88de96b5d58a92bce904f4a9afc
https://github.com/llvm/llvm-project/commit/565b28f57b55a88de96b5d58a92bce904f4a9afc
Author: KAWASHIMA Takahiro <t-kawashima at fujitsu.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
A llvm/test/Transforms/GVN/PRE/load-pre-metadata-accsess-group.ll
Log Message:
-----------
[GVN][NFC] Pre-commit test for D93503
Commit: 5fac7c60467c58d567779c3568dcfeb8d164af21
https://github.com/llvm/llvm-project/commit/5fac7c60467c58d567779c3568dcfeb8d164af21
Author: KAWASHIMA Takahiro <t-kawashima at fujitsu.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/GVN.cpp
M llvm/test/Transforms/GVN/PRE/load-pre-metadata-accsess-group.ll
Log Message:
-----------
[GVN] Propagate llvm.access.group metadata of loads
Before this change, the `llvm.access.group` metadata was dropped
when moving a load instruction in GVN. This prevents vectorizing
a C/C++ loop with `#pragma clang loop vectorize(assume_safety)`.
This change propagates the metadata as well as other metadata if
it is safe (the move-destination basic block and source basic
block belong to the same loop).
Differential Revision: https://reviews.llvm.org/D93503
Commit: a8219991d0245db8f31a923ba7f24e6beda345b0
https://github.com/llvm/llvm-project/commit/a8219991d0245db8f31a923ba7f24e6beda345b0
Author: Yang Fan <nullptr.cpp at gmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M clang/lib/APINotes/APINotesYAMLCompiler.cpp
Log Message:
-----------
[clang][APINotes] Fix -Wunused-function warning (NFC)
GCC warning:
```
/llvm-project/clang/lib/APINotes/APINotesYAMLCompiler.cpp:574:23: warning: ‘void {anonymous}::Module::dump()’ defined but not used [-Wunused-function]
574 | LLVM_DUMP_METHOD void Module::dump() {
| ^~~~~~
```
Commit: dfc8da19c5d7ed48f62a4cc588b641f2deee8789
https://github.com/llvm/llvm-project/commit/dfc8da19c5d7ed48f62a4cc588b641f2deee8789
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M lldb/source/Utility/Reproducer.cpp
Log Message:
-----------
[lldb] Remove LLDB_CAPTURE_REPRODUCER override
Remove the LLDB_CAPTURE_REPRODUCER as it is inherently dangerous. The
reproducers require careful initialization which cannot be guaranteed by
overwriting the reproducer mode at this level.
If we want to provide this functionality, we should do it in the driver
instead. It was originally added to enable capture in CI, but we now
have a dedicated CI job that captures and replays the test suite.
Commit: bfcd21876adc3498065e4da92799f613e730d475
https://github.com/llvm/llvm-project/commit/bfcd21876adc3498065e4da92799f613e730d475
Author: Chen Zheng <czhengsz at cn.ibm.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M clang/docs/UsersManual.rst
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Driver/Options.td
M clang/lib/Driver/ToolChains/AIX.h
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/test/Driver/debug-options.c
M llvm/include/llvm/Target/TargetOptions.h
Log Message:
-----------
[debug-info] support new tuning debugger type DBX for XCOFF DWARF
Based on this debugger type, for now, we plan to:
1: use inline string by default for XCOFF DWARF
2: generate no column info for debug line table.
Reviewed By: aprantl
Differential Revision: https://reviews.llvm.org/D99400
Commit: 54c3c2e82874d8ee65b32f1f79bfd494b0551986
https://github.com/llvm/llvm-project/commit/54c3c2e82874d8ee65b32f1f79bfd494b0551986
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M lldb/tools/lldb-vscode/lldb-vscode.cpp
Log Message:
-----------
[lldb-vscode] Consistently use return EXIT_SUCCESS and EXIT_FAILURE (NFC)
Consistently use return with EXIT_SUCCESS or EXIT_FAILURE instead of
mix-and-matching return, exit 0, 1 etc.
Differential revision: https://reviews.llvm.org/D99701
Commit: b7e2c2acb8eea471d0960f01d4c75d45156bd9ae
https://github.com/llvm/llvm-project/commit/b7e2c2acb8eea471d0960f01d4c75d45156bd9ae
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M lldb/tools/lldb-vscode/lldb-vscode.cpp
Log Message:
-----------
[lldb-vscode] Use LLVM's ScopeExit to ensure we always terminate the debugger
Make sure we always terminate the debugger by using a RAII object.
Differential revision: https://reviews.llvm.org/D99702
Commit: d1828937ed8d79a772ec60a8f3c7f4a873f581d4
https://github.com/llvm/llvm-project/commit/d1828937ed8d79a772ec60a8f3c7f4a873f581d4
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2021-03-31 (Wed, 31 Mar 2021)
Changed paths:
M lldb/docs/design/reproducers.rst
M lldb/test/API/lit.cfg.py
R lldb/test/Shell/Reproducer/TestCaptureEnvOverride.test
M lldb/test/Shell/Reproducer/lit.local.cfg
M lldb/test/Shell/lit.cfg.py
Log Message:
-----------
[lldb] Remove references to LLDB_CAPTURE_REPRODUCER
Remove the remaining references to LLDB_CAPTURE_REPRODUCER. I removed
the functionality in an earlier commit but forgot that there was a
corresponding test and logic to unset it in our test suite.
Commit: 630818a850f754af852247c775280de6fde8560e
https://github.com/llvm/llvm-project/commit/630818a850f754af852247c775280de6fde8560e
Author: Max Kazantsev <mkazantsev at azul.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/include/llvm/Transforms/Scalar/GVN.h
M llvm/lib/Transforms/Scalar/GVN.cpp
Log Message:
-----------
[NFC] Disambiguate LI in GVN
Name GVN uses name 'LI' for two different unrelated things:
LoadInst and LoopInfo. This patch relates the variables with
former meaning into 'Load' to disambiguate the code.
Commit: a1d83776bfa186422ec2e1b19eb9d12c96c33348
https://github.com/llvm/llvm-project/commit/a1d83776bfa186422ec2e1b19eb9d12c96c33348
Author: Max Kazantsev <mkazantsev at azul.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/GVN.cpp
Log Message:
-----------
[NFC] Undo some erroneous renamings
Some vars renamed by mistake during auto-replacements. Undoing them.
Commit: 5c703f0fd81960386cc02b9ca618e866c9d5e29a
https://github.com/llvm/llvm-project/commit/5c703f0fd81960386cc02b9ca618e866c9d5e29a
Author: Marek Kurdej <marek.kurdej+llvm.org at gmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M libcxx/CMakeLists.txt
M libcxx/include/__config
M libcxx/include/experimental/simd
M libcxx/include/ext/hash_map
M libcxx/include/ext/hash_set
M libcxx/include/future
M libcxx/include/type_traits
M libcxx/test/std/atomics/types.pass.cpp
M libcxx/test/std/numerics/rand/rand.eng/rand.eng.mers/ctor_sseq_all_zero.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_shared_ptr.pass.cpp
M libcxx/test/support/test_macros.h
M libcxx/utils/libcxx/test/params.py
Log Message:
-----------
[libc++] Build and test with -Wundef warning. NFC.
This will avoid typos like `_LIBCPP_STD_VERS` (<future>) or using `#if TEST_STD_VER > 17` without including "test_macros.h".
Reviewed By: ldionne, #libc
Differential Revision: https://reviews.llvm.org/D99515
Commit: 3bea7306e8669f94bacafae68748a9139cfc0b98
https://github.com/llvm/llvm-project/commit/3bea7306e8669f94bacafae68748a9139cfc0b98
Author: Pavel Labath <pavel at labath.sk>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux.h
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp
M lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_x86.h
M lldb/unittests/Utility/ReproducerInstrumentationTest.cpp
Log Message:
-----------
[lldb] Fix compilation with gcc-6.5
This fixes (works around) two errors with gcc-6.5.
- in the RegisterContext_x86 files, gcc is unable to synthesize a
default constructor -- it thinks it needs to initialize the virtual
base class, even though said classes are abstract. I fix that by
providing a dummy constructor.
- In ReproducerInstrumentationTest, it is not able to deduce that the
TestingRegistry class is movable (it contains a map of unique
pointers). I change the type from Optional<TestingRegistry> to
unique_ptr<TestingRegistry), so that moving is not required
(copying/moving a polymorphic type is not a very good idea in any
case).
Commit: e1d4fb1ebfffffc612d65331f72bb0827d7206d4
https://github.com/llvm/llvm-project/commit/e1d4fb1ebfffffc612d65331f72bb0827d7206d4
Author: Pavel Labath <pavel at labath.sk>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_x86_64.cpp
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_ppc64le.cpp
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_s390x.cpp
M lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp
Log Message:
-----------
[lldb] Fix build errors from 3bea7306e8
The addition of the dummy constructors requires matching changes in os-
and arch-specific files, which I forgot about.
Commit: 335d2df5335f95d49c864ecdba4fd5731c7c3e89
https://github.com/llvm/llvm-project/commit/335d2df5335f95d49c864ecdba4fd5731c7c3e89
Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M mlir/include/mlir-c/AffineMap.h
M mlir/include/mlir/IR/AffineMap.h
M mlir/lib/Bindings/Python/IRAffine.cpp
M mlir/lib/Bindings/Python/mlir/dialects/linalg/opdsl/lang/emitter.py
M mlir/lib/CAPI/IR/AffineMap.cpp
M mlir/lib/IR/AffineMap.cpp
M mlir/test/Bindings/Python/dialects/linalg/opdsl/emit_structured_generic.py
M mlir/test/Bindings/Python/dialects/linalg/ops.py
A mlir/test/Bindings/Python/dialects/linalg/opsrun.py
Log Message:
-----------
[mlir][Python][Linalg] Add missing attributes to linalg ops
This revision tightens up the handling of attributes for both named
and generic linalg ops.
To demonstrate the IR validity, a working e2e Linalg example is added.
Differential Revision: https://reviews.llvm.org/D99430
Commit: 92e7771483597935bce523a6f2a1b6109efe7af0
https://github.com/llvm/llvm-project/commit/92e7771483597935bce523a6f2a1b6109efe7af0
Author: Sam Parker <sam.parker at arm.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td
M llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
M llvm/test/CodeGen/WebAssembly/comparisons-f32.ll
M llvm/test/CodeGen/WebAssembly/comparisons-f64.ll
Log Message:
-----------
[WebAssembly] Invert branch condition on xor input
A frequent pattern for floating point conditional branches use an xor
to invert the input for the branch. Instead we can fold away the xor
by swapping the branch target instead.
Differential Revision: https://reviews.llvm.org/D99171
Commit: 1d463c2a386099597a8e2d26b9b964bc8fda8042
https://github.com/llvm/llvm-project/commit/1d463c2a386099597a8e2d26b9b964bc8fda8042
Author: Harald van Dijk <harald at gigawatt.nl>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M clang/lib/Driver/ToolChains/Gnu.cpp
A clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/i386-unknown-linux-gnu/10.2.0/crtbegin.o
R clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/i386-unknown-linux-gnu/4.6.0/crtbegin.o
A clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtbegin.o
A clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtbeginT.o
A clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtfastmath.o
A clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtbegin.o
A clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtbeginT.o
A clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtfastmath.o
R clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/crtbegin.o
R clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/crtbeginT.o
R clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/crtfastmath.o
A clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/i386-unknown-linux/10.2.0/crtbegin.o
R clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0/crtbegin.o
A clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/i686-unknown-linux/10.2.0/crtbegin.o
R clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/i686-unknown-linux/4.6.0/crtbegin.o
A clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/10.2.0/crtbegin.o
A clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/10.2.0/crtbeginT.o
A clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/10.2.0/crtfastmath.o
R clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbegin.o
R clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbeginT.o
R clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtfastmath.o
A clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/10.2.0/64/crtbegin.o
A clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/10.2.0/crtbegin.o
R clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0/64/crtbegin.o
R clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0/crtbegin.o
A clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/10.2.0/32/crtbegin.o
A clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/10.2.0/crtbegin.o
A clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/10.2.0/x32/crtbegin.o
R clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32/crtbegin.o
R clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbegin.o
R clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32/crtbegin.o
A clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc/x86_64-unknown-gnu/10.2.0/32/crtbegin.o
A clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc/x86_64-unknown-gnu/10.2.0/crtbegin.o
A clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc/x86_64-unknown-gnu/10.2.0/x32/crtbegin.o
R clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc/x86_64-unknown-gnu/4.6.0/32/crtbegin.o
R clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc/x86_64-unknown-gnu/4.6.0/crtbegin.o
R clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc/x86_64-unknown-gnu/4.6.0/x32/crtbegin.o
M clang/test/Driver/baremetal.cpp
M clang/test/Driver/cl-options.c
M clang/test/Driver/cross-linux.c
M clang/test/Driver/env.c
M clang/test/Driver/linux-ld.c
M clang/test/Preprocessor/iwithprefix.c
Log Message:
-----------
[Driver] Fix architecture triplets and search paths for Linux x32
Currently, support for the x32 ABI is handled as a multilib to the
x86_64 target only. However, full self-hosting x32 systems treating it
as a separate architecture with its own architecture triplets as well as
search paths exist as well, in Debian's x32 port and elsewhere.
This adds the missing architecture triplets and search paths so that
clang can work as a native compiler on x32, and updates the tests so
that they pass when using an x32 libdir suffix.
Additionally, we would previously also assume that objects from any
x86_64-linux-gnu GCC installation could be used to target x32. This
changes the logic so that only GCC installations that include x32
support are used when targetting x32, meaning x86_64-linux-gnux32 GCC
installations, and x86_64-linux-gnu and i686-linux-gnu GCC installations
that include x32 multilib support.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D52050
Commit: 1ed53d44d8e9d709fcd96cc6cfc579d71ba4c894
https://github.com/llvm/llvm-project/commit/1ed53d44d8e9d709fcd96cc6cfc579d71ba4c894
Author: Yevgeny Rouban <yrouban at azul.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopFlatten.cpp
Log Message:
-----------
[LoopFlatten] Do not report CFG analyses as up-to-date
Removes CFGAnalyses from the preserved analyses set
returned by LoopFlattenPass::run().
Reviewed By: Dave Green, Ta-Wei Tu
Differential Revision: https://reviews.llvm.org/D99700
Commit: 88a5b35d63f927db69ec953ff487a7ba2504a610
https://github.com/llvm/llvm-project/commit/88a5b35d63f927db69ec953ff487a7ba2504a610
Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
M lldb/source/Plugins/Process/Linux/NativeThreadLinux.h
M lldb/source/Plugins/Process/POSIX/NativeProcessELF.h
M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp
M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.h
M lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h
Log Message:
-----------
Revert "Revert "[LLDB] Arm64/Linux Add MTE and Pointer Authentication registers""
This reverts commit 71b648f7158c7a0b4918eaa3e94d307e4bbfce97.
There was a typo in the last commit which was causing LLDB AArch64 Linux
buildbot testsuite failures. Now fixed in current version.
Commit: dd2a63e1ee53c1178d8e17a3763edc26d23f00a2
https://github.com/llvm/llvm-project/commit/dd2a63e1ee53c1178d8e17a3763edc26d23f00a2
Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbtest.py
A lldb/test/API/commands/register/register/aarch64_dynamic_regset/Makefile
A lldb/test/API/commands/register/register/aarch64_dynamic_regset/TestArm64DynamicRegsets.py
A lldb/test/API/commands/register/register/aarch64_dynamic_regset/main.c
Log Message:
-----------
Revert "Revert "[LLDB] Arm64/Linux test case for MTE and Pointer Authentication regset""
This reverts commit feb6f2c78fa9474e7329c4a809f175b1675d0975.
Commit: b468f0e165ed67c5b1046b295b65e446afee62aa
https://github.com/llvm/llvm-project/commit/b468f0e165ed67c5b1046b295b65e446afee62aa
Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M lldb/test/API/tools/lldb-vscode/launch/TestVSCode_launch.py
Log Message:
-----------
[LLDB] Fix sync issue in TestVSCode_launch.test_progress_events
This fixes flakiness in TestVSCode_launch.test_progress_events
vscode.progress_events some times failed to populate in time for
follow up iterations.
Adding a minor delay before the the for the loop fixes the issue.
Reviewed By: clayborg
Differential Revision: https://reviews.llvm.org/D99497
Commit: dc537158d5372894b539b7cf90ace3cfe911a520
https://github.com/llvm/llvm-project/commit/dc537158d5372894b539b7cf90ace3cfe911a520
Author: Vinayaka Bandishti <vinayaka at polymagelabs.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M mlir/include/mlir/Analysis/Utils.h
M mlir/include/mlir/Transforms/LoopFusionUtils.h
M mlir/lib/Analysis/AffineStructures.cpp
M mlir/lib/Analysis/Utils.cpp
M mlir/lib/Transforms/Utils/LoopFusionUtils.cpp
M mlir/test/Transforms/loop-fusion-slice-computation.mlir
M mlir/test/Transforms/loop-fusion.mlir
M mlir/test/lib/Transforms/TestLoopFusion.cpp
Log Message:
-----------
[MLIR][Affine] Add utility to check if the slice is valid
Fixes a bug in affine fusion pipeline where an incorrect slice is computed.
After the slice computation is done, original domain of the the source is
compared with the new domain that will result if the fusion succeeds. If the
new domain must be a subset of the original domain for the slice to be
valid. If the slice computed is incorrect, fusion based on such a slice is
avoided.
Relevant test cases are added/edited.
Fixes https://bugs.llvm.org/show_bug.cgi?id=49203
Differential Revision: https://reviews.llvm.org/D98239
Commit: e3a13304fc036f25eacee9c084294d3b80f7c5bb
https://github.com/llvm/llvm-project/commit/e3a13304fc036f25eacee9c084294d3b80f7c5bb
Author: David Sherwood <david.sherwood at arm.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
A llvm/test/Transforms/LoopVectorize/AArch64/sve-large-strides.ll
Log Message:
-----------
[NFC] Add tests for scalable vectorization of loops with large stride acesses
This patch just adds tests that we can vectorize loop such as these:
for (i = 0; i < n; i++)
dst[i * 7] += 1;
and
for (i = 0; i < n; i++)
if (cond[i])
dst[i * 7] += 1;
using scalable vectors, where we expect to use gathers and scatters in the
vectorized loop. The vector of pointers used for the gather is identical
to those used for the scatter so there should be no memory dependences.
Tests are added here:
Transforms/LoopVectorize/AArch64/sve-large-strides.ll
Differential Revision: https://reviews.llvm.org/D99192
Commit: df4fa53fddb61c2514e7e09fb7cdde53edced958
https://github.com/llvm/llvm-project/commit/df4fa53fddb61c2514e7e09fb7cdde53edced958
Author: Balázs Kéri <1.int32 at gmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
A clang/test/Analysis/pthreadlock_state.c
A clang/test/Analysis/pthreadlock_state_nottracked.c
Log Message:
-----------
[clang][Checkers] Extend PthreadLockChecker state dump (NFC).
Add printing of map 'DestroyRetVal'.
Reviewed By: steakhal
Differential Revision: https://reviews.llvm.org/D98502
Commit: 6be8662c52424db366f0b33f3203de6ba36f5d61
https://github.com/llvm/llvm-project/commit/6be8662c52424db366f0b33f3203de6ba36f5d61
Author: Florian Hahn <flo at fhahn.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/AArch64/vectorize-free-extracts-inserts.ll
Log Message:
-----------
[SLP] Add test cases for missing SLP vectorization on AArch64.
Commit: 0f5ebbcc7fc38f587ffd0b84da4693a8625c1ccb
https://github.com/llvm/llvm-project/commit/0f5ebbcc7fc38f587ffd0b84da4693a8625c1ccb
Author: Dmitry Preobrazhensky <dmitry.preobrazhensky at amd.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.td
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/lib/Target/AMDGPU/VOP1Instructions.td
M llvm/lib/Target/AMDGPU/VOP2Instructions.td
M llvm/lib/Target/AMDGPU/VOP3Instructions.td
M llvm/lib/Target/AMDGPU/VOP3PInstructions.td
M llvm/lib/Target/AMDGPU/VOPInstructions.td
Log Message:
-----------
[AMDGPU][MC] Added flag to identify VOP instructions which have a single variant
By convention, VOP1/2/C instructions which can be promoted to VOP3 have _e32 suffix while promoted instructions have _e64 suffix. Instructions which have a single variant should have no _e32/_e64 suffix. Unfortunately there was no simple way to identify single variant instructions - it was implemented by a hack. See bug https://bugs.llvm.org/show_bug.cgi?id=39086.
This fix simplifies handling of single VOP instructions by adding a dedicated flag.
Differential Revision: https://reviews.llvm.org/D99408
Commit: f7aeaced658c507c5d5ac6e589f4844588267eef
https://github.com/llvm/llvm-project/commit/f7aeaced658c507c5d5ac6e589f4844588267eef
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
Log Message:
-----------
[X86][SSE] Add isHorizOp helper function. NFCI.
Commit: 301319840e112c090b6c424a9ade475b7504b34a
https://github.com/llvm/llvm-project/commit/301319840e112c090b6c424a9ade475b7504b34a
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/horizontal-sum.ll
Log Message:
-----------
[X86][SSE] Enable (F)HADD/SUB handling to SimplifyMultipleUseDemandedVectorElts
Attempt to bypass unused horiz-op operands.
This is very similar to the PACKSS/PACKUS handling - we should try to merge these.
Commit: abbe80fa52c5286ec929116df6a58d793d6f0d0e
https://github.com/llvm/llvm-project/commit/abbe80fa52c5286ec929116df6a58d793d6f0d0e
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/horizontal-sum.ll
Log Message:
-----------
[X86][SSE] Fold HOP(HOP(X,X),HOP(Y,Y)) -> HOP(PERMUTE(HOP(X,Y)),PERMUTE(HOP(X,Y))
For slow-hop targets, attempt to merge HADD/SUB pairs used in chains.
Commit: cd953434f2a406a19e8ea4daeb603e07071a0c32
https://github.com/llvm/llvm-project/commit/cd953434f2a406a19e8ea4daeb603e07071a0c32
Author: Dmitry Preobrazhensky <dmitry.preobrazhensky at amd.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/VOP2Instructions.td
M llvm/lib/Target/AMDGPU/VOP3Instructions.td
M llvm/test/CodeGen/AMDGPU/GlobalISel/ashr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-short-clamp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fshl.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.large.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.atomic.inc.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.global.atomic.csub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/lshr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/saddsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/shl-ext-reduce.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/shl.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/uaddsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/usubsat.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_pixelshader.ll
M llvm/test/CodeGen/AMDGPU/carryout-selection.ll
M llvm/test/CodeGen/AMDGPU/cgp-addressing-modes-gfx1030.ll
M llvm/test/CodeGen/AMDGPU/chain-hi-to-lo.ll
M llvm/test/CodeGen/AMDGPU/ctlz.ll
M llvm/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll
M llvm/test/CodeGen/AMDGPU/expand-scalar-carry-out-select-user.ll
M llvm/test/CodeGen/AMDGPU/fshr.ll
M llvm/test/CodeGen/AMDGPU/gfx10-vop-literal.ll
M llvm/test/CodeGen/AMDGPU/global-saddr-atomics.ll
M llvm/test/CodeGen/AMDGPU/global-saddr-load.ll
M llvm/test/CodeGen/AMDGPU/idiv-licm.ll
M llvm/test/CodeGen/AMDGPU/idot2.ll
M llvm/test/CodeGen/AMDGPU/idot4s.ll
M llvm/test/CodeGen/AMDGPU/idot4u.ll
M llvm/test/CodeGen/AMDGPU/idot8s.ll
M llvm/test/CodeGen/AMDGPU/idot8u.ll
M llvm/test/CodeGen/AMDGPU/imm16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fmul.legacy.ll
M llvm/test/CodeGen/AMDGPU/llvm.mulo.ll
M llvm/test/CodeGen/AMDGPU/llvm.pow-gfx9.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-nontemporal.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-volatile.ll
M llvm/test/CodeGen/AMDGPU/min.ll
M llvm/test/CodeGen/AMDGPU/offset-split-flat.ll
M llvm/test/CodeGen/AMDGPU/offset-split-global.ll
M llvm/test/CodeGen/AMDGPU/preserve-hi16.ll
M llvm/test/CodeGen/AMDGPU/saddo.ll
M llvm/test/CodeGen/AMDGPU/saddsat.ll
M llvm/test/CodeGen/AMDGPU/sdwa-peephole.ll
M llvm/test/CodeGen/AMDGPU/shl_add_ptr_csub.ll
M llvm/test/CodeGen/AMDGPU/shrink-add-sub-constant.ll
M llvm/test/CodeGen/AMDGPU/ssubsat.ll
M llvm/test/CodeGen/AMDGPU/usubsat.ll
M llvm/test/CodeGen/AMDGPU/vgpr-descriptor-waterfall-loop-idom-update.ll
M llvm/test/CodeGen/AMDGPU/wave32.ll
M llvm/test/MC/AMDGPU/gfx90a_asm_features.s
M llvm/test/MC/AMDGPU/literalv216.s
M llvm/test/MC/AMDGPU/vop3-literal.s
M llvm/test/MC/AMDGPU/wave32.s
M llvm/test/MC/AMDGPU/wave_any.s
M llvm/test/MC/Disassembler/AMDGPU/gfx10_dasm_all.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx90a_dasm_features.txt
M llvm/test/MC/Disassembler/AMDGPU/literalv216_gfx10.txt
M llvm/test/MC/Disassembler/AMDGPU/vop3-literal.txt
M llvm/test/MC/Disassembler/AMDGPU/wave32.txt
Log Message:
-----------
[AMDGPU][MC][GFX10][GFX90A] Corrected _e32/_e64 suffices
Fixed bugs https://bugs.llvm.org//show_bug.cgi?id=49643, https://bugs.llvm.org//show_bug.cgi?id=49644, https://bugs.llvm.org//show_bug.cgi?id=49645.
Differential Revision: https://reviews.llvm.org/D99413
Commit: fcea4181bbfbc15a27ad4d3c06a09b706b1d6c47
https://github.com/llvm/llvm-project/commit/fcea4181bbfbc15a27ad4d3c06a09b706b1d6c47
Author: Michał Górny <mgorny at moritz.systems>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M lldb/test/API/tools/lldb-server/TestLldbGdbServer.py
M lldb/test/API/tools/lldb-server/vCont-threads/TestGdbRemote_vContThreads.py
Log Message:
-----------
[lldb] [test] Mark lldb-server multiprocess tests as LLGS cat
Commit: 48e3da13519dea3bd91ab7de656c7d46105c2c01
https://github.com/llvm/llvm-project/commit/48e3da13519dea3bd91ab7de656c7d46105c2c01
Author: Pavel Labath <pavel at labath.sk>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M lldb/test/API/commands/target/auto-install-main-executable/Makefile
M lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py
M lldb/test/API/commands/target/auto-install-main-executable/main.cpp
Log Message:
-----------
[lldb] Rewrite TestAutoInstallMainExecutable logic
The test uses debug info from one binary to debug a different one. This
does not work on macos, and its pure luck that it works elsewhere (the
variable that it inspects happens to have the same address in both).
The purpose of this test is to verify that lldb has not overwritten the
target executable. That can be more easily achieved by checking the exit
code of the binary, so change the test to do that.
Also remove the llgs_test decorator, as it's preventing the test from
running on macos. All the test needs is the platform functionality of
lldb-server, which is available everywhere.
Commit: ce98a0556aa2d0144af7fca83ff06061a137179d
https://github.com/llvm/llvm-project/commit/ce98a0556aa2d0144af7fca83ff06061a137179d
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP]Remove `else` after `return`, NFC.`
Commit: bad5ee15ea2e5a5aaaed9c9a5d9982e23cedba55
https://github.com/llvm/llvm-project/commit/bad5ee15ea2e5a5aaaed9c9a5d9982e23cedba55
Author: Pavel Labath <pavel at labath.sk>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M lldb/test/API/functionalities/load_lazy/TestLoadUsingLazyBind.py
Log Message:
-----------
[lldb] Make TestLoadUsingLazyBind work on linux
and probably other posix oses. Use extra_images to ensure
LD_LIBRARY_PATH is set correctly.
Also take the opportunity to remove hand-rolled library extension
management code in favor of the existing one.
Commit: 7c541a195f651aa8d6aa270db83932a6ac7fac78
https://github.com/llvm/llvm-project/commit/7c541a195f651aa8d6aa270db83932a6ac7fac78
Author: Anastasia Stulova <anastasia.stulova at arm.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M clang/docs/OpenCLSupport.rst
Log Message:
-----------
[OpenCL][Docs] Added a label for C++ libs section and example link
Commit: dc14e89a1fab6a840c5d8bc3f2bd29f1d1b190be
https://github.com/llvm/llvm-project/commit/dc14e89a1fab6a840c5d8bc3f2bd29f1d1b190be
Author: Andrzej Warzynski <andrzej.warzynski at arm.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M flang/lib/Frontend/FrontendOptions.cpp
Log Message:
-----------
[flang] Move .f77 to the list of fixed-form file extensions
The free form was introduced in Fortran 90, so treating .f77 as
free-form was a bug.
Differential Revision: https://reviews.llvm.org/D99494
Commit: 77d625f8d8aa08cd162d20af51c41776a5034705
https://github.com/llvm/llvm-project/commit/77d625f8d8aa08cd162d20af51c41776a5034705
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/X86/haddsub-undef.ll
M llvm/test/CodeGen/X86/phaddsub.ll
M llvm/test/CodeGen/X86/x86-interleaved-access.ll
Log Message:
-----------
[DAG] MergeInnerShuffle with BinOps - sometimes accept undef mask elements
If the inner shuffle already contains undef elements, then accept them in the merged shuffle as well.
This helps some X86 HADD/SUB patterns where slow targets were ending up with HADD/SUB because the (un)merged shuffles were stuck either side of the ADD/SUB - meaning we ended up with a total cost much higher than the "2*shuffle+add" that a slow target usually expands a HADD/SUB to.
Commit: c03696da5e13d355775dd4382957b3dcd3c3ad7c
https://github.com/llvm/llvm-project/commit/c03696da5e13d355775dd4382957b3dcd3c3ad7c
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/ext-trunc.ll
M llvm/test/Transforms/SLPVectorizer/X86/inst_size_bug.ll
Log Message:
-----------
[SLP]Improve and fix getVectorElementSize.
1. Need to cleanup InstrElementSize map for each new tree, otherwise might
use sizes from the previous run of the vectorization attempt.
2. No need to include into analysis the instructions from the different basic
blocks to save compile time.
Differential Revision: https://reviews.llvm.org/D99677
Commit: 65c8bfb5094e73f15a826d37146e4bb7c74a5a7e
https://github.com/llvm/llvm-project/commit/65c8bfb5094e73f15a826d37146e4bb7c74a5a7e
Author: Brendon Cahoon <brendon.cahoon at amd.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
M llvm/test/CodeGen/AMDGPU/omod.ll
Log Message:
-----------
[AMDGPU] Enable output modifiers for double precision instructions
Update SIFoldOperands pass to recognize v_add_f64 and v_mul_f64
instructions for folding output modifiers.
Differential Revision: https://reviews.llvm.org/D99505
Commit: 0934fa4f5d5b07856a73b5dddd395f70c8a3fa84
https://github.com/llvm/llvm-project/commit/0934fa4f5d5b07856a73b5dddd395f70c8a3fa84
Author: Bradley Smith <bradley.smith at arm.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/sve-calling-convention.ll
M llvm/test/CodeGen/AArch64/sve-tailcall.ll
Log Message:
-----------
[AArch64][SVE] SVE functions should use the SVE calling convention for fast calls
When an SVE function calls another SVE function using the C calling
convention we use the more efficient SVE VectorCall PCS. However,
for the Fast calling convention we're incorrectly falling back to
the generic AArch64 PCS.
This patch adds the same "can use SVE vector calling convention"
detection used by CallingConv::C to CallingConv::Fast.
Co-authored-by: Paul Walker <paul.walker at arm.com>
Differential Revision: https://reviews.llvm.org/D99657
Commit: 2f45e632c0029d6efa0f8df210c2f5a3f3affc17
https://github.com/llvm/llvm-project/commit/2f45e632c0029d6efa0f8df210c2f5a3f3affc17
Author: Bradley Smith <bradley.smith at arm.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/sve-fixed-length-fp-select.ll
A llvm/test/CodeGen/AArch64/sve-fixed-length-fp-vselect.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-int-select.ll
A llvm/test/CodeGen/AArch64/sve-fixed-length-int-vselect.ll
Log Message:
-----------
[AArch64][SVE] Improve codegen for select nodes with fixed types
Additionally, move the existing fixed vselect tests to *-vselect.ll.
Differential Revision: https://reviews.llvm.org/D99418
Commit: 7b921a674756dacebbe0431211ce43edb3493230
https://github.com/llvm/llvm-project/commit/7b921a674756dacebbe0431211ce43edb3493230
Author: Anirudh Prasad <anirudh_prasad at hotmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/include/llvm/MC/MCParser/MCAsmLexer.h
M llvm/lib/MC/MCParser/AsmLexer.cpp
M llvm/unittests/MC/SystemZ/SystemZAsmLexerTest.cpp
Log Message:
-----------
[AsmParser][SystemZ][z/OS] Add in support to accept "#" as part of an Identifier token
- This patch adds in support to accept the "#" character as part of an Identifier.
- This support is needed especially for the HLASM dialect since "#" is treated as part of the valid "Alphabet" range
- The way this is done is by making use of the previous precedent set by the `AllowAtInIdentifier` field in `MCAsmLexer.h`. A new field called `AllowHashInIdentifier` is introduced.
- The static function `IsIdentifierChar` is also updated to accept the `#` character if the `AllowHashInIdentifier` field is set to true.
Note: The field introduced in `MCAsmLexer.h` could very well be moved to `MCAsmInfo.h`. I'm not opposed to it. I decided to put it in `MCAsmLexer` since there seems to be some sort of precedent already with `AllowAtInIdentifier`.
Reviewed By: abhina.sreeskantharajan, nickdesaulniers, MaskRay
Differential Revision: https://reviews.llvm.org/D99277
Commit: 1ea9fa8c507ec360cf43faf46d13b149e37c950d
https://github.com/llvm/llvm-project/commit/1ea9fa8c507ec360cf43faf46d13b149e37c950d
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/ParsedAttr.h
M clang/lib/Parse/ParseDecl.cpp
M clang/test/AST/sourceranges.cpp
M clang/test/SemaCXX/switch-implicit-fallthrough.cpp
Log Message:
-----------
[clang][parser] Set source ranges for GNU-style attributes
Set the source ranges for parsed GNU-style attributes in
ParseGNUAttributes(), the same way that ParseCXX11Attributes() does it.
Differential Revision: https://reviews.llvm.org/D75844
Commit: 908a267b5a3b8dff1cd2af0f5971c05c30aaccb0
https://github.com/llvm/llvm-project/commit/908a267b5a3b8dff1cd2af0f5971c05c30aaccb0
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/ParsedAttr.h
M clang/lib/Parse/ParseDecl.cpp
M clang/test/AST/sourceranges.cpp
M clang/test/SemaCXX/switch-implicit-fallthrough.cpp
Log Message:
-----------
Revert "[clang][parser] Set source ranges for GNU-style attributes"
This reverts commit 1ea9fa8c507ec360cf43faf46d13b149e37c950d.
Commit: ce61def529e2d9ef46b79c9d1f489d69b45b95bf
https://github.com/llvm/llvm-project/commit/ce61def529e2d9ef46b79c9d1f489d69b45b95bf
Author: Mircea Trofin <mtrofin at google.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/include/llvm/CodeGen/LiveIntervalUnion.h
M llvm/lib/CodeGen/LiveIntervalUnion.cpp
M llvm/lib/CodeGen/LiveRegMatrix.cpp
M llvm/lib/CodeGen/RegAllocGreedy.cpp
M llvm/lib/Target/AArch64/AArch64Subtarget.h
M llvm/lib/Target/X86/X86Subtarget.h
M llvm/test/CodeGen/AArch64/ragreedy-local-interval-cost.ll
M llvm/test/CodeGen/X86/bug26810.ll
M llvm/test/CodeGen/X86/greedy_regalloc_bad_eviction_sequence.ll
M llvm/test/CodeGen/X86/i128-mul.ll
M llvm/test/CodeGen/X86/mmx-arith.ll
M llvm/test/CodeGen/X86/optimize-max-0.ll
Log Message:
-----------
[regalloc] Ensure Query::collectInterferringVregs is called before interval iteration
The main part of the patch is the change in RegAllocGreedy.cpp: Q.collectInterferringVregs()
needs to be called before iterating the interfering live ranges.
The rest of the patch offers support that is the case: instead of clearing the query's
InterferingVRegs field, we invalidate it. The clearing happens when the live reg matrix
is invalidated (existing triggering mechanism).
Without the change in RegAllocGreedy.cpp, the compiler ices.
This patch should make it more easily discoverable by developers that
collectInterferringVregs needs to be called before iterating.
I will follow up with a subsequent patch to improve the usability and maintainability of Query.
Differential Revision: https://reviews.llvm.org/D98232
Commit: e2c6621e638e4dc30963293bff052784d3a3305a
https://github.com/llvm/llvm-project/commit/e2c6621e638e4dc30963293bff052784d3a3305a
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/include/llvm/IR/Value.h
M llvm/lib/Analysis/Loads.cpp
M llvm/lib/IR/Value.cpp
M llvm/test/Transforms/LICM/hoist-alloc.ll
M llvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll
Log Message:
-----------
[deref-at-point] restrict inference of dereferenceability based on allocsize attribute
Support deriving dereferenceability facts from allocation sites with known object sizes while correctly accounting for any possibly frees between allocation and use site. (At the moment, we're conservative and only allowing it in functions where we know we can't free.)
This is part of the work on deref-at-point semantics. I'm making the change unconditional as the miscompile in this case is way too easy to trip by accident, and the optimization was only recently added (by me).
There will be a follow up patch wiring through TLI since that should now be doable without introducing widespread miscompiles.
Differential Revision: https://reviews.llvm.org/D95815
Commit: b1fbfd9e4c2c4d630eb25588061b3096704fe680
https://github.com/llvm/llvm-project/commit/b1fbfd9e4c2c4d630eb25588061b3096704fe680
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
Log Message:
-----------
[AMDGPU] Small cleanup to constructRetValue and its caller. NFC.
Commit: 802c5ce364a21c54c1568c8791b1d5f36c11829e
https://github.com/llvm/llvm-project/commit/802c5ce364a21c54c1568c8791b1d5f36c11829e
Author: Stella Stamenova <stilis at microsoft.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py
Log Message:
-----------
[lldb] Un-XFAIL TestAutoInstallMainExecutable on Windows
Commit: 7a4abc07dd8f1d8217e482ebbf438197c1aea7f0
https://github.com/llvm/llvm-project/commit/7a4abc07dd8f1d8217e482ebbf438197c1aea7f0
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/test/Transforms/LoopVectorize/assume.ll
Log Message:
-----------
[LoopVectorize] auto-generate complete checks; NFC
We can't see how much overhead/redundancy is being
created with the partial checks.
To make it smaller and easier to read, I reduced the
vectorization factor because that does not add new
information - it just duplicates things.
Commit: 56b39afb58627507ffbc7eaa749781a30b750c03
https://github.com/llvm/llvm-project/commit/56b39afb58627507ffbc7eaa749781a30b750c03
Author: cchen <chichunchen844 at gmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M clang/docs/OpenMPSupport.rst
Log Message:
-----------
[OpenMP51][DOCS] Mark "add present modifier in defaultmap clause" as
done, NFC.
Commit: 97834378852b1eeef34fae7c9354a7f33327004e
https://github.com/llvm/llvm-project/commit/97834378852b1eeef34fae7c9354a7f33327004e
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
A llvm/test/Transforms/FunctionAttrs/nosync.ll
Log Message:
-----------
[tests] Cover the most basic cases of nosync inference
Commit: d61b40ed27509d8a99b4d85499a8d5ca9f37f111
https://github.com/llvm/llvm-project/commit/d61b40ed27509d8a99b4d85499a8d5ca9f37f111
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMatInt.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMatInt.h
M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/test/CodeGen/RISCV/copysign-casts.ll
M llvm/test/CodeGen/RISCV/double-bitmanip-dagcombines.ll
M llvm/test/CodeGen/RISCV/double-intrinsics.ll
M llvm/test/CodeGen/RISCV/float-bit-preserving-dagcombines.ll
M llvm/test/CodeGen/RISCV/imm.ll
M llvm/test/CodeGen/RISCV/rv64zbp.ll
M llvm/test/CodeGen/RISCV/rv64zbs.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-int.ll
M llvm/test/CodeGen/RISCV/rvv/vreductions-int-rv64.ll
M llvm/test/CodeGen/RISCV/sadd_sat.ll
M llvm/test/CodeGen/RISCV/sadd_sat_plus.ll
M llvm/test/CodeGen/RISCV/srem-seteq-illegal-types.ll
M llvm/test/CodeGen/RISCV/srem-vector-lkk.ll
M llvm/test/CodeGen/RISCV/ssub_sat.ll
M llvm/test/CodeGen/RISCV/ssub_sat_plus.ll
M llvm/test/CodeGen/RISCV/urem-seteq-illegal-types.ll
M llvm/test/MC/RISCV/rv64c-aliases-valid.s
M llvm/test/MC/RISCV/rv64i-aliases-valid.s
Log Message:
-----------
[RISCV] Improve 64-bit integer materialization for some cases.
This adds a new integer materialization strategy mainly targeted
at 64-bit constants like 0xffffffff where there are 32 or more trailing
ones with leading zeros. We can materialize these by using an addi -1
and srli to restore the leading zeros. This matches what gcc does.
I haven't limited to just these cases though. The implementation
here takes the constant, shifts out all the leading zeros and
shifts ones into the LSBs, creates the new sequence, adds an srli,
and checks if this is shorter than our original strategy.
I've separated the recursive portion into a standalone function
so I could append the new strategy outside of the recursion. Since
external users are no longer using the recursive function, I've
cleaned up the external interface to return the sequence instead of
taking a vector by reference.
Reviewed By: asb
Differential Revision: https://reviews.llvm.org/D98821
Commit: 85ff35a9529a1ea9ed7ab8cda10761d66705d518
https://github.com/llvm/llvm-project/commit/85ff35a9529a1ea9ed7ab8cda10761d66705d518
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M clang/lib/Headers/__clang_hip_cmath.h
Log Message:
-----------
[HIP] remove overloaded abs in header
This function seems to be introduced by accident by
https://github.com/llvm/llvm-project/commit/aa2b593f1495a972a4a592952760ec9d5f7c01f1
Such overloaded abs function did not exist before
the refactoring, and does not exist in
https://github.com/llvm/llvm-project/blob/main/clang/lib/Headers/__clang_cuda_cmath.h
Conceptually it also does not make sense, since it adds something like
double abs(int x) {
return ::abs((double)x);
}
It caused regressions in CuPy.
Reviewed by: Aaron Enye Shi, Artem Belevich
Differential Revision: https://reviews.llvm.org/D99738
Commit: 0af4e74aef2eaddc17e1e92eb6d1102cdb5f8ff4
https://github.com/llvm/llvm-project/commit/0af4e74aef2eaddc17e1e92eb6d1102cdb5f8ff4
Author: Joseph Huber <jhuber6 at vols.utk.edu>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M openmp/libomptarget/src/omptarget.cpp
Log Message:
-----------
[OpenMP][NFC] Fix typo in libomptarget error message
Summary:
There was a typo suggesting the user to use `LIBOMPTARGET_DEBUG` instead of
`LIBOMPTARGET_INFO`
Commit: 0c653d4c3d1426267337576ab202bb594144111c
https://github.com/llvm/llvm-project/commit/0c653d4c3d1426267337576ab202bb594144111c
Author: Dave Lee <davelee.com at gmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M lldb/docs/resources/test.rst
Log Message:
-----------
[lldb] Update test.rst with a paragraph about pdb
Debugging tests sometimes involves debugging the Python source. This adds a paragraph to
the "Debugging Test Failures" section about using `pdb`, and also describes how to run
lldb commands from pdb.
Differential Revision: https://reviews.llvm.org/D99744
Commit: 0bc5436ae892eaa6ee038f2d1ea26e02a72eed96
https://github.com/llvm/llvm-project/commit/0bc5436ae892eaa6ee038f2d1ea26e02a72eed96
Author: Samuel <swamulism at gmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
R llvm/test/Reduce/Inputs/remove-args.py
R llvm/test/Reduce/Inputs/remove-bbs.py
R llvm/test/Reduce/Inputs/remove-instructions.py
R llvm/test/Reduce/Inputs/remove-metadata.py
R llvm/test/Reduce/do-not-remove-terminator.ll
R llvm/test/Reduce/no-replace-intrinsic-callee-with-undef.ll
R llvm/test/Reduce/remove-alias.ll
R llvm/test/Reduce/remove-all-of-multiple-args.ll
R llvm/test/Reduce/remove-args-2.ll
R llvm/test/Reduce/remove-args-from-declaration.ll
R llvm/test/Reduce/remove-args-used-by-ret.ll
R llvm/test/Reduce/remove-args.ll
R llvm/test/Reduce/remove-attributes-from-intrinsic-like-functions.ll
R llvm/test/Reduce/remove-attributes-from-intrinsics.ll
R llvm/test/Reduce/remove-bbs-ret-nonvoid.ll
R llvm/test/Reduce/remove-bbs-unwinded-to.ll
R llvm/test/Reduce/remove-bbs.ll
R llvm/test/Reduce/remove-call-site-attributes.ll
R llvm/test/Reduce/remove-dso-local.ll
R llvm/test/Reduce/remove-funcs.ll
R llvm/test/Reduce/remove-function-arguments-of-funcs-used-in-blockaddress.ll
R llvm/test/Reduce/remove-function-attributes.ll
R llvm/test/Reduce/remove-function-bodies-comdat.ll
R llvm/test/Reduce/remove-function-bodies-used-in-globals.ll
R llvm/test/Reduce/remove-function-bodies.ll
R llvm/test/Reduce/remove-global-variable-attributes.ll
R llvm/test/Reduce/remove-global-vars.ll
R llvm/test/Reduce/remove-instructions.ll
R llvm/test/Reduce/remove-invoked-functions.ll
R llvm/test/Reduce/remove-metadata.ll
R llvm/test/Reduce/remove-multiple-use-of-args-in-same-instruction.ll
R llvm/test/Reduce/remove-multiple-use-of-global-vars-in-same-instruction.ll
R llvm/test/Reduce/remove-operand-bundles.ll
R llvm/test/Reduce/remove-single-arg.ll
R llvm/test/Reduce/remove-unused-declarations.ll
A llvm/test/tools/llvm-reduce/Inputs/remove-args.py
A llvm/test/tools/llvm-reduce/Inputs/remove-bbs.py
A llvm/test/tools/llvm-reduce/Inputs/remove-instructions.py
A llvm/test/tools/llvm-reduce/Inputs/remove-metadata.py
A llvm/test/tools/llvm-reduce/do-not-remove-terminator.ll
A llvm/test/tools/llvm-reduce/no-replace-intrinsic-callee-with-undef.ll
A llvm/test/tools/llvm-reduce/remove-alias.ll
A llvm/test/tools/llvm-reduce/remove-all-of-multiple-args.ll
A llvm/test/tools/llvm-reduce/remove-args-2.ll
A llvm/test/tools/llvm-reduce/remove-args-from-declaration.ll
A llvm/test/tools/llvm-reduce/remove-args-used-by-ret.ll
A llvm/test/tools/llvm-reduce/remove-args.ll
A llvm/test/tools/llvm-reduce/remove-attributes-from-intrinsic-like-functions.ll
A llvm/test/tools/llvm-reduce/remove-attributes-from-intrinsics.ll
A llvm/test/tools/llvm-reduce/remove-bbs-ret-nonvoid.ll
A llvm/test/tools/llvm-reduce/remove-bbs-unwinded-to.ll
A llvm/test/tools/llvm-reduce/remove-bbs.ll
A llvm/test/tools/llvm-reduce/remove-call-site-attributes.ll
A llvm/test/tools/llvm-reduce/remove-dso-local.ll
A llvm/test/tools/llvm-reduce/remove-funcs.ll
A llvm/test/tools/llvm-reduce/remove-function-arguments-of-funcs-used-in-blockaddress.ll
A llvm/test/tools/llvm-reduce/remove-function-attributes.ll
A llvm/test/tools/llvm-reduce/remove-function-bodies-comdat.ll
A llvm/test/tools/llvm-reduce/remove-function-bodies-used-in-globals.ll
A llvm/test/tools/llvm-reduce/remove-function-bodies.ll
A llvm/test/tools/llvm-reduce/remove-global-variable-attributes.ll
A llvm/test/tools/llvm-reduce/remove-global-vars.ll
A llvm/test/tools/llvm-reduce/remove-instructions.ll
A llvm/test/tools/llvm-reduce/remove-invoked-functions.ll
A llvm/test/tools/llvm-reduce/remove-metadata.ll
A llvm/test/tools/llvm-reduce/remove-multiple-use-of-args-in-same-instruction.ll
A llvm/test/tools/llvm-reduce/remove-multiple-use-of-global-vars-in-same-instruction.ll
A llvm/test/tools/llvm-reduce/remove-operand-bundles.ll
A llvm/test/tools/llvm-reduce/remove-single-arg.ll
A llvm/test/tools/llvm-reduce/remove-unused-declarations.ll
Log Message:
-----------
[llvm-reduce] Move tests to tools folder
Move tests for llvm-reduce to tools folder
Reviewed By: fhahn, lebedev.ri
Differential Revision: https://reviews.llvm.org/D99632
Commit: 0ba0a7315c4f74f48a75c6d793fbf6921b5cc460
https://github.com/llvm/llvm-project/commit/0ba0a7315c4f74f48a75c6d793fbf6921b5cc460
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/test/CodeGen/PowerPC/pr27078.ll
Log Message:
-----------
[PPC] Regenerate PR27078 test checks
Commit: 96d8c6b571e696f520a054820d13872cdc17c793
https://github.com/llvm/llvm-project/commit/96d8c6b571e696f520a054820d13872cdc17c793
Author: Petr Hosek <phosek at google.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M libcxx/CMakeLists.txt
M libcxx/cmake/Modules/HandleLibCXXABI.cmake
M libcxx/docs/BuildingLibcxx.rst
M libcxx/include/CMakeLists.txt
M libcxx/src/CMakeLists.txt
M libcxxabi/CMakeLists.txt
M libcxxabi/src/CMakeLists.txt
M libunwind/CMakeLists.txt
M libunwind/src/CMakeLists.txt
Log Message:
-----------
[CMake] Remove {LIBCXX,LIBCXXABI,LIBUNWIND}_INSTALL_PREFIX
These variables were introduced during early work on the runtimes build
but were obsoleted by {LIBCXX,LIBCXXABI,LIBUNWIND}_INSTALL_LIBRARY_DIR.
Differential Revision: https://reviews.llvm.org/D99697
Commit: 4af6251cea025c1ea67013af0ff2a13a63204292
https://github.com/llvm/llvm-project/commit/4af6251cea025c1ea67013af0ff2a13a63204292
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.h
Log Message:
-----------
[AMDGPU][SDag] Add IMG init in AdjustInstrPostInstrSelection
Doing this in a post-isel hook avoids the cost of running SIAddIMGInit
which is yet another pass over the MIR.
Differential Revision: https://reviews.llvm.org/D99747
Commit: 3d07a6d891f58c5ebb64e0ff63f27ca97493e6f4
https://github.com/llvm/llvm-project/commit/3d07a6d891f58c5ebb64e0ff63f27ca97493e6f4
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
Log Message:
-----------
[AMDGPU][GlobalISel] Add IMG init in selectImageIntrinsic
Doing this during instruction selection avoids the cost of running
SIAddIMGInit which is yet another pass over the MIR.
Differential Revision: https://reviews.llvm.org/D99670
Commit: fdc4f19e2f80b2d8b6f667d854a2305f0025b34b
https://github.com/llvm/llvm-project/commit/fdc4f19e2f80b2d8b6f667d854a2305f0025b34b
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.h
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/AMDGPU/CMakeLists.txt
R llvm/lib/Target/AMDGPU/SIAddIMGInit.cpp
Log Message:
-----------
[AMDGPU] Remove SIAddIMGInit pass which is now unused
Differential Revision: https://reviews.llvm.org/D99748
Commit: 7d15fb5779452c5efbceb82ce0e1f8724a82d290
https://github.com/llvm/llvm-project/commit/7d15fb5779452c5efbceb82ce0e1f8724a82d290
Author: Vedant Kumar <vsk at apple.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbutil.py
Log Message:
-----------
[lldb/test] Respect --apple-sdk path when querying SDK info
Respect --apple-sdk <path> if it's specified. If the SDK is simply
mounted from some disk image, and not actually installed, this is the
only way to use it.
Differential Revision: https://reviews.llvm.org/D99746
Commit: dadcd940f0897c125f568c7d355cc23c6a5544f4
https://github.com/llvm/llvm-project/commit/dadcd940f0897c125f568c7d355cc23c6a5544f4
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/test/CodeGen/RISCV/mul.ll
Log Message:
-----------
[RISCV] Add MULHU and MULHS tests with a constant operand.
Commit: b7c2e577cc8f9f92b7ce206ea7d6cba3eaa3f98c
https://github.com/llvm/llvm-project/commit/b7c2e577cc8f9f92b7ce206ea7d6cba3eaa3f98c
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.h
M llvm/lib/Target/RISCV/RISCVInstrInfoM.td
M llvm/test/CodeGen/RISCV/mul.ll
Log Message:
-----------
[RISCV] Add custom type legalization to form MULHSU when possible.
There's no target independent ISD opcode for MULHSU, so custom
legalize 2*XLen multiplies ourselves. We have to be a little
careful to prefer MULHU or MULHSU.
I thought about doing this in isel by pattern matching the
(add (mul X, (srai Y, XLen-1)), (mulhu X, Y)) pattern. I decided
against this because the add might become part of a chain of adds.
I don't trust DAG combine not to reassociate with other adds making
it difficult to find both pieces again.
Reviewed By: asb
Differential Revision: https://reviews.llvm.org/D99479
Commit: 4be379b18bdece0929df2f3d2d3bebc739f6bece
https://github.com/llvm/llvm-project/commit/4be379b18bdece0929df2f3d2d3bebc739f6bece
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn
Log Message:
-----------
[gn build] Port fdc4f19e2f80
Commit: 1addc231cd5b948012c3c07ad0f6b671a0793e55
https://github.com/llvm/llvm-project/commit/1addc231cd5b948012c3c07ad0f6b671a0793e55
Author: Nick Desaulniers <ndesaulniers at google.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/ARM/ARMInstrThumb2.td
M llvm/test/MC/ARM/basic-thumb2-instructions.s
Log Message:
-----------
[MC][ARM] add .w suffixes for ORN/ORNS T1
See also:
F5.1.128 ORN, ORNS (register) T1 shift or rotate by value variant
of the Arm ARM.
Link: https://github.com/ClangBuiltLinux/linux/issues/1309
Reviewed By: DavidSpickett
Differential Revision: https://reviews.llvm.org/D99538
Commit: d157e3f387c918a6736fb29fccd78a80425e5f88
https://github.com/llvm/llvm-project/commit/d157e3f387c918a6736fb29fccd78a80425e5f88
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
M llvm/test/CodeGen/RISCV/rvv/vmsgt-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmsgt-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmsgtu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmsgtu-rv64.ll
Log Message:
-----------
[RISCV] Fix handling of nxvXi64 vmsgt(u).vx intrinsics on RV32.
We need to splat the scalar separately and use .vv, but there is
no vmsgt(u).vv. So add isel patterns to select vmslt(u).vv with
swapped operands.
We also need to get VT to use for the splat from an operand rather
than the result since the result VT is nxvXi1.
Reviewed By: HsiangKai
Differential Revision: https://reviews.llvm.org/D99704
Commit: 6b05d753e0769d841a5e95ccf86938143a922dc8
https://github.com/llvm/llvm-project/commit/6b05d753e0769d841a5e95ccf86938143a922dc8
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/include/llvm/IR/Intrinsics.td
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
M llvm/test/Analysis/BasicAA/cs-cs.ll
Log Message:
-----------
Mark unordered memset/memmove/memcpy as nosync
Mostly a means to remove a bit of code from attributor in advance of implementing a FuncAttr inference for nosync.
Commit: 232d3a3e4755057b51cec1c4c5eaa7ecdec9e70a
https://github.com/llvm/llvm-project/commit/232d3a3e4755057b51cec1c4c5eaa7ecdec9e70a
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M libcxx/utils/run.py
Log Message:
-----------
[libc++] Fix codesigning in run.py
Without this patch, we'd always try to codesign the first argument in
the command line, which in some cases is not something we can codesign
(e.g. `bash` for some .sh.cpp tests).
Note that this "hack" is the same thing we do in `ssh.py` - we might need
to admit that it's not a hack after all in the future, but I'm not ready
for that yet.
Differential Revision: https://reviews.llvm.org/D99726
Commit: 60854c328d8729b2ef10b9bb4dcbcc282f43c5e7
https://github.com/llvm/llvm-project/commit/60854c328d8729b2ef10b9bb4dcbcc282f43c5e7
Author: Raphael Isemann <teemperor at gmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M clang/lib/CodeGen/BackendUtil.cpp
Log Message:
-----------
Avoid calling ParseCommandLineOptions in BackendUtil if possible
Calling `ParseCommandLineOptions` should only be called from `main` as the
CommandLine setup code isn't thread-safe. As BackendUtil is part of the
generic Clang FrontendAction logic, a process which has several threads executing
Clang FrontendActions will randomly crash in the unsafe setup code.
This patch avoids calling the function unless either the debug-pass option or
limit-float-precision option is set. Without these two options set the
`ParseCommandLineOptions` call doesn't do anything beside parsing
the command line `clang` which doesn't set any options.
See also D99652 where LLDB received a workaround for this crash.
Reviewed By: JDevlieghere
Differential Revision: https://reviews.llvm.org/D99740
Commit: 775e55462a6497795b8444718f136b753453bd30
https://github.com/llvm/llvm-project/commit/775e55462a6497795b8444718f136b753453bd30
Author: Petr Hosek <phosek at google.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M compiler-rt/test/CMakeLists.txt
Log Message:
-----------
[CMake] Include dependency on cxx-headers in compiler-rt tests
The missing dependency was revealed by D97572.
Differential Revision: https://reviews.llvm.org/D99706
Commit: e93c95dea103ead27c522a41085949bd73a30d9a
https://github.com/llvm/llvm-project/commit/e93c95dea103ead27c522a41085949bd73a30d9a
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M libcxx/utils/ci/run-buildbot
Log Message:
-----------
[libc++] Print the CMake version before generating CMake
Commit: 52338af5695e48bfd74fdb8e253b32ba82b016f5
https://github.com/llvm/llvm-project/commit/52338af5695e48bfd74fdb8e253b32ba82b016f5
Author: Nick Desaulniers <ndesaulniers at google.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/ARM/ARMInstrThumb2.td
M llvm/test/MC/ARM/basic-thumb2-instructions.s
Log Message:
-----------
[MC][ARM] add .w suffixes for RSB/RSBS T1
See also:
F5.1.167 RSB, RSBS (register) T1 shift or rotate by value variant
of the Arm ARM.
Link: https://github.com/ClangBuiltLinux/linux/issues/1309
Reviewed By: DavidSpickett
Differential Revision: https://reviews.llvm.org/D99542
Commit: 8f7c1b22721da9f38e2129248d27df280861fdb1
https://github.com/llvm/llvm-project/commit/8f7c1b22721da9f38e2129248d27df280861fdb1
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
A libcxx/test/std/containers/sequences/list/list.cons/dtor.pass.cpp
Log Message:
-----------
[libc++] NFC: Add a simple test to make sure we destroy elements in std::list
Differential Revision: https://reviews.llvm.org/D99672
Commit: 3ba1b1cd201dbf2d5f9da4d3a018091c3e3a2d78
https://github.com/llvm/llvm-project/commit/3ba1b1cd201dbf2d5f9da4d3a018091c3e3a2d78
Author: Aden Grue <agrue at google.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
A mlir/include/mlir/Dialect/StandardOps/Transforms/ComposeSubView.h
M mlir/lib/Dialect/StandardOps/Transforms/CMakeLists.txt
A mlir/lib/Dialect/StandardOps/Transforms/ComposeSubView.cpp
A mlir/test/Transforms/compose-subview.mlir
M mlir/test/lib/Transforms/CMakeLists.txt
A mlir/test/lib/Transforms/TestComposeSubView.cpp
M mlir/tools/mlir-opt/mlir-opt.cpp
Log Message:
-----------
Add a pattern to combine composed subview ops
Differential Revision: https://reviews.llvm.org/D99229
Commit: 432b2ab427e2b1980df47a76bbd7018b862ae8c3
https://github.com/llvm/llvm-project/commit/432b2ab427e2b1980df47a76bbd7018b862ae8c3
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
Log Message:
-----------
[SLP]Test for min/max reductions bug, NFC.
Commit: 4d9039c8dc2d1f0be1b5ee486d5a83b1614b038a
https://github.com/llvm/llvm-project/commit/4d9039c8dc2d1f0be1b5ee486d5a83b1614b038a
Author: Jim Ingham <jingham at apple.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M lldb/source/Plugins/Language/ObjC/Cocoa.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h
M lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCCF.py
Log Message:
-----------
Add support for fetching signed values from tagged pointers.
The ObjC runtime offers both signed & unsigned tagged pointer value
accessors to tagged pointer providers, but lldb's tagged pointer
code only implemented the unsigned one. This patch adds an
emulation of the signed one.
The motivation for doing this is that NSNumbers use the signed
accessor (they are always signed) and we need to follow that in our
summary provider or we will get incorrect values for negative
NSNumbers.
The data-formatter-objc test file had NSNumber examples (along with lots of other
goodies) but the NSNumber values weren't tested. So I also added
checks for those values to the test.
I also did a quick audit of the other types in that main.m file, and
it looks like pretty much all the other values are either intermediates
or are tested.
Differential Revision: https://reviews.llvm.org/D99694
Commit: 18dbe0f954a75f25bd57bba95dfa83cc5e2aa497
https://github.com/llvm/llvm-project/commit/18dbe0f954a75f25bd57bba95dfa83cc5e2aa497
Author: Raphael Isemann <teemperor at gmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M lldb/source/API/SystemInitializerFull.cpp
Log Message:
-----------
[lldb] Prevent that LLDB randomly crashes in CommandLineParser::addOption by initializing LLVM's command line parser
Since quite a while Apple's LLDB fork (that contains the Swift debugging
support) is randomly crashing in `CommandLineParser::addOption` with an error
such as `CommandLine Error: Option 'h' registered more than once!`
The backtrace of the crashing thread is shown below. There are also usually many
other threads also performing similar clang::FrontendActions which are all
trying to generate (usually outdated) Clang modules which are used by Swift for
various reasons.
```
[ 6] LLDB`CommandLineParser::addOption(llvm::cl::Option*, llvm::cl::SubCommand*) + 856
[ 7] LLDB`CommandLineParser::addOption(llvm::cl::Option*, llvm::cl::SubCommand*) + 733
[ 8] LLDB`CommandLineParser::addOption(llvm::cl::Option*, bool) + 184
[ 9] LLDB`llvm::cl::ParseCommandLineOptions(...) [inlined] ::CommandLineParser::ParseCommandLineOptions(... + 1279
[ 9] LLDB`llvm::cl::ParseCommandLineOptions(...) + 497
[ 10] LLDB`setCommandLineOpts(clang::CodeGenOptions const&) + 416
[ 11] LLDB`EmitAssemblyHelper::EmitAssemblyWithNewPassManager(...) + 98
[ 12] LLDB`clang::EmitBackendOutput(...) + 4580
[ 13] LLDB`PCHContainerGenerator::HandleTranslationUnit(clang::ASTContext&) + 871
[ 14] LLDB`clang::MultiplexConsumer::HandleTranslationUnit(clang::ASTContext&) + 43
[ 15] LLDB`clang::ParseAST(clang::Sema&, bool, bool) + 579
[ 16] LLDB`clang::FrontendAction::Execute() + 74
[ 17] LLDB`clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 1808
```
The underlying reason for the crash is that the CommandLine code in LLVM isn't
thread-safe and will never be thread-safe with its current architecture. The way
LLVM's CommandLine logic works is that all parts of the LLVM can provide command
line arguments by defining `cl::opt` global variables and their constructors
(which are invoked during static initialisation) register the variable in LLVM's
CommandLineParser (which is also just a global variable). At some later point
after static initialization we actually try to parse command line arguments and
we ask the CommandLineParser to parse our `argv`. The CommandLineParser then
lazily constructs it's internal parsing state in a non-thread-safe way (this is
where the crash happens), parses the provided command line and then goes back to
the respective `cl::opt` global variables and sets their values according to the
parse result.
As all of this is based on global state, this whole mechanism isn't thread-safe
so the only time to ever use it is when we know we only have one active thread
dealing with LLVM logic. That's why nearly all callers of
`llvm::cl::ParseCommandLineOptions` are at the top of the `main` function of the
some LLVM-based tool. One of the few exceptions to this rule is in the
`setCommandLineOpts` function in `BackendUtil.cpp` which is in our backtrace:
```
static void setCommandLineOpts(const CodeGenOptions &CodeGenOpts) {
SmallVector<const char *, 16> BackendArgs;
BackendArgs.push_back("clang"); // Fake program name.
if (!CodeGenOpts.DebugPass.empty()) {
BackendArgs.push_back("-debug-pass");
BackendArgs.push_back(CodeGenOpts.DebugPass.c_str());
}
if (!CodeGenOpts.LimitFloatPrecision.empty()) {
BackendArgs.push_back("-limit-float-precision");
BackendArgs.push_back(CodeGenOpts.LimitFloatPrecision.c_str());
}
BackendArgs.push_back(nullptr);
llvm::cl::ParseCommandLineOptions(BackendArgs.size() - 1,
BackendArgs.data());
}
```
This is trying to set `cl::opt` variables in the LLVM backend to their right
value as the passed via CodeGenOptions by invoking the CommandLine parser. As
this is just in some generic Clang CodeGen code (where we allow having multiple
threads) this is code is clearly wrong. If we're unlucky it either overwrites
the value of the global variables or it causes the CommandLine parser to crash.
So the next question is why is this only crashing in LLDB? The main reason seems
to be that easiest way to crash this code is to concurrently enter the initial
CommandLineParser construction where it tries to collect all the registered
`cl::opt` options and checks for sanity:
```
// If it's a DefaultOption, check to make sure it isn't already there.
if (O->isDefaultOption() &&
SC->OptionsMap.find(O->ArgStr) != SC->OptionsMap.end())
return;
// Add argument to the argument map!
if (!SC->OptionsMap.insert(std::make_pair(O->ArgStr, O)).second) {
errs() << ProgramName << ": CommandLine Error: Option '" << O->ArgStr
<< "' registered more than once!\n";
HadErrors = true;
}
```
The `OptionsMap` here is global variable and if we end up in this code with two
threads at once then two threads at the same time can register an option (such
as 'h') when they pass the first `if` and then we fail with the sanity check in
the second `if`.
After this sanity check and initial setup code the only remaining work is just
parsing the provided CommandLine which isn't thread-safe but at least doesn't
crash in all my attempts at breaking it (as it's usually just reading from the
already generated parser state but not further modifying it). The exception to
this is probably that once people actually specify the options in the code
snippet above we might run into some new interesting ways to crash everything.
To go back to why it's only affecting LLDB: Nearly all LLVM tools I could find
(even if they are using threads) seem to call the CommandLine parser at the
start so they all execute the initial parser setup at a point where there is
only one thread. So once the code above is executed they are mostly safe from
the sanity check crashes. We even have some shady code for the gtest `main` in
`TestMain.cpp` which is why this also doesn't affect unit tests.
The only exception to this rule is ... *drum roll* ... LLDB! it's not using that
CommandLine library for parsing options so it also never ends up calling it in
`main`. So when we end up in the `FrontendAction` code from the backtrace we are
already very deep in some LLDB logic and usually already have several threads.
In a situation where Swift decides to compile a large amount of Clang modules in
parallel we then end up entering this code via several threads. If several
threads reach this code at the same time we end up in the situation where the
sanity-checking code of CommandLine crashes. I have a very reliable way of
demonstrating the whole thing in D99650 (just run the unit test several times,
it usually crashes after 3-4 attempts).
We have several ways to fix this:
1. Make the whole CommandLine mechanism in LLVM thread-safe.
2. Get rid of `setCommandLineOpts` in `BackendUtil.cpp` and other callers of the
command line parsing in generic Clang code.
3. Initialise the CommandLine library in a safe point in LLDB.
Option 1 is just a lot of work and I'm not even sure where to start. The whole
mechanism is based on global variables and global state and this seems like a
humongous task.
Option 2 is probably the best thing we can do in the near future. There are only
two callers of the command line parser in generic Clang code. The one in
`BackendUtils.cpp` looks like it can be replaced with some reasonable
refactoring (as it only deals with two specific options). There is another one
in `ExecuteCompilerInvocation` which deals with forwarding the generic `-mllvm`
options to the backend which seems like it will just end up requiring us to do
Option 1.
Option 3 is what this patch is doing. We just parse some dummy command line
invocation in a point of the LLDB execution where we only have one thread that
is dealing with LLVM/Clang stuff. This way we are at least prevent the frequent
crashes for users as parsing the dummy command line invocation will set up the
initial parser state safely.
Fixes rdar://70989856
Reviewed By: mib, JDevlieghere
Differential Revision: https://reviews.llvm.org/D99652
Commit: e372e0f906194cb051ad71305e00f4634860bdf3
https://github.com/llvm/llvm-project/commit/e372e0f906194cb051ad71305e00f4634860bdf3
Author: peter klausler <pklausler at nvidia.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
A flang/include/flang/Common/long-double.h
M flang/include/flang/Common/uint128.h
M flang/include/flang/Decimal/decimal.h
M flang/lib/Decimal/binary-to-decimal.cpp
M flang/lib/Decimal/decimal-to-binary.cpp
M flang/runtime/CMakeLists.txt
M flang/runtime/character.cpp
M flang/runtime/character.h
A flang/runtime/complex-reduction.c
A flang/runtime/complex-reduction.h
A flang/runtime/cpp-type.h
M flang/runtime/descriptor-io.h
M flang/runtime/descriptor.cpp
M flang/runtime/descriptor.h
M flang/runtime/entry-names.h
M flang/runtime/io-api.cpp
A flang/runtime/reduction.cpp
A flang/runtime/reduction.h
M flang/runtime/tools.cpp
M flang/runtime/tools.h
M flang/runtime/transformational.cpp
M flang/runtime/transformational.h
M flang/runtime/type-code.cpp
M flang/unittests/Evaluate/reshape.cpp
M flang/unittests/RuntimeGTest/CMakeLists.txt
A flang/unittests/RuntimeGTest/Reduction.cpp
Log Message:
-----------
[flang] Implement reductions in the runtime
Add runtime APIs, implementations, and tests for ALL, ANY, COUNT,
MAXLOC, MAXVAL, MINLOC, MINVAL, PRODUCT, and SUM reduction
transformantional intrinsic functions for all relevant argument
and result types and kinds, both without DIM= arguments
(total reductions) and with (partial reductions).
Complex-valued reductions have their APIs in C so that
C's _Complex types can be used for their results.
Some infrastructure work was also necessary or noticed:
* Usage of "long double" in the compiler was cleaned up a
bit, and host dependences on x86 / MSVC have been isolated
in a new Common/long-double header.
* Character comparison has been exposed via an extern template
so that reductions could use it.
* Mappings from Fortran type category/kind to host C++ types
and vice versa have been isolated into runtime/cpp-type.h and
then used throughout the runtime as appropriate.
* The portable 128-bit integer package in Common/uint128.h
was generalized to support signed comparisons.
* Bugs in descriptor indexing code were fixed.
Differential Revision: https://reviews.llvm.org/D99666
Commit: ffa15e9463d07e9ba75e2c072afbc0c33f4f68a0
https://github.com/llvm/llvm-project/commit/ffa15e9463d07e9ba75e2c072afbc0c33f4f68a0
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/include/llvm/IR/Instruction.h
M llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
M llvm/lib/IR/Instruction.cpp
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
Log Message:
-----------
Extract isVolatile helper on Instruction [NFCI]
We have this logic duplicated in several cases, none of which were exhaustive. Consolidate it in one place.
I don't believe this actually impacts behavior of the callers. I think they all filter their inputs such that their partial implementations were correct. If not, this might be fixing a cornercase bug.
Commit: 46e992f90500914443e2eea25b258d0b0276811f
https://github.com/llvm/llvm-project/commit/46e992f90500914443e2eea25b258d0b0276811f
Author: Martin Storsjö <martin at martin.st>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M libcxx/test/std/utilities/time/time.clock/time.clock.file/now.pass.cpp
Log Message:
-----------
[libcxx] [test] Remove XFAIL LIBCXX-WINDOWS-FIXME from time.clock.file/now.pass.cpp
This doesn't fail when _LIBCPP_HAS_NO_INT128 is defined consistently
in both CMAKE_CXX_FLAGS and LIBCXX_TEST_COMPILER_FLAGS; the XFAIL was
added based on early CI testruns where that flag was missing in
LIBCXX_TEST_COMPILER_FLAGS.
Differential Revision: https://reviews.llvm.org/D99705
Commit: 4391d764e153d17315a2822137e1ceca13b4c98d
https://github.com/llvm/llvm-project/commit/4391d764e153d17315a2822137e1ceca13b4c98d
Author: Martin Storsjö <martin at martin.st>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendWinCOFF.h
M llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h
M llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp
Log Message:
-----------
[ARM] Remove an unused parameter in ARMWinCOFFObjectWriter. NFC.
This writer only ever operates on 32 bit arm code.
Differential Revision: https://reviews.llvm.org/D99575
Commit: db357891f0cf76253be3cd75f682b68544a411da
https://github.com/llvm/llvm-project/commit/db357891f0cf76253be3cd75f682b68544a411da
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Analysis/Loads.cpp
M llvm/test/Transforms/LICM/hoist-alloc.ll
Log Message:
-----------
Infer dereferenceability from malloc and friends
Hookup TLI when inferring object size from allocation calls. This allows the analysis to prove dereferenceability for known allocation functions (such as malloc/new/etc) in addition to those marked explicitly with the allocsize attribute.
This is a follow up to 0129cd5 now that the bug fixed by e2c6621e6 is resolved.
As noted in the test, this relies on being able to prove that there is no free between allocation and context (e.g. hoist location). At the moment, this is handled conservatively. I'm working strengthening out ability to reason about no-free regions separately.
Differential Revision: https://reviews.llvm.org/D99737
Commit: 2d733923b8d32230d5af777dd1d84ae2c7fc968d
https://github.com/llvm/llvm-project/commit/2d733923b8d32230d5af777dd1d84ae2c7fc968d
Author: Greg Clayton <gclayton at fb.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M lldb/include/lldb/Symbol/SymbolContext.h
M lldb/source/Symbol/SymbolContext.cpp
M lldb/source/Target/Trace.cpp
A lldb/test/Shell/Commands/command-image-lookup.yaml
Log Message:
-----------
Fix "image lookup --address" Summary results for inline functions.
Inline callstacks were being incorrectly displayed in the results of "image lookup --address". The deepest frame wasn't displaying the line table line entry, it was always showing the inline information's call file and line on the previous frame. This is now fixed and has tests to make sure it doesn't regress.
Differential Revision: https://reviews.llvm.org/D98761
Commit: 6ef4505298be08b8cb4243c7d28751e0e315370a
https://github.com/llvm/llvm-project/commit/6ef4505298be08b8cb4243c7d28751e0e315370a
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
M llvm/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll
M llvm/test/Other/cgscc-devirt-iteration.ll
M llvm/test/Other/cgscc-iterate-function-mutation.ll
M llvm/test/Other/cgscc-observe-devirt.ll
M llvm/test/Transforms/FunctionAttrs/atomic.ll
M llvm/test/Transforms/FunctionAttrs/incompatible_fn_attrs.ll
M llvm/test/Transforms/FunctionAttrs/nofree-attributor.ll
M llvm/test/Transforms/FunctionAttrs/norecurse.ll
M llvm/test/Transforms/FunctionAttrs/nosync.ll
M llvm/test/Transforms/FunctionAttrs/nounwind.ll
M llvm/test/Transforms/FunctionAttrs/optnone.ll
M llvm/test/Transforms/Inline/cgscc-update.ll
Log Message:
-----------
[funcattrs] Infer nosync from readnone and non-convergent
This implements the most basic possible nosync inference. The choice of inference rule is taken from the comments in attributor and the discussion on the review of the change which introduced the nosync attribute (0626367202c).
This is deliberately minimal. As noted in code comments, I do plan to add a more robust inference which actually scans the function IR directly, but a) I need to do some refactoring of the attributor code to use common interfaces, and b) I wanted to get something in. I also wanted to minimize the "interesting" analysis discussion since that's time intensive.
Context: This combines with existing nofree attribute inference to help prove dereferenceability in the ongoing deref-at-point semantics work.
Differential Revision: https://reviews.llvm.org/D99749
Commit: 01aa9e1f6e7df5a936612084c73be704e300c881
https://github.com/llvm/llvm-project/commit/01aa9e1f6e7df5a936612084c73be704e300c881
Author: Martin Storsjö <martin at martin.st>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp
M libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for.pass.cpp
Log Message:
-----------
[libcxx] [test] Make the condvar wait_for tests less brittle
These seem to fail occasionally (they are marked as possibly requiring
a retry).
When doing a condvar wait_for(), it can wake up before the timeout
as a spurious wakeup. In these cases, the wait_for() method returns that
the timeout wasn't hit, and the test reruns another wait_for().
On Windows, it seems like the wait_for() operation often can end up
returning slightly before the intended deadline - when intending to
wait for 250 milliseconds, it can return after e.g. 235 milliseconds.
In these cases, the wait_for() doesn't indicate a timeout.
Previously, the test then reran a new wait_for() for a full 250
milliseconds each time. So for N consecutive wakeups slightly too early,
we'd wait for (N+1)*250 milliseconds. Now it only reruns wait_for() for
the remaining intended wait duration.
Differential Revision: https://reviews.llvm.org/D99175
Commit: 8e596f7e27b47a4bf7c0890214a89b5e60a01b77
https://github.com/llvm/llvm-project/commit/8e596f7e27b47a4bf7c0890214a89b5e60a01b77
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
Log Message:
-----------
[Attributor] Cleanup intrinsic handling in nosync inference [mostly NFC]
Mostly stylistic adjustment, but the old code didn't handle the memcpy.inline intrinsic. By using the matcher class, we now do.
Commit: 1e69a5af92242cfffc88df91fa990a8e17441b48
https://github.com/llvm/llvm-project/commit/1e69a5af92242cfffc88df91fa990a8e17441b48
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
Log Message:
-----------
[Attributor] Cleanup detection of non-relaxed atomics in nosync inference
The code was checking for cases which are disallowed by the verifier. Delete dead code and adjust style.
Commit: a8ac8816c94f4cb3235fda50603fea66721d9adb
https://github.com/llvm/llvm-project/commit/a8ac8816c94f4cb3235fda50603fea66721d9adb
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/test/CodeGen/AMDGPU/inline-attr.ll
Log Message:
-----------
Update a test missed in 6ef4505
Commit: d4e9fe813f4fabc260f8e859cf2846cb34e0ad3b
https://github.com/llvm/llvm-project/commit/d4e9fe813f4fabc260f8e859cf2846cb34e0ad3b
Author: Anastasia Stulova <anastasia.stulova at arm.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M clang/docs/OpenCLSupport.rst
M clang/docs/UsersManual.rst
Log Message:
-----------
[OpenCL][Docs] Update links to the C++ for OpenCL documentation
Commit: dbbc95e3e5aa09928ed4531f7ca01dd979cabab7
https://github.com/llvm/llvm-project/commit/dbbc95e3e5aa09928ed4531f7ca01dd979cabab7
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.h
M llvm/test/CodeGen/RISCV/calling-conv-half.ll
M llvm/test/CodeGen/RISCV/copysign-casts.ll
M llvm/test/CodeGen/RISCV/fp16-promote.ll
M llvm/test/CodeGen/RISCV/half-bitmanip-dagcombines.ll
M llvm/test/CodeGen/RISCV/rv32i-rv64i-half.ll
Log Message:
-----------
[RISCV] Use softPromoteHalf legalization for fp16 without Zfh rather than PromoteFloat.
The default legalization strategy is PromoteFloat which keeps
half in single precision format through multiple floating point
operations. Conversion to/from float is done at loads, stores,
bitcasts, and other places that care about the exact size being 16
bits.
This patches switches to the alternative method softPromoteHalf.
This aims to keep the type in 16-bit format between every operation.
So we promote to float and immediately round for any arithmetic
operation. This should be closer to the IR semantics since we
are rounding after each operation and not accumulating extra
precision across multiple operations. X86 is the only other
target that enables this today. See https://reviews.llvm.org/D73749
I had to update getRegisterTypeForCallingConv to force f16 to
use f32 when the F extension is enabled. This way we can still
pass it in the lower bits of an FPR for ilp32f and lp64f ABIs.
The softPromoteHalf would otherwise always give i16 as the
argument type.
Reviewed By: asb, frasercrmck
Differential Revision: https://reviews.llvm.org/D99148
Commit: 69ca50bd7dfdb54aab8b0b262df635e25cf6baf0
https://github.com/llvm/llvm-project/commit/69ca50bd7dfdb54aab8b0b262df635e25cf6baf0
Author: Joseph Huber <jhuber6 at vols.utk.edu>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M clang/lib/CodeGen/CGOpenMPRuntime.cpp
M clang/lib/CodeGen/CGOpenMPRuntime.h
M clang/test/OpenMP/target_map_names.cpp
Log Message:
-----------
[OpenMP] Pass mapping names to add components in a user defined mapper
Summary:
Currently the mapping names are not passed to the mapper components that set up
the array region. This means array mappings will not have their names availible
in the runtime. This patch fixes this by passing the argument name to the region
correctly. This means that the mapped variable's name will be the declared
mapper that placed it on the device.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D99681
Commit: 1b88df1c8e4aa03cf3102ab0b4f8688fe79864ed
https://github.com/llvm/llvm-project/commit/1b88df1c8e4aa03cf3102ab0b4f8688fe79864ed
Author: peter klausler <pklausler at nvidia.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M flang/runtime/complex-reduction.c
Log Message:
-----------
[flang] Fix arm clang build
The new source file flang/runtime/complex-reduction.c contains
a portability work-around that implicitly assumed that a recent
version of clang would be used; this patch changes the code and
should be portable to older clangs and any other C compilers that
don't support the standard CMPLXF/CMPLX/CMPLXL macros.
Commit: 0f7e3a55463d2ed9abc60c6fd0126bcb19fc6d69
https://github.com/llvm/llvm-project/commit/0f7e3a55463d2ed9abc60c6fd0126bcb19fc6d69
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
Log Message:
-----------
[NFC][scudo] Simplify UseQuarantine initialization
Commit: da98177cda168468160912272213c695c03682d9
https://github.com/llvm/llvm-project/commit/da98177cda168468160912272213c695c03682d9
Author: David Green <david.green at arm.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
M llvm/test/Transforms/LoopUnroll/ARM/loop-unrolling.ll
Log Message:
-----------
[ARM] Allow v6m runtime loop unrolling
This removes the restriction that only Thumb2 targets enable runtime
loop unrolling, allowing it for Thumb1 only cores as well. The existing
T2 heuristics are used (for the time being) to control when and how
unrolling is performed.
Differential Revision: https://reviews.llvm.org/D99588
Commit: ce9e1a3632779294077766d6646ef3d79b35d414
https://github.com/llvm/llvm-project/commit/ce9e1a3632779294077766d6646ef3d79b35d414
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M compiler-rt/lib/scudo/standalone/local_cache.h
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
Log Message:
-----------
[Scudo] Fix SizeClassAllocatorLocalCache::drain
It leaved few blocks in PerClassArray[0].
Reviewed By: cryptoad
Differential Revision: https://reviews.llvm.org/D99763
Commit: 622500479b521554d2c869633eb6cf51c8d47ba1
https://github.com/llvm/llvm-project/commit/622500479b521554d2c869633eb6cf51c8d47ba1
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M compiler-rt/lib/scudo/standalone/tests/tsd_test.cpp
M compiler-rt/lib/scudo/standalone/tsd_exclusive.h
Log Message:
-----------
[scudo][NFC] Make tests runs with --gtest_repeat=2
Reviewed By: cryptoad
Differential Revision: https://reviews.llvm.org/D99766
Commit: 17095dc861116b0fe4303b62d1fed5eb14c2ecd0
https://github.com/llvm/llvm-project/commit/17095dc861116b0fe4303b62d1fed5eb14c2ecd0
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M libcxx/include/typeinfo
Log Message:
-----------
[libc++][NFC] Increase readability of typeinfo comparison of ARM64
We wasted a good deal of time trying to figure out whether our implementation
was correct. In the end, it was, but it wasn't so easy to determine. This
patch dumbs down the implementation and improves the documentation to make
it easier to validate.
See https://lists.llvm.org/pipermail/libcxx-dev/2020-December/001060.html.
Differential Revision: https://reviews.llvm.org/D97802
Commit: 76d9bc72784d88f4dd57b9939e52c73739438af5
https://github.com/llvm/llvm-project/commit/76d9bc72784d88f4dd57b9939e52c73739438af5
Author: Jian Cai <jiancai at google.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
A clang/test/Driver/as-version.s
Log Message:
-----------
Reland "Add support to -Wa,--version in clang""
This relands commit 3cc3c0f8352ec33ca2f2636f94cb1d85fc57ac16 with fixed
test cases, which was reverted by commit
bf2479c347c8ca88fefdb144d8bae0a7a4231e2a.
Commit: 17800f900dca8243773dec5f90578cce03069b8f
https://github.com/llvm/llvm-project/commit/17800f900dca8243773dec5f90578cce03069b8f
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/test/Transforms/FunctionAttrs/nosync.ll
Log Message:
-----------
[tests] Add tests for forthcoming funcattrs nosync inference improvement
These are basically all the attributor tests for the same attribute with some minor cleanup for readability and autogened.
Commit: 766d27dc857200cd1fbb3a30e62b84ce271fb84f
https://github.com/llvm/llvm-project/commit/766d27dc857200cd1fbb3a30e62b84ce271fb84f
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
M llvm/test/CodeGen/RISCV/rvv/vrsub-rv32.ll
Log Message:
-----------
[RISCV] Add isel patterns to handle vrsub intrinsic with 2 vector operands.
This occurs when we type legalize an i64 scalar input on RV32. We
need to manually splat, which requires a vector input. Rather
than special case this in lowering just pattern match it.
Commit: 6fe7de90b9e4e466a5c2baadafd5f72d3203651d
https://github.com/llvm/llvm-project/commit/6fe7de90b9e4e466a5c2baadafd5f72d3203651d
Author: Fangrui Song <i at maskray.me>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M clang/lib/Driver/ToolChains/Gnu.cpp
M clang/test/Driver/nostdincxx.cpp
Log Message:
-----------
[Driver] -nostdinc -nostdinc++: don't warn for -Wunused-command-line-argument
Commit: b23a314146956dd29b719ab537608ced736fc036
https://github.com/llvm/llvm-project/commit/b23a314146956dd29b719ab537608ced736fc036
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
M llvm/test/Transforms/FunctionAttrs/nofree.ll
Log Message:
-----------
[funcattrs] Respect nofree attribute on callsites (not just callee)
Commit: 43ceb74eb1a5801662419fb66a6bf0d5414f1ec5
https://github.com/llvm/llvm-project/commit/43ceb74eb1a5801662419fb66a6bf0d5414f1ec5
Author: Tom Stellard <tstellar at redhat.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/cmake/modules/AddLLVM.cmake
M llvm/tools/llvm-shlib/CMakeLists.txt
Log Message:
-----------
llvm-shlib: Create object libraries for each component and link against them
This makes it possible to build libLLVM.so without first creating a
static library for each component. In the case where only libLLVM.so is
built (i.e. ninja LLVM) this eliminates 150 linker jobs.
Reviewed By: stellaraccident
Differential Revision: https://reviews.llvm.org/D95727
Commit: 5f6c5c63c7c21cc9cf1c2b21759e40aa4854d496
https://github.com/llvm/llvm-project/commit/5f6c5c63c7c21cc9cf1c2b21759e40aa4854d496
Author: peter klausler <pklausler at nvidia.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M flang/runtime/CMakeLists.txt
A flang/runtime/numeric.cpp
A flang/runtime/numeric.h
M flang/unittests/RuntimeGTest/CMakeLists.txt
A flang/unittests/RuntimeGTest/Numeric.cpp
Log Message:
-----------
[flang] Implement numeric intrinsic functions in runtime
Adds APIs, implementations, and unit tests for AINT, ANINT,
CEILING, EXPONENT, FLOOR, FRACTION, MOD, MODULO, NEAREST, NINT,
RRSPACING, SCALE, SET_EXPONENT, & SPACING.
Differential Revision: https://reviews.llvm.org/D99764
Commit: cba422264c7fdb7ba717144c94d48d46d72d8479
https://github.com/llvm/llvm-project/commit/cba422264c7fdb7ba717144c94d48d46d72d8479
Author: cchen <chichunchen844 at gmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M clang/lib/Sema/SemaOpenMP.cpp
M clang/test/OpenMP/parallel_ast_print.cpp
M clang/test/OpenMP/parallel_proc_bind_messages.cpp
A clang/test/OpenMP/parallel_proc_bind_primary_codegen.cpp
M llvm/include/llvm/Frontend/OpenMP/OMP.td
M llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
Log Message:
-----------
[OpenMP51] Accept `primary` as proc bind affinity policy in Clang
Reviewed By: ABataev
Differential Revision: https://reviews.llvm.org/D99622
Commit: 287c93c1321b4342608f28e1a2816300780502e1
https://github.com/llvm/llvm-project/commit/287c93c1321b4342608f28e1a2816300780502e1
Author: peter klausler <pklausler at nvidia.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M flang/unittests/RuntimeGTest/Numeric.cpp
Log Message:
-----------
[flang] Fix unit test failure on POWER
A new unit test for the Fortran runtime needs to allow for some
architectural variation on Infinity and NaN edge cases of NINT().
Commit: 51a07182b3ea48b2a26970b5e145e193e27a8521
https://github.com/llvm/llvm-project/commit/51a07182b3ea48b2a26970b5e145e193e27a8521
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M mlir/lib/Transforms/Utils/LoopUtils.cpp
Log Message:
-----------
Setup OpBuilder to support detached block in loopUnrollByFactor (NFC)
Setting the builder from a block is looking up for a parent operation
to get a context, instead by setting up the builder with an explicit
context we can support invoking this helper in absence of a parent
operation.
Commit: d222a07d3023599b8090ed20ca9137b128f5af6c
https://github.com/llvm/llvm-project/commit/d222a07d3023599b8090ed20ca9137b128f5af6c
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/test/OpenMP/for_firstprivate_codegen.cpp
M clang/test/OpenMP/for_private_codegen.cpp
M clang/test/OpenMP/master_taskloop_firstprivate_codegen.cpp
M clang/test/OpenMP/master_taskloop_lastprivate_codegen.cpp
M clang/test/OpenMP/master_taskloop_private_codegen.cpp
M clang/test/OpenMP/master_taskloop_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/master_taskloop_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/master_taskloop_simd_private_codegen.cpp
M clang/test/OpenMP/nvptx_target_firstprivate_codegen.cpp
M clang/test/OpenMP/parallel_firstprivate_codegen.cpp
M clang/test/OpenMP/parallel_master_taskloop_firstprivate_codegen.cpp
M clang/test/OpenMP/parallel_master_taskloop_lastprivate_codegen.cpp
M clang/test/OpenMP/parallel_master_taskloop_private_codegen.cpp
M clang/test/OpenMP/parallel_master_taskloop_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/parallel_master_taskloop_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/parallel_master_taskloop_simd_private_codegen.cpp
M clang/test/OpenMP/parallel_private_codegen.cpp
M clang/test/OpenMP/sections_firstprivate_codegen.cpp
M clang/test/OpenMP/sections_lastprivate_codegen.cpp
M clang/test/OpenMP/sections_private_codegen.cpp
M clang/test/OpenMP/single_firstprivate_codegen.cpp
M clang/test/OpenMP/single_private_codegen.cpp
M clang/test/OpenMP/task_firstprivate_codegen.cpp
M clang/test/OpenMP/task_private_codegen.cpp
M clang/test/OpenMP/taskloop_firstprivate_codegen.cpp
M clang/test/OpenMP/taskloop_lastprivate_codegen.cpp
M clang/test/OpenMP/taskloop_private_codegen.cpp
M clang/test/OpenMP/taskloop_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/taskloop_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/taskloop_simd_private_codegen.cpp
Log Message:
-----------
[OpenMP, test] Fix uses of undef S*VAR FileCheck var
Fix the many cases of use of undefined SIVAR/SVAR/SFVAR in OpenMP
*private_codegen tests, due to a missing BLOCK directive to capture the
IR variable when it is declared. It also fixes a few typo in its use.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D99770
Commit: 58e458935ba6debed11edd9baa98862db0a12651
https://github.com/llvm/llvm-project/commit/58e458935ba6debed11edd9baa98862db0a12651
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/test/OpenMP/target_data_use_device_ptr_if_codegen.cpp
Log Message:
-----------
[OpenMP, test] Fix use of undef DECL FileCheck var
OpenMP test target_data_use_device_ptr_if_codegen contains a CHECK-NOT
directive using an undefined DECL FileCheck variable. It seems copied
from target_data_use_device_ptr_codegen where there's a CHECK for a load
that defined the variable. Since there is no corresponding load in this
testcase, the simplest is to simply forbid any store and get rid of the
variable altogether.
Reviewed By: ABataev
Differential Revision: https://reviews.llvm.org/D99771
Commit: 2c3db73341aea084e44600400e9fe39690416923
https://github.com/llvm/llvm-project/commit/2c3db73341aea084e44600400e9fe39690416923
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/test/OpenMP/sections_reduction_codegen.cpp
Log Message:
-----------
[OpenMP, test] Fix use of undef VAR_PRIV FileCheck var
Remove the CHECK-NOT directive referring to as-of-yet undefined VAR_PRIV
variable since the pattern of the following CHECK-NOT in the same
CHECK-NOT block covers a superset of the case caught by the first
CHECK-NOT.
Reviewed By: ABataev
Differential Revision: https://reviews.llvm.org/D99775
Commit: 3a016e31ecef7eeb876b540c928a25a7c5d2e07a
https://github.com/llvm/llvm-project/commit/3a016e31ecef7eeb876b540c928a25a7c5d2e07a
Author: Daniel Sanders <daniel_l_sanders at apple.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/unittests/CodeGen/GlobalISel/CSETest.cpp
M llvm/unittests/CodeGen/GlobalISel/ConstantFoldingTest.cpp
M llvm/unittests/CodeGen/GlobalISel/GISelMITest.h
M llvm/unittests/CodeGen/GlobalISel/KnownBitsTest.cpp
M llvm/unittests/CodeGen/GlobalISel/KnownBitsVectorTest.cpp
M llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
M llvm/unittests/CodeGen/GlobalISel/LegalizerTest.cpp
M llvm/unittests/CodeGen/GlobalISel/MachineIRBuilderTest.cpp
M llvm/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp
Log Message:
-----------
[globalisel][unittests] Rename setUp() to avoid potential mix up with SetUp() from gtest
Also, make it structurally required so it can't be forgotten and re-introduce
the bug that led to the rotten green tests.
Differential Revision: https://reviews.llvm.org/D99692
Commit: 42a84d22c4e01f0305da0c850a8c695895fdba86
https://github.com/llvm/llvm-project/commit/42a84d22c4e01f0305da0c850a8c695895fdba86
Author: Daniel Sanders <daniel_l_sanders at apple.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/unittests/CodeGen/GlobalISel/CSETest.cpp
M llvm/unittests/CodeGen/GlobalISel/ConstantFoldingTest.cpp
M llvm/unittests/CodeGen/GlobalISel/GISelMITest.h
M llvm/unittests/CodeGen/GlobalISel/KnownBitsTest.cpp
M llvm/unittests/CodeGen/GlobalISel/KnownBitsVectorTest.cpp
M llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
M llvm/unittests/CodeGen/GlobalISel/LegalizerTest.cpp
M llvm/unittests/CodeGen/GlobalISel/MachineIRBuilderTest.cpp
M llvm/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp
Log Message:
-----------
Revert "[globalisel][unittests] Rename setUp() to avoid potential mix up with SetUp() from gtest"
Forgot to apply commit message changes from phabricator
This reverts commit 3a016e31ecef7eeb876b540c928a25a7c5d2e07a.
Commit: 5379f1c95ca22e81697324908101fc74b7f283ea
https://github.com/llvm/llvm-project/commit/5379f1c95ca22e81697324908101fc74b7f283ea
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/test/CodeGen/Mips/sr1.ll
Log Message:
-----------
[MIPS, test] Fix use of undef FileCheck var
LLVM test CodeGen/Mips/sr1.ll tries to check for the absence of a
sequence of instructions with several CHECK-NOT with one of those
directives using a variable defined in another. However CHECK-NOT are
checked independently so that is using a variable defined in a pattern
that should not occur in the input.
This commit removes the definition and uses of variable to check each
line independently, making the check stronger than the current one.
Reviewed By: dsanders
Differential Revision: https://reviews.llvm.org/D99776
Commit: 273416231b1477503cd5281ef2587c40efae2747
https://github.com/llvm/llvm-project/commit/273416231b1477503cd5281ef2587c40efae2747
Author: peter klausler <pklausler at nvidia.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M flang/unittests/RuntimeGTest/Numeric.cpp
Log Message:
-----------
[flang] Disable some new unit tests (non-portable results)
Due to architectural variation on the C++ functions std::ceil, std::floor,
and std::trunc, diable some new Fortran unit tests for now that depending
on specifical results for IEEE floating-point edge cases of infinities
and NaNs.
Commit: 0187c3a45c4cfa2dea593637d5e660258eacd6e9
https://github.com/llvm/llvm-project/commit/0187c3a45c4cfa2dea593637d5e660258eacd6e9
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/test/CodeGen/RISCV/rvv/vamoadd-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vamoadd-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vamoand-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vamoand-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vamomax-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vamomax-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vamomaxu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vamomaxu-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vamomin-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vamomin-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vamominu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vamominu-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vamoor-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vamoor-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vamoswap-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vamoxor-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vamoxor-rv64.ll
Log Message:
-----------
[RISCV] Add nxvXi64 test cases to the RV32 Zvamo intrinsic test files. NFC
Commit: 813e7249b8123e979ca5d3144a59b141d5729e83
https://github.com/llvm/llvm-project/commit/813e7249b8123e979ca5d3144a59b141d5729e83
Author: Daniel Rodríguez Troitiño <danielrodriguez at fb.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M compiler-rt/cmake/builtin-config-ix.cmake
M compiler-rt/lib/builtins/CMakeLists.txt
Log Message:
-----------
[builtins] Build for arm64_32 for watchOS (Darwin)
Trying to build the builtins code fails because `arm64_32_SOURCES` is
missing. Setting it to the same list used for `aarch64_SOURCES` solves
that problem and allow the builtins to compile for that architecture.
Additionally, arm64_32 is added as a possible architecture for watchos
platforms.
Reviewed By: compnerd
Differential Revision: https://reviews.llvm.org/D99690
Commit: f5c9db97a8a268f0faea75911a5cdcde88c8dff8
https://github.com/llvm/llvm-project/commit/f5c9db97a8a268f0faea75911a5cdcde88c8dff8
Author: Daniel Rodríguez Troitiño <danielrodriguez at fb.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/include/llvm/TextAPI/MachO/Architecture.def
A llvm/test/Object/Inputs/tapi-v4-watchos.tbd
M llvm/test/Object/nm-tapi.test
Log Message:
-----------
[TextAPI] Add support for arm64_32
Add a new architecture definition for arm64_32. The change should allow
the new architecture arm64_32 to be recognized in several pieces of
code, TextAPI parsing one of them. llvm-lipo will also recognize the
architecture and will allow lipoing files with this architecture without
failing.
Includes a small test that the architecture is recognized by llvm-nm.
Reviewed By: cishida
Differential Revision: https://reviews.llvm.org/D99673
Commit: 7af9b03c9d6b1c53756a8392a98edbe03a6bd327
https://github.com/llvm/llvm-project/commit/7af9b03c9d6b1c53756a8392a98edbe03a6bd327
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
Log Message:
-----------
[NFC][scudo] Use TYPED_TEST to split large test
Commit: f6ad0453665f63cf036fcb01f26fb4f023e4cfbb
https://github.com/llvm/llvm-project/commit/f6ad0453665f63cf036fcb01f26fb4f023e4cfbb
Author: Alexander Shaposhnikov <alexshap at fb.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M lld/MachO/Driver.cpp
M lld/MachO/InputFiles.cpp
M lld/MachO/SymbolTable.cpp
M lld/MachO/SymbolTable.h
M lld/MachO/Symbols.h
M lld/MachO/SyntheticSections.cpp
M lld/MachO/UnwindInfoSection.cpp
Log Message:
-----------
[lld][MachO] Make emitEndFunStab independent from .subsections_via_symbols
This diff addresses FIXME in SyntheticSections.cpp and removes
the dependency of emitEndFunStab on .subsections_via_symbols.
Test plan: make check-lld-macho
Differential revision: https://reviews.llvm.org/D99054
Commit: 91790c67850d588edb3a0e195a388c0e450f1723
https://github.com/llvm/llvm-project/commit/91790c67850d588edb3a0e195a388c0e450f1723
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
Log Message:
-----------
[indvars[ Fix pr49802 by checking for SCEVCouldNotCompute
The code is assuming that having an exact exit count for the loop implies that exit counts for every exit are known. This used to be true, but when we added handling for dead exits we broke this invariant. The new invariant is that an exact loop count implies that any exits non trivially dead have exit counts.
We could have fixed this by either a) explicitly checking for a dead exit, or b) just testing for SCEVCouldNotCompute. I chose the second as it was simpler.
(Debugging this took longer than it should have since I'd mistyped the original assert and it wasn't checking what it was meant to...)
p.s. Sorry for the lack of test case. Getting things into a state to actually hit this is difficult and fragile. The original repro involves loop-deletion leaving SCEV in a slightly inprecise state which lets us bypass other transforms in IndVarSimplify on the way to this one. All of my attempts to separate it into a standalone test failed.
Commit: 4c70f56ec67b66d39481e890ba7ff225d71189ec
https://github.com/llvm/llvm-project/commit/4c70f56ec67b66d39481e890ba7ff225d71189ec
Author: Tony <Tony.Tye at amd.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/docs/AMDGPUUsage.rst
Log Message:
-----------
[NFC][AMDGPU] Add product names for gfx908 and gfx10 processors
Reviewed By: msearles
Differential Revision: https://reviews.llvm.org/D99781
Commit: a0c5b7e3b523764d089e2d843648acffcd496b79
https://github.com/llvm/llvm-project/commit/a0c5b7e3b523764d089e2d843648acffcd496b79
Author: Aart Bik <ajcbik at google.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/SparseLowering.cpp
M mlir/lib/Dialect/Linalg/Transforms/Sparsification.cpp
M mlir/lib/ExecutionEngine/SparseUtils.cpp
M mlir/test/CMakeLists.txt
M mlir/test/Dialect/Linalg/sparse_storage.mlir
M mlir/test/Dialect/Linalg/sparse_vector.mlir
M mlir/test/Integration/Sparse/CPU/sparse_sampled_matmul.mlir
M mlir/test/Integration/Sparse/CPU/sparse_sum.mlir
A mlir/test/Integration/Sparse/sparse_matvec.mlir
A mlir/test/Integration/data/wide.mtx
Log Message:
-----------
[mlir][sparse] support for very narrow index and pointer types
Rationale:
Small indices and values, when allowed by the required range of the
input tensors, can reduce the memory footprint of sparse tensors
even more. Note, however, that we must be careful zero extending
the values (since sparse tensors never use negatives for indexing),
but LLVM treats the index type as signed in most memory operations
(like the scatter and gather). This CL dots all the i's in this regard.
Reviewed By: bixia
Differential Revision: https://reviews.llvm.org/D99777
Commit: f026e1f5205562aad32e3d78b75140798b0dd60a
https://github.com/llvm/llvm-project/commit/f026e1f5205562aad32e3d78b75140798b0dd60a
Author: Chen Zheng <czhengsz at cn.ibm.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/test/Driver/debug-options.c
Log Message:
-----------
[debug-info][XCOFF] set `-gno-column-info` by default for DBX
For DBX, it does not handle column info well. Set -gno-column-info
by default for DBX.
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D99703
Commit: 88a1529e1560f43cfbe680a703dab25a5521f7ce
https://github.com/llvm/llvm-project/commit/88a1529e1560f43cfbe680a703dab25a5521f7ce
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
Log Message:
-----------
[NFC][scudo] Move globals into related test
Commit: bc6001ce1e91604b84cd4b55e134f4be96399e21
https://github.com/llvm/llvm-project/commit/bc6001ce1e91604b84cd4b55e134f4be96399e21
Author: Yang Fan <nullptr.cpp at gmail.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
Log Message:
-----------
[X86] Fix -Wunused-function warning (NFC)
GCC warning:
```
/llvm-project/llvm/lib/Target/X86/X86ISelLowering.cpp:9212:13: warning: ‘bool isHorizOp(unsigned int)’ defined but not used [-Wunused-function]
9212 | static bool isHorizOp(unsigned Opcode) {
| ^~~~~~~~~
```
Commit: 78a1412845b5552465505889b69b5b11d9b20d35
https://github.com/llvm/llvm-project/commit/78a1412845b5552465505889b69b5b11d9b20d35
Author: Jason Molenda <jason at molenda.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M lldb/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.cpp
M lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp
M lldb/test/API/macosx/lc-note/firmware-corefile/TestFirmwareCorefiles.py
M lldb/test/API/macosx/lc-note/firmware-corefile/create-empty-corefile.cpp
Log Message:
-----------
Handle all standalone combinations of LC_NOTEs w/ & w/o addr & uuid
Fill out ProcessMachCore::DoLoadCore to handle LC_NOTE hints with
a UUID or with a UUID+address, and load the binary at the specified
offset correctly. Add tests for all four combinations. Change
DynamicLoaderStatic to not re-set a Section's load address in the
Target if it's already been specified.
Differential Revision: https://reviews.llvm.org/D99571
rdar://51490545
Commit: cf51bf77b070f63391bacada5e166bfec2616989
https://github.com/llvm/llvm-project/commit/cf51bf77b070f63391bacada5e166bfec2616989
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
Log Message:
-----------
[lldb] Account for objc_debug_class_getNameRaw returning NULL
On macOS Catalina, calling objc_debug_class_getNameRaw on some of the
ISA pointers returns NULL, causing us to crash and unwind before reading
all the Objective-C classes. This does not happen on macOS Big Sur.
Account for that possibility and skip the class when that happens.
Commit: 062d4ddd22c291bb1c0459bf8b8a5c4ee7d89a78
https://github.com/llvm/llvm-project/commit/062d4ddd22c291bb1c0459bf8b8a5c4ee7d89a78
Author: Yang Fan <nullptr.cpp at gmail.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M lld/include/lld/Common/TargetOptionsCommandFlags.h
Log Message:
-----------
[lld] Add missing header guard (NFC)
Commit: 83dc218c7725fcffa1b17e5bda68c2c7356a946c
https://github.com/llvm/llvm-project/commit/83dc218c7725fcffa1b17e5bda68c2c7356a946c
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
Log Message:
-----------
[NFC][scudo] Move some shared stuff into ScudoCombinedTest
Commit: b0d286b03c6e20e57fd2ecf3ea7935669083f3e5
https://github.com/llvm/llvm-project/commit/b0d286b03c6e20e57fd2ecf3ea7935669083f3e5
Author: Petr Hosek <phosek at google.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M compiler-rt/test/CMakeLists.txt
Log Message:
-----------
[CMake] Use append instead of set with the list
This addresses an issue introduced by D99706.
Commit: c6647693300be4b74575143db7429f284f3afeb1
https://github.com/llvm/llvm-project/commit/c6647693300be4b74575143db7429f284f3afeb1
Author: Juneyoung Lee <aqjune at gmail.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
M llvm/test/Transforms/AlignmentFromAssumptions/simple.ll
M llvm/test/Transforms/AlignmentFromAssumptions/simple32.ll
Log Message:
-----------
[AssumeBundles] offset should be added to correctly calculate align
This is a patch to fix the bug in alignment calculation (see https://reviews.llvm.org/D90529#2619492).
Consider this code:
```
call void @llvm.assume(i1 true) ["align"(i32* %a, i32 32, i32 28)]
%arrayidx = getelementptr inbounds i32, i32* %a, i64 -1
; aligment of %arrayidx?
```
The llvm.assume guarantees that `%a - 28` is 32-bytes aligned, meaning that `%a` is 32k + 28 for some k.
Therefore `a - 4` cannot be 32-bytes aligned but the existing code was calculating the pointer as 32-bytes aligned.
The reason why this happened is as follows.
`DiffSCEV` stores `%arrayidx - %a` which is -4.
`OffSCEV` stores the offset value of “align”, which is 28.
`DiffSCEV` + `OffSCEV` = 24 should be used for `a - 4`'s offset from 32k, but `DiffSCEV` - `OffSCEV` = 32 was being used instead.
Reviewed By: Tyker
Differential Revision: https://reviews.llvm.org/D98759
Commit: d441dee5c266ca0777d06846971e1b436361f361
https://github.com/llvm/llvm-project/commit/d441dee5c266ca0777d06846971e1b436361f361
Author: Yang Fan <nullptr.cpp at gmail.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M lld/MachO/InputFiles.cpp
Log Message:
-----------
[lld][MachO] Fix -Wsign-compare warning (NFC)
GCC warning:
```
/llvm-project/lld/MachO/InputFiles.cpp:484:24: warning: comparison of integer expressions of different signedness: ‘int64_t’ {aka ‘long int’} and ‘uint64_t’ {aka ‘long unsigned int’} [-Wsign-compare]
484 | return value < subsectionEntry.offset;
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
```
Commit: 5a9a8c7cd4179bb2ea4fa916719e270b97847f74
https://github.com/llvm/llvm-project/commit/5a9a8c7cd4179bb2ea4fa916719e270b97847f74
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/test/CodeGen/RISCV/rvv/vcompress-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vcompress-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vdiv-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vdivu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vfclass-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vfcvt-f-x-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vfcvt-f-xu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vfcvt-rtz-x-f-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vfcvt-rtz-xu-f-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vfcvt-x-f-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vfcvt-xu-f-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vfncvt-f-x-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vfncvt-f-xu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vfwcvt-rtz-x-f-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vfwcvt-rtz-xu-f-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vfwcvt-x-f-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vfwcvt-xu-f-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vid-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/viota-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vle-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vleff-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vloxei-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vlse-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vluxei-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmacc-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmadc-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmadc.carry.in-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmadd-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmax-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmaxu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmerge-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmin-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vminu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmsbc-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmsbc.borrow.in-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmseq-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmseq-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmsle-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmsle-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmsleu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmsleu-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmslt-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmslt-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmsltu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmsltu-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmsne-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmsne-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmul-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmulh-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmulhsu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmulhu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vnclip-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vnclipu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vnmsac-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vnmsub-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vnsra-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vnsrl-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vor-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vredand-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vredmax-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vredmaxu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vredmin-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vredminu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vredor-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vredsum-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vredxor-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vrem-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vremu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vrgatherei16-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vsadd-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vsaddu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vsbc-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vse-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vsext-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vslidedown-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vslideup-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vsll-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vsmul-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vsoxei-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vsra-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vsrl-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vsse-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vssub-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vssubu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vsub-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vsuxei-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vwadd.w-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vwmacc-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vwmaccsu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vwmaccu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vwmaccus-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vwmul-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vwmulsu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vwmulu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vwredsum-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vwredsumu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vwsub.w-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vxor-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vzext-rv32.ll
Log Message:
-----------
[RISCV] Add more nxvi64 vector intrinsic tests for RV32. NFC
This confirms we handle most instrutions gracefully. We do
currently fail for vslide1up and vslide1down though.
Commit: 56fa1b4ff2b67f8cdcb38763df51d407ba4814d5
https://github.com/llvm/llvm-project/commit/56fa1b4ff2b67f8cdcb38763df51d407ba4814d5
Author: Samuel <swamulism at gmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/tools/llvm-reduce/CMakeLists.txt
A llvm/tools/llvm-reduce/DeltaManager.cpp
M llvm/tools/llvm-reduce/DeltaManager.h
M llvm/tools/llvm-reduce/TestRunner.h
M llvm/tools/llvm-reduce/deltas/Delta.cpp
M llvm/tools/llvm-reduce/deltas/Delta.h
M llvm/tools/llvm-reduce/deltas/ReduceAliases.h
M llvm/tools/llvm-reduce/deltas/ReduceArguments.h
M llvm/tools/llvm-reduce/deltas/ReduceAttributes.cpp
M llvm/tools/llvm-reduce/deltas/ReduceAttributes.h
M llvm/tools/llvm-reduce/deltas/ReduceBasicBlocks.cpp
M llvm/tools/llvm-reduce/deltas/ReduceBasicBlocks.h
M llvm/tools/llvm-reduce/deltas/ReduceFunctionBodies.h
M llvm/tools/llvm-reduce/deltas/ReduceFunctions.h
M llvm/tools/llvm-reduce/deltas/ReduceGlobalVarInitializers.h
M llvm/tools/llvm-reduce/deltas/ReduceGlobalVars.cpp
M llvm/tools/llvm-reduce/deltas/ReduceGlobalVars.h
M llvm/tools/llvm-reduce/deltas/ReduceInstructions.h
M llvm/tools/llvm-reduce/deltas/ReduceMetadata.h
M llvm/tools/llvm-reduce/deltas/ReduceOperandBundles.h
M llvm/tools/llvm-reduce/deltas/ReduceSpecialGlobals.h
M llvm/tools/llvm-reduce/llvm-reduce.cpp
M llvm/utils/gn/secondary/llvm/tools/llvm-reduce/BUILD.gn
Log Message:
-----------
[llvm-reduce] Add header guards and fix clang-tidy warnings
Add header guards and fix other clang-tidy warnings in .h files.
Also align misaligned header docs
Reviewed By: aeubanks
Differential Revision: https://reviews.llvm.org/D99634
Commit: 438b6dd3e53a9f28ac662d1dd067188cfe5767e9
https://github.com/llvm/llvm-project/commit/438b6dd3e53a9f28ac662d1dd067188cfe5767e9
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/test/CodeGen/RISCV/rvv/vmfeq-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmfge-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmfgt-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmfle-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmflt-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmfne-rv32.ll
Log Message:
-----------
[RISCV] Add missing nxvXf64 intrinsics tests cases for floating-point compare for RV32.
Commit: c5605857bb77a6f2f08304dcc5e35e0637851ffe
https://github.com/llvm/llvm-project/commit/c5605857bb77a6f2f08304dcc5e35e0637851ffe
Author: Wenlei He <aktoon at gmail.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M llvm/lib/ProfileData/ProfileSummaryBuilder.cpp
Log Message:
-----------
[CSSPGO] Skip dangling probe value when computing profile summary
Recently we switched to use InvalidProbeCount = UINT64_MAX (instead of 0) to represent dangling probe, but UINT64_MAX is not excluded when computing profile summary. This caused profile summary to produce incorrect hot/cold threshold. The change fixed it by excluding UINT64_MAX from summary builder.
Differential Revision: https://reviews.llvm.org/D99788
Commit: 7959d59028dd126416cdf10dbbd22162922e1336
https://github.com/llvm/llvm-project/commit/7959d59028dd126416cdf10dbbd22162922e1336
Author: Christopher Di Bella <cjdb at google.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M libcxx/include/concepts
M libcxx/include/type_traits
M libcxx/test/std/concepts/concepts.compare/concept.equalitycomparable/equality_comparable.compile.pass.cpp
M libcxx/test/std/concepts/concepts.compare/concept.equalitycomparable/equality_comparable_with.compile.pass.cpp
A libcxx/test/std/concepts/concepts.compare/concepts.totallyordered/totally_ordered.pass.cpp
A libcxx/test/std/concepts/concepts.compare/concepts.totallyordered/totally_ordered_with.pass.cpp
M libcxx/test/std/concepts/concepts.compare/types.h
Log Message:
-----------
[libcxx] adds concepts `std::totally_ordered` and `std::totally_ordered_with`
Implements parts of:
- P0898R3 Standard Library Concepts
- P1754 Rename concepts to standard_case for C++20, while we still can
Reviewed By: Mordante
Differential Revision: https://reviews.llvm.org/D98983
Commit: 0889181625bb570e463362ab8f53f9a14c886b2e
https://github.com/llvm/llvm-project/commit/0889181625bb570e463362ab8f53f9a14c886b2e
Author: Aaron Green <aarongreen at google.com>
Date: 2021-04-01 (Thu, 01 Apr 2021)
Changed paths:
M compiler-rt/lib/fuzzer/FuzzerTracePC.h
M compiler-rt/lib/fuzzer/FuzzerUtil.cpp
M compiler-rt/lib/fuzzer/FuzzerUtil.h
Log Message:
-----------
Tweak SimpleFastHash
This change adds a SimpleFastHash64 variant of SimpleFastHash which allows call sites to specify a starting value and get a 64 bit hash in return. This allows a hash to be "resumed" with more data.
A later patch needs this to be able to hash a sequence of module-relative values one at a time, rather than just a region a memory.
Reviewed By: morehouse
Differential Revision: https://reviews.llvm.org/D94510
Commit: 2ec7f639c49fdee8956a09994d1cf99ef4282746
https://github.com/llvm/llvm-project/commit/2ec7f639c49fdee8956a09994d1cf99ef4282746
Author: Marek Kurdej <marek.kurdej+llvm.org at gmail.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/include/clang/Basic/LangOptions.h
M clang/lib/Sema/SemaOverload.cpp
M clang/test/SemaCXX/MicrosoftCompatibility.cpp
Log Message:
-----------
[clang-cl] [Sema] Do not prefer integral conversion over floating-to-integral for MS compatibility 19.28 and higher.
As of MSVC 19.28 (2019 Update 8), integral conversion is no longer preferred over floating-to-integral, and so MSVC is more standard conformant and will generate a compiler error on ambiguous call.
Cf. https://godbolt.org/z/E8xsdqKsb.
Initially found during the review of D99641.
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D99663
Commit: 5d7c832e8c14ec0a2823528f8fbbfd3a9e96c828
https://github.com/llvm/llvm-project/commit/5d7c832e8c14ec0a2823528f8fbbfd3a9e96c828
Author: Alex Zinenko <zinenko at google.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M mlir/include/mlir/Conversion/Passes.td
A mlir/test/Conversion/AffineToStandard/no-memref.mlir
Log Message:
-----------
[mlir] add memref dialect as dependent of lower-affine pass
The lower-affine pass also processes affine load and store operations
that get converted to load and store operations now available in the
memref dialect. Since it produces operations from the memref dialect,
this dialect should be registered as dependent for this pass. It is rare
but possible to have code that doesn't have memref operations in the
input and calls this pass.
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D99720
Commit: a89fb29398dc0ce48dfe6f45f99d6ae7df4c6b46
https://github.com/llvm/llvm-project/commit/a89fb29398dc0ce48dfe6f45f99d6ae7df4c6b46
Author: oToToT <ty1208chiang at gmail.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/lib/AST/ItaniumMangle.cpp
M clang/unittests/AST/DeclTest.cpp
Log Message:
-----------
[clang][ItaniumMangle] Check SizeExpr for DependentSizedArrayType
(PR49478)
As ArrayType::ArrayType mentioned in clang/lib/AST/Type.cpp, a
DependentSizedArrayType might not have size expression because it it
used as the type of a dependent array of unknown bound with a dependent
braced initializer.
Thus, I add a check when mangling array of that type.
This should fix https://bugs.llvm.org/show_bug.cgi?id=49478
Reviewed By: Richard Smith - zygoloid
Differential Revision: https://reviews.llvm.org/D99407
Commit: f8013a35b6fb02ad35008c373f7b06a24b5dd8e4
https://github.com/llvm/llvm-project/commit/f8013a35b6fb02ad35008c373f7b06a24b5dd8e4
Author: Martin Storsjö <martin at martin.st>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp
M libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for.pass.cpp
Log Message:
-----------
[libcxx] [test] Make the condvar wait_for tests a bit more understandable. NFC.
This was requested in the review of D99175; rename the "runs"
variable to clarify what it means wrt the test, and move updating of
it to the main function to clarify its behaviour wrt the two runs
further.
Differential Revision: https://reviews.llvm.org/D99768
Commit: 28ea218417d713bcb399e9428e4c3f8f7960feb2
https://github.com/llvm/llvm-project/commit/28ea218417d713bcb399e9428e4c3f8f7960feb2
Author: Martin Storsjö <martin at martin.st>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp
M libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.pass.cpp
Log Message:
-----------
[libcxx] [test] Fix invocable tests on Windows
MSVC had a bug regarding preferring intergral conversions over
floating conversions. This is fixed in MSVC 19.28 and newer. Clang in
MSVC mode so far only mimics the old, buggy behaviour, but will
hopefully soon be fixed to comply with the new behaviour too
(see https://reviews.llvm.org/D99663).
Make the negative test to use a distinctly different type,
leaving checks for compiler specific bugs out of the libcxx test.
Differential Revision: https://reviews.llvm.org/D99641
Commit: f343a730596b6b02039a91d71dc16c113d09cfe6
https://github.com/llvm/llvm-project/commit/f343a730596b6b02039a91d71dc16c113d09cfe6
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M compiler-rt/lib/scudo/standalone/tests/primary_test.cpp
Log Message:
-----------
[NFC][scudo] Convert ScudoPrimaryTest into TYPED_TEST
Commit: bb1e5399e4586239d6424f5eea5a9f06c52ebe9b
https://github.com/llvm/llvm-project/commit/bb1e5399e4586239d6424f5eea5a9f06c52ebe9b
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M compiler-rt/lib/scudo/standalone/tests/primary_test.cpp
Log Message:
-----------
[NFC][scudo] Inline some functions into ScudoPrimaryTest
Commit: a26f1bf67ec70f72e64101cf483b26466928fc38
https://github.com/llvm/llvm-project/commit/a26f1bf67ec70f72e64101cf483b26466928fc38
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
M llvm/test/CodeGen/AMDGPU/opt-pipeline.ll
M llvm/test/Other/new-pm-defaults.ll
M llvm/test/Other/new-pm-thinlto-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
M llvm/test/Other/opt-O2-pipeline.ll
M llvm/test/Other/opt-O3-pipeline-enable-matrix.ll
M llvm/test/Other/opt-O3-pipeline.ll
M llvm/test/Other/opt-Os-pipeline.ll
M llvm/test/Other/pass-pipelines.ll
M llvm/test/Transforms/IndVarSimplify/X86/pr45360.ll
M llvm/test/Transforms/PhaseOrdering/X86/spurious-peeling.ll
M llvm/test/Transforms/PhaseOrdering/X86/vdiv.ll
M llvm/test/Transforms/PhaseOrdering/loop-rotation-vs-common-code-hoisting.ll
Log Message:
-----------
[PassManager] Run additional LICM before LoopRotate
Loop rotation often has to perform code duplication
from header into preheader, which introduces PHI nodes.
>>! In D99204, @thopre wrote:
>
> With loop peeling, it is important that unnecessary PHIs be avoided or
> it will leads to spurious peeling. One source of such PHIs is loop
> rotation which creates PHIs for invariant loads. Those PHIs are
> particularly problematic since loop peeling is now run as part of simple
> loop unrolling before GVN is run, and are thus a source of spurious
> peeling.
>
> Note that while some of the load can be hoisted and eventually
> eliminated by instruction combine, this is not always possible due to
> alignment issue. In particular, the motivating example [1] was a load
> inside a class instance which cannot be hoisted because the `this'
> pointer has an alignment of 1.
>
> [1] http://lists.llvm.org/pipermail/llvm-dev/attachments/20210312/4ce73c47/attachment.cpp
Now, we could enhance LoopRotate to avoid duplicating code when not needed,
but instead hoist loop-invariant code, but isn't that a code duplication? (*sic*)
We have LICM, and in fact we already run it right after LoopRotation.
We could try to move it to before LoopRotation,
that is basically free from compile-time perspective:
https://llvm-compile-time-tracker.com/compare.php?from=6c93eb4477d88af046b915bc955c03693b2cbb58&to=a4bee6d07732b1184c436da489040b912f0dc271&stat=instructions
But, looking at stats, i think it isn't great that we would no longer do LICM after LoopRotation, in particular:
| statistic name | LoopRotate-LICM | LICM-LoopRotate | Δ | % | abs(%) |
| asm-printer.EmittedInsts | 9015930 | 9015799 | -131 | 0.00% | 0.00% |
| indvars.NumElimCmp | 3536 | 3544 | 8 | 0.23% | 0.23% |
| indvars.NumElimExt | 36725 | 36580 | -145 | -0.39% | 0.39% |
| indvars.NumElimIV | 1197 | 1187 | -10 | -0.84% | 0.84% |
| indvars.NumElimIdentity | 143 | 136 | -7 | -4.90% | 4.90% |
| indvars.NumElimRem | 4 | 5 | 1 | 25.00% | 25.00% |
| indvars.NumLFTR | 29842 | 29890 | 48 | 0.16% | 0.16% |
| indvars.NumReplaced | 2293 | 2227 | -66 | -2.88% | 2.88% |
| indvars.NumSimplifiedSDiv | 6 | 8 | 2 | 33.33% | 33.33% |
| indvars.NumWidened | 26438 | 26329 | -109 | -0.41% | 0.41% |
| instcount.TotalBlocks | 1178338 | 1173840 | -4498 | -0.38% | 0.38% |
| instcount.TotalFuncs | 111825 | 111829 | 4 | 0.00% | 0.00% |
| instcount.TotalInsts | 9905442 | 9896139 | -9303 | -0.09% | 0.09% |
| lcssa.NumLCSSA | 425871 | 423961 | -1910 | -0.45% | 0.45% |
| licm.NumHoisted | 378357 | 378753 | 396 | 0.10% | 0.10% |
| licm.NumMovedCalls | 2193 | 2208 | 15 | 0.68% | 0.68% |
| licm.NumMovedLoads | 35899 | 31821 | -4078 | -11.36% | 11.36% |
| licm.NumPromoted | 11178 | 11154 | -24 | -0.21% | 0.21% |
| licm.NumSunk | 13359 | 13587 | 228 | 1.71% | 1.71% |
| loop-delete.NumDeleted | 8547 | 8402 | -145 | -1.70% | 1.70% |
| loop-instsimplify.NumSimplified | 12876 | 11890 | -986 | -7.66% | 7.66% |
| loop-peel.NumPeeled | 1008 | 925 | -83 | -8.23% | 8.23% |
| loop-rotate.NumNotRotatedDueToHeaderSize | 368 | 365 | -3 | -0.82% | 0.82% |
| loop-rotate.NumRotated | 42015 | 42003 | -12 | -0.03% | 0.03% |
| loop-simplifycfg.NumLoopBlocksDeleted | 240 | 242 | 2 | 0.83% | 0.83% |
| loop-simplifycfg.NumLoopExitsDeleted | 497 | 20 | -477 | -95.98% | 95.98% |
| loop-simplifycfg.NumTerminatorsFolded | 618 | 336 | -282 | -45.63% | 45.63% |
| loop-unroll.NumCompletelyUnrolled | 11028 | 11032 | 4 | 0.04% | 0.04% |
| loop-unroll.NumUnrolled | 12608 | 12529 | -79 | -0.63% | 0.63% |
| mem2reg.NumDeadAlloca | 10222 | 10221 | -1 | -0.01% | 0.01% |
| mem2reg.NumPHIInsert | 192110 | 192106 | -4 | 0.00% | 0.00% |
| mem2reg.NumSingleStore | 637650 | 637643 | -7 | 0.00% | 0.00% |
| scalar-evolution.NumBruteForceTripCountsComputed | 814 | 812 | -2 | -0.25% | 0.25% |
| scalar-evolution.NumTripCountsComputed | 283108 | 282934 | -174 | -0.06% | 0.06% |
| scalar-evolution.NumTripCountsNotComputed | 106712 | 106718 | 6 | 0.01% | 0.01% |
| simple-loop-unswitch.NumBranches | 5178 | 4752 | -426 | -8.23% | 8.23% |
| simple-loop-unswitch.NumCostMultiplierSkipped | 914 | 503 | -411 | -44.97% | 44.97% |
| simple-loop-unswitch.NumSwitches | 20 | 18 | -2 | -10.00% | 10.00% |
| simple-loop-unswitch.NumTrivial | 183 | 95 | -88 | -48.09% | 48.09% |
... but that actually regresses LICM (-12% `licm.NumMovedLoads`),
loop-simplifycfg (`NumLoopExitsDeleted`, `NumTerminatorsFolded`),
simple-loop-unswitch (`NumTrivial`).
What if we instead have LICM both before and after LoopRotate?
| statistic name | LoopRotate-LICM | LICM-LoopRotate-LICM | Δ | % | abs(%) |
| asm-printer.EmittedInsts | 9015930 | 9014474 | -1456 | -0.02% | 0.02% |
| indvars.NumElimCmp | 3536 | 3546 | 10 | 0.28% | 0.28% |
| indvars.NumElimExt | 36725 | 36681 | -44 | -0.12% | 0.12% |
| indvars.NumElimIV | 1197 | 1185 | -12 | -1.00% | 1.00% |
| indvars.NumElimIdentity | 143 | 146 | 3 | 2.10% | 2.10% |
| indvars.NumElimRem | 4 | 5 | 1 | 25.00% | 25.00% |
| indvars.NumLFTR | 29842 | 29899 | 57 | 0.19% | 0.19% |
| indvars.NumReplaced | 2293 | 2299 | 6 | 0.26% | 0.26% |
| indvars.NumSimplifiedSDiv | 6 | 8 | 2 | 33.33% | 33.33% |
| indvars.NumWidened | 26438 | 26404 | -34 | -0.13% | 0.13% |
| instcount.TotalBlocks | 1178338 | 1173652 | -4686 | -0.40% | 0.40% |
| instcount.TotalFuncs | 111825 | 111829 | 4 | 0.00% | 0.00% |
| instcount.TotalInsts | 9905442 | 9895452 | -9990 | -0.10% | 0.10% |
| lcssa.NumLCSSA | 425871 | 425373 | -498 | -0.12% | 0.12% |
| licm.NumHoisted | 378357 | 383352 | 4995 | 1.32% | 1.32% |
| licm.NumMovedCalls | 2193 | 2204 | 11 | 0.50% | 0.50% |
| licm.NumMovedLoads | 35899 | 35755 | -144 | -0.40% | 0.40% |
| licm.NumPromoted | 11178 | 11163 | -15 | -0.13% | 0.13% |
| licm.NumSunk | 13359 | 14321 | 962 | 7.20% | 7.20% |
| loop-delete.NumDeleted | 8547 | 8538 | -9 | -0.11% | 0.11% |
| loop-instsimplify.NumSimplified | 12876 | 12041 | -835 | -6.48% | 6.48% |
| loop-peel.NumPeeled | 1008 | 924 | -84 | -8.33% | 8.33% |
| loop-rotate.NumNotRotatedDueToHeaderSize | 368 | 365 | -3 | -0.82% | 0.82% |
| loop-rotate.NumRotated | 42015 | 42005 | -10 | -0.02% | 0.02% |
| loop-simplifycfg.NumLoopBlocksDeleted | 240 | 241 | 1 | 0.42% | 0.42% |
| loop-simplifycfg.NumTerminatorsFolded | 618 | 619 | 1 | 0.16% | 0.16% |
| loop-unroll.NumCompletelyUnrolled | 11028 | 11029 | 1 | 0.01% | 0.01% |
| loop-unroll.NumUnrolled | 12608 | 12525 | -83 | -0.66% | 0.66% |
| mem2reg.NumPHIInsert | 192110 | 192073 | -37 | -0.02% | 0.02% |
| mem2reg.NumSingleStore | 637650 | 637652 | 2 | 0.00% | 0.00% |
| scalar-evolution.NumTripCountsComputed | 283108 | 282998 | -110 | -0.04% | 0.04% |
| scalar-evolution.NumTripCountsNotComputed | 106712 | 106691 | -21 | -0.02% | 0.02% |
| simple-loop-unswitch.NumBranches | 5178 | 5185 | 7 | 0.14% | 0.14% |
| simple-loop-unswitch.NumCostMultiplierSkipped | 914 | 925 | 11 | 1.20% | 1.20% |
| simple-loop-unswitch.NumTrivial | 183 | 179 | -4 | -2.19% | 2.19% |
| simple-loop-unswitch.NumBranches | 5178 | 4752 | -426 | -8.23% | 8.23% |
| simple-loop-unswitch.NumCostMultiplierSkipped | 914 | 503 | -411 | -44.97% | 44.97% |
| simple-loop-unswitch.NumSwitches | 20 | 18 | -2 | -10.00% | 10.00% |
| simple-loop-unswitch.NumTrivial | 183 | 95 | -88 | -48.09% | 48.09% |
I.e. we end up with less instructions, less peeling, more LICM activity,
also note how none of those 4 regressions are here. Namely:
| statistic name | LICM-LoopRotate | LICM-LoopRotate-LICM | Δ | % | abs(%) |
| asm-printer.EmittedInsts | 9015799 | 9014474 | -1325 | -0.01% | 0.01% |
| indvars.NumElimCmp | 3544 | 3546 | 2 | 0.06% | 0.06% |
| indvars.NumElimExt | 36580 | 36681 | 101 | 0.28% | 0.28% |
| indvars.NumElimIV | 1187 | 1185 | -2 | -0.17% | 0.17% |
| indvars.NumElimIdentity | 136 | 146 | 10 | 7.35% | 7.35% |
| indvars.NumLFTR | 29890 | 29899 | 9 | 0.03% | 0.03% |
| indvars.NumReplaced | 2227 | 2299 | 72 | 3.23% | 3.23% |
| indvars.NumWidened | 26329 | 26404 | 75 | 0.28% | 0.28% |
| instcount.TotalBlocks | 1173840 | 1173652 | -188 | -0.02% | 0.02% |
| instcount.TotalInsts | 9896139 | 9895452 | -687 | -0.01% | 0.01% |
| lcssa.NumLCSSA | 423961 | 425373 | 1412 | 0.33% | 0.33% |
| licm.NumHoisted | 378753 | 383352 | 4599 | 1.21% | 1.21% |
| licm.NumMovedCalls | 2208 | 2204 | -4 | -0.18% | 0.18% |
| licm.NumMovedLoads | 31821 | 35755 | 3934 | 12.36% | 12.36% |
| licm.NumPromoted | 11154 | 11163 | 9 | 0.08% | 0.08% |
| licm.NumSunk | 13587 | 14321 | 734 | 5.40% | 5.40% |
| loop-delete.NumDeleted | 8402 | 8538 | 136 | 1.62% | 1.62% |
| loop-instsimplify.NumSimplified | 11890 | 12041 | 151 | 1.27% | 1.27% |
| loop-peel.NumPeeled | 925 | 924 | -1 | -0.11% | 0.11% |
| loop-rotate.NumRotated | 42003 | 42005 | 2 | 0.00% | 0.00% |
| loop-simplifycfg.NumLoopBlocksDeleted | 242 | 241 | -1 | -0.41% | 0.41% |
| loop-simplifycfg.NumLoopExitsDeleted | 20 | 497 | 477 | 2385.00% | 2385.00% |
| loop-simplifycfg.NumTerminatorsFolded | 336 | 619 | 283 | 84.23% | 84.23% |
| loop-unroll.NumCompletelyUnrolled | 11032 | 11029 | -3 | -0.03% | 0.03% |
| loop-unroll.NumUnrolled | 12529 | 12525 | -4 | -0.03% | 0.03% |
| mem2reg.NumDeadAlloca | 10221 | 10222 | 1 | 0.01% | 0.01% |
| mem2reg.NumPHIInsert | 192106 | 192073 | -33 | -0.02% | 0.02% |
| mem2reg.NumSingleStore | 637643 | 637652 | 9 | 0.00% | 0.00% |
| scalar-evolution.NumBruteForceTripCountsComputed | 812 | 814 | 2 | 0.25% | 0.25% |
| scalar-evolution.NumTripCountsComputed | 282934 | 282998 | 64 | 0.02% | 0.02% |
| scalar-evolution.NumTripCountsNotComputed | 106718 | 106691 | -27 | -0.03% | 0.03% |
| simple-loop-unswitch.NumBranches | 4752 | 5185 | 433 | 9.11% | 9.11% |
| simple-loop-unswitch.NumCostMultiplierSkipped | 503 | 925 | 422 | 83.90% | 83.90% |
| simple-loop-unswitch.NumSwitches | 18 | 20 | 2 | 11.11% | 11.11% |
| simple-loop-unswitch.NumTrivial | 95 | 179 | 84 | 88.42% | 88.42% |
{F15983613} {F15983615} {F15983616}
(this is vanilla llvm testsuite + rawspeed + darktable)
As an example of the code where early LICM only is bad, see:
https://godbolt.org/z/GzEbacs4K
This does have an observable compile-time regression of +~0.5% geomean
https://llvm-compile-time-tracker.com/compare.php?from=7c5222e4d1a3a14f029e5f614c9aefd0fa505f1e&to=5d81826c3411982ca26e46b9d0aff34c80577664&stat=instructions
but i think that's basically nothing, and there's potential that it might
be avoidable in the future by fixing clang to produce alignment information
on function arguments, thus making the second run unneeded.
Differential Revision: https://reviews.llvm.org/D99249
Commit: 2388aae401dcb0903b1aa904d2f810fcf30edbfc
https://github.com/llvm/llvm-project/commit/2388aae401dcb0903b1aa904d2f810fcf30edbfc
Author: Evgeniy Brevnov <ybrevnov at azul.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/include/llvm/IR/PatternMatch.h
M llvm/include/llvm/Transforms/Scalar/NaryReassociate.h
M llvm/lib/Transforms/Scalar/NaryReassociate.cpp
M llvm/test/Transforms/NaryReassociate/nary-smax.ll
M llvm/test/Transforms/NaryReassociate/nary-smin.ll
M llvm/test/Transforms/NaryReassociate/nary-umax.ll
M llvm/test/Transforms/NaryReassociate/nary-umin.ll
Log Message:
-----------
[NARY-REASSOCIATE] Support reassociation of min/max
Support reassociation for min/max. With that we should be able to transform min(min(a, b), c) -> min(min(a, c), b) if min(a, c) is already available.
Reviewed By: mkazantsev, lebedev.ri
Differential Revision: https://reviews.llvm.org/D88287
Commit: 49e5a896d1fc0d18263da5f832b125176a4338ae
https://github.com/llvm/llvm-project/commit/49e5a896d1fc0d18263da5f832b125176a4338ae
Author: Marek Kurdej <marek.kurdej+llvm.org at gmail.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M libcxx/include/__config
Log Message:
-----------
[libc++] Fix build on macOS older than 10.15.
* This was introduced in D99515 that added -Wundef flag. CI run on macOS 10.15 and this problem wasn't caught before.
Commit: a4ac847c8ef0cf9c04c7ea2be0b34bb565cc7056
https://github.com/llvm/llvm-project/commit/a4ac847c8ef0cf9c04c7ea2be0b34bb565cc7056
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/test/CodeGen/RISCV/rvv/rv32-vsetvli-intrinsics.ll
M llvm/test/CodeGen/RISCV/rvv/rv64-vsetvli-intrinsics.ll
Log Message:
-----------
[RISCV] Add some tests showing vsetvli cleanup opportunities
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D99717
Commit: 3b48d849d44367ff351f58ce7a4949d104a30dea
https://github.com/llvm/llvm-project/commit/3b48d849d44367ff351f58ce7a4949d104a30dea
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVCleanupVSETVLI.cpp
M llvm/test/CodeGen/RISCV/rvv/cleanup-vsetvli.mir
M llvm/test/CodeGen/RISCV/rvv/rv32-vsetvli-intrinsics.ll
M llvm/test/CodeGen/RISCV/rvv/rv64-vsetvli-intrinsics.ll
Log Message:
-----------
[RISCV] Optimize more redundant VSETVLIs
D99717 introduced some test cases which showed that the output of one
vsetvli into another would not be picked up by the RISCVCleanupVSETVLI
pass. This patch teaches the optimization about such a pattern. The
pattern is quite common when using the RVV vsetvli intrinsic to pass the
VL onto other intrinsics.
The second test case introduced by D99717 is left unoptimized by this
patch. It is a rarer case and will require us to rewire any uses of the
redundant vset[i]vli's output to the previous one's.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D99730
Commit: 0f3230390b8becb59362963b8be630b3e32541b1
https://github.com/llvm/llvm-project/commit/0f3230390b8becb59362963b8be630b3e32541b1
Author: Florian Hahn <flo at fhahn.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/vectorize-free-extracts-inserts.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-fp-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-fp.ll
Log Message:
-----------
[SLP] Better estimate cost of no-op extracts on target vectors.
The motivation for this patch is to better estimate the cost of
extracelement instructions in cases were they are going to be free,
because the source vector can be used directly.
A simple example is
%v1.lane.0 = extractelement <2 x double> %v.1, i32 0
%v1.lane.1 = extractelement <2 x double> %v.1, i32 1
%a.lane.0 = fmul double %v1.lane.0, %x
%a.lane.1 = fmul double %v1.lane.1, %y
Currently we only consider the extracts free, if there are no other
users.
In this particular case, on AArch64 which can fit <2 x double> in a
vector register, the extracts should be free, independently of other
users, because the source vector of the extracts will be in a vector
register directly, so it should be free to use the vector directly.
The SLP vectorized version of noop_extracts_9_lanes is 30%-50% faster on
certain AArch64 CPUs.
It looks like this does not impact any code in
SPEC2000/SPEC2006/MultiSource both on X86 and AArch64 with -O3 -flto.
This originally regressed after D80773, so if there's a better
alternative to explore, I'd be more than happy to do that.
Reviewed By: ABataev
Differential Revision: https://reviews.llvm.org/D99719
Commit: 0f7bbbc481e20a152c74bc315f8995b62d54c8c0
https://github.com/llvm/llvm-project/commit/0f7bbbc481e20a152c74bc315f8995b62d54c8c0
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
M llvm/include/llvm/CodeGen/ValueTypes.h
M llvm/include/llvm/Support/TypeSize.h
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/Support/CMakeLists.txt
A llvm/lib/Support/TypeSize.cpp
M llvm/unittests/CodeGen/ScalableVectorMVTsTest.cpp
Log Message:
-----------
Always emit error for wrong interfaces to scalable vectors, unless cmdline flag is passed.
In order to bring up scalable vector support in LLVM incrementally,
we introduced behaviour to emit a warning, instead of an error, when
asking the wrong question of a scalable vector, like asking for the
fixed number of elements.
This patch puts that behaviour under a flag. The default behaviour is
that the compiler will always error, which means that all LLVM unit
tests and regression tests will now fail when a code-path is taken that
still uses the wrong interface.
The behaviour to demote an error to a warning can be individually enabled
for tools that want to support experimental use of scalable vectors.
This patch enables that behaviour when driving compilation from Clang.
This means that for users who want to try out scalable-vector support,
fixed-width codegen support, or build user-code with scalable vector
intrinsics, Clang will not crash and burn when the compiler encounters
such a case.
This allows us to do away with the following pattern in many of the SVE tests:
RUN: .... 2>%t
RUN: cat %t | FileCheck --check-prefix=WARN
WARN-NOT: warning: ...
The behaviour to emit warnings is only temporary and we expect this flag
to be removed in the future when scalable vector support is more stable.
This patch also has fixes the following tests:
unittests:
ScalableVectorMVTsTest.SizeQueries
SelectionDAGAddressAnalysisTest.unknownSizeFrameObjects
AArch64SelectionDAGTest.computeKnownBitsSVE_ZERO_EXTEND_VECTOR_INREG
regression tests:
Transforms/InstCombine/vscale_gep.ll
Reviewed By: paulwalker-arm, ctetreau
Differential Revision: https://reviews.llvm.org/D98856
Commit: b0c32199a6dd85f5e50083aaf51242a803576a01
https://github.com/llvm/llvm-project/commit/b0c32199a6dd85f5e50083aaf51242a803576a01
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn
Log Message:
-----------
[gn build] Port 0f7bbbc481e2
Commit: 500969f1d0b1d92d7c4ccfb6bf8807de96b7e4a0
https://github.com/llvm/llvm-project/commit/500969f1d0b1d92d7c4ccfb6bf8807de96b7e4a0
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
Log Message:
-----------
[X86][SSE] isHorizontalBinOp - use getTargetShuffleInputs helper
Use the getTargetShuffleInputs helper for all shuffle decoding
Commit: 455973162cb98d440753fcff923793d24de00c83
https://github.com/llvm/llvm-project/commit/455973162cb98d440753fcff923793d24de00c83
Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M lldb/test/API/functionalities/load_lazy/TestLoadUsingLazyBind.py
Log Message:
-----------
[LLDB] Skip TestLoadUsingLazyBind.py on arm/linux
Commit: 411673e769acfc63a75b9e643775b6c7f27f256f
https://github.com/llvm/llvm-project/commit/411673e769acfc63a75b9e643775b6c7f27f256f
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert-subvector.ll
M llvm/test/CodeGen/RISCV/rvv/insert-subvector.ll
Log Message:
-----------
[RISCV] Test llvm.experimental.vector.insert intrinsics on RV32
RV32 is able to use the llvm.experimental.vector.insert intrinsics too.
This patch ensures they're tested.
Reviewed By: khchen, asb
Differential Revision: https://reviews.llvm.org/D99655
Commit: b82b305cf94a57a7e0e72f576b85aaa136a505c3
https://github.com/llvm/llvm-project/commit/b82b305cf94a57a7e0e72f576b85aaa136a505c3
Author: Jeroen Dobbelaere <jeroen.dobbelaere at synopsys.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
A llvm/test/Transforms/InstCombine/oss_fuzz_32759.ll
Log Message:
-----------
[InstCombine] Fix out-of-bounds ashr(shl) optimization
This fixes a crash found by the oss fuzzer and reported by @fhahn.
The suggestion of @RKSimon seems to be the correct fix here. (See D91343).
The oss fuzz report can be found here: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=32759
Reviewed By: lebedev.ri
Differential Revision: https://reviews.llvm.org/D99792
Commit: 6dd07fa513cd3b806e7f852bb98e5c34bab11b36
https://github.com/llvm/llvm-project/commit/6dd07fa513cd3b806e7f852bb98e5c34bab11b36
Author: Lei Zhang <antiagainst at google.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M mlir/docs/Dialects/SPIR-V.md
M mlir/include/mlir/Dialect/SPIRV/Transforms/SPIRVConversion.h
M mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp
M mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRVPass.cpp
M mlir/lib/Conversion/LinalgToSPIRV/LinalgToSPIRVPass.cpp
M mlir/lib/Conversion/SCFToSPIRV/SCFToSPIRVPass.cpp
M mlir/lib/Conversion/StandardToSPIRV/StandardToSPIRVPass.cpp
M mlir/lib/Conversion/VectorToSPIRV/VectorToSPIRVPass.cpp
M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp
M mlir/test/lib/Dialect/SPIRV/TestAvailability.cpp
Log Message:
-----------
[mlir][spirv] Add utilities for push constant value
This commit add utility functions for creating push constant
storage variable and loading values from it.
Along the way, performs some clean up:
* Deleted `setABIAttrs`, which is just a 4-liner function
with one user.
* Moved `SPIRVConverstionTarget` into `mlir` namespace,
to be consistent with `SPIRVTypeConverter` and
`LLVMConversionTarget`.
Reviewed By: mravishankar
Differential Revision: https://reviews.llvm.org/D99725
Commit: ab3c5fb28259a3b768d9774baddaab58c7e51438
https://github.com/llvm/llvm-project/commit/ab3c5fb28259a3b768d9774baddaab58c7e51438
Author: Jun Ma <JunMa at linux.alibaba.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/Target/AArch64/SVEInstrFormats.td
Log Message:
-----------
[NFC][SVE] Use SVE_4_Op_Imm_Pat for sve_intx_dot_by_indexed_elem
Commit: 274ac9d40e79f25ac8c928732875708b5bac8f09
https://github.com/llvm/llvm-project/commit/274ac9d40e79f25ac8c928732875708b5bac8f09
Author: Jun Ma <JunMa at linux.alibaba.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
M llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith.ll
Log Message:
-----------
[AArch64][SVE] Lowering sve.dot to DOT node
Differential Revision: https://reviews.llvm.org/D99699
Commit: 2dfa2c0ea02d0777fb971c2519b0b9014e72b547
https://github.com/llvm/llvm-project/commit/2dfa2c0ea02d0777fb971c2519b0b9014e72b547
Author: Jun Ma <JunMa at linux.alibaba.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith.ll
Log Message:
-----------
[NFC][SVE] update sve-intrinsics-int-arith.ll under update_llc_test_checks.py
Commit: d3b74dc1e472c773c27dbbe2b3ae2a3cd0b68c17
https://github.com/llvm/llvm-project/commit/d3b74dc1e472c773c27dbbe2b3ae2a3cd0b68c17
Author: Nico Weber <thakis at chromium.org>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M libcxx/include/CMakeLists.txt
Log Message:
-----------
Restore 8954fd436c7 after c06a8f9caa51c
Else, just-built clang can't build programs that include libc++ headers
on macOS if you build via the 'all' target.
Commit: 7f7f5e2543f4f5576604bef0d4aa3e74a5b3a05b
https://github.com/llvm/llvm-project/commit/7f7f5e2543f4f5576604bef0d4aa3e74a5b3a05b
Author: Paul C. Anagnostopoulos <paul at windfall.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
A llvm/docs/CommandGuide/clang-tblgen.rst
M llvm/docs/CommandGuide/index.rst
A llvm/docs/CommandGuide/lldb-tblgen.rst
A llvm/docs/CommandGuide/llvm-tblgen.rst
A llvm/docs/CommandGuide/mlir-tblgen.rst
M llvm/docs/CommandGuide/tblgen.rst
Log Message:
-----------
[TableGen] [Docs] Add lldb-tblgen to command guide; add 4 guide stubs
Differential Revision: https://reviews.llvm.org/D99605
Commit: fa0aff6d6960e3ca4640b0a64b675a768ab99bf0
https://github.com/llvm/llvm-project/commit/fa0aff6d6960e3ca4640b0a64b675a768ab99bf0
Author: Nico Weber <thakis at chromium.org>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
Log Message:
-----------
Revert "[X86][SSE] isHorizontalBinOp - use getTargetShuffleInputs helper"
This reverts commit 500969f1d0b1d92d7c4ccfb6bf8807de96b7e4a0.
Makes clang assert compiling avx2 code, see
https://bugs.chromium.org/p/chromium/issues/detail?id=1195353#c4
for a standalone repro.
Commit: 5fcb07a07020f6011128f9fe384fdef65cbcc7b7
https://github.com/llvm/llvm-project/commit/5fcb07a07020f6011128f9fe384fdef65cbcc7b7
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
M llvm/test/Transforms/SLPVectorizer/X86/used-reduced-op.ll
Log Message:
-----------
[SLP]Fix a bug in min/max reduction, number of condition uses.
The ultimate reduction node may have multiple uses, but if the ultimate
reduction is min/max reduction and based on SelectInstruction, the
condition of this select instruction must have only single use.
Differential Revision: https://reviews.llvm.org/D99753
Commit: ef1f90ba6761f5fc3e7fac8652214f74cbf87c20
https://github.com/llvm/llvm-project/commit/ef1f90ba6761f5fc3e7fac8652214f74cbf87c20
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
Log Message:
-----------
[SLP]Added a test for min/max reductions with the key store inside, NFC.
Commit: 93135091b1f9b7f0ce143068f102f0970c9d63c7
https://github.com/llvm/llvm-project/commit/93135091b1f9b7f0ce143068f102f0970c9d63c7
Author: Nikita Popov <nikita.ppv at gmail.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/test/Transforms/CorrelatedValuePropagation/range.ll
Log Message:
-----------
[CVP] Add test for !range on intrinsic (NFC)
Commit: 4a3e006830aaaf094f3a8ea0a3780a5e1b6f3ecc
https://github.com/llvm/llvm-project/commit/4a3e006830aaaf094f3a8ea0a3780a5e1b6f3ecc
Author: Nikita Popov <nikita.ppv at gmail.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/Analysis/LazyValueInfo.cpp
M llvm/test/Transforms/CorrelatedValuePropagation/range.ll
Log Message:
-----------
[LVI] Use range metadata on intrinsics
If we don't know how to handle an intrinsic, we should still
make use of normal call range metadata.
Commit: 09a88278cbe10927cce488f725e9820f79ce2f54
https://github.com/llvm/llvm-project/commit/09a88278cbe10927cce488f725e9820f79ce2f54
Author: Brendon Cahoon <brendon.cahoon at amd.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/include/llvm/Target/GenericOpcodes.td
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/form-bitfield-extract-from-sextinreg.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-sbfx.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-ubfx.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
M llvm/unittests/CodeGen/GlobalISel/MachineIRBuilderTest.cpp
Log Message:
-----------
[GlobalISel] Allow different types for G_SBFX and G_UBFX operands
Change the definition of G_SBFX and G_UBFX so that the lsb and width
can have different types than the src and dst operands.
Differential Revision: https://reviews.llvm.org/D99739
Commit: dd43e13c005806be06bf09c735353a3d8707c8c8
https://github.com/llvm/llvm-project/commit/dd43e13c005806be06bf09c735353a3d8707c8c8
Author: peter klausler <pklausler at nvidia.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M flang/lib/Decimal/binary-to-decimal.cpp
Log Message:
-----------
[flang] Fix MSVC build breakage
A recent patch exposed an assumption that "long double" is (at least)
an 80-bit floating-point type, which of course it is not in MSVC.
Also get it right for non-x87 floating-point.
Commit: 3ebfa363f356eff744b73885023cc1fc62fad973
https://github.com/llvm/llvm-project/commit/3ebfa363f356eff744b73885023cc1fc62fad973
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/include/clang/Basic/Attr.td
M clang/lib/Sema/SemaDeclAttr.cpp
Log Message:
-----------
Remove attribute handling code for simple attributes; NFC
Attributes that set the SimpleHandler flag in Attr.td don't need to be
explicitly handled in SemaDeclAttr.cpp.
Commit: d01653f827cc962734f464be9502eb16cd907a44
https://github.com/llvm/llvm-project/commit/d01653f827cc962734f464be9502eb16cd907a44
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
A llvm/test/Transforms/RewriteStatepointsForGC/strip-invalid-attributes.ll
Log Message:
-----------
[rs4gc] add tests for existing code stripping attributes from function signatures
Commit: a505801e2b7ba13b224e8f2015a64cbe03e62d35
https://github.com/llvm/llvm-project/commit/a505801e2b7ba13b224e8f2015a64cbe03e62d35
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
M llvm/test/Transforms/RewriteStatepointsForGC/strip-invalid-attributes.ll
Log Message:
-----------
[rs4gc] Strip nofree and nosync attributes when lowering from abstract model
The safepoints being inserted exists to free memory, or coordinate with another thread to do so. Thus, we must strip any inferred attributes and reinfer them after the lowering.
I'm not aware of any active miscompiles caused by this, but since I'm working on strengthening inference of both and leveraging them in the optimization decisions, I figured a bit of future proofing was warranted.
Commit: 3f8c6f493b06d72312757102f8277d367409bcdd
https://github.com/llvm/llvm-project/commit/3f8c6f493b06d72312757102f8277d367409bcdd
Author: Greg McGary <gkm at fb.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M lld/MachO/Symbols.h
Log Message:
-----------
[lld-macho][NFC] Remove redundant member from class Defined
`class Symbol` defines a data member `InputFile *file;`
`class Defined` inherits from `Symbol` and also defines a data member `InputFile *file;` for no apparent purpose.
Differential Revision: https://reviews.llvm.org/D99783
Commit: 2c4548e18e09686659bddad617b8c42a47714540
https://github.com/llvm/llvm-project/commit/2c4548e18e09686659bddad617b8c42a47714540
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
Log Message:
-----------
[rs4gc] Use loops instead of straightline code for attribute stripping [nfc]
Mostly because I'm about to add more attributes and the straightline copies get much uglier. What's currently there isn't too bad.
Commit: 8867fc69f03d0438b0e8beb1dd89c04238f631a1
https://github.com/llvm/llvm-project/commit/8867fc69f03d0438b0e8beb1dd89c04238f631a1
Author: Florian Hahn <flo at fhahn.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
Log Message:
-----------
[LV] Hoist mapping of IR operands to VPValues (NFC).
This patch moves mapping of IR operands to VPValues out of
tryToCreateWidenRecipe. This allows using existing VPValue operands when
widening recipes directly, which will be introduced in future patches.
Commit: 55978f914e88dc12bcc62666128c175c86adfd22
https://github.com/llvm/llvm-project/commit/55978f914e88dc12bcc62666128c175c86adfd22
Author: Nico Weber <thakis at chromium.org>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M compiler-rt/lib/tsan/CMakeLists.txt
M llvm/utils/gn/secondary/compiler-rt/lib/BUILD.gn
M llvm/utils/gn/secondary/compiler-rt/lib/asan/BUILD.gn
A llvm/utils/gn/secondary/compiler-rt/lib/tsan/BUILD.gn
Log Message:
-----------
[gn build] add build file for tsan runtime
Linux-only for now. Some mac bits stubbed out, but not tested.
Good enough for the tiny_race.c example at
https://clang.llvm.org/docs/ThreadSanitizer.html :
$ out/gn/bin/clang -fsanitize=address -g -O1 tiny_race.c
$ while true; do ./a.out || echo $? ; done
While here, also make `-fsanitize=address` work for .c files.
Differential Revision: https://reviews.llvm.org/D99795
Commit: 6abb92f2103a58d097620b4410054c5bb18c48ec
https://github.com/llvm/llvm-project/commit/6abb92f2103a58d097620b4410054c5bb18c48ec
Author: Dimitry Andric <dimitry at andric.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/SCCP.cpp
A llvm/test/Transforms/SCCP/pr49582-iterator-invalidation.ll
Log Message:
-----------
[SCCP] Avoid modifying AdditionalUsers while iterating over it
When run under valgrind, or with a malloc that poisons freed memory,
this can lead to segfaults or other problems.
To avoid modifying the AdditionalUsers DenseMap while still iterating,
save the instructions to be notified in a separate SmallPtrSet, and use
this to later call OperandChangedState on each instruction.
Fixes PR49582.
Reviewed By: fhahn
Differential Revision: https://reviews.llvm.org/D98602
Commit: 47ebf7764db2498a56877defdd9bda9fcaf584ab
https://github.com/llvm/llvm-project/commit/47ebf7764db2498a56877defdd9bda9fcaf584ab
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/test/Transforms/GVNSink/assumption.ll
Log Message:
-----------
[GVNSink] auto-generate test checks; NFC
Commit: 6643132154535c9911d536146369d0e16d49a591
https://github.com/llvm/llvm-project/commit/6643132154535c9911d536146369d0e16d49a591
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/test/Transforms/InstCombine/not.ll
Log Message:
-----------
[InstCombine] add tests for not+or+neg; NFC
https://llvm.org/PR45755
Commit: 412fc74140c01cc9c29245a248edeee59d8814a4
https://github.com/llvm/llvm-project/commit/412fc74140c01cc9c29245a248edeee59d8814a4
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
M llvm/test/Transforms/InstCombine/not.ll
Log Message:
-----------
[InstCombine] fold not+or+neg
~((-X) | Y) --> (X - 1) & (~Y)
We generally prefer 'add' over 'sub', this reduces the
dependency chain, and this looks better for codegen on
x86, ARM, and AArch64 targets.
https://llvm.org/PR45755
https://alive2.llvm.org/ce/z/cxZDSp
Commit: f6790bec5c228476bc844648780a95f999707e3e
https://github.com/llvm/llvm-project/commit/f6790bec5c228476bc844648780a95f999707e3e
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/test/MC/RISCV/rv64i-aliases-valid.s
Log Message:
-----------
[RISCV] Add missing CHECK-EXPAND line to one case in rv64i-aliases-valid.s.
Use -NEXT to protect against other missing lines.
Commit: d7ffa82a8e621ce9a19b98c922adc53d6b7cd9f3
https://github.com/llvm/llvm-project/commit/d7ffa82a8e621ce9a19b98c922adc53d6b7cd9f3
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMatInt.cpp
M llvm/test/CodeGen/RISCV/calling-conv-half.ll
M llvm/test/CodeGen/RISCV/imm.ll
M llvm/test/MC/RISCV/rv64i-aliases-valid.s
Log Message:
-----------
[RISCV] Improve 64-bit integer constant materialization for more cases.
For positive constants we try shifting left to remove leading zeros
and fill the bottom bits with 1s. We then materialize that constant
shift it right.
This patch adds a new strategy to try filling the bottom bits with
zeros instead. This catches some additional cases.
Commit: 78a39d2a41661719e8d973830568571d75cd4b09
https://github.com/llvm/llvm-project/commit/78a39d2a41661719e8d973830568571d75cd4b09
Author: peter klausler <pklausler at nvidia.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M flang/runtime/CMakeLists.txt
M flang/runtime/descriptor.cpp
M flang/runtime/descriptor.h
A flang/runtime/misc-intrinsic.cpp
A flang/runtime/misc-intrinsic.h
M flang/unittests/RuntimeGTest/CMakeLists.txt
A flang/unittests/RuntimeGTest/MiscIntrinsic.cpp
M flang/unittests/RuntimeGTest/Reduction.cpp
A flang/unittests/RuntimeGTest/tools.h
Log Message:
-----------
[flang] TRANSFER() intrinsic function
API, implementation, and unit tests for the intrinsic
function TRANSFER.
Differential Revision: https://reviews.llvm.org/D99799
Commit: 262f4872aea2e9593cc7ee20f4fe5691fb9f0386
https://github.com/llvm/llvm-project/commit/262f4872aea2e9593cc7ee20f4fe5691fb9f0386
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/test/CodeGen/Hexagon/hwloop3.ll
Log Message:
-----------
[Hexagon, test] Fix use of undef FileCheck var
LLVM test CodeGen/Hexagon/hwloop3.ll tries to check for the absence of a
sequence of consecutive instructions with several CHECK-NOT with one of
those directives using a variable defined in another. However CHECK-NOT
are checked independently so that is using a variable defined in a
pattern that should not occur in the input.
This commit merges the two CHECK-NOT into a single CHECK-NOT that
matches the content of two successive non-blank lines, thereby allowing
to preserve the intent of the test.
Reviewed By: bcahoon
Differential Revision: https://reviews.llvm.org/D99778
Commit: b001d574d7d94bcf1508fa4cdc22e02a0bf4adea
https://github.com/llvm/llvm-project/commit/b001d574d7d94bcf1508fa4cdc22e02a0bf4adea
Author: Levy Hsu <admin at levyhsu.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/include/clang/Basic/BuiltinsRISCV.def
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/Sema/SemaChecking.cpp
A clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbr.c
A clang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbr.c
M llvm/include/llvm/IR/IntrinsicsRISCV.td
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
A llvm/test/CodeGen/RISCV/rv32zbr.ll
A llvm/test/CodeGen/RISCV/rv64zbr.ll
Log Message:
-----------
[RISCV] Add IR intrinsic for Zbr extension
Implementation for RISC-V Zbr extension intrinsic.
Header files are included in separate patch in case the name needs to be changed
RV32 / 64:
crc32b
crc32h
crc32w
crc32cb
crc32ch
crc32cw
RV64 Only:
crc32d
crc32cd
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D99009
Commit: 15ec0ad77ae3b65e791567854da5b4984030d080
https://github.com/llvm/llvm-project/commit/15ec0ad77ae3b65e791567854da5b4984030d080
Author: Eric Astor <epastor at google.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/MC/MCParser/MasmParser.cpp
M llvm/test/tools/llvm-ml/variable.asm
Log Message:
-----------
[ms] [llvm-ml] Fix case-sensitivity for variables and textmacros
Make variables and text-macro references case-insensitive, to match ml.exe.
Also improve error handling for text-macro expansion.
Reviewed By: thakis
Differential Revision: https://reviews.llvm.org/D92503
Commit: 8e5f3d04f269dbe791076e775f1d1a098cbada01
https://github.com/llvm/llvm-project/commit/8e5f3d04f269dbe791076e775f1d1a098cbada01
Author: Fangrui Song <i at maskray.me>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLPVectorizer] Fix divide-by-zero after D99719
Will add a test case later.
Commit: 1808194590dd2b308bc146406425d5d52e46b7e6
https://github.com/llvm/llvm-project/commit/1808194590dd2b308bc146406425d5d52e46b7e6
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/include/clang/Basic/BuiltinsRISCV.def
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/Sema/SemaChecking.cpp
A clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbb.c
A clang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbb.c
M llvm/include/llvm/IR/IntrinsicsRISCV.td
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
A llvm/test/CodeGen/RISCV/rv32zbb-intrinsic.ll
A llvm/test/CodeGen/RISCV/rv64zbb-intrinsic.ll
Log Message:
-----------
[RISCV] Add IR intrinsic for Zbb extension
Header files are included in a separate patch in case the name needs to be changed.
RV32 / 64:
orc.b
Commit: 3a223cd4f3adfebf6db7d7e680ff2da73d3ef5fb
https://github.com/llvm/llvm-project/commit/3a223cd4f3adfebf6db7d7e680ff2da73d3ef5fb
Author: Cyndy Ishida <cyndy_ishida at apple.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/include/llvm/TextAPI/MachO/InterfaceFile.h
M llvm/include/llvm/TextAPI/MachO/Symbol.h
M llvm/lib/TextAPI/MachO/InterfaceFile.cpp
M llvm/lib/TextAPI/MachO/TextStub.cpp
Log Message:
-----------
[TextAPI] run clang-format on violating sections, NFC
Commit: 1f0b309f24ba7ed144ddcd20cccedc284d990074
https://github.com/llvm/llvm-project/commit/1f0b309f24ba7ed144ddcd20cccedc284d990074
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/include/clang/Basic/BuiltinsRISCV.def
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/Sema/SemaChecking.cpp
R clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbb.c
R clang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbb.c
M llvm/include/llvm/IR/IntrinsicsRISCV.td
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
R llvm/test/CodeGen/RISCV/rv32zbb-intrinsic.ll
R llvm/test/CodeGen/RISCV/rv64zbb-intrinsic.ll
Log Message:
-----------
Revert "[RISCV] Add IR intrinsic for Zbb extension"
This reverts commit 1808194590dd2b308bc146406425d5d52e46b7e6.
I forgot to change the author.
Commit: 944adbf285505ac481551157c4ee3cc3c0724900
https://github.com/llvm/llvm-project/commit/944adbf285505ac481551157c4ee3cc3c0724900
Author: Levy Hsu <admin at levyhsu.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/include/clang/Basic/BuiltinsRISCV.def
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/Sema/SemaChecking.cpp
A clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbb.c
A clang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbb.c
M llvm/include/llvm/IR/IntrinsicsRISCV.td
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
A llvm/test/CodeGen/RISCV/rv32zbb-intrinsic.ll
A llvm/test/CodeGen/RISCV/rv64zbb-intrinsic.ll
Log Message:
-----------
Recommit "[RISCV] Add IR intrinsic for Zbb extension"
Forgot to amend the Author.
Original commit message:
Header files are included in a separate patch in case the name needs to be changed.
RV32 / 64:
orc.b
Differential Revision: https://reviews.llvm.org/D99320
Commit: 12c3bca1934a5eb0e23f6265d8fcc11ad6f4dea5
https://github.com/llvm/llvm-project/commit/12c3bca1934a5eb0e23f6265d8fcc11ad6f4dea5
Author: Rob Suderman <rob.suderman at gmail.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M mlir/include/mlir/Dialect/Linalg/IR/LinalgNamedStructuredOpsSpec.tc
Log Message:
-----------
[mlir] Rename linalg.pooling operations to have a FOp postfix for floating point
Linalg pooling operations only support floating point currently but integer
variants will soon be needed. Renaming to uncluse a FOp postfix to clarify.
Differential Revision: https://reviews.llvm.org/D99779
Commit: f78d932cf23a6521a1f9a08c539d1a00148ebe54
https://github.com/llvm/llvm-project/commit/f78d932cf23a6521a1f9a08c539d1a00148ebe54
Author: Levy Hsu <admin at levyhsu.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/include/clang/Basic/BuiltinsRISCV.def
M clang/lib/CodeGen/CGBuiltin.cpp
A clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbc.c
A clang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbc.c
M llvm/include/llvm/IR/IntrinsicsRISCV.td
M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
A llvm/test/CodeGen/RISCV/rv32zbc-intrinsic.ll
A llvm/test/CodeGen/RISCV/rv64zbc-intrinsic.ll
Log Message:
-----------
[RISCV] Add IR intrinsics for Zbc extension
Head files are included in a separate patch in case the name needs to be changed.
RV32 / 64:
clmul
clmulh
clmulr
Differential Revision: https://reviews.llvm.org/D99711
Commit: 0499a9d6889050c4b28c0d6d9ec987831ad7de7e
https://github.com/llvm/llvm-project/commit/0499a9d6889050c4b28c0d6d9ec987831ad7de7e
Author: Eric Astor <epastor at google.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/lib/MC/MCParser/MasmParser.cpp
A llvm/test/tools/llvm-ml/hexfloat_error.asm
A llvm/test/tools/llvm-ml/hexfloat_warn.asm
M llvm/tools/llvm-ml/Opts.td
M llvm/tools/llvm-ml/llvm-ml.cpp
Log Message:
-----------
[ms] [llvm-ml] Accept /WX to signal that warnings should be fatal.
Define -fatal-warnings to make warnings fatal, and accept /WX as an ML.EXE compatible alias for it.
Also make sure that if Warning() returns true, we always treat it as an error.
Reviewed By: thakis
Differential Revision: https://reviews.llvm.org/D92504
Commit: 1bd4986e7cdc124fecbf4b4527039a9a845e61f5
https://github.com/llvm/llvm-project/commit/1bd4986e7cdc124fecbf4b4527039a9a845e61f5
Author: Jessica Clarke <jrtc27 at jrtc27.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/lib/Sema/SemaChecking.cpp
Log Message:
-----------
[Sema] Fix Windows build after b001d574d7d9
Commit: 5311abc7a24e4170e5e6d06f1022da87f1413dd7
https://github.com/llvm/llvm-project/commit/5311abc7a24e4170e5e6d06f1022da87f1413dd7
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/lib/Sema/SemaChecking.cpp
Log Message:
-----------
[RISCV] Try using toupper instead of std::toupper to make the build bots happy.
Commit: be7358df1e3066d09171159211b9fa578272585e
https://github.com/llvm/llvm-project/commit/be7358df1e3066d09171159211b9fa578272585e
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/lib/Sema/SemaChecking.cpp
Log Message:
-----------
Revert "[RISCV] Try using toupper instead of std::toupper to make the build bots happy."
This reverts commit 5311abc7a24e4170e5e6d06f1022da87f1413dd7.
jrtc27 included the proper header in 1bd4986e7cdc124fecbf4b4527039a9a845e61f5
while I was trying to figure out what llvm/clang usually used.
Commit: 2165c0d389c0b8f7dfd383ea6abd0d9b5d2ee07f
https://github.com/llvm/llvm-project/commit/2165c0d389c0b8f7dfd383ea6abd0d9b5d2ee07f
Author: Mike Rice <michael.p.rice at intel.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/docs/OpenMPSupport.rst
Log Message:
-----------
[OPENMP][DOCS]Update status of the supported constructs, NFC.
Commit: 942cf225650928734e645078beb039b6108080d2
https://github.com/llvm/llvm-project/commit/942cf225650928734e645078beb039b6108080d2
Author: Jan Kratochvil <jan.kratochvil at redhat.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h
Log Message:
-----------
[nfc] [llvm] Make DWARFListTableBase::findList const
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D99731
Commit: 109305e1046e68a26a99d3398434615ead1a8d2e
https://github.com/llvm/llvm-project/commit/109305e1046e68a26a99d3398434615ead1a8d2e
Author: River Riddle <riddleriver at gmail.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M mlir/lib/IR/BuiltinAttributes.cpp
M mlir/lib/IR/BuiltinTypes.cpp
M mlir/test/IR/attribute.mlir
A mlir/test/IR/invalid-unregistered.mlir
M mlir/unittests/IR/AttributeTest.cpp
Log Message:
-----------
[mlir] Emit errors when creating unregistered attributes/types when not allowed
This was missed when verification for creating unregistered operations was added.
Differential Revision: https://reviews.llvm.org/D99684
Commit: cb424fee3d6b27dbd38de666382b702100935286
https://github.com/llvm/llvm-project/commit/cb424fee3d6b27dbd38de666382b702100935286
Author: Jennifer Yu <jennifer.yu at intel.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/include/clang/AST/OpenMPClause.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/Sema/Sema.h
M clang/lib/AST/OpenMPClause.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/Basic/OpenMPKinds.cpp
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/test/OpenMP/dispatch_ast_print.cpp
M clang/test/OpenMP/dispatch_messages.cpp
M clang/tools/libclang/CIndex.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M llvm/include/llvm/Frontend/OpenMP/OMP.td
Log Message:
-----------
[OPENMP5.1]Initial support for novariants clause.
Added basic parsing/sema/serialization support for the 'novariants' clause.
Commit: f02c6984d76cb42c26524e41814807fdce793487
https://github.com/llvm/llvm-project/commit/f02c6984d76cb42c26524e41814807fdce793487
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
Log Message:
-----------
[NFC][scudo] Split ScudoCombinedTest.BasicCombined
Existing implementations took up to 30 minutues to execute on my setup.
Now it's more convenient to debug a single test.
Reviewed By: cryptoad
Differential Revision: https://reviews.llvm.org/D99786
Commit: 4be8a26951da9a6e04de327b38dd158f4c8e3280
https://github.com/llvm/llvm-project/commit/4be8a26951da9a6e04de327b38dd158f4c8e3280
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/docs/InternalsManual.rst
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Sema/ParsedAttr.h
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/ParsedAttr.cpp
M clang/lib/Sema/SemaAttr.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaStmtAttr.cpp
M clang/test/Sema/attr-coldhot.c
M clang/test/Sema/attr-disable-tail-calls.c
M clang/test/Sema/internal_linkage.c
M clang/test/SemaCXX/attr-speculative-load-hardening.cpp
M clang/utils/TableGen/ClangAttrEmitter.cpp
Log Message:
-----------
Use tablegen to diagnose mutually exclusive attributes
Currently, when one or more attributes are mutually exclusive, the
developer adding the attribute has to manually emit diagnostics. In
practice, this is highly error prone, especially for declaration
attributes, because such checking is not trivial. Redeclarations
require you to write a "merge" function to diagnose mutually exclusive
attributes and most attributes get this wrong.
This patch introduces a table-generated way to specify that a group of
two or more attributes are mutually exclusive:
def : MutualExclusions<[Attr1, Attr2, Attr3]>;
This works for both statement and declaration attributes (but not type
attributes) and the checking is done either from the common attribute
diagnostic checking code or from within mergeDeclAttribute() when
merging redeclarations.
Commit: 223dcdcfbe23affdf17ada7f023ee1872fd76160
https://github.com/llvm/llvm-project/commit/223dcdcfbe23affdf17ada7f023ee1872fd76160
Author: Sean Silva <silvasean at google.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M mlir/include/mlir/Transforms/DialectConversion.h
M mlir/lib/Transforms/Utils/DialectConversion.cpp
Log Message:
-----------
[mlir] Add optional TypeConverter for materializations.
`ConversionPatternRewriter::applySignatureConversion` did not have a way
to apply a signature conversion that involved materializations.
Differential Revision: https://reviews.llvm.org/D99782
Commit: 4ea5475a3f3b13c5abaa6d0754bbc3ba72847377
https://github.com/llvm/llvm-project/commit/4ea5475a3f3b13c5abaa6d0754bbc3ba72847377
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/include/llvm/Support/KnownBits.h
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/unittests/Support/KnownBitsTest.cpp
Log Message:
-----------
[KnownBits] Add KnownBits::haveNoCommonBitsSet helper. NFCI.
Include exhaustive test coverage.
Commit: 0fe8af94688aa03c01913c2001d6a1a911f42ce6
https://github.com/llvm/llvm-project/commit/0fe8af94688aa03c01913c2001d6a1a911f42ce6
Author: Jennifer Yu <jennifer.yu at intel.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/lib/CodeGen/CGStmtOpenMP.cpp
Log Message:
-----------
Fix build bot problem with missing OMPC_novariants in switch.
Commit: eb1b55c652a78f17a913ffbc4369b75cea25f23f
https://github.com/llvm/llvm-project/commit/eb1b55c652a78f17a913ffbc4369b75cea25f23f
Author: Rob Suderman <rob.suderman at gmail.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
Log Message:
-----------
[mlir][tosa] Add tosa.reduce_any and tosa.reduce_all linalg lowering
Added lowerings for Tosa's reduce boolean operations. This includes a fix to
maintain the output rank of reduce operations.
Reviewed By: silvas
Differential Revision: https://reviews.llvm.org/D99228
Commit: 4c58f333f141e2f6d20ce165223a2362a90fbf45
https://github.com/llvm/llvm-project/commit/4c58f333f141e2f6d20ce165223a2362a90fbf45
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt
Log Message:
-----------
[NFC][scudo] Add test header int CMake file
Commit: 46f2fdb840d66c41a3ee751208f42529c185e29e
https://github.com/llvm/llvm-project/commit/46f2fdb840d66c41a3ee751208f42529c185e29e
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
M compiler-rt/lib/scudo/standalone/tests/primary_test.cpp
M compiler-rt/lib/scudo/standalone/tests/scudo_unit_test.h
Log Message:
-----------
[NFC][scudo] Move macro into a shared header
Commit: c115c28914a005cc8d0d3ee67eb9071560ebb55a
https://github.com/llvm/llvm-project/commit/c115c28914a005cc8d0d3ee67eb9071560ebb55a
Author: peter klausler <pklausler at nvidia.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M flang/runtime/complex-reduction.c
M flang/runtime/complex-reduction.h
M flang/runtime/numeric.cpp
M flang/runtime/numeric.h
M flang/runtime/reduction.cpp
M flang/runtime/reduction.h
Log Message:
-----------
[flang] Address more MSVC build issues with reductions
Move #include <complex.h> to complex-reduction.h, where
it is needed in MSVC builds.
Exclude code that requires a native 128-bit integer type from
compilation by MSVC.
Differential Revision: https://reviews.llvm.org/D99806
Commit: d302e33b9708524f79db0b3a3450b370fd9fc36f
https://github.com/llvm/llvm-project/commit/d302e33b9708524f79db0b3a3450b370fd9fc36f
Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M lldb/test/API/tools/lldb-vscode/launch/TestVSCode_launch.py
Log Message:
-----------
[LLDB] Sleep for 5 second TestVSCode_launch test_progress_events
This increases sleep time to 5 seconds as the test still fails
intermittently. If failure persists then we will disable/fix the
test.
Commit: 1d54aa2e0d72a554edfe57e4e3bcfd6e8f3d3514
https://github.com/llvm/llvm-project/commit/1d54aa2e0d72a554edfe57e4e3bcfd6e8f3d3514
Author: Jinsong Ji <jji at us.ibm.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/test/Transforms/SampleProfile/profile-context-tracker-debug.ll
Log Message:
-----------
[CSSPGO][Test] XFAIL profile-context-tracker-debug.ll on AIX
The case start to fail since https://reviews.llvm.org/D99351.
Looks like to me that the node order within Context Profile Tree depends
on the implmementation of std::hash<std::string>.
Unfortunately, the current clang implementation generate different values on
AIX (or for all big-endian systems?)
On Linux:
main: 2408804140(0x8f936f2c)
external: 896680882(0x357243b2)
externalA: 620231129(0x24f7f9d9)
On AIX:
main: 994322777(0x3b442959)
external: 3548191215(0xd37d19ef)
externalA: 1390365101(0x52df49ad)
XFAIL it first while we discuss and seek for a fix.
Reviewed By: wenlei
Differential Revision: https://reviews.llvm.org/D99815
Commit: f176803ef1f4050a350e01868d64fe09a674d3bf
https://github.com/llvm/llvm-project/commit/f176803ef1f4050a350e01868d64fe09a674d3bf
Author: Nico Weber <thakis at chromium.org>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M compiler-rt/lib/asan/asan_rtl.cpp
M compiler-rt/lib/asan/asan_thread.cpp
M compiler-rt/lib/hwasan/hwasan.cpp
M compiler-rt/lib/lsan/lsan.cpp
M compiler-rt/lib/memprof/memprof_rtl.cpp
M compiler-rt/lib/msan/msan.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_common.h
M compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_linux.h
M compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_rtems.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_win.cpp
M compiler-rt/lib/sanitizer_common/tests/sanitizer_common_test.cpp
M compiler-rt/lib/sanitizer_common/tests/sanitizer_linux_test.cpp
M compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
Log Message:
-----------
Revert "[sanitizer] Simplify GetTls with dl_iterate_phdr"
This reverts commit 9be8f8b34d9b150cd1811e3556fe9d0cd735ae29.
This breaks tsan on Ubuntu 16.04:
$ cat tiny_race.c
#include <pthread.h>
int Global;
void *Thread1(void *x) {
Global = 42;
return x;
}
int main() {
pthread_t t;
pthread_create(&t, NULL, Thread1, NULL);
Global = 43;
pthread_join(t, NULL);
return Global;
}
$ out/gn/bin/clang -fsanitize=thread -g -O1 tiny_race.c --sysroot ~/src/chrome/src/build/linux/debian_sid_amd64-sysroot/
$ docker run -v $PWD:/foo ubuntu:xenial /foo/a.out
FATAL: ThreadSanitizer CHECK failed: ../../compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp:447 "((thr_beg)) >= ((tls_addr))" (0x7fddd76beb80, 0xfffffffffffff980)
#0 <null> <null> (a.out+0x4960b6)
#1 <null> <null> (a.out+0x4b677f)
#2 <null> <null> (a.out+0x49cf94)
#3 <null> <null> (a.out+0x499bd2)
#4 <null> <null> (a.out+0x42aaf1)
#5 <null> <null> (libpthread.so.0+0x76b9)
#6 <null> <null> (libc.so.6+0x1074dc)
(Get the sysroot from here: https://commondatastorage.googleapis.com/chrome-linux-sysroot/toolchain/500976182686961e34974ea7bdc0a21fca32be06/debian_sid_amd64_sysroot.tar.xz)
Also reverts follow-on commits:
This reverts commit 58c62fd9768594ec8dd57e8320ba2396bf8b87e5.
This reverts commit 31e541e37587100a5b21378380f54c028fda2d04.
Commit: 8156d899ab2f31d7c8fa012ca32530adcae228b0
https://github.com/llvm/llvm-project/commit/8156d899ab2f31d7c8fa012ca32530adcae228b0
Author: Nico Weber <thakis at chromium.org>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/utils/gn/secondary/compiler-rt/lib/scudo/standalone/tests/BUILD.gn
Log Message:
-----------
[gn build] (manually) port 4c58f333f141
Commit: 817d98d84186c3508ba7a9a58202e616b23f344a
https://github.com/llvm/llvm-project/commit/817d98d84186c3508ba7a9a58202e616b23f344a
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M lld/MachO/Arch/ARM64.cpp
M lld/MachO/Arch/X86_64.cpp
M lld/MachO/Driver.cpp
M lld/MachO/DriverUtils.cpp
M lld/MachO/InputFiles.cpp
M lld/MachO/InputFiles.h
M lld/MachO/InputSection.cpp
M lld/MachO/LTO.cpp
M lld/MachO/MachOStructs.h
M lld/MachO/ObjC.cpp
M lld/MachO/SyntheticSections.cpp
M lld/MachO/SyntheticSections.h
M lld/MachO/Target.h
M lld/MachO/UnwindInfoSection.cpp
M lld/MachO/Writer.cpp
M lld/MachO/Writer.h
Log Message:
-----------
[lld-macho][nfc] Refactor in preparation for 32-bit support
The main challenge was handling the different on-disk structures (e.g.
`mach_header` vs `mach_header_64`). I tried to strike a balance between
sprinkling `target->wordSize == 8` checks everywhere (branchy = slow, and ugly)
and templatizing everything (causes code bloat, also ugly). I think I struck a
decent balance by judicious use of type erasure.
Note that LLD-ELF has a similar architecture, though it seems to use more templating.
Linking chromium_framework takes about the same time before and after this
change:
N Min Max Median Avg Stddev
x 20 4.52 4.67 4.595 4.5945 0.044423204
+ 20 4.5 4.71 4.575 4.582 0.056344803
No difference proven at 95.0% confidence
Reviewed By: #lld-macho, oontvoo
Differential Revision: https://reviews.llvm.org/D99633
Commit: 03c41191af1e171a234bf30196189a93da52b8a6
https://github.com/llvm/llvm-project/commit/03c41191af1e171a234bf30196189a93da52b8a6
Author: Nico Weber <thakis at chromium.org>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/utils/gn/secondary/compiler-rt/lib/BUILD.gn
M llvm/utils/gn/secondary/compiler-rt/lib/tsan/BUILD.gn
Log Message:
-----------
[gn build] hook up tsan on macOS too
Mostly just works already.
Commit: a0e611cf722799174fa92116fa8a5c12ff2fa53e
https://github.com/llvm/llvm-project/commit/a0e611cf722799174fa92116fa8a5c12ff2fa53e
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M llvm/test/CodeGen/RISCV/rv64zbb-intrinsic.ll
Log Message:
-----------
[RISCV] Add signext attribute to i32 orc.b test for RV64 to match other Zbb tests.
Shows the sext.w at the end that would show up in C code. I'm thinking
orc.b would preserve sign bits from it's input, but I'm not sure.
Commit: c318746345cc68ecb3c1ac420baa2102e83f716f
https://github.com/llvm/llvm-project/commit/c318746345cc68ecb3c1ac420baa2102e83f716f
Author: Fangrui Song <i at maskray.me>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M lld/MachO/Writer.cpp
Log Message:
-----------
[lld-macho] Fix -Wsuggest-override after D99633. NFC
Commit: bac74a50e99f3d014d6e5a67272fd3b20eeb7fed
https://github.com/llvm/llvm-project/commit/bac74a50e99f3d014d6e5a67272fd3b20eeb7fed
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M clang/test/CXX/drs/dr3xx.cpp
M clang/test/CXX/expr/expr.prim/expr.prim.lambda/p4-1y.cpp
M clang/test/CXX/special/class.copy/p33-0x.cpp
M clang/test/CXX/temp/temp.decls/temp.mem/p5.cpp
M clang/test/SemaCXX/conversion-function.cpp
M clang/test/SemaCXX/cxx1y-deduced-return-type.cpp
Log Message:
-----------
[clang] NFC: remove trailing white spaces from some tests
Differential Revision: https://reviews.llvm.org/D99826
Commit: 2458aa0b9136e7616f529b027d1d478cf699340f
https://github.com/llvm/llvm-project/commit/2458aa0b9136e7616f529b027d1d478cf699340f
Author: David Blaikie <dblaikie at gmail.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/utils/TableGen/ClangAttrEmitter.cpp
Log Message:
-----------
Add missing override to clang tblgen AttrEmitter
Commit: b4f2e8060075761dd0e9727ea01ca0142b4e767f
https://github.com/llvm/llvm-project/commit/b4f2e8060075761dd0e9727ea01ca0142b4e767f
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-02 (Fri, 02 Apr 2021)
Changed paths:
M clang/lib/CodeGen/CGBuiltin.cpp
Log Message:
-----------
[RISCV] Refactor conversion of B extensions to IR intrinsics a little to reduce clang binary size.
These all pass 1 type to getIntrinsic. So rather than assigning
IntrinsicTypes for each builtin which invokes the SmallVector
constructor, just select the intrinsic ID with a switch and
share a single assignment of IntrinsicTypes.
Commit: 95f448aa86cd3680a9493b2311d9efb41c4d4c01
https://github.com/llvm/llvm-project/commit/95f448aa86cd3680a9493b2311d9efb41c4d4c01
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M clang/test/Profile/c-unreachable-after-switch.c
Log Message:
-----------
[PGO, test] Fix typo in FileCheck var
Reviewed By: xur
Differential Revision: https://reviews.llvm.org/D99821
Commit: 17b4e5d4563104130575c6e07e7a8f05a6f7653c
https://github.com/llvm/llvm-project/commit/17b4e5d4563104130575c6e07e7a8f05a6f7653c
Author: Nikita Popov <nikita.ppv at gmail.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M llvm/include/llvm/Analysis/BasicAliasAnalysis.h
M llvm/lib/Analysis/BasicAliasAnalysis.cpp
Log Message:
-----------
[BasicAA] Don't pass through AA metadata (NFCI)
BasicAA itself doesn't make use of AA metadata, but passes it
through to recursive queries and makes it part of the cache key.
Aliasing decisions that are based on AA metadata (i.e. TBAA and
ScopedAA) are based *only* on AA metadata, so checking them with
different pointer values or sizes is not useful, the result will
always be the same.
While this change is a mild compile-time improvement by itself,
the actual goal here is to reduce the size of AA cache keys in
a followup change.
Differential Revision: https://reviews.llvm.org/D90098
Commit: 9d20eaf9c08c9c22aa0d13f04d8e7895c9ac05d4
https://github.com/llvm/llvm-project/commit/9d20eaf9c08c9c22aa0d13f04d8e7895c9ac05d4
Author: Nikita Popov <nikita.ppv at gmail.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M llvm/include/llvm/Analysis/AliasAnalysis.h
M llvm/lib/Analysis/BasicAliasAnalysis.cpp
Log Message:
-----------
[BasicAA] Don't store AATags in cache key (NFC)
The AAMDNodes part of the MemoryLocation is not used by the BasicAA
cache, so don't store it. This reduces the size of each cache entry
from 112 bytes to 48 bytes.
Commit: b552e16b0b04cd216753e40990da774f4a400782
https://github.com/llvm/llvm-project/commit/b552e16b0b04cd216753e40990da774f4a400782
Author: Nikita Popov <nikita.ppv at gmail.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M llvm/lib/Analysis/Loads.cpp
M llvm/test/Transforms/InstCombine/load-store-forward.ll
Log Message:
-----------
[Loads] Forward constant vector store to load of first element
InstCombine performs simple forwarding from stores to loads, but
currently only handles the case where the load and store have the
same size. This extends it to also handle a store of a constant
with a larger size followed by a load with a smaller size.
This is implemented through ConstantFoldLoadThroughBitcast() which
is fairly primitive (e.g. does not allow storing a large integer
and then loading a small one), but at least can forward the first
element of a vector store. Unfortunately it seems that we currently
don't have a generic helper for "read a constant value as a different
type", it's all tangled up with other logic in either
ConstantFolding or VNCoercion.
Differential Revision: https://reviews.llvm.org/D98114
Commit: d66f9c4f1e83e69abf75f97cb5f8fd1dc9422357
https://github.com/llvm/llvm-project/commit/d66f9c4f1e83e69abf75f97cb5f8fd1dc9422357
Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M llvm/lib/Support/CMakeLists.txt
Log Message:
-----------
Fix build rules for LLVM_WITH_Z3 after D95727
Started to see build errors like this
../lib/Support/Z3Solver.cpp:19:10: fatal error: 'z3.h' file not found
#include <z3.h>
^~~~~~
1 error generated.
after commit 43ceb74eb1a5801662419fb66a6bf0d5414f1ec5.
The -isystem path to the Z3_INCLUDE_DIR wen't missing in the compile
commands. No idea why target_include_directories stopped working with
that commit, but using include_directories seem to work better.
Commit: 7c17f1ea842038252a7e005c1d9baf43b822535d
https://github.com/llvm/llvm-project/commit/7c17f1ea842038252a7e005c1d9baf43b822535d
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/phaddsub-extract.ll
Log Message:
-----------
[X86][SSE] isHorizontalBinOp - use getTargetShuffleInputs helper (REAPPLIED)
Use the getTargetShuffleInputs helper for all shuffle decoding
Reapplied (after reversion in rGfa0aff6d6960) with fix+test for subvector splitting - we weren't accounting for peeking through bitcasts changing the vector element count of the shuffle sources.
Commit: 34ec74907d2694818d6c35872b8221692ef22345
https://github.com/llvm/llvm-project/commit/34ec74907d2694818d6c35872b8221692ef22345
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M llvm/test/CodeGen/X86/clz.ll
Log Message:
-----------
[X86] Add PR47603 test case
Commit: 89afec348dbd3e5078f176e978971ee2d3b5dec8
https://github.com/llvm/llvm-project/commit/89afec348dbd3e5078f176e978971ee2d3b5dec8
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/clz.ll
Log Message:
-----------
[X86] Fold xor(truncate(xor(x,c1)),c2) -> xor(truncate(x),xor(truncate(c1),c2))
Fixes PR47603
This should probably be transferable to DAGCombine - the main limitation with the existing trunc(logicop) DAG fold is we don't know if legalization has tried to promote truncated logicops already. We might be able to peek through extensions as well.
Commit: 1470f94d71c544327f76b85c55cb6f7cb43a6cbb
https://github.com/llvm/llvm-project/commit/1470f94d71c544327f76b85c55cb6f7cb43a6cbb
Author: Nikita Popov <nikita.ppv at gmail.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M llvm/test/Transforms/InstCombine/load-store-forward.ll
Log Message:
-----------
[InstCombine] Add load/store forwarding test with odd size (NFC)
Test the case where the type size doesn't equal the store size,
as suggested by bjope.
Commit: 3bcb6a389ff4338d76a25b7d9e0e3c40d84695be
https://github.com/llvm/llvm-project/commit/3bcb6a389ff4338d76a25b7d9e0e3c40d84695be
Author: Christian Sigg <csigg at google.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M mlir/lib/Parser/Parser.cpp
Log Message:
-----------
Silence `-Wunused-private-field` warning on isIsolatedFromAbove.
NDEBUG builds currently warn because it's only used inside an assert.
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D99721
Commit: 665065821e6ae11deb9796a27b97a399e4bb3b0d
https://github.com/llvm/llvm-project/commit/665065821e6ae11deb9796a27b97a399e4bb3b0d
Author: Nikita Popov <nikita.ppv at gmail.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M llvm/docs/ReleaseNotes.rst
M llvm/include/llvm/CodeGen/FastISel.h
M llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
M llvm/lib/Target/AArch64/AArch64FastISel.cpp
M llvm/lib/Target/ARM/ARMFastISel.cpp
M llvm/lib/Target/Mips/MipsFastISel.cpp
M llvm/lib/Target/PowerPC/PPCFastISel.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
M llvm/lib/Target/X86/X86FastISel.cpp
M llvm/test/CodeGen/AArch64/arm64-fast-isel-rem.ll
M llvm/utils/TableGen/FastISelEmitter.cpp
Log Message:
-----------
[FastISel] Remove kill tracking
This is a followup to D98145: As far as I know, tracking of kill
flags in FastISel is just a compile-time optimization. However,
I'm not actually seeing any compile-time regression when removing
the tracking. This probably used to be more important in the past,
before FastRA was switched to allocate instructions in reverse
order, which means that it discovers kills as a matter of course.
As such, the kill tracking doesn't really seem to serve a purpose
anymore, and just adds additional complexity and potential for
errors. This patch removes it entirely. The primary changes are
dropping the hasTrivialKill() method and removing the kill
arguments from the emitFast methods. The rest is mechanical fixup.
Differential Revision: https://reviews.llvm.org/D98294
Commit: a78fa73bcf986cf5912d665ecd9620535f480607
https://github.com/llvm/llvm-project/commit/a78fa73bcf986cf5912d665ecd9620535f480607
Author: Nico Weber <thakis at chromium.org>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M lld/COFF/LTO.cpp
Log Message:
-----------
Revert "[lld-link] Enable addrsig table in COFF lto"
This reverts commit eabd55b1b2c5e322c3b36cb44348f178692890c8.
Speculative, for crbug.com/1195545
Commit: c04e1c8b668f4c30c4d492671fb56ecaa7776513
https://github.com/llvm/llvm-project/commit/c04e1c8b668f4c30c4d492671fb56ecaa7776513
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M lld/MachO/Target.h
Log Message:
-----------
[lld-macho] Fix build on 32-bit systems
Summary: Follow-up to D99633.
Commit: bd115d0991a27855a78122111ec69ada44f7cb34
https://github.com/llvm/llvm-project/commit/bd115d0991a27855a78122111ec69ada44f7cb34
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M lld/MachO/Target.h
Log Message:
-----------
[lld-macho] Another attempt at fixing 32-bit builds
Commit: 8c95f995db2843d8ac579dbe3a5aa2a5aea40cd3
https://github.com/llvm/llvm-project/commit/8c95f995db2843d8ac579dbe3a5aa2a5aea40cd3
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M llvm/test/Transforms/FunctionAttrs/nofree-attributor.ll
Log Message:
-----------
Speculative attempt to stablize a test
New pass manager and old pass manager appear to differ on whether declarations are included in SCCs. For some reason, which you get appears to depend on build configuration.
Commit: 122c0e61f1331f7e6106cdb9dfa95cefad5b3653
https://github.com/llvm/llvm-project/commit/122c0e61f1331f7e6106cdb9dfa95cefad5b3653
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M llvm/utils/TableGen/CodeGenInstruction.cpp
M llvm/utils/TableGen/CodeGenInstruction.h
Log Message:
-----------
[TableGen] Use StringRef instead of std::string to split up a string that's being parsed. NFCI
Commit: 7727cc242db77f2767509e1802e63c2b25de429c
https://github.com/llvm/llvm-project/commit/7727cc242db77f2767509e1802e63c2b25de429c
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86InstrSSE.td
M llvm/lib/Target/X86/X86SchedBroadwell.td
M llvm/lib/Target/X86/X86SchedHaswell.td
M llvm/lib/Target/X86/X86SchedSandyBridge.td
M llvm/lib/Target/X86/X86SchedSkylakeClient.td
M llvm/lib/Target/X86/X86SchedSkylakeServer.td
M llvm/lib/Target/X86/X86Schedule.td
M llvm/lib/Target/X86/X86ScheduleAtom.td
M llvm/lib/Target/X86/X86ScheduleBdVer2.td
M llvm/lib/Target/X86/X86ScheduleBtVer2.td
M llvm/lib/Target/X86/X86ScheduleSLM.td
M llvm/lib/Target/X86/X86ScheduleZnver1.td
M llvm/lib/Target/X86/X86ScheduleZnver2.td
Log Message:
-----------
[NFC][X86] Split VPMOV* AVX2 instructions into their own sched class
At least on all three Zen's, all such instructions cleanly map
into this new class with no overrides needed.
Commit: b32e76c6d507361b3cf2f1bed6756cd228588236
https://github.com/llvm/llvm-project/commit/b32e76c6d507361b3cf2f1bed6756cd228588236
Author: Mircea Trofin <mtrofin at google.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M llvm/CMakeLists.txt
M llvm/lib/Analysis/CMakeLists.txt
Log Message:
-----------
[mlgo] fix build rules
This was prompted by D95727, which had the side-effect to break the
'release' mode build bot for ML-driven policies. The problem is that now
the pre-compiled object files don't get transitively carried through as
'source' anymore; that being said, the previous way of consuming them
was problematic, because it was only working for static builds; in
dynamic builds, the whole tf_xla_runtime was linked, which is
undesirable.
The alternative is to treat tf_xla_runtime as an archive, which then
leads to the desired effect.
Differential Revision: https://reviews.llvm.org/D99829
Commit: 2554f99b554feb1a882d0dfc9eebc14a7d2d0cf3
https://github.com/llvm/llvm-project/commit/2554f99b554feb1a882d0dfc9eebc14a7d2d0cf3
Author: David Blaikie <dblaikie at gmail.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M llvm/examples/BrainF/BrainF.cpp
M llvm/examples/Kaleidoscope/BuildingAJIT/Chapter1/toy.cpp
M llvm/examples/Kaleidoscope/BuildingAJIT/Chapter2/toy.cpp
M llvm/examples/Kaleidoscope/BuildingAJIT/Chapter3/toy.cpp
M llvm/examples/Kaleidoscope/BuildingAJIT/Chapter4/toy.cpp
M llvm/examples/Kaleidoscope/Chapter8/toy.cpp
M llvm/examples/Kaleidoscope/Chapter9/toy.cpp
Log Message:
-----------
Opaque pointers: Migrate examples to use load with explicit type
Commit: 499571ea835daf786626a0db1e12f890b6cd8f8d
https://github.com/llvm/llvm-project/commit/499571ea835daf786626a0db1e12f890b6cd8f8d
Author: David Blaikie <dblaikie at gmail.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M mlir/lib/IR/OperationSupport.cpp
Log Message:
-----------
Add workaround for false positive in -Wfree-nonheap-object
Commit: 9f6649dd1249fc5f5d8631d91324ad850a0ed1f0
https://github.com/llvm/llvm-project/commit/9f6649dd1249fc5f5d8631d91324ad850a0ed1f0
Author: David Blaikie <dblaikie at gmail.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M mlir/lib/Parser/Parser.cpp
Log Message:
-----------
Add void cast to suppress -Wunused-member-variable on assert-only member
Commit: 30df6d5d6a8537d3ec7d8fe4299289a4c5a74d5c
https://github.com/llvm/llvm-project/commit/30df6d5d6a8537d3ec7d8fe4299289a4c5a74d5c
Author: David Blaikie <dblaikie at gmail.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M polly/lib/Transform/ScheduleTreeTransform.cpp
Log Message:
-----------
Preprocessor conditionalize some assert-only functions to suppress -Wunused-function
Commit: 1cc9d949a1233e8b17b3b345ccb67ca7296c1a6c
https://github.com/llvm/llvm-project/commit/1cc9d949a1233e8b17b3b345ccb67ca7296c1a6c
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M clang/test/CodeGenCXX/cxx2a-compare.cpp
Log Message:
-----------
[C++20, test] Fix use of undef FileCheck variable
Commit f495de43bd5da50286da6020e508d106cfc60f57 forgot two lines when
removing checks for strong and weak equality, resulting in the use of an
undefined FileCheck variable.
Reviewed By: Quuxplusone
Differential Revision: https://reviews.llvm.org/D99838
Commit: f1d4af4058e84c031df171627e4602139ad351ff
https://github.com/llvm/llvm-project/commit/f1d4af4058e84c031df171627e4602139ad351ff
Author: Juneyoung Lee <aqjune at gmail.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M llvm/test/Transforms/PhaseOrdering/unsigned-multiply-overflow-check.ll
Log Message:
-----------
[InstCombine] Reapply update_test_checks.py to unsigned-multiply-overflow-check.ll (NFC)
Commit: 732a90da785de2f61dbbf09d6c5fe55937d194b6
https://github.com/llvm/llvm-project/commit/732a90da785de2f61dbbf09d6c5fe55937d194b6
Author: Juneyoung Lee <aqjune at gmail.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
A llvm/test/Transforms/InstCombine/pr49688.ll
Log Message:
-----------
[InstCombine] precommit pr49688.ll (NFC)
This is going to be fixed by D99674
Commit: 6147501617f0a9e7d81bc5fa0182ba669bc2e520
https://github.com/llvm/llvm-project/commit/6147501617f0a9e7d81bc5fa0182ba669bc2e520
Author: Juneyoung Lee <aqjune at gmail.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M llvm/test/Transforms/InstSimplify/icmp-constant.ll
Log Message:
-----------
[InstSimplify] Add a test for folding comparison with a undef vector (NFC)
This is to fix https://reviews.llvm.org/D93990#2666922
Commit: 5207cde5cb4147155c469e1861427ea9d569bd5a
https://github.com/llvm/llvm-project/commit/5207cde5cb4147155c469e1861427ea9d569bd5a
Author: Juneyoung Lee <aqjune at gmail.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/test/Transforms/InstCombine/and-fcmp.ll
M llvm/test/Transforms/InstCombine/onehot_merge.ll
M llvm/test/Transforms/InstCombine/pr49688.ll
M llvm/test/Transforms/InstCombine/signed-truncation-check.ll
M llvm/test/Transforms/InstCombine/widenable-conditions.ll
Log Message:
-----------
[InstCombine] Conditionally fold select i1 into and/or
This patch fixes llvm.org/pr49688 by conditionally folding select i1 into and/or:
```
select cond, cond2, false
->
and cond, cond2
```
This is not safe if cond2 is poison whereas cond isn’t.
Unconditionally disabling this transformation affects later pipelines that depend on and/or i1s.
To minimize its impact, this patch conservatively checks whether cond2 is an instruction that
creates a poison or its operand creates a poison.
This approach is similar to what InstSimplify's SimplifyWithOpReplaced is doing.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D99674
Commit: 1b4800c2625912d16867d27e5eec3af27af31557
https://github.com/llvm/llvm-project/commit/1b4800c2625912d16867d27e5eec3af27af31557
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/ParsedAttr.h
M clang/lib/Parse/ParseDecl.cpp
M clang/lib/Parse/ParseDeclCXX.cpp
M clang/test/AST/sourceranges.cpp
M clang/test/Parser/cxx0x-attributes.cpp
M clang/test/SemaCXX/switch-implicit-fallthrough.cpp
Log Message:
-----------
[clang][parser] Set source ranges for GNU-style attributes
Set the source ranges for parsed GNU-style attributes in
ParseGNUAttributes(), the same way that ParseCXX11Attributes() does it.
Differential Revision: https://reviews.llvm.org/D75844
Commit: a2ea003fcb78b585f79c8458ff2ace8b79d192d0
https://github.com/llvm/llvm-project/commit/a2ea003fcb78b585f79c8458ff2ace8b79d192d0
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
Log Message:
-----------
[RISCV] Don't convert fshr/fshl to target specific FSL/FSR node if shift amount is a constant.
As long as it's a constant we can directly pattern match it
without any problems. It's only when it isn't a constant that
we need to add an AND.
In theory this should allow more target independent optimizations
to remain active.
Commit: c4c5113372477cc87ac33e93cb598a83b2856d7e
https://github.com/llvm/llvm-project/commit/c4c5113372477cc87ac33e93cb598a83b2856d7e
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2021-04-03 (Sat, 03 Apr 2021)
Changed paths:
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
Log Message:
-----------
[NFC][scudo] Restore !UseQuarantine check in tests
The check was removed in D99786 as it seems that quarantine is
irrelevant for the just created allocator. However there is internal
issues with tagged memory access.
We should be able to fix iterateOverChunks for taggin later.
Commit: 602ab188a7e18b97d9af95e17271e8fbee129081
https://github.com/llvm/llvm-project/commit/602ab188a7e18b97d9af95e17271e8fbee129081
Author: Jason Molenda <jason at molenda.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M lldb/source/Plugins/Language/ObjC/Cocoa.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h
M lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCCF.py
Log Message:
-----------
Revert "Add support for fetching signed values from tagged pointers."
This reverts commit 4d9039c8dc2d1f0be1b5ee486d5a83b1614b038a.
This is causing the greendragon bots to fail most of the time when
running TestNSDictionarySynthetic.py. Reverting until Jim has a chance
to look at this on Monday. Running the commands from that test from
the command line, it fails 10-13% of the time on my desktop.
This is a revert of Jim's changes in https://reviews.llvm.org/D99694
Commit: 3ac2541b5c31fd13fa60e7b0692b7f9bf4a41733
https://github.com/llvm/llvm-project/commit/3ac2541b5c31fd13fa60e7b0692b7f9bf4a41733
Author: Nikita Popov <nikita.ppv at gmail.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M llvm/test/Transforms/CorrelatedValuePropagation/and.ll
Log Message:
-----------
[CVP] Add test for and of min (NFC)
The and currently doesn't get optimized away because %a is
overdefined.
Commit: 72e0846ef87d0d3b5960238bc47fc0cc6f04d848
https://github.com/llvm/llvm-project/commit/72e0846ef87d0d3b5960238bc47fc0cc6f04d848
Author: Nikita Popov <nikita.ppv at gmail.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M llvm/lib/Analysis/LazyValueInfo.cpp
M llvm/test/Transforms/CorrelatedValuePropagation/and.ll
Log Message:
-----------
[LVI] Don't bail on overdefined value in select
Even if one of the operands is overdefined, we may still produce
a non-overdefined result, e.g. due to a min/max operation. This
matches our handling elsewhere, e.g. for binary operators.
The slot poisoning comment refers to a much older LVI cache
implementation.
Commit: 6e96de8abf272ee6c9b32b221149c2c04892b72a
https://github.com/llvm/llvm-project/commit/6e96de8abf272ee6c9b32b221149c2c04892b72a
Author: Butygin <ivan.butygin at intel.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M mlir/include/mlir/Interfaces/LoopLikeInterface.td
Log Message:
-----------
[mlir][NFC] Fully spell mlir types names in LoopLikeOpInterface, so it can be used in ops defined outside mlir namespace
Differential Revision: https://reviews.llvm.org/D99844
Commit: 6fbbb093aea52928bb8df4a2212f44ac3bac7733
https://github.com/llvm/llvm-project/commit/6fbbb093aea52928bb8df4a2212f44ac3bac7733
Author: Dimitry Andric <dimitry at andric.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M llvm/unittests/Support/TypeTraitsTest.cpp
Log Message:
-----------
Don't check that std::pair is trivially copyable on FreeBSD
As FreeBSD already used libc++ before it changed its ABI, we still use
the non-trivially copyable version of std::pair, which used to be
exposed via `_LIBCPP_TRIVIAL_PAIR_COPY_CTOR`, but more recently via
`_LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR`.
Reviewed By: serge-sans-paille
Differential Revision: https://reviews.llvm.org/D99834
Commit: 64a52e1e3266d04856850ffa1c5bc7532c511a21
https://github.com/llvm/llvm-project/commit/64a52e1e3266d04856850ffa1c5bc7532c511a21
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
A llvm/test/tools/llvm-exegesis/X86/uops-POPCNT32rr.s
M llvm/tools/llvm-exegesis/lib/X86/Target.cpp
Log Message:
-----------
[llvm-exegesis] Don't erroneously refuse to measure POPCNT instruction
Commit: fd73e4d4b29961d3b7dd8e746cdca9f7a15e1efa
https://github.com/llvm/llvm-project/commit/fd73e4d4b29961d3b7dd8e746cdca9f7a15e1efa
Author: Nikita Popov <nikita.ppv at gmail.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M llvm/test/Transforms/CorrelatedValuePropagation/and.ll
M llvm/test/Transforms/CorrelatedValuePropagation/basic.ll
Log Message:
-----------
[CVP] Add more tests for select with overdefined operand (NFC)
Also check the case where one operand isn't constant, which isn't
handled right now, because the SPF code requires both operands
to be ranges.
Move the tests to directly check ranges rather than go through an
and, to make it more obvious that this has no relation to bitmasks.
Commit: d094f3c3c5c447e2241f6d8b7e7379fc01865aeb
https://github.com/llvm/llvm-project/commit/d094f3c3c5c447e2241f6d8b7e7379fc01865aeb
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
A llvm/test/tools/llvm-exegesis/X86/uops-misspelled-div.s
M llvm/tools/llvm-exegesis/lib/SnippetFile.cpp
Log Message:
-----------
[llvm-exegesis] SnippetFile: do create source manager in MCContext
This way, once there's an error in the snippet file (like in the test),
llvm-exegesis won't crash with an assertion failure,
but print a nice diagnostic about the problem.
Commit: 241d42c38226e46ff01b774da3167ec54420bf24
https://github.com/llvm/llvm-project/commit/241d42c38226e46ff01b774da3167ec54420bf24
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M clang/test/Parser/cxx0x-attributes.cpp
Log Message:
-----------
Speculative fix for failing build bot.
This attempts to resolve an issue found by http://45.33.8.238/macm1/6821/step_6.txt
Commit: cb4443994e72ab524c70854dc93cd272ac1c4026
https://github.com/llvm/llvm-project/commit/cb4443994e72ab524c70854dc93cd272ac1c4026
Author: Nikita Popov <nikita.ppv at gmail.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M llvm/test/Transforms/SimplifyCFG/switch_create-custom-dl.ll
M llvm/test/Transforms/SimplifyCFG/switch_create.ll
Log Message:
-----------
[SimplifyCFG] Make test more robust (NFC)
These are supposed to test creation of a switch, so make sure
there is some actual code in the branches. Otherwise this could
be turned into a select instead.
Commit: 7ca168dd5adabcc01e957fb8486ddf2e22dd37d7
https://github.com/llvm/llvm-project/commit/7ca168dd5adabcc01e957fb8486ddf2e22dd37d7
Author: Nikita Popov <nikita.ppv at gmail.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
A llvm/test/Transforms/PhaseOrdering/partialord-ule.ll
M llvm/test/Transforms/SimplifyCFG/switch-to-select-two-case.ll
Log Message:
-----------
[SimplifyCFG] Add switch-to-select test with two equal cases (NFC)
We handle the case where we have two cases and a default all having
different values, but not the case where two cases happen to have
the same one.
The PhaseOrdering test is a particularly bad example where this
showed up.
Commit: 9bad7de9a3fb844f1ca2965f35d0c2a3d1e11775
https://github.com/llvm/llvm-project/commit/9bad7de9a3fb844f1ca2965f35d0c2a3d1e11775
Author: Nikita Popov <nikita.ppv at gmail.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/test/Transforms/PhaseOrdering/partialord-ule.ll
M llvm/test/Transforms/SimplifyCFG/switch-to-select-two-case.ll
Log Message:
-----------
[SimplifyCFG] Handle two equal cases in switch to select
When converting a switch with two cases and a default into a
select, also handle the denegerate case where two cases have the
same value.
Generate this case directly as
%or = or i1 %cmp1, %cmp2
%res = select i1 %or, i32 %val, i32 %default
rather than
%sel1 = select i1 %cmp1, i32 %val, i32 %default
%res = select i1 %cmp2, i32 %val, i32 %sel1
as InstCombine is going to canonicalize to the former anyway.
Commit: f18efb70c43b4c3f92f1bb0c213f6d7e09a09f4a
https://github.com/llvm/llvm-project/commit/f18efb70c43b4c3f92f1bb0c213f6d7e09a09f4a
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M llvm/test/Transforms/InstCombine/ctpop.ll
Log Message:
-----------
[InstCombine] add tests for ctpop of power-of-2; NFC
PR48999
Commit: c0645f13243cf574abd1f8d587dc22943b9dd95d
https://github.com/llvm/llvm-project/commit/c0645f13243cf574abd1f8d587dc22943b9dd95d
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/ctpop.ll
Log Message:
-----------
[InstCombine] fold popcount of exactly one bit to shift
This is discussed in https://llvm.org/PR48999 ,
but it does not solve that request.
The difference in the vector test shows that some
other logic transform is limited to scalar types.
Commit: f6197838827942f212ebd1e18837f3ed1ddb1868
https://github.com/llvm/llvm-project/commit/f6197838827942f212ebd1e18837f3ed1ddb1868
Author: Martin Storsjö <martin at martin.st>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M libcxx/test/std/language.support/support.dynamic/alloc.errors/set.new.handler/set_new_handler.pass.cpp
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t.pass.cpp
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow.pass.cpp
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_array.pass.cpp
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_array_nothrow.pass.cpp
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.pass.cpp
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t.pass.cpp
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow.pass.cpp
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_nothrow.pass.cpp
M libcxx/utils/libcxx/test/config.py
Log Message:
-----------
[libcxx] [test] Link against msvcprt as C++ ABI library in tests
This matches what we link the library itself against (set in
CMakeLists.txt). When testing a static library version of libc++,
this is needed for essentially every test due to libc++ object files
requiring it.
Also with libc++ built as a DLL, some tests directly call functions that
are provided by msvcprt (such as std::set_new_handler), thus this fixes
a number of tests in that configuration too.
Differential Revision: https://reviews.llvm.org/D99263
Commit: e92d2b80c6c913b5c506df06a913a2ecbf761617
https://github.com/llvm/llvm-project/commit/e92d2b80c6c913b5c506df06a913a2ecbf761617
Author: Fangrui Song <i at maskray.me>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M clang/lib/Driver/ToolChains/Gnu.cpp
A clang/test/Driver/Inputs/debian_i386_tree/lib/i386-linux-gnu/.keep
A clang/test/Driver/Inputs/debian_i386_tree/lib/x86_64-linux-gnu/.keep
A clang/test/Driver/Inputs/debian_i386_tree/lib64/.keep
A clang/test/Driver/Inputs/debian_i386_tree/usr/include/c++/10/backward/.keep
A clang/test/Driver/Inputs/debian_i386_tree/usr/include/i386-linux-gnu/c++/10/.keep
A clang/test/Driver/Inputs/debian_i386_tree/usr/include/i386-linux-gnu/c++/10/64/.keep
A clang/test/Driver/Inputs/debian_i386_tree/usr/include/x86_64-linux-gnu/.keep
A clang/test/Driver/Inputs/debian_i386_tree/usr/lib/gcc/i686-linux-gnu/10/64/crtbegin.o
A clang/test/Driver/Inputs/debian_i386_tree/usr/lib/gcc/i686-linux-gnu/10/crtbegin.o
A clang/test/Driver/Inputs/debian_i386_tree/usr/lib/gcc/i686-linux-gnu/10/crtend.o
A clang/test/Driver/Inputs/debian_i386_tree/usr/lib/i386-linux-gnu/crt1.o
A clang/test/Driver/Inputs/debian_i386_tree/usr/lib/i386-linux-gnu/crti.o
A clang/test/Driver/Inputs/debian_i386_tree/usr/lib/i386-linux-gnu/crtn.o
A clang/test/Driver/Inputs/debian_i386_tree/usr/lib/x86_64-linux-gnu/.keep
A clang/test/Driver/Inputs/debian_i386_tree/usr/lib64/.keep
A clang/test/Driver/Inputs/debian_i386_tree/usr/lib64/crt1.o
A clang/test/Driver/Inputs/debian_i386_tree/usr/lib64/crti.o
A clang/test/Driver/Inputs/debian_i386_tree/usr/lib64/crtn.o
M clang/test/Driver/linux-cross.cpp
Log Message:
-----------
[Driver] Detect libstdc++ include paths for native gcc (-m32 and -m64) on Debian i386
Take gcc-8 on Debian i386 as an example. The target-specific libstdc++ search
path (`GPLUSPLUS_TOOL_INCLUDE_DIR`) uses the multiarch name `i386-linux-gnu`,
instead of the triple of the GCC installation `i686-linux-gnu` (the directory
under `usr/lib/gcc/`):
```
/usr/include/c++/8
/usr/include/i386-linux-gnu/c++/8
/usr/include/c++/8/backward
```
Clang currently detects `/usr/lib/gcc/i686-linux-gnu/8/../../../include/i686-linux-gnu/c++/8`.
This patch changes the second i686-linux-gnu to i386-linux-gnu so that
`/usr/include/i386-linux-gnu/c++/8` can be found.
Fix PR49827 - this was somehow regressed by my previous libstdc++ include path
cleanups and fixes for gcc-cross, but it seems that the paths were never properly tested before.
Differential Revision: https://reviews.llvm.org/D99852
Commit: c2c68a5940dcd9c9e910dad78b96ecdec8517011
https://github.com/llvm/llvm-project/commit/c2c68a5940dcd9c9e910dad78b96ecdec8517011
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M libcxx/utils/generate_feature_test_macro_components.py
Log Message:
-----------
[libc++] Improve generate_feature_test_macro_components.py.
This improves the naming of the fields `depends`/`internal_depends`. It
also adds the documentation for this script. The changes are based on
D99290 and its review comments.
Differential Revision: https://reviews.llvm.org/D99615
Commit: a41b5100e43810694c09469bc725f560e7ef239f
https://github.com/llvm/llvm-project/commit/a41b5100e43810694c09469bc725f560e7ef239f
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M clang/test/CodeGenCUDA/device-stub.cu
Log Message:
-----------
[HIP-Clang, test] Fix use of undef FileCheck var
Commit 8129521318accc44c2a009647572f6ebd3fc56dd changed a line defining
PREFIX in clang test CodeGenCUDA/device-stub.cu into a CHECK-NOT
directive. All following lines using PREFIX are therefore using an
undefined variable since the pattern defining PREFIX is not supposed to
occur and CHECK-NOT are checked independently.
This commit replaces all uses of PREFIX by the regex used to define it,
thereby avoiding the problem.
Reviewed By: yaxunl
Differential Revision: https://reviews.llvm.org/D99831
Commit: 292726b6443c7d7be4bb03af40cd3f60188b2ff7
https://github.com/llvm/llvm-project/commit/292726b6443c7d7be4bb03af40cd3f60188b2ff7
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M clang/test/CodeGenCUDA/kernel-stub-name.cu
Log Message:
-----------
[HIP, test] Fix use of undef FileCheck var
Clang test CodeGenCUDA/kernel-stub-name.cu uses never defined DKERN
variable in a CHECK-NOT directive. This commit replace the variable by a
regex, thereby avoiding the issue.
Reviewed By: yaxunl
Differential Revision: https://reviews.llvm.org/D99832
Commit: 98d5db3e3a3fadc4883d98388e689c1e14a2e90c
https://github.com/llvm/llvm-project/commit/98d5db3e3a3fadc4883d98388e689c1e14a2e90c
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
Log Message:
-----------
[RISCV] Lower orc.b intrinsic to RISCVISD::GORCI.
This will allow us to share any future known bits, demaned bits,
or sign bits improvements.
Commit: 5352490ce613f1bdedaf478765b089b1f0a8be0d
https://github.com/llvm/llvm-project/commit/5352490ce613f1bdedaf478765b089b1f0a8be0d
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
A llvm/test/Transforms/InstCombine/redundant-left-shift-input-masking-pr49778.ll
Log Message:
-----------
[NFC][InstCombine] Add test for PR49778
Commit: dceb3e599668496420d41b993100d23eeb7c0ada
https://github.com/llvm/llvm-project/commit/dceb3e599668496420d41b993100d23eeb7c0ada
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
Log Message:
-----------
[NFC][InstCombine] Extract canTryToConstantAddTwoShiftAmounts() as helper
Commit: 2760a808b9916a2839513b7fd7314a464f52481e
https://github.com/llvm/llvm-project/commit/2760a808b9916a2839513b7fd7314a464f52481e
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
M llvm/test/Transforms/InstCombine/redundant-left-shift-input-masking-pr49778.ll
Log Message:
-----------
[InstCombine] dropRedundantMaskingOfLeftShiftInput(): check that adding shift amounts doesn't overflow (PR49778)
This is identical to 781d077afb0ed9771c513d064c40170c1ccd21c9,
but for the other function.
For certain shift amount bit widths, we must first ensure that adding
shift amounts is safe, that the sum won't have an unsigned overflow.
Fixes https://bugs.llvm.org/show_bug.cgi?id=49778
Commit: 27e5bffbf62cb13638102c7d3de1f386e39f0373
https://github.com/llvm/llvm-project/commit/27e5bffbf62cb13638102c7d3de1f386e39f0373
Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M libcxx/include/streambuf
Log Message:
-----------
[libc++] Fix the header guard from _LIBCPP_STEAMBUF to _LIBCPP_STREAMBUF.
Commit: 9abff04e506fe0b86485909434d4dc3b6011c463
https://github.com/llvm/llvm-project/commit/9abff04e506fe0b86485909434d4dc3b6011c463
Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M libcxx/test/support/test_macros.h
Log Message:
-----------
[libc++] Fix test_macros.h in the same way as commit 49e5a896 fixed __config.
Since D99515, this header triggers -Wundef on Mac OSX older than 10.15.
This is now fixed.
Commit: ec575e3b0a462ff7a3d23d0f39a22147606050de
https://github.com/llvm/llvm-project/commit/ec575e3b0a462ff7a3d23d0f39a22147606050de
Author: Fangrui Song <i at maskray.me>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M compiler-rt/lib/asan/asan_rtl.cpp
M compiler-rt/lib/asan/asan_thread.cpp
M compiler-rt/lib/hwasan/hwasan.cpp
M compiler-rt/lib/lsan/lsan.cpp
M compiler-rt/lib/memprof/memprof_rtl.cpp
M compiler-rt/lib/msan/msan.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_common.h
M compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_linux.h
M compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_rtems.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_win.cpp
M compiler-rt/lib/sanitizer_common/tests/sanitizer_common_test.cpp
M compiler-rt/lib/sanitizer_common/tests/sanitizer_linux_test.cpp
M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
M compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
M compiler-rt/test/asan/TestCases/Linux/static_tls.cpp
Log Message:
-----------
[sanitizer] Simplify GetTls with dl_iterate_phdr on Linux
This was reverted by f176803ef1f4050a350e01868d64fe09a674d3bf due to
Ubuntu 16.04 x86-64 glibc 2.23 problems.
This commit additionally calls `__tls_get_addr({modid,0})` to work around the
dlpi_tls_data==NULL issues for glibc<2.25
(https://sourceware.org/bugzilla/show_bug.cgi?id=19826)
GetTls is the range of
* thread control block and optional TLS_PRE_TCB_SIZE
* static TLS blocks plus static TLS surplus
On glibc, lsan requires the range to include
`pthread::{specific_1stblock,specific}` so that allocations only referenced by
`pthread_setspecific` can be scanned.
This patch uses `dl_iterate_phdr` to collect TLS blocks. Find the one
with `dlpi_tls_modid==1` as one of the initially loaded module, then find
consecutive ranges. The boundaries give us addr and size.
This allows us to drop the glibc internal `_dl_get_tls_static_info` and
`InitTlsSize` entirely. Use the simplified method with non-Android Linux for
now, but in theory this can be used with *BSD and potentially other ELF OSes.
This simplification enables D99566 for TLS Variant I architectures.
See https://reviews.llvm.org/D93972#2480556 for analysis on GetTls usage
across various sanitizers.
Differential Revision: https://reviews.llvm.org/D98926
Commit: 4708a05da03038271a1a2c1cbdfe78aebfaa7afc
https://github.com/llvm/llvm-project/commit/4708a05da03038271a1a2c1cbdfe78aebfaa7afc
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rv64zbb-intrinsic.ll
Log Message:
-----------
[RISCV] Use gorciw for i32 orc.b intrinsic when Zbp is enabled.
The W version of orc.b does not exist in Zbp so we need to use
gorci encoding. If we have Zbp, we can use gorciw which can avoid a
sext.w in some cases.
Commit: 10ed479d7303af7c6e2528185c7e7cd318c9172c
https://github.com/llvm/llvm-project/commit/10ed479d7303af7c6e2528185c7e7cd318c9172c
Author: Dave Lee <davelee.com at gmail.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M lldb/test/API/lang/objc/modules-app-update/TestClangModulesAppUpdate.py
M lldb/test/API/lang/objc/modules-app-update/foo.m
Log Message:
-----------
[lldb] Import ObjectiveC module instead of Foundation in test
Use `@import ObjectiveC` instead of `@import Foundation`, as the former is all
that's needed, and results in fewer clang modules being built.
This results in the following clang modules *not* being built for this test.
ApplicationServices
CFNetwork
ColorSync
CoreFoundation
CoreGraphics
CoreServices
CoreText
DiskArbitration
Dispatch
Foundation
IOKit
ImageIO
Security
XPC
_Builtin_intrinsics
launch
libkern
os_object
os_workgroup
Differential Revision: https://reviews.llvm.org/D99859
Commit: d1a1798e51a30fbf537e9fd8931a49b504f37a25
https://github.com/llvm/llvm-project/commit/d1a1798e51a30fbf537e9fd8931a49b504f37a25
Author: Dave Lee <davelee.com at gmail.com>
Date: 2021-04-04 (Sun, 04 Apr 2021)
Changed paths:
M lldb/test/API/commands/expression/context-object-objc/Makefile
M lldb/test/API/commands/expression/context-object-objc/main.m
M lldb/test/API/commands/expression/namespace_local_var_same_name_obj_c/main.mm
M lldb/test/API/commands/frame/recognizer/Makefile
M lldb/test/API/commands/frame/recognizer/main.m
M lldb/test/API/functionalities/type_lookup/Makefile
M lldb/test/API/functionalities/type_lookup/main.mm
M lldb/test/API/lang/objc/bitfield_ivars/Makefile
M lldb/test/API/lang/objc/bitfield_ivars/main.m
M lldb/test/API/lang/objc/blocks/Makefile
M lldb/test/API/lang/objc/blocks/ivars-in-blocks.h
M lldb/test/API/lang/objc/blocks/ivars-in-blocks.m
M lldb/test/API/lang/objc/conflicting-definition/Test/Test.h
M lldb/test/API/lang/objc/forward-decl/Container.h
M lldb/test/API/lang/objc/forward-decl/Makefile
M lldb/test/API/lang/objc/forward-decl/main.m
M lldb/test/API/lang/objc/foundation/my-base.m
M lldb/test/API/lang/objc/hidden-ivars/InternalDefiner.h
M lldb/test/API/lang/objc/ivar-IMP/Makefile
M lldb/test/API/lang/objc/ivar-IMP/myclass.h
M lldb/test/API/lang/objc/ivar-IMP/myclass.m
M lldb/test/API/lang/objc/ivar-IMP/repro.m
M lldb/test/API/lang/objc/modules-objc-property/main.m
M lldb/test/API/lang/objc/modules-objc-property/myModule.h
M lldb/test/API/lang/objc/objc-ivar-offsets/Makefile
M lldb/test/API/lang/objc/objc-ivar-offsets/objc-ivar-offsets.h
M lldb/test/API/lang/objc/objc-super/Makefile
M lldb/test/API/lang/objc/objc-super/class.m
M lldb/test/API/lang/objcxx/class-name-clash/myobject.mm
M lldb/test/API/python_api/class_members/main.mm
M lldb/test/API/python_api/objc_type/Makefile
M lldb/test/API/python_api/objc_type/main.m
Log Message:
-----------
[lldb] Replace unneeded use of Foundation with ObjectiveC in tests (NFC)
When referencing `NSObject`, it's enough to import `objc/NSObject.h`. Importing `Foundation` is unnecessary in these cases.
Differential Revision: https://reviews.llvm.org/D99867
Commit: 907af8439672e47cf978b43625d9318dd34e13ab
https://github.com/llvm/llvm-project/commit/907af8439672e47cf978b43625d9318dd34e13ab
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M clang/include/clang/Driver/Options.td
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/lib/Driver/ToolChains/HIP.cpp
M clang/test/CodeGenCUDA/flush-denormals.cu
M clang/test/Driver/cuda-flush-denormals-to-zero.cu
M clang/test/Driver/hip-device-libs.hip
Log Message:
-----------
[CUDA][HIP] rename -fcuda-flush-denormals-to-zero
Rename it to -fgpu-flush-denormals-to-zero.
Reviewed by: Artem Belevich
Differential Revision: https://reviews.llvm.org/D99688
Commit: a91628cb59f6cb11416ed6f9264f5740ceb933d3
https://github.com/llvm/llvm-project/commit/a91628cb59f6cb11416ed6f9264f5740ceb933d3
Author: Max Kazantsev <mkazantsev at azul.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
A llvm/test/Transforms/GVN/PRE/pre-loop-load.ll
Log Message:
-----------
[Test] Add tests for various scenarios of PRE of a loop load
Commit: 1a218589964a0889cf318527d7b7bc6aab1eac1e
https://github.com/llvm/llvm-project/commit/1a218589964a0889cf318527d7b7bc6aab1eac1e
Author: Max Kazantsev <mkazantsev at azul.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
A llvm/test/Transforms/GVN/PRE/pre-loop-load-new-pm.ll
M llvm/test/Transforms/GVN/PRE/pre-loop-load.ll
Log Message:
-----------
[Test] Split out new and old PM tests
This is to avoid sophistication of checks as the old and new PM behave
differently with fix patches.
Commit: 67133ee1d280230091d85a839d9a9f6665b6265f
https://github.com/llvm/llvm-project/commit/67133ee1d280230091d85a839d9a9f6665b6265f
Author: Max Kazantsev <mkazantsev at azul.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/test/Transforms/GVN/PRE/lpre-call-wrap.ll
Log Message:
-----------
[Test] Auto-update checks in a test
Commit: 1628486548420f85b3467026d54663d1516404f5
https://github.com/llvm/llvm-project/commit/1628486548420f85b3467026d54663d1516404f5
Author: Sylvestre Ledru <sylvestre at debian.org>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M clang/include/clang/Driver/Options.td
Log Message:
-----------
ignore -flto= options recognized by GCC
as requested in https://bugs.llvm.org/show_bug.cgi?id=49553, submitting the proposed changes to just ignore the -flto= options which are recognized by GCC ("auto" and "jobserver").
GCC supports -flto=<auto|jobserver|<N> to select the parallelity for LTO builds. LLVM also has -flto-jobs=<N>, which only seems to have a meaning when used with -flto=thin?
The attached patch just ignores the values "auto" and "jobserver". that doesn't change anything in functionality. Another option would be to map these values to either "thin" or "full", maybe in presence of the -ffat-lto-objects option?
-flto=<n> could also be translated to -flto-jobs=<N>.
Reviewed By: tejohnson
Differential Revision: https://reviews.llvm.org/D99501
Commit: 5c25ff8739e013fec39bc8c6fc1df16e0e5041ca
https://github.com/llvm/llvm-project/commit/5c25ff8739e013fec39bc8c6fc1df16e0e5041ca
Author: Josh Berdine <josh at berdine.net>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/bindings/ocaml/analysis/CMakeLists.txt
M llvm/bindings/ocaml/analysis/analysis_ocaml.c
M llvm/bindings/ocaml/llvm/llvm_ocaml.c
M llvm/bindings/ocaml/llvm/llvm_ocaml.h
M llvm/bindings/ocaml/target/CMakeLists.txt
M llvm/bindings/ocaml/target/target_ocaml.c
Log Message:
-----------
[OCaml] Fix unsafe uses of Store_field
Using `Store_field` to initialize fields of blocks allocated with
`caml_alloc_small` is unsafe. The fields of blocks allocated by
`caml_alloc_small` are not initialized, and `Store_field` calls the
OCaml GC write barrier. If the uninitialized value of a field happens
to point into the OCaml heap, then it will e.g. be added to a conflict
set or followed and have what the GC thinks are color bits
changed. This leads to crashes or memory corruption.
This diff fixes a few (I think all) instances of this problem. Some of
these are creating option values. OCaml 4.12 has a dedicated
`caml_alloc_some` function for this, so this diff adds a compatible
function with a version check to avoid conflict. With that, macros for
accessing option values are also added.
Differential Revision: https://reviews.llvm.org/D99471
Commit: 58bb9222dd298a2a38b76817df18323167f095f7
https://github.com/llvm/llvm-project/commit/58bb9222dd298a2a38b76817df18323167f095f7
Author: Josh Berdine <josh at berdine.net>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/bindings/ocaml/llvm/llvm_ocaml.c
Log Message:
-----------
[OCaml] Minor optimizations by avoiding double initialization
In several functions an OCaml block is allocated and no further OCaml
allocation functions (or other functions that might trigger allocation
or collection) are performed before the block is fully initialized. In
these cases, it is safe and slightly more efficient to allocate an
uninitialized block.
Also, the code does not become more complex after the non-initializing
allocation, since in the case that a non-small allocation is made, the
initial values stored are definitely not pointers to OCaml young
blocks, and so initializing via direct assignment is still safe. That
is, in general if `caml_alloc_small` is called, initializing it with
direct assignments is safe, but if `caml_alloc_shr` is
called (e.g. for a block larger than `Max_young_wosize`), then
`caml_initialize` should be called to inform the GC of a potential
major to minor pointer. But if the initial value is definitely not a
young OCaml block, direct assignment is safe.
Differential Revision: https://reviews.llvm.org/D99472
Commit: e5b7fedc573c8f7977c8a4800144df6d341d8887
https://github.com/llvm/llvm-project/commit/e5b7fedc573c8f7977c8a4800144df6d341d8887
Author: Josh Berdine <josh at berdine.net>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/bindings/ocaml/llvm/llvm_ocaml.c
Log Message:
-----------
[OCaml] Code simplification using option allocation functions
Using the `caml_alloc_some` and `ptr_to_option` functions that
allocate OCaml `option` values enables simplifications in many
cases. These simplifications also result in avoiding unnecessary
double initialization in many cases, so yield a minor optimization as
well.
Also, change to avoid using the old unprefixed functions such as
`alloc_small` and instead use the current `caml_alloc_small`.
A few of the changed functions were slightly rewritten in the
early-return style.
Differential Revision: https://reviews.llvm.org/D99473
Commit: 2c82ea1849dc77eedeedb59a73c870717229ed37
https://github.com/llvm/llvm-project/commit/2c82ea1849dc77eedeedb59a73c870717229ed37
Author: Josh Berdine <josh at berdine.net>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/bindings/ocaml/llvm/llvm_ocaml.c
Log Message:
-----------
[OCaml] Code simplification using string allocation functions
Using the `cstr_to_string` function that allocates and initializes an
OCaml `string` value enables simplifications in several cases. This
change also has the effect of avoiding calling `memcpy` on NULL
pointers even if only 0 bytes are to be copied.
Differential Revision: https://reviews.llvm.org/D99474
Commit: d9bbd9864578204fb0bdeea685d0bcfda2f0aecf
https://github.com/llvm/llvm-project/commit/d9bbd9864578204fb0bdeea685d0bcfda2f0aecf
Author: Josh Berdine <josh at berdine.net>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/bindings/ocaml/llvm/llvm_ocaml.c
Log Message:
-----------
[OCaml] Omit unnecessary GC root registrations
The current code does not follow the simple interface to the OCaml GC,
where GC roots are registered conservatively, only initializing
allocations are performed, etc. This is intentional, as stated in the
opening file comments. On the other hand, the current code does
register GC roots in many situations where it is not strictly
necessary. This diff omits many of them.
Differential Revision: https://reviews.llvm.org/D99475
Commit: 8e4fc55a0e544d7d370a2d7689dbb622b2caefca
https://github.com/llvm/llvm-project/commit/8e4fc55a0e544d7d370a2d7689dbb622b2caefca
Author: Josh Berdine <josh at berdine.net>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/bindings/ocaml/all_backends/all_backends_ocaml.c
M llvm/bindings/ocaml/analysis/analysis_ocaml.c
M llvm/bindings/ocaml/backends/backend_ocaml.c
M llvm/bindings/ocaml/bitreader/bitreader_ocaml.c
M llvm/bindings/ocaml/bitwriter/bitwriter_ocaml.c
M llvm/bindings/ocaml/debuginfo/debuginfo_ocaml.c
M llvm/bindings/ocaml/executionengine/executionengine_ocaml.c
M llvm/bindings/ocaml/irreader/irreader_ocaml.c
M llvm/bindings/ocaml/linker/linker_ocaml.c
M llvm/bindings/ocaml/llvm/llvm_ocaml.c
M llvm/bindings/ocaml/llvm/llvm_ocaml.h
M llvm/bindings/ocaml/target/target_ocaml.c
M llvm/bindings/ocaml/transforms/ipo/ipo_ocaml.c
M llvm/bindings/ocaml/transforms/passmgr_builder/passmgr_builder_ocaml.c
M llvm/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c
M llvm/bindings/ocaml/transforms/utils/transform_utils_ocaml.c
M llvm/bindings/ocaml/transforms/vectorize/vectorize_ocaml.c
Log Message:
-----------
[NFC][OCaml] Remove vestigial CAMLprim declarations
The CAMLprim macro has not been needed since OCaml 3.11, and is
defined to the empty string. This diff removes all instances of it.
Differential Revision: https://reviews.llvm.org/D99476
Commit: f4d156aed0f8335a522a032f714b40d06449e720
https://github.com/llvm/llvm-project/commit/f4d156aed0f8335a522a032f714b40d06449e720
Author: Josh Berdine <josh at berdine.net>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/bindings/ocaml/bitreader/bitreader_ocaml.c
M llvm/bindings/ocaml/debuginfo/debuginfo_ocaml.c
M llvm/bindings/ocaml/executionengine/executionengine_ocaml.c
M llvm/bindings/ocaml/irreader/irreader_ocaml.c
M llvm/bindings/ocaml/linker/linker_ocaml.c
M llvm/bindings/ocaml/llvm/llvm_ocaml.c
M llvm/bindings/ocaml/target/target_ocaml.c
M llvm/bindings/ocaml/transforms/passmgr_builder/passmgr_builder_ocaml.c
M llvm/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c
M llvm/bindings/ocaml/transforms/utils/transform_utils_ocaml.c
Log Message:
-----------
[NFC][OCaml] Reformat to clean up following CAMLprim removal
The removal of CAMLprim left the code in need of an application of
clang-format. There are various other changes made by clang-format
which it seems ought to be rolled together into this diff.
Differential Revision: https://reviews.llvm.org/D99477
Commit: 4dd3e0feca9295c615f06f9f96f1e7ccdd63bb3d
https://github.com/llvm/llvm-project/commit/4dd3e0feca9295c615f06f9f96f1e7ccdd63bb3d
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M clang/test/CodeGen/debug-info-extern-call.c
Log Message:
-----------
[DebugInfo, CallSites, test] Fix use of undef FileCheck var
Clang test CodeGen/debug-info-extern-call.c tries to check for the
absence of a sequence of instructions with several CHECK-NOT with one of
those directives using a variable defined in another. However CHECK-NOT
are checked independently so that is using a variable defined in a
pattern that should not occur in the input.
This commit removes the CHECK-NOT for the retained line attribute
definition since the CHECK-NOT on the compile unit will already check
that there is no retained lines.
Reviewed By: djtodoro
Differential Revision: https://reviews.llvm.org/D99830
Commit: 2523fe8a6895ee3affe0bdb04629451279dd97e4
https://github.com/llvm/llvm-project/commit/2523fe8a6895ee3affe0bdb04629451279dd97e4
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/test/CodeGen/X86/clz.ll
Log Message:
-----------
[X86] Add second PR47603 test case
We had coverage for the xor(trunc(xor(x,31)),31) case but not xor(zext(xor(x,31)),31)
Commit: 36d4f6d7f8ad08bb99da544f2b6ca96e34977839
https://github.com/llvm/llvm-project/commit/36d4f6d7f8ad08bb99da544f2b6ca96e34977839
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/clz.ll
Log Message:
-----------
[X86] Fold xor(zext(xor(x,c1)),c2) -> xor(zext(x),xor(zext(c1),c2))
Fixes PR47603 (second case) by extending rG89afec348dbd3e5078f176e978971ee2d3b5dec8
Commit: 0d0514dd9b81bdf7a2ba5f5ef1d36d6e96201a0b
https://github.com/llvm/llvm-project/commit/0d0514dd9b81bdf7a2ba5f5ef1d36d6e96201a0b
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
A llvm/test/CodeGen/RISCV/vector-abi.ll
Log Message:
-----------
[RISCV] Add a test showing incorrect codegen
This patch adds a test which shows how the compiler incorrectly sets the
size and alignment of a stack object used to indirectly pass vector
types to functions.
In the particular example, the test passes a <4 x i8> vector type to a
function and creates a stack object of size and alignment equal to 4
bytes. However, the code generated to set up that parameter has been
scalarized and stores each element as individual XLEN-sized values. Thus
on RV32 this stores 16 bytes and on RV64 32 bytes, both of which clobber
the stack. Similarly, the alignment is set up as the alignment
of the vector type, which is not necessarily the natural alignment of XLEN.
Reviewed By: luismarques
Differential Revision: https://reviews.llvm.org/D95025
Commit: 5f57793c4fe47aa3486a755768b43189351cbd15
https://github.com/llvm/llvm-project/commit/5f57793c4fe47aa3486a755768b43189351cbd15
Author: Alex Orlov <aorlov at accesssoftek.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/include/llvm/DebugInfo/Symbolize/DIPrinter.h
M llvm/lib/DebugInfo/Symbolize/DIPrinter.cpp
M llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
Log Message:
-----------
* NFC. Refactored DIPrinter for better support of new print styles.
This patch introduces a DIPrinter interface to implement by different output style printer implementations. DIPrinterGNU and DIPrinterLLVM implement the GNU and LLVM output style printing respectively. No functional changes.
This refactoring clarifies and simplifies the code, and makes a new output style addition easier.
Reviewed By: jhenderson, dblaikie
Differential Revision: https://reviews.llvm.org/D98994
Commit: 13a84f21d7ce032186a060bfdf8bce5cc6d2daf4
https://github.com/llvm/llvm-project/commit/13a84f21d7ce032186a060bfdf8bce5cc6d2daf4
Author: Paul C. Anagnostopoulos <paul at windfall.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/docs/TableGen/ProgRef.rst
Log Message:
-----------
[TableGen] [docs] Correct a couple of mistakes; use 'true' and 'false' in examples
Differential Revision: https://reviews.llvm.org/D99800
Commit: 00a84f9a7f8916e024243e2685db4c11d06ecf75
https://github.com/llvm/llvm-project/commit/00a84f9a7f8916e024243e2685db4c11d06ecf75
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
Log Message:
-----------
[SLP]Improve vectorization of the CmpInst instructions.
During vectorization better to postpone the vectorization of the CmpInst
instructions till the end of the basic block. Otherwise we may vectorize
it too early and may miss some vectorization patterns, like reductions.
Reworked part of D57059
Differential Revision: https://reviews.llvm.org/D99796
Commit: 2aebb7cb3c88b1446515563653c821e8165b3aaf
https://github.com/llvm/llvm-project/commit/2aebb7cb3c88b1446515563653c821e8165b3aaf
Author: Peyton, Jonathan L <jonathan.l.peyton at intel.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M openmp/runtime/src/kmp_os.h
M openmp/runtime/src/kmp_safe_c_api.h
Log Message:
-----------
[OpenMP] Fix incorrect KMP_STRLEN() macro
The second argument to the strnlen_s(str, size) function should be
sizeof(str) when str is a true array of characters with known size
(instead of just a char*). Use type traits to determine if first
parameter is a character array and use the correct size based on that
trait.
Differential Revision: https://reviews.llvm.org/D98209
Commit: 660c4e57b4a7ac71f9595f31bfdec114369f4ca0
https://github.com/llvm/llvm-project/commit/660c4e57b4a7ac71f9595f31bfdec114369f4ca0
Author: Stefan Pintilie <stefanp at ca.ibm.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M lld/ELF/SyntheticSections.cpp
A lld/test/ELF/ppc64-check-missing-tocbase.s
M lld/test/ELF/ppc64-ld-got-dtprel.s
M lld/test/ELF/ppc64-reloc-got-pcrel34.s
M lld/test/ELF/ppc64-tls-gd.s
M lld/test/ELF/ppc64-tls-ie.s
M lld/test/ELF/ppc64-tls-missing-gdld.s
M lld/test/ELF/ppc64-tls-pcrel-gd.s
M lld/test/ELF/ppc64-tls-pcrel-ie.s
Log Message:
-----------
[PowerPC] Fix issue where binary uses a .got but is missing a .TOC.
>From the PowerPC ELFv2 ABI section 4.2.3. Global Offset Table.
```
The GOT consists of an 8-byte header that contains the TOC base (the first TOC
base when multiple TOCs are present), followed by an array of 8-byte addresses.
```
Due to the introduction of PC Relative code it is now possible to require a GOT
without having a .TOC. symbol in the object that is being linked. Since LLD uses
the .TOC. symbol to determine whether or not a GOT is required the GOT header is
not setup correctly and the 8-byte header is missing.
This patch allows the Power PC GOT setup to happen when an element is added to
the GOT instead of at the very begining. When this header is added a .TOC.
symbol is also added.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D91426
Commit: 803b79221edfc2517e6bfc373e5f55609565b0e4
https://github.com/llvm/llvm-project/commit/803b79221edfc2517e6bfc373e5f55609565b0e4
Author: Erik Pilkington <erik.pilkington at gmail.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M clang/lib/Sema/SemaExprObjC.cpp
A clang/test/SemaObjCXX/bridge-cast-redecl.mm
Log Message:
-----------
[SemaObjC] Fix a -Wbridge-cast false-positive
Clang used to emit a bad -Wbridge-cast diagnostic on the cast in the attached
test. This was because, after 09abecef7, struct __CFString was not added to
lookup, so the objc_bridge attribute wasn't getting duplicated onto the most
recent declaration, causing us to fail to find it in getObjCBridgeAttr. This
patch fixes this by instead walking through the redeclarations to find an
appropriate bridge attribute. rdar://72823399
Differential revision: https://reviews.llvm.org/D99661
Commit: 3f0df4d7b0269623cfcd0ef6272e6a3a2ad9066d
https://github.com/llvm/llvm-project/commit/3f0df4d7b0269623cfcd0ef6272e6a3a2ad9066d
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
A llvm/test/CodeGen/RISCV/rvv/extload-truncstore.ll
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-extload-truncstore.ll
Log Message:
-----------
[RISCV] Expand scalable-vector truncstores and extloads
Caught in internal testing, these operations are assumed legal by
default, even for scalable vector types. Expand them back into separate
truncations and stores, or loads and extensions.
Also add explicit fixed-length vector tests for these operations, even
though they should have been correct already.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D99654
Commit: 62a94b725cd201367547b22fdb3b0751cda982d5
https://github.com/llvm/llvm-project/commit/62a94b725cd201367547b22fdb3b0751cda982d5
Author: John Paul Adrian Glaubitz <glaubitz at physik.fu-berlin.de>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/lib/Target/M68k/M68kAsmPrinter.cpp
M llvm/lib/Target/M68k/M68kTargetMachine.cpp
M llvm/lib/Target/M68k/MCTargetDesc/M68kMCTargetDesc.cpp
M llvm/lib/Target/M68k/TargetInfo/M68kTargetInfo.cpp
Log Message:
-----------
[M68k] Mark public functions with the LLVM_EXTERNAL_VISIBILITY macro
In 0dbcb3639451, most most target symbols were made hidden by default
with the public ones marked with LLVM_EXTERNAL_VISIBILITY. When the
M68k target was added, this particular change was forgotten so that
external tools cannot make use of the public M68k target functions
in libLLVM.so. Thus, add the missing LLVM_EXTERNAL_VISIBILITY macro
to all public target functions in the M68k backend.
Differential Revision: https://reviews.llvm.org/D99869
Commit: c0b0da4684908b8e8143c0762fc766c1a2a5849f
https://github.com/llvm/llvm-project/commit/c0b0da4684908b8e8143c0762fc766c1a2a5849f
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/test/Transforms/InstCombine/select-binop-cmp.ll
Log Message:
-----------
[InstCombine] add test for miscompile from select value equivalence; NFC
The new test is reduced from:
https://llvm.org/PR49832
...but we already show a potential miscompile in the existing test too.
Commit: c590a9880d7a660a1c911fce07f3d01ea18be2df
https://github.com/llvm/llvm-project/commit/c590a9880d7a660a1c911fce07f3d01ea18be2df
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/test/Transforms/InstCombine/select-binop-cmp.ll
Log Message:
-----------
[InstCombine] fix potential miscompile in select value equivalence
As shown in the example based on:
https://llvm.org/PR49832
...and the existing test, we can't substitute
a vector value because the equality compare
replacement that we are attempting requires
that the comparison is true for the entire
value. Vector select can be partly true/false.
Commit: af3a839c70adb97323fa3d122e9ab44522dca74e
https://github.com/llvm/llvm-project/commit/af3a839c70adb97323fa3d122e9ab44522dca74e
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-bitcast.ll
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-bitcast.ll
Log Message:
-----------
[RISCV] Add support for bitcasts between scalars and fixed-length vectors
This patch supports bitcasts from scalar types to fixed-length vectors
and vice versa. It custom-lowers and custom-legalizes them to
EXTRACT_VECTOR_ELT/INSERT_VECTOR_ELT operations, using a single-element
vectors to hold the scalar where appropriate.
Previously, some of these would fail to select, others would be expanded
through stack loads and stores. Effort was made to ensure the codegen
avoids the stack for both legal and illegal scalar types.
Some of the codegen could be improved, but on first glance it looks like
a general optimization of EXTRACT_VECTOR_ELT when extracting an i64
element on RV32.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D99667
Commit: 7416e8a8431a0f2711be9d16e111d1781b74df96
https://github.com/llvm/llvm-project/commit/7416e8a8431a0f2711be9d16e111d1781b74df96
Author: Arnamoy Bhattacharyya <arnamoy.bhattacharyya at huawei.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M clang/include/clang/Driver/Options.td
M clang/lib/Driver/ToolChains/Flang.cpp
M flang/include/flang/Frontend/CompilerInvocation.h
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/lib/Frontend/FrontendActions.cpp
M flang/test/Driver/driver-help-hidden.f90
M flang/test/Driver/driver-help.f90
A flang/test/Driver/werror_parse.f
A flang/test/Driver/werror_scan.f
A flang/test/Driver/werror_sema.f90
A flang/test/Driver/werror_wrong.f90
M flang/tools/f18/f18.cpp
Log Message:
-----------
[flang][driver] Add options for -Werror
With the option given, warnings are treated as error.
Reviewed By: awarzynski
Differential Revision: https://reviews.llvm.org/D98657
Commit: df64f471d1e26fc1e9e2f9cdcfc77c063fe55b56
https://github.com/llvm/llvm-project/commit/df64f471d1e26fc1e9e2f9cdcfc77c063fe55b56
Author: Charusso <dabis.csaba98 at gmail.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicSize.h
M clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp
M clang/lib/StaticAnalyzer/Core/DynamicSize.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
M clang/lib/StaticAnalyzer/Core/MemRegion.cpp
M clang/test/Analysis/explain-svals.cpp
Log Message:
-----------
[analyzer] DynamicSize: Store the dynamic size
This patch introduces a way to store the size.
Reviewed By: NoQ
Differential Revision: https://reviews.llvm.org/D69726
Commit: 6a82ace5f27fda10963f8b7b12299b61458d4904
https://github.com/llvm/llvm-project/commit/6a82ace5f27fda10963f8b7b12299b61458d4904
Author: Ta-Wei Tu <tu.da.wei at gmail.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopFuse.cpp
A llvm/test/Transforms/LoopFusion/pr48060.ll
Log Message:
-----------
[LoopFusion] Bails out if only the second candidate is guarded (PR48060)
If only the second candidate loop is guarded while the first one is not, fusioning
two loops might not be valid but this check is currently missing.
Fixes https://bugs.llvm.org/show_bug.cgi?id=48060
Reviewed By: sidbav
Differential Revision: https://reviews.llvm.org/D99716
Commit: 31ad5c14fefa66085eff3629c0cc8393556ba849
https://github.com/llvm/llvm-project/commit/31ad5c14fefa66085eff3629c0cc8393556ba849
Author: Arnamoy Bhattacharyya <arnamoy.bhattacharyya at huawei.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M flang/test/Semantics/canondo07.f90
M flang/test/Semantics/canondo08.f90
M flang/test/Semantics/canondo09.f90
M flang/test/Semantics/canondo10.f90
M flang/test/Semantics/canondo11.f90
M flang/test/Semantics/canondo12.f90
M flang/test/Semantics/canondo13.f90
M flang/test/Semantics/canondo14.f90
M flang/test/Semantics/canondo15.f90
M flang/test/Semantics/canondo16.f90
M flang/test/Semantics/canondo17.f90
M flang/test/Semantics/canondo18.f90
M flang/test/Semantics/canondo19.f90
M flang/test/Semantics/dosemantics03.f90
M flang/test/Semantics/io10.f90
M flang/test/Semantics/label01.F90
M flang/test/Semantics/resolve103.f90
Log Message:
-----------
[flang][driver] Modify the existing test cases that use -Mstandard in f18, to use -pedantic and %flang_fc1 to share with the new driver
Reviewed By: awarzynski
Differential Revision: https://reviews.llvm.org/D99518
Commit: 89d210fe1a7a1c6cbf926df0595b6f107bc491d5
https://github.com/llvm/llvm-project/commit/89d210fe1a7a1c6cbf926df0595b6f107bc491d5
Author: Charusso <dabis.csaba98 at gmail.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M clang/docs/analyzer/developer-docs/DebugChecks.rst
M clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
M clang/test/Analysis/expr-inspection.cpp
A clang/test/Analysis/memory-model.cpp
Log Message:
-----------
[analyzer] DynamicSize: Debug facility
This patch adds two debug functions to ExprInspectionChecker to dump out
the dynamic extent and element count of symbolic values:
dumpExtent(), dumpElementCount().
Commit: 9b3df78b4c2ab7a7063e532165492e1ffa38d401
https://github.com/llvm/llvm-project/commit/9b3df78b4c2ab7a7063e532165492e1ffa38d401
Author: Charusso <dabis.csaba98 at gmail.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
A clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicExtent.h
R clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicSize.h
M clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp
M clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CheckPlacementNew.cpp
M clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp
M clang/lib/StaticAnalyzer/Core/CMakeLists.txt
A clang/lib/StaticAnalyzer/Core/DynamicExtent.cpp
R clang/lib/StaticAnalyzer/Core/DynamicSize.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
M clang/lib/StaticAnalyzer/Core/MemRegion.cpp
M clang/lib/StaticAnalyzer/Core/RegionStore.cpp
Log Message:
-----------
[analyzer] DynamicSize: Rename 'size' to 'extent'
Commit: 5abc7250122701012414733fc3273c01a45ffd29
https://github.com/llvm/llvm-project/commit/5abc7250122701012414733fc3273c01a45ffd29
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/StaticAnalyzer/Core/BUILD.gn
Log Message:
-----------
[gn build] Port 9b3df78b4c2a
Commit: 0116d04d04f20e9ae62ba847075840c3cb298080
https://github.com/llvm/llvm-project/commit/0116d04d04f20e9ae62ba847075840c3cb298080
Author: Cyndy Ishida <cyndy_ishida at apple.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M clang/docs/ClangFormattedStatus.rst
M lld/MachO/Config.h
M lld/MachO/Driver.cpp
M lld/MachO/DriverUtils.cpp
M lld/MachO/InputFiles.cpp
M lld/MachO/InputFiles.h
M lld/lib/ReaderWriter/MachO/File.h
M llvm/include/llvm/Object/TapiFile.h
M llvm/include/llvm/Object/TapiUniversal.h
A llvm/include/llvm/TextAPI/Architecture.def
A llvm/include/llvm/TextAPI/Architecture.h
A llvm/include/llvm/TextAPI/ArchitectureSet.h
A llvm/include/llvm/TextAPI/InterfaceFile.h
R llvm/include/llvm/TextAPI/MachO/Architecture.def
R llvm/include/llvm/TextAPI/MachO/Architecture.h
R llvm/include/llvm/TextAPI/MachO/ArchitectureSet.h
R llvm/include/llvm/TextAPI/MachO/InterfaceFile.h
R llvm/include/llvm/TextAPI/MachO/PackedVersion.h
R llvm/include/llvm/TextAPI/MachO/Platform.h
R llvm/include/llvm/TextAPI/MachO/Symbol.h
R llvm/include/llvm/TextAPI/MachO/Target.h
R llvm/include/llvm/TextAPI/MachO/TextAPIReader.h
R llvm/include/llvm/TextAPI/MachO/TextAPIWriter.h
A llvm/include/llvm/TextAPI/PackedVersion.h
A llvm/include/llvm/TextAPI/Platform.h
A llvm/include/llvm/TextAPI/Symbol.h
A llvm/include/llvm/TextAPI/Target.h
A llvm/include/llvm/TextAPI/TextAPIReader.h
A llvm/include/llvm/TextAPI/TextAPIWriter.h
M llvm/lib/Object/TapiUniversal.cpp
A llvm/lib/TextAPI/Architecture.cpp
A llvm/lib/TextAPI/ArchitectureSet.cpp
M llvm/lib/TextAPI/CMakeLists.txt
A llvm/lib/TextAPI/InterfaceFile.cpp
R llvm/lib/TextAPI/MachO/Architecture.cpp
R llvm/lib/TextAPI/MachO/ArchitectureSet.cpp
R llvm/lib/TextAPI/MachO/InterfaceFile.cpp
R llvm/lib/TextAPI/MachO/PackedVersion.cpp
R llvm/lib/TextAPI/MachO/Platform.cpp
R llvm/lib/TextAPI/MachO/Symbol.cpp
R llvm/lib/TextAPI/MachO/Target.cpp
R llvm/lib/TextAPI/MachO/TextAPIContext.h
R llvm/lib/TextAPI/MachO/TextStub.cpp
R llvm/lib/TextAPI/MachO/TextStubCommon.cpp
R llvm/lib/TextAPI/MachO/TextStubCommon.h
A llvm/lib/TextAPI/PackedVersion.cpp
A llvm/lib/TextAPI/Platform.cpp
A llvm/lib/TextAPI/Symbol.cpp
A llvm/lib/TextAPI/Target.cpp
A llvm/lib/TextAPI/TextAPIContext.h
A llvm/lib/TextAPI/TextStub.cpp
A llvm/lib/TextAPI/TextStubCommon.cpp
A llvm/lib/TextAPI/TextStubCommon.h
M llvm/tools/llvm-ifs/llvm-ifs.cpp
M llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp
M llvm/tools/llvm-lipo/llvm-lipo.cpp
M llvm/unittests/TextAPI/TextStubHelpers.h
M llvm/unittests/TextAPI/TextStubV1Tests.cpp
M llvm/unittests/TextAPI/TextStubV2Tests.cpp
M llvm/unittests/TextAPI/TextStubV3Tests.cpp
M llvm/unittests/TextAPI/TextStubV4Tests.cpp
Log Message:
-----------
[TextAPI] move source code files out of subdirectory, NFC
TextAPI/ELF has moved out into InterfaceStubs, so theres no longer a
need to seperate out TextAPI between formats.
Reviewed By: ributzka, int3, #lld-macho
Differential Revision: https://reviews.llvm.org/D99811
Commit: 982396ddd7df1b359d55809bc9d1aff4ed227c95
https://github.com/llvm/llvm-project/commit/982396ddd7df1b359d55809bc9d1aff4ed227c95
Author: Tom Stellard <tstellar at redhat.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/lib/Support/CMakeLists.txt
Log Message:
-----------
Revert "Fix build rules for LLVM_WITH_Z3 after D95727"
This reverts commit d66f9c4f1e83e69abf75f97cb5f8fd1dc9422357.
This was a follow up fix for 43ceb74eb1a5801662419fb66a6bf0d5414f1ec5, which
will be reverted.
Commit: e07e08f3662ad821b9da99daedf2445ed1b18d2c
https://github.com/llvm/llvm-project/commit/e07e08f3662ad821b9da99daedf2445ed1b18d2c
Author: Tom Stellard <tstellar at redhat.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/cmake/modules/AddLLVM.cmake
M llvm/tools/llvm-shlib/CMakeLists.txt
Log Message:
-----------
Revert "llvm-shlib: Create object libraries for each component and link against them"
This reverts commit 43ceb74eb1a5801662419fb66a6bf0d5414f1ec5.
This caused some build failures: https://bugs.llvm.org/show_bug.cgi?id=49818
Commit: 6103f3f39cc909d87ac374a5294748053bb8c7b8
https://github.com/llvm/llvm-project/commit/6103f3f39cc909d87ac374a5294748053bb8c7b8
Author: Nico Weber <thakis at chromium.org>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/TextAPI/BUILD.gn
Log Message:
-----------
[gn build] (manually) port 0116d04d04f2
Commit: dc1a08caeff415712ff8299b21a4c26fced777db
https://github.com/llvm/llvm-project/commit/dc1a08caeff415712ff8299b21a4c26fced777db
Author: Sam Clegg <sbc at chromium.org>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
R lld/test/wasm/export.ll
A lld/test/wasm/export.s
Log Message:
-----------
[lld][WebAssembly] Rewrite exports test in assembly. NFC
Differential Revision: https://reviews.llvm.org/D99885
Commit: ea069aebccd317f350be3cabdcd848476616d4da
https://github.com/llvm/llvm-project/commit/ea069aebccd317f350be3cabdcd848476616d4da
Author: MaheshRavishankar <ravishankarm at google.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M mlir/include/mlir/Dialect/Linalg/Passes.h
M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
M mlir/include/mlir/Dialect/Linalg/Utils/Utils.h
M mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
M mlir/lib/Dialect/Linalg/Transforms/ElementwiseToLinalg.cpp
M mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp
Log Message:
-----------
[mlir][Linalg] NFC: Move populatePatterns* method into linalg namespace.
The moved `populate` methods are only relevant to Linalg
operations. So they are better of in `linalg` namespace. Also rename
`populateLinalgTensorOpsFusionPatterns` to
`populateElementwiseOpsFusionPatterns`. This makes the scope of these
patterns explicit and disambiguates it with fusion on tensors using
tile + fuse.
Differential Revision: https://reviews.llvm.org/D99819
Commit: 7078ef47225091a9a42357b9ebf92e83a5665d43
https://github.com/llvm/llvm-project/commit/7078ef47225091a9a42357b9ebf92e83a5665d43
Author: Jennifer Yu <jennifer.yu at intel.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M clang/include/clang/AST/OpenMPClause.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/Sema/Sema.h
M clang/lib/AST/OpenMPClause.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/Basic/OpenMPKinds.cpp
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/test/OpenMP/dispatch_ast_print.cpp
M clang/test/OpenMP/dispatch_messages.cpp
M clang/tools/libclang/CIndex.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M llvm/include/llvm/Frontend/OpenMP/OMP.td
Log Message:
-----------
[OPENMP51]Initial support for nocontext clause.
Added basic parsing/sema/serialization support for the 'nocontext' clause.
Differential Revision: https://reviews.llvm.org/D99848
Commit: 4db18d62afa8b17efec1c992fc10e9eafc1cefaf
https://github.com/llvm/llvm-project/commit/4db18d62afa8b17efec1c992fc10e9eafc1cefaf
Author: Ricky Taylor <rickytaylor26 at gmail.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/include/llvm/MC/MCAsmInfo.h
M llvm/include/llvm/MC/MCParser/MCAsmLexer.h
M llvm/lib/MC/MCParser/AsmLexer.cpp
M llvm/lib/Target/M68k/MCTargetDesc/M68kMCAsmInfo.cpp
A llvm/test/MC/AsmParser/motorola_integers.s
M llvm/tools/llvm-mc/llvm-mc.cpp
Log Message:
-----------
[M68k] Add support for Motorola literal syntax to AsmParser
These look like $00A0cf for hex and %001010101 for binary. They are used in Motorola assembly syntax.
Differential Revision: https://reviews.llvm.org/D98519
Commit: 7edda698c0f090fbdbcc414625ff8161c25f0df4
https://github.com/llvm/llvm-project/commit/7edda698c0f090fbdbcc414625ff8161c25f0df4
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
Log Message:
-----------
[RISCV] Move VSLIDE1UP_VX pattern out of a loop that includes FP types.
FP would need VFSLIDE1UP_VF which uses an FP register.
Commit: be11bd1e9f01694fd859c6c5fa343cbb26ee3042
https://github.com/llvm/llvm-project/commit/be11bd1e9f01694fd859c6c5fa343cbb26ee3042
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/test/Analysis/ValueTracking/known-non-equal.ll
Log Message:
-----------
[tests] Precommmit tests for reasoning about equality of recurrences
Commit: b0e59dd6e1f60bb28470768c322fe815b599f3a7
https://github.com/llvm/llvm-project/commit/b0e59dd6e1f60bb28470768c322fe815b599f3a7
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
Log Message:
-----------
Extract a helper for figuring out if an operator is invertible [nfc]
For use in an uncoming patch. Left out the phi case (which could otherwise fit in this framework) as it would cause infinite recursion in said patch. We can probably also leverage this in instcombine to ensure we keep the two sets of related analysis and transforms in sync.
Commit: 1d4c7429a72c07f455ac739776e9be76f5605bce
https://github.com/llvm/llvm-project/commit/1d4c7429a72c07f455ac739776e9be76f5605bce
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/test/Analysis/ValueTracking/known-non-equal.ll
Log Message:
-----------
Fix copy paste errors in tests from be11bd1e
Several of these weren't testing what was intented.
Commit: af2837675a707fe7b2c1012038567ba1411045c5
https://github.com/llvm/llvm-project/commit/af2837675a707fe7b2c1012038567ba1411045c5
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.h
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
Log Message:
-----------
[RISCV] Split RISCVISD::VMV_S_XF_VL into separate integer and FP.
It's a bit silly, but it allows us to write stricter type
constraints for isel. There's still some extra type checks in
the generated table due to some type interference limitations
around HWMode.
Commit: 780a47285a7839faa8cfa6b670e96371e083011c
https://github.com/llvm/llvm-project/commit/780a47285a7839faa8cfa6b670e96371e083011c
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
Log Message:
-----------
[RISCV] Add SDTCisInt to the SDTRVVSlide1 since it is only used for vslide1up.vx/vslide1down.vx.
The scalar type is already marked as XLenVT. The floating point
version would need a different rule.
Commit: 828ec9e9e5da8a2e7d1bfa523b9a712658ee6ffc
https://github.com/llvm/llvm-project/commit/828ec9e9e5da8a2e7d1bfa523b9a712658ee6ffc
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M clang/test/CodeGenOpenCL/fpmath.cl
Log Message:
-----------
[OpenCL, test] Fix use of undef FileCheck var
Clang test CodeGenOpenCL/fpmath.cl uses a variable defined in an earlier
CHECK-NOT directive. However, by definition the pattern in that
directive is not supposed to occur so no variable will be defined. This
commit solves the issue by using a regex match with the same regex as in
the definition. It also changes the definition into a regex match since
no variable is going to be defined.
Reviewed By: yaxunl
Differential Revision: https://reviews.llvm.org/D99857
Commit: 78e5cf66fec52c8e6e665c3c9e64d38498d94a5d
https://github.com/llvm/llvm-project/commit/78e5cf66fec52c8e6e665c3c9e64d38498d94a5d
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/test/Transforms/InstSimplify/select.ll
Log Message:
-----------
[InstSimplify] add test for vector select with operand replacement; NFC
We need a sibling fix to c590a9880d7a
( https://llvm.org/PR49832 ) to avoid miscompiling.
Commit: e2a0f512eacad0699be9660f668726d7deb2cd75
https://github.com/llvm/llvm-project/commit/e2a0f512eacad0699be9660f668726d7deb2cd75
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/test/Transforms/InstSimplify/select.ll
Log Message:
-----------
[InstSimplify] fix potential miscompile in select value equivalence
This is the sibling fix to c590a9880d7a -
as there, we can't subsitute a vector value the equality
compare replacement that we are trying requires that the
comparison is true for the entire value. Vector select
can be partly true/false.
Commit: 740e3497629ccd0926c3f850a07147aef0b464ff
https://github.com/llvm/llvm-project/commit/740e3497629ccd0926c3f850a07147aef0b464ff
Author: Martin Storsjö <martin at martin.st>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M libcxx/utils/ci/buildkite-pipeline.yml
M libcxx/utils/ci/run-buildbot
Log Message:
-----------
[libcxx] [ci] Add a Windows CI buildkite configuration
Differential Revision: https://reviews.llvm.org/D99093
Commit: a46f59a747a7273cc439efaf3b4f98d8b63d2f20
https://github.com/llvm/llvm-project/commit/a46f59a747a7273cc439efaf3b4f98d8b63d2f20
Author: Aart Bik <ajcbik at google.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
A mlir/test/Integration/Sparse/CPU/sparse_matvec.mlir
R mlir/test/Integration/Sparse/sparse_matvec.mlir
Log Message:
-----------
[mlir][sparse] move new test to right directory structure
Differential Revision: https://reviews.llvm.org/D99899
Commit: 9711118d2edf7aed133616de1eb7f633c263c4b5
https://github.com/llvm/llvm-project/commit/9711118d2edf7aed133616de1eb7f633c263c4b5
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M clang/include/clang/Sema/Sema.h
M clang/lib/Parse/ParseStmt.cpp
M clang/lib/Sema/SemaStmt.cpp
M clang/lib/Sema/SemaStmtAttr.cpp
M clang/lib/Sema/TreeTransform.h
Log Message:
-----------
Rework the way statement attributes are processed; NFC
This changes our approach to processing statement attributes to be more
similar to how we process declaration attributes. Namely,
ActOnAttributedStmt() now calls ProcessStmtAttributes() instead of
vice-versa, and there is now an interface split between building an
attributed statement where you already have a list of semantic
attributes and building an attributed statement with attributes from
the parser.
This should make it easier to support statement attributes that are
dependent on a template. In that case, you would add a
TransformFooAttr() function in TreeTransform.h to perform the semantic
checking (morally similar to how Sema::InstantiateAttrs() already works
for declaration attributes) when transforming the semantic attribute at
instantiation time.
Commit: 0e92cbd6a652c4f86fa76a3af2820009d5b6c300
https://github.com/llvm/llvm-project/commit/0e92cbd6a652c4f86fa76a3af2820009d5b6c300
Author: Nico Weber <thakis at chromium.org>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M compiler-rt/lib/asan/asan_rtl.cpp
M compiler-rt/lib/asan/asan_thread.cpp
M compiler-rt/lib/hwasan/hwasan.cpp
M compiler-rt/lib/lsan/lsan.cpp
M compiler-rt/lib/memprof/memprof_rtl.cpp
M compiler-rt/lib/msan/msan.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_common.h
M compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_linux.h
M compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_rtems.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_win.cpp
M compiler-rt/lib/sanitizer_common/tests/sanitizer_common_test.cpp
M compiler-rt/lib/sanitizer_common/tests/sanitizer_linux_test.cpp
M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
M compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
M compiler-rt/test/asan/TestCases/Linux/static_tls.cpp
Log Message:
-----------
Revert "[sanitizer] Simplify GetTls with dl_iterate_phdr on Linux"
This reverts commit ec575e3b0a462ff7a3d23d0f39a22147606050de.
Still doesn't work, see https://crbug.com/1196037
Commit: 8c7bf2f93da9b64b07509f67552d592a86260ff5
https://github.com/llvm/llvm-project/commit/8c7bf2f93da9b64b07509f67552d592a86260ff5
Author: Peter Steinfeld <psteinfeld at nvidia.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M flang/lib/Evaluate/fold-integer.cpp
M flang/lib/Evaluate/formatting.cpp
M flang/lib/Semantics/type.cpp
M flang/test/Semantics/assign04.f90
A flang/test/Semantics/resolve104.f90
M flang/test/Semantics/resolve89.f90
Log Message:
-----------
[flang] Improve constant folding for type parameter inquiries
We were not folding type parameter inquiries for the form 'var%typeParam'
where 'typeParam' was a KIND or LEN type parameter of a derived type and 'var'
was a designator of the derived type. I fixed this by adding code to the
function 'FoldOperation()' for 'TypeParamInquiry's to handle this case. I also
cleaned up the code for the case where there is no designator.
In order to make the error messages correctly refer to both the points of
declaration and instantiation, I needed to add an argument to the function
'InstantiateIntrinsicType()' for the location of the instantiation.
I also changed the formatting of 'TypeParamInquiry' to correctly format this
case. I also added tests for both KIND and LEN type parameter inquiries in
resolve104.f90.
Making these changes revealed an error in resolve89.f90 and caused one of the
error messages in assign04.f90 to be different.
Differential Revision: https://reviews.llvm.org/D99892
Commit: 944a2fe7633fcdd600de2772364e406514d794da
https://github.com/llvm/llvm-project/commit/944a2fe7633fcdd600de2772364e406514d794da
Author: MaheshRavishankar <ravishankarm at google.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
M mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp
A mlir/test/Dialect/Linalg/fusion-elementwise-options.mlir
M mlir/test/lib/Transforms/CMakeLists.txt
A mlir/test/lib/Transforms/TestLinalgElementwiseFusion.cpp
M mlir/tools/mlir-opt/mlir-opt.cpp
Log Message:
-----------
[mlir][Linalg] Add callbacks to fusion of elementwise operations to control fusion.
Right now Elementwise operations fusion in Linalg fuses everything it
can. This can run up against resource limits of the target hardware
without some checks. This patch adds a callback function that clients
can use to implement a cost function. When two elementwise operations
are deemed structurally fusable, the callback can be used to control
if the fusion applies.
Differential Revision: https://reviews.llvm.org/D99820
Commit: 391514436db49043820b526623e8747c1d6872ce
https://github.com/llvm/llvm-project/commit/391514436db49043820b526623e8747c1d6872ce
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/test/CodeGen/RISCV/rvv/vslide1up-rv32.ll
Log Message:
-----------
[RISCV] Add more RV32 vslide1up intrinsic test cases. NFC
For some reason we only had 1 test case. This synchronizes the
test with vslide1down so we have the same number of tests for both.
Commit: 30b3aab3299a1b6e4e262866e88f0aac0ecdee09
https://github.com/llvm/llvm-project/commit/30b3aab3299a1b6e4e262866e88f0aac0ecdee09
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/include/llvm/CodeGen/AtomicExpandUtils.h
M llvm/lib/CodeGen/AtomicExpandPass.cpp
A llvm/test/CodeGen/AMDGPU/expand-atomicrmw-syncscope.ll
M llvm/test/CodeGen/AMDGPU/fp64-atomics-gfx90a.ll
M llvm/test/CodeGen/AMDGPU/global-atomics-fp.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-rmw-fadd.ll
Log Message:
-----------
Copy syncscope when expanding atomicrmw into cmpxchg loop
Fixes: SWDEV-280070
Differential Revision: https://reviews.llvm.org/D99902
Commit: be0ced03ba9bfab6fcb1fd2c263a33bc6a359cd8
https://github.com/llvm/llvm-project/commit/be0ced03ba9bfab6fcb1fd2c263a33bc6a359cd8
Author: Jim Ingham <jingham at apple.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M lldb/source/Plugins/Language/ObjC/Cocoa.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h
M lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCCF.py
Log Message:
-----------
Revert "Revert "Add support for fetching signed values from tagged pointers.""
This reverts commit 602ab188a7e18b97d9af95e17271e8fbee129081.
The patch replicated an lldbassert for a certain type of NSNumber for tagged
pointers. This really shouldn't be an assert since we don't do anything wrong
with these numbers, we just don't print a summary. So this patch changed the
lldbassert to a log message in reverting the revert.
Commit: dc8d864e3a91938e11e8aea38bb43c9fdef361bc
https://github.com/llvm/llvm-project/commit/dc8d864e3a91938e11e8aea38bb43c9fdef361bc
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
Log Message:
-----------
Address minor post commit feedback on 0e59dd
Commit: c25c22d5f9b7e56c0c350982b5ec41095c5a0a05
https://github.com/llvm/llvm-project/commit/c25c22d5f9b7e56c0c350982b5ec41095c5a0a05
Author: Christopher Di Bella <cjdb at google.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M libcxx/include/__functional_base
M libcxx/include/concepts
M libcxx/include/functional
Log Message:
-----------
[libcxx] moves `std::invoke` into `__functional_base`
Including `<concepts>` in other standard library headers (such as
`<iterator>`) creates circular dependencies due to `<functional>`.
Since `<concepts>` only needs `std::invoke` from `<functional>`, the
easiest, fastest, and cleanest way to eliminate the circular dep is to
move `std::invoke` into `__functional_base`.
This has the added advantage of `<concepts>` not transitively importing
`<functional>`.
Differential Revision: https://reviews.llvm.org/D99041
Commit: 812ce7f9beb2b828032ddbd01d3aba4c1f9d76da
https://github.com/llvm/llvm-project/commit/812ce7f9beb2b828032ddbd01d3aba4c1f9d76da
Author: patacca <patacca at autistici.org>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M polly/include/polly/CodeGen/IslAst.h
M polly/lib/CodeGen/IslAst.cpp
Log Message:
-----------
[Polly] Refactoring isInnermost() from isl to use the C++ wrapper
Polly use algorithms from the Integer Set Library (isl), which is a library written in C and which is incompatible with the rest of the LLVM as it is written in C++.
Changes made:
- Refactoring isInnermost() to take C++ bindings instead of the plain isl C api.
- Addition of manage_copy() when needed to get the reference for the isl_ast_node object
Reviewed By: Meinersbur
Differential Revision: https://reviews.llvm.org/D99841
Commit: 13deb6aac723e5694d404f21ee136e9773eb27a6
https://github.com/llvm/llvm-project/commit/13deb6aac723e5694d404f21ee136e9773eb27a6
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Analysis/ValueTracking/known-non-equal.ll
Log Message:
-----------
Exact ashr/lshr don't loose any set bits and are thus trivially invertible
Use that fact to improve isKnownNonEqual.
Commit: ea0e2ca1acb20781515c23850ec1ee7476909b2f
https://github.com/llvm/llvm-project/commit/ea0e2ca1acb20781515c23850ec1ee7476909b2f
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/include/llvm/IR/Instruction.h
M llvm/lib/IR/Instruction.cpp
M llvm/lib/Transforms/Scalar/SROA.cpp
A llvm/test/Transforms/SROA/invariant-group.ll
Log Message:
-----------
[SROA] Allow SROA on pointers with invariant group intrinsic uses
When we are able to SROA an alloca, we know all uses of it, meaning we
don't have to preserve the invariant group intrinsics and metadata.
It's possible that we could lose information regarding redundant
loads/stores, but that's unlikely to have any real impact since right
now the only user is Clang and vtables.
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D99760
Commit: 58ccbd0d08fe0a9b4b06d47d0be20f19717919f8
https://github.com/llvm/llvm-project/commit/58ccbd0d08fe0a9b4b06d47d0be20f19717919f8
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
Log Message:
-----------
Comment adjustments for a rename
Commit: cb1028a0b95f5f4dd3924d81e8f8d9198b597ff4
https://github.com/llvm/llvm-project/commit/cb1028a0b95f5f4dd3924d81e8f8d9198b597ff4
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-store-fp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-store-int.ll
Log Message:
-----------
[RISCV] When custom iseling masked stores, copy the mask into V0 instead of virtual register.
I missed a few intrinsics in 3dd4aa7d09599507d1f801ffe4bec4c9eebbb8da
when I did this for masked loads and masked segment loads/stores.
Found while trying to share more code between these custom isel
functions.
Commit: 872c57c90ac66a7a190fd575e4258eb06cec624e
https://github.com/llvm/llvm-project/commit/872c57c90ac66a7a190fd575e4258eb06cec624e
Author: Yevgeny Rouban <yrouban at azul.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/test/Other/loop-pm-invalidation.ll
M llvm/test/Other/new-pm-O0-defaults.ll
M llvm/test/Other/new-pm-lto-defaults.ll
M llvm/test/Other/new-pm-thinlto-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
M llvm/test/Transforms/LoopRotate/pr35210.ll
M llvm/test/Transforms/SCCP/ipsccp-preserve-analysis.ll
Log Message:
-----------
[NewPM] Change tests to run them without PreserveCFGChecker. NFC
Change several pass sequence sensitive tests to be indifferent
to the PreserveCFGChecker by explicitly settting the option
-verify-cfg-preserved=0. It is a preparation step that allows
a redesign of PreserveCFGChecker.
Reviewed By: skatkov
Differential Revision: https://reviews.llvm.org/D99878
Commit: 0057ec8034d8d99ffbcf088b208484d36a0e24e2
https://github.com/llvm/llvm-project/commit/0057ec8034d8d99ffbcf088b208484d36a0e24e2
Author: Serguei Katkov <serguei.katkov at azul.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/include/llvm/CodeGen/TargetInstrInfo.h
M llvm/lib/CodeGen/TargetInstrInfo.cpp
Log Message:
-----------
[Statepoint] Factor-out utility function to get non-foldable area of STATEPOINT like instructions. NFC
Reviewers: reames, dantrushin
Reviewed By: reames
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D99875
Commit: 22411d80723860cd050eab072bb10abd7a2ae526
https://github.com/llvm/llvm-project/commit/22411d80723860cd050eab072bb10abd7a2ae526
Author: Geoffrey Martin-Noble <gcmn at google.com>
Date: 2021-04-05 (Mon, 05 Apr 2021)
Changed paths:
M mlir/docs/LangRef.md
Log Message:
-----------
[MLIR][docs] Fixes to operation syntax in Lang Ref
Reviewed By: rriddle
Differential Revision: https://reviews.llvm.org/D99922
Commit: 39e3e3aa51d628722637c1bfa507f9ec2c532120
https://github.com/llvm/llvm-project/commit/39e3e3aa51d628722637c1bfa507f9ec2c532120
Author: Yevgeny Rouban <yrouban at azul.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/lib/CodeGen/BackendUtil.cpp
M llvm/include/llvm/Passes/StandardInstrumentations.h
M llvm/lib/LTO/LTOBackend.cpp
M llvm/lib/Passes/StandardInstrumentations.cpp
M llvm/test/Other/new-pass-manager.ll
M llvm/test/Other/new-pm-defaults.ll
M llvm/tools/opt/NewPMDriver.cpp
M llvm/unittests/IR/PassManagerTest.cpp
Log Message:
-----------
[NewPM] Redesign of PreserveCFG Checker
The reason for the NewPM redesign is described in the commit
cba3e783389a: [NewPM] Disable PreservedCFGChecker ...
The checker introduces an internal custom CFG analysis that tracks
current up-to date CFG snapshot. The analysis is invalidated along
any other CFG related analysis (the key is CFGAnalyses). If the CFG
analysis is not invalidated at a functional pass exit then the checker
asserts that the CFG snapshot taken from this analysis is equals to
a snapshot of the current CFG.
Along the way:
- the function CFG::printDiff() is simplified by removing function
name calculation. The name is printed by the caller;
- fixed CFG invalidated condition (see CFG::invalidate());
- StandardInstrumentations::registerCallbacks() gets additional
optional parameter of type FunctionAnalysisManager*, which is
needed by the checker to get the custom CFG analysis;
- several PM related tests updated to explicitly set
-verify-cfg-preserved=1 as they need.
This patch is safe to land as the CFGChecker is left switched off
(the options -verify-cfg-preserved is false by default). It will be
switched on by a separate patch to minimize possible reverts.
Reviewed By: skatkov, kuhar
Differential Revision: https://reviews.llvm.org/D91327
Commit: 98742e42fc50f58d3f2d3f2cdbbf540288c134b9
https://github.com/llvm/llvm-project/commit/98742e42fc50f58d3f2d3f2cdbbf540288c134b9
Author: Yevgeny Rouban <yrouban at azul.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Passes/StandardInstrumentations.cpp
Log Message:
-----------
[NewPM] Fix unused lambda capture build error
Fixes commit 39e3e3aa51d: Redesign of PreserveCFG Checker
Commit: cc26943313def7a985f72eadc7499ac981daabc6
https://github.com/llvm/llvm-project/commit/cc26943313def7a985f72eadc7499ac981daabc6
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/include/clang/Frontend/FrontendOptions.h
M clang/unittests/Frontend/CompilerInvocationTest.cpp
Log Message:
-----------
[clang][cli] Ensure plugin args are generated in deterministic order
The '-plugin-arg' command-line arguments are not being generated in deterministic order.
This patch changes the storage from `std::unordered_map` to `std::map` to enforce ordering.
Reviewed By: dexonsmith
Differential Revision: https://reviews.llvm.org/D99879
Commit: 94d0fc32f54bb390550bfd2e33676ab78c5ab24f
https://github.com/llvm/llvm-project/commit/94d0fc32f54bb390550bfd2e33676ab78c5ab24f
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/test/tools/llvm-objdump/ELF/AMDGPU/subtarget.ll
Log Message:
-----------
[AMDGPU] Add some missing testing for new subtargets gfx90a and gfx90c
Differential Revision: https://reviews.llvm.org/D99647
Commit: ef05b08c612dd144003c1b2312bd2b365e7df519
https://github.com/llvm/llvm-project/commit/ef05b08c612dd144003c1b2312bd2b365e7df519
Author: Sjoerd Meijer <sjoerd.meijer at arm.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/test/CodeGen/AArch64/arm64-zero-cycle-zeroing.ll
M llvm/test/CodeGen/AArch64/f16-imm.ll
Log Message:
-----------
[AArch64] Use 64-bit movi for zeroing halfs/floats
This was using the .2d variant which zeros 128 bits, but using the .2s variant
that zeros 64 bits is faster on some cores.
This is a prep step for D99586 to always using movi for zeroing floats.
Differential Revision: https://reviews.llvm.org/D99710
Commit: f1313b3b249adea1fb8e629fb604fb7ccdcacf37
https://github.com/llvm/llvm-project/commit/f1313b3b249adea1fb8e629fb604fb7ccdcacf37
Author: Sam Parker <sam.parker at arm.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/test/CodeGen/WebAssembly/comparisons-f32.ll
M llvm/test/CodeGen/WebAssembly/comparisons-f64.ll
Log Message:
-----------
[NFC][WebAssembly] Removed mangled name from test.
Commit: b7ef804807855e607da3eba221c1fc59e27f778e
https://github.com/llvm/llvm-project/commit/b7ef804807855e607da3eba221c1fc59e27f778e
Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M flang/lib/Evaluate/fold-integer.cpp
M flang/lib/Evaluate/formatting.cpp
M flang/lib/Semantics/type.cpp
M flang/test/Semantics/assign04.f90
R flang/test/Semantics/resolve104.f90
M flang/test/Semantics/resolve89.f90
Log Message:
-----------
Revert "[flang] Improve constant folding for type parameter inquiries"
This reverts commit 8c7bf2f93da9b64b07509f67552d592a86260ff5.
Commit: 2935737da32dd21bf02e1a3c912a340de660d557
https://github.com/llvm/llvm-project/commit/2935737da32dd21bf02e1a3c912a340de660d557
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/lib/Tooling/Tooling.cpp
M clang/unittests/Tooling/ToolingTest.cpp
Log Message:
-----------
[clang][tooling] Create SourceManager for DiagnosticsEngine before command-line parsing
In D84673, we started using `DiagnosticsEngine` during command-line parsing in more contexts.
When using `ToolInvocation`, a custom `DiagnosticsConsumer` can be specified and it might expect `SourceManager` to be present on the emitted diagnostics.
This patch ensures the `SourceManager` is set up in such scenarios.
Test authored by Jordan Rupprecht.
Reviewed By: rupprecht
Differential Revision: https://reviews.llvm.org/D99414
Commit: d5f1131c812df57560c7563475cb0d674a101636
https://github.com/llvm/llvm-project/commit/d5f1131c812df57560c7563475cb0d674a101636
Author: Sjoerd Meijer <sjoerd.meijer at arm.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Target/AArch64/AArch64.td
M llvm/lib/Target/AArch64/AArch64Subtarget.h
M llvm/test/CodeGen/AArch64/arm64-fast-isel-materialize.ll
M llvm/test/CodeGen/AArch64/arm64-fp-contract-zero.ll
M llvm/test/CodeGen/AArch64/arm64-rev.ll
M llvm/test/CodeGen/AArch64/arm64-zero-cycle-zeroing.ll
M llvm/test/CodeGen/AArch64/f16-imm.ll
M llvm/test/CodeGen/AArch64/fptosi-sat-scalar.ll
M llvm/test/CodeGen/AArch64/fptosi-sat-vector.ll
M llvm/test/CodeGen/AArch64/fptoui-sat-scalar.ll
M llvm/test/CodeGen/AArch64/fptoui-sat-vector.ll
M llvm/test/CodeGen/AArch64/remat-float0.ll
Log Message:
-----------
[AArch64] Default to zero-cycle-zeroing FP registers
It is generally beneficial to prefer "movi d0, #0" over "fmov s0, wzr" as this
is most efficient across all cores; it is recognised as a zeroing idiom. For
newer cores, fmov instructions can also be eliminated early and there is no
difference with movi, but some implementations lack this so is not true for
other/older cores. Thus this standardises on using movi as this should always
gives the same or better performance than the fmov with wzr.
Differential Revision: https://reviews.llvm.org/D99586
Commit: bee4813789a378584d43c65497a5efd2353a6606
https://github.com/llvm/llvm-project/commit/bee4813789a378584d43c65497a5efd2353a6606
Author: Balázs Kéri <1.int32 at gmail.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
M clang/test/Analysis/pthreadlock.c
Log Message:
-----------
[clang][Checkers] Fix PthreadLockChecker state cleanup at dead symbol.
It is possible that an entry in 'DestroyRetVal' lives longer
than an entry in 'LockMap' if not removed at checkDeadSymbols.
The added test case demonstrates this.
Reviewed By: NoQ
Differential Revision: https://reviews.llvm.org/D98504
Commit: ddbb58736a3f58b7eed1c0388395504610e5bb68
https://github.com/llvm/llvm-project/commit/ddbb58736a3f58b7eed1c0388395504610e5bb68
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/include/llvm/Support/KnownBits.h
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/Support/KnownBits.cpp
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/unittests/Support/KnownBitsTest.cpp
Log Message:
-----------
[KnownBits] Rename KnownBits::computeForMul to KnownBits::mul. NFCI.
As promised in D98866
Commit: 167ea67d76c297eb5dd3fa5f4ffc3c85e1842faa
https://github.com/llvm/llvm-project/commit/167ea67d76c297eb5dd3fa5f4ffc3c85e1842faa
Author: madhur13490 <Madhur.Amilkanthwar at amd.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/IR/Function.cpp
M llvm/lib/Transforms/IPO/GlobalOpt.cpp
A llvm/test/Analysis/CallGraph/ignore-bitcast-call-argument-callee.ll
A llvm/test/Analysis/CallGraph/ignore-bitcast-call-argument.ll
A llvm/test/Analysis/CallGraph/ignore-bitcast-callees.ll
A llvm/test/Analysis/CallGraph/ignore-bitcast-callees2.ll
M llvm/test/Transforms/Attributor/IPConstantProp/arg-count-mismatch.ll
M llvm/test/Transforms/Attributor/IPConstantProp/arg-type-mismatch.ll
A llvm/test/Transforms/GlobalOpt/assumelike-bitcast-fastcc.ll
A llvm/test/Transforms/GlobalOpt/bitcast-call-argument-fastcc.ll
A llvm/test/Transforms/GlobalOpt/bitcast-callees-fastcc.ll
A llvm/test/Transforms/GlobalOpt/blockaddr-bitcast-fastcc.ll
M llvm/test/Transforms/OpenMP/parallel_deletion_cg_update.ll
M llvm/test/Transforms/SCCP/arg-count-mismatch.ll
M llvm/test/Transforms/SCCP/arg-type-mismatch.ll
Log Message:
-----------
[IR] Ignore bitcasts of function pointers which are only used as callees in callbase instruction
This patch enhances hasAddressTaken() to ignore bitcasts as a
callee in callbase instruction. Such bitcast usage doesn't really take
the address in a useful meaningful way.
Reviewed By: rampitec
Differential Revision: https://reviews.llvm.org/D98884
Commit: 2fc761aac93a8e2afef4a6dc618032bb97d8b9de
https://github.com/llvm/llvm-project/commit/2fc761aac93a8e2afef4a6dc618032bb97d8b9de
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
A llvm/test/Transforms/PhaseOrdering/pr45687.ll
Log Message:
-----------
[PhaseOrdering] Add PR45687 test coverage
This is a mixture of instcombine/simplfycfg/instcombine to recognise and then remove the abs pattern
Commit: 638d70be6b931c6ac5b7fefb9f3e866e4a89522c
https://github.com/llvm/llvm-project/commit/638d70be6b931c6ac5b7fefb9f3e866e4a89522c
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/test/CodeGen/AArch64/aarch64-tbz.ll
Log Message:
-----------
[test, AArch64] Fix use of var defined in CHECK-NOT
LLVM test CodeGen/AArch64/aarch64-tbz.ll tries to check for the absence
of a sequence of instructions with several CHECK-NOT with one of those
directives using a variable defined in another. However CHECK-NOT are
checked independently so that is using a variable defined in a pattern
that should not occur in the input.
This commit removes the definition and uses of variable to check each
line independently, making the check stronger than the current one. It
also removes unnecessary regex match for labels.
Reviewed By: dmgreen
Differential Revision: https://reviews.llvm.org/D99602
Commit: f8f4d8f87ba4c1fbb18a4e7f4a5ea03a8b8ec061
https://github.com/llvm/llvm-project/commit/f8f4d8f87ba4c1fbb18a4e7f4a5ea03a8b8ec061
Author: David Spickett <david.spickett at linaro.org>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbtest.py
Log Message:
-----------
[lldb] Improve CPUInfo test predicate
Use a with block for reading the cpuinfo file.
When loading the file fails (or we're not on Linux)
return an empty string. Since all the callers are
going to do "x in self.getCPUInfo()".
Reviewed By: omjavaid
Differential Revision: https://reviews.llvm.org/D99729
Commit: 66c05609e0d5b758295b3c20d3dde4f3c3cda673
https://github.com/llvm/llvm-project/commit/66c05609e0d5b758295b3c20d3dde4f3c3cda673
Author: Zakk Chen <zakk.chen at sifive.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/include/clang/Basic/riscv_vector.td
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vand.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vdiv.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmacc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmadd.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmax.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmin.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmul.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnmsac.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnmsub.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vor.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vrem.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vrsub.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsll.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsra.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsrl.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsub.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vxor.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vand.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vdiv.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmacc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmadd.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmax.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmin.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmul.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vnmsac.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vnmsub.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vor.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vrem.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vrsub.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vsll.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vsra.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vsrl.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vsub.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vxor.c
Log Message:
-----------
[RISCV][Clang] Add some RVV Integer intrinsic functions.
1. Rename RVVBinBuiltin to RVVOutputOp1Builtin because it is not related
to the number of operand.
2. Add RVV Integer instuctions which use RVVOutputOp1Builtin.
Reviewed By: craig.topper
Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>
Differential Revision: https://reviews.llvm.org/D99524
Commit: 0a18ea01f19757c7b94bab8d7a9130b78136c6c1
https://github.com/llvm/llvm-project/commit/0a18ea01f19757c7b94bab8d7a9130b78136c6c1
Author: Zakk Chen <zakk.chen at sifive.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/include/clang/Basic/riscv_vector.td
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnsra.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnsrl.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwmul.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vnsra.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vnsrl.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vwmul.c
Log Message:
-----------
[RISCV][Clang] Add RVV vnsra, vnsrl and vwmul intrinsic functions.
Reviewed By: craig.topper
Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>
Differential Revision: https://reviews.llvm.org/D99525
Commit: f720c22e77290187a53fc85cb8d34c313ad07e47
https://github.com/llvm/llvm-project/commit/f720c22e77290187a53fc85cb8d34c313ad07e47
Author: Zakk Chen <zakk.chen at sifive.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/include/clang/Basic/riscv_vector.td
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsext.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vzext.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vsext.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vzext.c
Log Message:
-----------
[RISCV][Clang] Add RVV Widening Integer Extension intrinsic functions.
Reviewed By: HsiangKai
Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>
Differential Revision: https://reviews.llvm.org/D99527
Commit: fe252b509ee6e8925219b97a189569c8d33c91f2
https://github.com/llvm/llvm-project/commit/fe252b509ee6e8925219b97a189569c8d33c91f2
Author: Zakk Chen <zakk.chen at sifive.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/include/clang/Basic/riscv_vector.td
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vadc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmadc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsbc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmseq.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsgt.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsle.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmslt.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsne.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsbc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwmacc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vadc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmadc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmsbc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmseq.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmsgt.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmsle.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmslt.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmsne.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vsbc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vwmacc.c
Log Message:
-----------
[RISCV][Clang] Add more RVV Integer intrinsic functions.
Support below instructions.
1. Vector Integer Add-with-Carry / Subtract-with-Borrow Instructions
2. Vector Integer Comparison Instructions
3. Vector Widening Integer Multiply-Add Instructions
Reviewed By: HsiangKai
Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>
Differential Revision: https://reviews.llvm.org/D99528
Commit: f2a3601aa5a513e8d8a76cba84434fbfe4a71f10
https://github.com/llvm/llvm-project/commit/f2a3601aa5a513e8d8a76cba84434fbfe4a71f10
Author: Zakk Chen <zakk.chen at sifive.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/include/clang/Basic/riscv_vector.td
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vaadd.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vasub.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnclip.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsadd.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsmul.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vssra.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vssrl.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vssub.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vaadd.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vasub.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vnclip.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vsadd.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vsmul.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vssra.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vssrl.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vssub.c
Log Message:
-----------
[RISCV][Clang] Add all RVV Fixed-Point Arithmetic intrinsic functions.
Reviewed By: HsiangKai
Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>
Differential Revision: https://reviews.llvm.org/D99610
Commit: 34f8a7f93c98b7c189f9684d0d207ab42aca166f
https://github.com/llvm/llvm-project/commit/34f8a7f93c98b7c189f9684d0d207ab42aca166f
Author: David Spickett <david.spickett at linaro.org>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M compiler-rt/test/lsan/TestCases/many_tls_keys_pthread.cpp
Log Message:
-----------
[lsan][test] Disable many_tls_keys_pthread.cpp on AArch64
Partially reverts 04dbb63400c5fa2f263d7473272509be572a367a.
This test requires 9be8f8b34d9b150cd1811e3556fe9d0cd735ae29
which is/has been reverted a few times but this test was
left enabled.
Currently that change is reverted and this test is failing:
http://lab.llvm.org:8011/#/builders/7/builds/2327
Commit: f6ee97d8271e1dfd9b6572222fefe8f40433952e
https://github.com/llvm/llvm-project/commit/f6ee97d8271e1dfd9b6572222fefe8f40433952e
Author: Alexander Belyaev <pifon at google.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cpp
Log Message:
-----------
[rt] Update DIPrinter usage in 'sanitizer_symbolize.cpp`.
These changes were required after
https://github.com/llvm/llvm-project/commit/5f57793c4fe47aa3486a755768b43189351cbd15
Differential Revision: https://reviews.llvm.org/D99937
Commit: 6eb5b06ecfe4c3263e3df891123959fffe24d32a
https://github.com/llvm/llvm-project/commit/6eb5b06ecfe4c3263e3df891123959fffe24d32a
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/test/CodeGen/AMDGPU/mul24-pass-ordering.ll
Log Message:
-----------
[AMDGPU] Regenerate checks to fix prefixes broken in D96340. NFC.
Commit: 201877d57264543d8ac5ca48f15bc0bc7c80b8ce
https://github.com/llvm/llvm-project/commit/201877d57264543d8ac5ca48f15bc0bc7c80b8ce
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/X86/reduce-mul.ll
Log Message:
-----------
[CostModel][X86] Improve accuracy of vXi8 multiply reduction costs
After rG47321c311bdbe0145b9bf45d822185c37b19fa50 we promote vXi8 reductions to vXi16 to create a much faster PMULLW mul reduction, followed by a (free) truncation. This avoids the high cost of repeated vXi8 multiplications (which extend+multiply+truncate to/from vXi16 types....).
Fixes the missing vXi8 mul reduction vectorization in PR42674 (Comment #20) 'mul16' test case.
Commit: 476e087939e4c7cda4de9fa3bc998aea62da4096
https://github.com/llvm/llvm-project/commit/476e087939e4c7cda4de9fa3bc998aea62da4096
Author: Martin Storsjö <martin at martin.st>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm64.cpp
Log Message:
-----------
[LLDB] Fix building for aarch64 windows after d6d3d21cd1cb1567eaf7ff8c0867b07227a19d99
Differential Revision: https://reviews.llvm.org/D99847
Commit: b78e883fd8b3745250220776dd8bb635edd95539
https://github.com/llvm/llvm-project/commit/b78e883fd8b3745250220776dd8bb635edd95539
Author: Dominik Montada <dominik.montada at hightec-rt.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/lib/Tooling/CMakeLists.txt
Log Message:
-----------
[CMake] Fix Python 3 lookup when building LLVM with tests
Remove the find_package(Python3 ...) call from Tooling/CMakeLists.txt as
it would override the python 3 version determined in llvm/CMakeLists.txt.
This call did not respect the LLVM_MINIMUM_PYTHON_VERSION.
This fixes the check-all target when building LLVM on a system where the
default python version is not the minimum required version for running tests.
Reviewed By: serge-sans-paille
Differential Revision: https://reviews.llvm.org/D99715
Commit: 3eadcb86abd2259e398c9c1ff81d5509bfeeb7df
https://github.com/llvm/llvm-project/commit/3eadcb86abd2259e398c9c1ff81d5509bfeeb7df
Author: Dmitry Preobrazhensky <dmitry.preobrazhensky at amd.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SMInstructions.td
M llvm/test/MC/Disassembler/AMDGPU/smem_gfx9.txt
Log Message:
-----------
[AMDGPU][MC][GFX9] Corrected SMEM decoding
Corrected SMEM decoding when IMM=0 and OFFSET>127
Fixed bug 49819 (https://bugs.llvm.org/show_bug.cgi?id=49819)
Differential Revision: https://reviews.llvm.org/D99804
Commit: a6b06b785cda1bb94dd05f29d66892ccb44cf0cd
https://github.com/llvm/llvm-project/commit/a6b06b785cda1bb94dd05f29d66892ccb44cf0cd
Author: Florian Hahn <flo at fhahn.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/unittests/Transforms/Vectorize/VPlanHCFGTest.cpp
Log Message:
-----------
[VPlan] Print VPValue operands for VPWidenPHI if possible.
For VPWidenPHIRecipes that model all incoming values as VPValue
operands, print those operands instead of printing the original PHI.
D99294 updates recipes of reduction PHIs to use the VPValue for the
incoming value from the loop backedge, making use of this new printing.
Commit: 857b8a73da91e9036cf27f47939ee387966306c6
https://github.com/llvm/llvm-project/commit/857b8a73da91e9036cf27f47939ee387966306c6
Author: Kerry McLaughlin <kerry.mclaughlin at arm.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/include/llvm/Analysis/IVDescriptors.h
M llvm/lib/Analysis/IVDescriptors.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/X86/reduction-fastmath.ll
Log Message:
-----------
[LoopVectorize] Change the identity element for FAdd
Changes getRecurrenceIdentity to always return a neutral value of -0.0 for FAdd.
Reviewed By: dmgreen, spatel
Differential Revision: https://reviews.llvm.org/D98963
Commit: 65c22acfa4a412066e47c3171ff26fcbd62f970e
https://github.com/llvm/llvm-project/commit/65c22acfa4a412066e47c3171ff26fcbd62f970e
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/utils/TableGen/ClangAttrEmitter.cpp
Log Message:
-----------
Silence -Woverloaded-virtual warnings from generated code; NFC
Commit: 82b3e28e836d2f5c8cfd6e1047b93c088522365a
https://github.com/llvm/llvm-project/commit/82b3e28e836d2f5c8cfd6e1047b93c088522365a
Author: Abhina Sreeskantharajan <Abhina.Sreeskantharajan at ibm.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang-tools-extra/clang-move/tool/ClangMove.cpp
M clang-tools-extra/modularize/ModuleAssistant.cpp
M clang-tools-extra/pp-trace/PPTrace.cpp
M clang/lib/ARCMigrate/PlistReporter.cpp
M clang/lib/Driver/Compilation.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Frontend/CompilerInstance.cpp
M clang/lib/Frontend/DependencyFile.cpp
M clang/lib/Frontend/DependencyGraph.cpp
M clang/lib/Frontend/FrontendActions.cpp
M clang/lib/Frontend/HeaderIncludeGen.cpp
M clang/lib/Frontend/ModuleDependencyCollector.cpp
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
M clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp
M clang/tools/clang-refactor/ClangRefactor.cpp
M clang/tools/driver/cc1as_main.cpp
M flang/lib/Frontend/CompilerInstance.cpp
M lld/COFF/DriverUtils.cpp
M lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
M lldb/include/lldb/Utility/ReproducerProvider.h
M lldb/source/Utility/GDBRemote.cpp
M lldb/source/Utility/ReproducerProvider.cpp
M lldb/tools/lldb-server/LLDBServerUtilities.cpp
M llvm/include/llvm/Analysis/DOTGraphTraitsPass.h
M llvm/include/llvm/Support/FileSystem.h
M llvm/lib/CodeGen/RegAllocPBQP.cpp
M llvm/lib/IR/Core.cpp
M llvm/lib/IR/LLVMRemarkStreamer.cpp
M llvm/lib/LTO/LTOBackend.cpp
M llvm/lib/MC/MCParser/DarwinAsmParser.cpp
M llvm/lib/ProfileData/GCOV.cpp
M llvm/lib/ProfileData/SampleProfWriter.cpp
M llvm/lib/Support/FileCollector.cpp
M llvm/lib/Support/MemoryBuffer.cpp
M llvm/lib/Support/TimeProfiler.cpp
M llvm/lib/Support/Timer.cpp
M llvm/lib/Support/Unix/Program.inc
M llvm/lib/Support/Windows/Path.inc
M llvm/lib/Support/Windows/Program.inc
M llvm/lib/Transforms/IPO/Attributor.cpp
M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
M llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
M llvm/lib/Transforms/Utils/Debugify.cpp
M llvm/tools/dsymutil/dsymutil.cpp
M llvm/tools/llc/llc.cpp
M llvm/tools/lli/lli.cpp
M llvm/tools/llvm-cxxmap/llvm-cxxmap.cpp
M llvm/tools/llvm-dis/llvm-dis.cpp
M llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
M llvm/tools/llvm-exegesis/lib/BenchmarkResult.cpp
M llvm/tools/llvm-link/llvm-link.cpp
M llvm/tools/llvm-mc/llvm-mc.cpp
M llvm/tools/llvm-mca/llvm-mca.cpp
M llvm/tools/llvm-opt-report/OptReport.cpp
M llvm/tools/llvm-profdata/llvm-profdata.cpp
M llvm/tools/llvm-xray/xray-account.cpp
M llvm/tools/llvm-xray/xray-converter.cpp
M llvm/tools/llvm-xray/xray-extract.cpp
M llvm/tools/llvm-xray/xray-graph-diff.cpp
M llvm/tools/llvm-xray/xray-graph.cpp
M llvm/tools/opt/opt.cpp
M llvm/tools/verify-uselistorder/verify-uselistorder.cpp
M llvm/unittests/Support/Path.cpp
M polly/lib/Exchange/JSONExporter.cpp
Log Message:
-----------
[SystemZ][z/OS][Windows] Add new OF_TextWithCRLF flag and use this flag instead of OF_Text
Problem:
On SystemZ we need to open text files in text mode. On Windows, files opened in text mode adds a CRLF '\r\n' which may not be desirable.
Solution:
This patch adds two new flags
- OF_CRLF which indicates that CRLF translation is used.
- OF_TextWithCRLF = OF_Text | OF_CRLF indicates that the file is text and uses CRLF translation.
Developers should now use either the OF_Text or OF_TextWithCRLF for text files and OF_None for binary files. If the developer doesn't want carriage returns on Windows, they should use OF_Text, if they do want carriage returns on Windows, they should use OF_TextWithCRLF.
So this is the behaviour per platform with my patch:
z/OS:
OF_None: open in binary mode
OF_Text : open in text mode
OF_TextWithCRLF: open in text mode
Windows:
OF_None: open file with no carriage return
OF_Text: open file with no carriage return
OF_TextWithCRLF: open file with carriage return
The Major change is in llvm/lib/Support/Windows/Path.inc to only set text mode if the OF_CRLF is set.
```
if (Flags & OF_CRLF)
CrtOpenFlags |= _O_TEXT;
```
These following files are the ones that still use OF_Text which I left unchanged. I modified all these except raw_ostream.cpp in recent patches so I know these were previously in Binary mode on Windows.
./llvm/lib/Support/raw_ostream.cpp
./llvm/lib/TableGen/Main.cpp
./llvm/tools/dsymutil/DwarfLinkerForBinary.cpp
./llvm/unittests/Support/Path.cpp
./clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
./clang/lib/Frontend/CompilerInstance.cpp
./clang/lib/Driver/Driver.cpp
./clang/lib/Driver/ToolChains/Clang.cpp
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D99426
Commit: 2901dc7575873ed4bdfa1d7a0e79020e7a9ffb3d
https://github.com/llvm/llvm-project/commit/2901dc7575873ed4bdfa1d7a0e79020e7a9ffb3d
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/lib/AST/ExprConstant.cpp
M clang/lib/Analysis/CalledOnceCheck.cpp
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGCUDANV.cpp
M clang/lib/CodeGen/CGExprScalar.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaExprMember.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/unittests/AST/ASTImporterTest.cpp
Log Message:
-----------
Don't directly dereference getAs<> casts to avoid potential null dereferences. NFCI.
Replace with castAs<> which asserts the cast is valid.
Fixes a number of static analyzer warnings.
Commit: b8aba76a4eab8e39008e243ebc2a3d0b56c1bd0c
https://github.com/llvm/llvm-project/commit/b8aba76a4eab8e39008e243ebc2a3d0b56c1bd0c
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopFlatten.cpp
Log Message:
-----------
LoopFlatten - CanWidenIV - Fix uninitialized variable warnings and use for-range loop. NFCI.
Fix static analysis uninitialized variable warnings, and use for-range loop iteration across WideIVs array.
Commit: 6fec0a34ceb0a3c95454ef8c978e19be3fec7ab7
https://github.com/llvm/llvm-project/commit/6fec0a34ceb0a3c95454ef8c978e19be3fec7ab7
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/test/CodeGen/AMDGPU/cf-loop-on-constant.ll
M llvm/test/CodeGen/AMDGPU/fold-imm-copy.mir
M llvm/test/CodeGen/AMDGPU/fptosi.f16.ll
M llvm/test/CodeGen/AMDGPU/fptoui.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx90a.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.clamp.ll
M llvm/test/CodeGen/AMDGPU/mubuf.ll
M llvm/test/CodeGen/AMDGPU/spill-offset-calculation.ll
M llvm/test/CodeGen/AMDGPU/valu-i1.ll
M llvm/test/CodeGen/AMDGPU/wave32.ll
Log Message:
-----------
[AMDGPU] Fix typo in regular expression checks. NFC.
Commit: 7dc7790ec52efe799211edde9114ba5e467ccb36
https://github.com/llvm/llvm-project/commit/7dc7790ec52efe799211edde9114ba5e467ccb36
Author: Alex Zinenko <zinenko at google.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M mlir/lib/Conversion/AffineToStandard/AffineToStandard.cpp
M mlir/test/Conversion/AffineToStandard/lower-affine.mlir
Log Message:
-----------
[mlir] Fix support for lowering non-32-bit affine reductions.
The existing implementation was always creating 32-bit constants for
floating-point and integer reductions regardless of the actual type, which
resulted in invalid IR being generated for any types other than f32 and i32
when lowering affine.parallel to SCF. Use the actual type instead.
Reviewed By: chelini
Differential Revision: https://reviews.llvm.org/D99942
Commit: e07a9b38a6892136fceae0ee17fea0530b6f7623
https://github.com/llvm/llvm-project/commit/e07a9b38a6892136fceae0ee17fea0530b6f7623
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/test/Transforms/InstCombine/demorgan.ll
Log Message:
-----------
[InstCombine] Add PR45984 test case
Fold (a ^ b) | ~(a | b) --> ~(a & b)
Commit: 0bf4836dc4cf126b602ea3f76b7a0340f05383bb
https://github.com/llvm/llvm-project/commit/0bf4836dc4cf126b602ea3f76b7a0340f05383bb
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/test/CodeGen/AMDGPU/fadd64.ll
M llvm/test/CodeGen/AMDGPU/fcmp64.ll
M llvm/test/CodeGen/AMDGPU/ffloor.f64.ll
M llvm/test/CodeGen/AMDGPU/fneg-combines.ll
M llvm/test/CodeGen/AMDGPU/hoist-cond.ll
M llvm/test/CodeGen/AMDGPU/shift-and-i128-ubfe.ll
Log Message:
-----------
[AMDGPU] Fix dubious regexes with unescaped brackets. NFC.
Commit: bdfee7d5e1924eb5ca7333b1da339cf21a481409
https://github.com/llvm/llvm-project/commit/bdfee7d5e1924eb5ca7333b1da339cf21a481409
Author: Raphael Isemann <teemperor at gmail.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M lldb/source/Plugins/Language/ObjC/Cocoa.cpp
Log Message:
-----------
[lldb][NFC] Fix misleading indentation in Cocoa.cpp
Commit: 5efe9efdadcbf635f79c9a2b19dae9a96e25496f
https://github.com/llvm/llvm-project/commit/5efe9efdadcbf635f79c9a2b19dae9a96e25496f
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/test/CodeGen/X86/bmi.ll
Log Message:
-----------
[X86] Add ANDN test case for PR48768
D94856 covered the BMI cases where we had existing tests, this adds a missing ANDN test case
Commit: 5ab489d9ae99c60d6f7e1e01194e0b4aacaf68af
https://github.com/llvm/llvm-project/commit/5ab489d9ae99c60d6f7e1e01194e0b4aacaf68af
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
A llvm/test/Transforms/InstCombine/sub-from-sub.ll
Log Message:
-----------
[NFC][InstCombine] Add tests for '((X - Y) - Z)' pattern (PR49858)
Commit: 31d219d2997fed1b7dc97e0adf170d5aaf65883e
https://github.com/llvm/llvm-project/commit/31d219d2997fed1b7dc97e0adf170d5aaf65883e
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
M llvm/test/Transforms/InstCombine/abs-1.ll
M llvm/test/Transforms/InstCombine/sub-from-sub.ll
Log Message:
-----------
[InstCombine] Fold `((X - Y) - Z)` to `X - (Y + Z)` (PR49858)
https://alive2.llvm.org/ce/z/67w-wQ
We prefer `add`s over `sub`, and this particular xform
allows further folds to happen:
Fixes https://bugs.llvm.org/show_bug.cgi?id=49858
Commit: 849d3729433e05e6d89892c1814fa07ed3ec18e2
https://github.com/llvm/llvm-project/commit/849d3729433e05e6d89892c1814fa07ed3ec18e2
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/test/CodeGen/builtins-ppc-quadword-noi128.c
Log Message:
-----------
[NFC][Clang] Speculative fix for builtins-ppc-quadword-noi128.c
Commit: 1dcb5b5e8978a0a2f296670a4ab29a8038a21a0e
https://github.com/llvm/llvm-project/commit/1dcb5b5e8978a0a2f296670a4ab29a8038a21a0e
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86InstrInfo.cpp
M llvm/test/CodeGen/X86/bmi.ll
Log Message:
-----------
[X86] Improve optimizeCompareInstr for signed comparisons after ANDN instructions
Extend D94856 to handle 'andn' instructions as well
Commit: 88c2454057b6cd1b122f7fadde666e6b8ea6ebd3
https://github.com/llvm/llvm-project/commit/88c2454057b6cd1b122f7fadde666e6b8ea6ebd3
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/test/Transforms/InstCombine/or.ll
Log Message:
-----------
[InstCombine] Add PR38929 test case
Fold (~x & y) | ~(x | y) --> ~x
Commit: 7344f3d39a0dc934b22ee43b4f92160fc3ea2db6
https://github.com/llvm/llvm-project/commit/7344f3d39a0dc934b22ee43b4f92160fc3ea2db6
Author: Kerry McLaughlin <kerry.mclaughlin at arm.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/include/llvm/Analysis/IVDescriptors.h
M llvm/include/llvm/Transforms/Utils/LoopUtils.h
M llvm/lib/Analysis/IVDescriptors.cpp
M llvm/lib/Transforms/Utils/LoopUtils.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
A llvm/test/Transforms/LoopVectorize/AArch64/strict-fadd.ll
Log Message:
-----------
[LoopVectorize] Add strict in-order reduction support for fixed-width vectorization
Previously we could only vectorize FP reductions if fast math was enabled, as this allows us to
reorder FP operations. However, it may still be beneficial to vectorize the loop by moving
the reduction inside the vectorized loop and making sure that the scalar reduction value
be an input to the horizontal reduction, e.g:
%phi = phi float [ 0.0, %entry ], [ %reduction, %vector_body ]
%load = load <8 x float>
%reduction = call float @llvm.vector.reduce.fadd.v8f32(float %phi, <8 x float> %load)
This patch adds a new flag (IsOrdered) to RecurrenceDescriptor and makes use of the changes added
by D75069 as much as possible, which already teaches the vectorizer about in-loop reductions.
For now in-order reduction support is off by default and controlled with the `-enable-strict-reductions` flag.
Reviewed By: david-arm
Differential Revision: https://reviews.llvm.org/D98435
Commit: e9608a84d881e3190d17d8b11f9fdf6d745018ef
https://github.com/llvm/llvm-project/commit/e9608a84d881e3190d17d8b11f9fdf6d745018ef
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/MIMGInstructions.td
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.gather4.dim.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.gather4.dim.ll
Log Message:
-----------
[AMDGPU][SDag] Add IMG init also for image_gather4 instructions
This fixes an oversight in D99747 which moved the IMG init code from
SIAddIMGInit to AdjustInstrPostInstrSelection, but did not set the
hasPostISelHook flag on gather4 instructions.
Differential Revision: https://reviews.llvm.org/D99953
Commit: ccb361af6cf771ba5d9e50a9dc5b845a1a196697
https://github.com/llvm/llvm-project/commit/ccb361af6cf771ba5d9e50a9dc5b845a1a196697
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
Log Message:
-----------
[llvm-symbolizer] Don't use the same 'OutputStyle' name for the enum type and instance. NFCI.
This was causing some buildbot problems, e.g. http://lab.llvm.org:8011/#/builders/110/builds/2306
Commit: cf4f5292f637d4ff1217da67d07147d63257ca87
https://github.com/llvm/llvm-project/commit/cf4f5292f637d4ff1217da67d07147d63257ca87
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
Log Message:
-----------
[AMDGPU] SIFoldOperands: use getVRegDef instead of getUniqueVRegDef
We are in SSA so getVRegDef is equivalent but simpler. NFC.
Commit: ce9cca6c3a31998b924ac9c67d8e1c70ada5665b
https://github.com/llvm/llvm-project/commit/ce9cca6c3a31998b924ac9c67d8e1c70ada5665b
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
Log Message:
-----------
[AMDGPU] SIFoldOperands: rename tryFoldInst to tryFoldCndMask
This follows the pattern of the other tryFold* functions. NFC.
Commit: 005dcd196ef64f77cc3070ed3a2df6ba6e78c628
https://github.com/llvm/llvm-project/commit/005dcd196ef64f77cc3070ed3a2df6ba6e78c628
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
Log Message:
-----------
[AMDGPU] SIFoldOperands: use range-based loops and make_early_inc_range
NFC.
Commit: efc7bf27f5ee87ac106c6e48c4276e26f4f04715
https://github.com/llvm/llvm-project/commit/efc7bf27f5ee87ac106c6e48c4276e26f4f04715
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
Log Message:
-----------
[AMDGPU] SIFoldOperands: use MachineRegisterInfo::hasOneNonDBGUser
NFC.
Commit: ce4acb01b315b74e04da83d89304bd159b31dadd
https://github.com/llvm/llvm-project/commit/ce4acb01b315b74e04da83d89304bd159b31dadd
Author: Benjamin Kramer <benny.kra at googlemail.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Utils/LoopUtils.cpp
Log Message:
-----------
Avoid unused variable warning in Release builds
Commit: fb6a5237aa73e42d476f3736afcd531a593d3c33
https://github.com/llvm/llvm-project/commit/fb6a5237aa73e42d476f3736afcd531a593d3c33
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/IR/Function.cpp
M llvm/lib/Transforms/IPO/GlobalOpt.cpp
R llvm/test/Analysis/CallGraph/ignore-bitcast-call-argument-callee.ll
R llvm/test/Analysis/CallGraph/ignore-bitcast-call-argument.ll
R llvm/test/Analysis/CallGraph/ignore-bitcast-callees.ll
R llvm/test/Analysis/CallGraph/ignore-bitcast-callees2.ll
M llvm/test/Transforms/Attributor/IPConstantProp/arg-count-mismatch.ll
M llvm/test/Transforms/Attributor/IPConstantProp/arg-type-mismatch.ll
R llvm/test/Transforms/GlobalOpt/assumelike-bitcast-fastcc.ll
R llvm/test/Transforms/GlobalOpt/bitcast-call-argument-fastcc.ll
R llvm/test/Transforms/GlobalOpt/bitcast-callees-fastcc.ll
R llvm/test/Transforms/GlobalOpt/blockaddr-bitcast-fastcc.ll
M llvm/test/Transforms/OpenMP/parallel_deletion_cg_update.ll
M llvm/test/Transforms/SCCP/arg-count-mismatch.ll
M llvm/test/Transforms/SCCP/arg-type-mismatch.ll
Log Message:
-----------
Revert "[IR] Ignore bitcasts of function pointers which are only used as callees in callbase instruction"
This reverts commit 167ea67d
This causes a bunch of build failures:
* http://lab.llvm.org:8011/#/builders/121/builds/6287
* http://green.lab.llvm.org/green/job/clang-stage1-RA/19915
Commit: 23929af383f27a6ddf23704192a25591481152b3
https://github.com/llvm/llvm-project/commit/23929af383f27a6ddf23704192a25591481152b3
Author: Abhina Sreeskantharajan <Abhina.Sreeskantharajan at ibm.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/lib/Frontend/Rewrite/FrontendActions.cpp
Log Message:
-----------
[Windows] Turn off text mode correctly in Rewriter to stop CRLF translation
I incorrectly changed the RewriteTestAction::ExecuteAction's file to binary instead of the proper RewriteIncludesAction::BeginSourceFileAction in https://reviews.llvm.org/rGbc5d4bcc2deb71ab647270c9754a83484b3d6f87. In the original commit, I actually changed RewriteIncludesAction::BeginSourceFileAction in https://reviews.llvm.org/rGfdb640ea30d416368b76b68b106deda580c6aced. This should fix the issue @aganea is facing.
Reviewed By: aganea
Differential Revision: https://reviews.llvm.org/D99837
Commit: 52ecd94cfbca726aae2532db43aac5dec92ced15
https://github.com/llvm/llvm-project/commit/52ecd94cfbca726aae2532db43aac5dec92ced15
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/EarlyCSE.cpp
M llvm/lib/Transforms/Scalar/GVN.cpp
Log Message:
-----------
Remove last remnants of PR49607 migration [NFC]
The key change (4f5e92c) to switch gc.result and gc.relocate to being readnone landed nearly two weeks ago, and we haven't seen any fallout. Time to remove the code added to make reverting easy.
Commit: 844012940e177cea9d4deb49c2d79d808adf815e
https://github.com/llvm/llvm-project/commit/844012940e177cea9d4deb49c2d79d808adf815e
Author: Konstantin Zhuravlyov <kzhuravl_dev at outlook.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SOPInstructions.td
Log Message:
-----------
AMDGPU: Add isBranch=1 to SOPP branch instructions
Differential Revision: https://reviews.llvm.org/D99955
Commit: b660abc80d0d0943c54e9440636ddfa89c2d626d
https://github.com/llvm/llvm-project/commit/b660abc80d0d0943c54e9440636ddfa89c2d626d
Author: Erik Pilkington <erik.pilkington at gmail.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/include/clang/AST/DeclObjC.h
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Driver/Options.td
M clang/lib/AST/DeclObjC.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Sema/SemaDeclObjC.cpp
A clang/test/CodeGenObjC/disable-direct-method.m
M clang/test/Driver/clang_f_opts.c
A clang/test/SemaObjC/disable-direct-method.m
Log Message:
-----------
[ObjC] Add a command line flag that disables recognition of objc_direct for testability
Programmers would like to be able to test direct methods by calling them from a
different linkage unit or mocking them, both of which are impossible. This
patch adds a flag that effectively disables the attribute, which will fix this
when enabled in testable builds. rdar://71190891
Differential revision: https://reviews.llvm.org/D95845
Commit: 14a7296c0120913e949739e4e90ea5a5f1bd8af1
https://github.com/llvm/llvm-project/commit/14a7296c0120913e949739e4e90ea5a5f1bd8af1
Author: oToToT <ty1208chiang at gmail.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang-tools-extra/clangd/Compiler.cpp
M clang/lib/Frontend/ASTUnit.cpp
M clang/lib/Frontend/PrecompiledPreamble.cpp
Log Message:
-----------
[clang][clangd] Avoid inconsistent target creation
As proposed in D97109, I tried to make target creation consistent in `clang` and `clangd` by replacing the original procedure with a single function introduced in D97493.
This also helps `clangd` works with CUDA, OpenMP, etc.
Reviewed By: kadircet
Differential Revision: https://reviews.llvm.org/D98128
Commit: b36ef9f47db774f53baf6a527c8ea60d7e111287
https://github.com/llvm/llvm-project/commit/b36ef9f47db774f53baf6a527c8ea60d7e111287
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M mlir/test/Dialect/Linalg/tile-indexed-generic.mlir
Log Message:
-----------
[MLIR, test] Fix use of undef FileCheck var
MLIR test Dialect/Linalg/tile-indexed-generic.mlir has a CHECK-NOT
directive referring to a variable only defined in a CHECK directive with
a different prefix, and thus undefined in the CHECK-NOT.
This commit removes the variable reference altogether to error on any
content it might have.
Reviewed By: pifon2a
Differential Revision: https://reviews.llvm.org/D99956
Commit: fa818bb0357d140987155f75296b1205303be31d
https://github.com/llvm/llvm-project/commit/fa818bb0357d140987155f75296b1205303be31d
Author: Dan Liew <dliew at apple.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M compiler-rt/cmake/Modules/CompilerRTUtils.cmake
Log Message:
-----------
[CMake][Compiler-rt] Compute `LLVM_MAIN_SRC_DIR` assuming the monorepo
layout.
When doing a standalone compiler-rt build we currently rely on
getting information from the `llvm-config` binary. Previously
we would rely on calling `llvm-config --src-root` to find the
LLVM sources. Unfortunately the returned path could easily be wrong
if the sources were built on another machine.
Now that compiler-rt is part of a monorepo we can easily fix this
problem by finding the LLVM source tree next to `compiler-rt` in
the monorepo. We do this regardless of whether or not the `llvm-config`
binary is available which moves us one step closer to not requiring
`llvm-config` to be available.
To try avoid anyone breaking anyone who relies on the current behavior,
if the path assuming the monorepo layout doesn't exist we invoke
`llvm-config --src-root` to get the path. A deprecation warning is
emitted if this path is taken because we should remove this path
in the future given that other runtimes already assume the monorepo
layout.
We also now emit a warning if `LLVM_MAIN_SRC_DIR` does not exist.
The intention is that this should be a hard error in future but
to avoid breaking existing users we'll keep this as a warning
for now.
rdar://76016632
Differential Revision: https://reviews.llvm.org/D99620
Commit: fd28517d878e1d3d14f492ab659aabdf729fd331
https://github.com/llvm/llvm-project/commit/fd28517d878e1d3d14f492ab659aabdf729fd331
Author: Dan Liew <dliew at apple.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
A compiler-rt/cmake/Modules/CompilerRTMockLLVMCMakeConfig.cmake
M compiler-rt/cmake/Modules/CompilerRTUtils.cmake
Log Message:
-----------
[CMake][Compiler-rt] Make it possible to configure standalone compiler-rt without `LLVMConfig.cmake`.
Previously it wasn't possible to configure a standalone compiler-rt
build if the `LLVMConfig.cmake` file isn't present in a shipped
toolchain.
This patch adds a fallback behaviour for when `LLVMConfig.cmake` is not
available in the toolchain being used for configure. The fallback
behaviour mocks out the bare minimum required to make a configure
succeed when the host is Darwin. Support for other platforms could
be added in future patches.
The new code path is taken either in one of the following cases:
* `llvm-config` is not available.
* `llvm-config` is available but it provides an invalid path for the CMake files.
The motivation here is to be able to generate the compiler-rt lit test
suites for an arbitrary LLVM toolchain and then run the tests against
it.
The invocation to do this looks something like.
```
CC=/path/to/cc \
CXX=/path/to/c++ \
cmake \
-G Ninja \
-DLLVM_CONFIG_PATH=/path/to/llvm-config \
-DCOMPILER_RT_INCLUDE_TESTS=ON \
/path/to/llvm-project/compiler-rt
# Note we don't compile compiler-rt in this workflow.
bin/llvm-lit -v test/path/to/generated/test_suite
```
A possible alternative approach is to configure the
`cmake/modules/LLVMConfig.cmake.in` file in the LLVM source tree
and then include it. This approach was not taken because it is more
complicated.
An interesting side benefit of this patch is that it is now
possible to configure on Darwin without `llvm-config` being available
by configuring with `-DLLVM_CONFIG_PATH=""`. This moves us a step
closer to a world where no LLVM build artefacts are required to
build compiler-rt.
rdar://76016632
Differential Revision: https://reviews.llvm.org/D99621
Commit: 21d48399484cc5dbc94af8aff2a3b2208783ab08
https://github.com/llvm/llvm-project/commit/21d48399484cc5dbc94af8aff2a3b2208783ab08
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/include/llvm/IR/IntrinsicInst.h
M llvm/include/llvm/IR/Statepoint.h
M llvm/lib/Analysis/Loads.cpp
M llvm/lib/IR/AsmWriter.cpp
M llvm/lib/IR/IntrinsicInst.cpp
M llvm/lib/IR/Value.cpp
M llvm/lib/Transforms/Scalar/EarlyCSE.cpp
M llvm/lib/Transforms/Scalar/GVN.cpp
Log Message:
-----------
Move GCRelocateInst and GCResultInst to IntrinsicInst.h [nfc]
These two are part of the IntrinsicInst class hierarchy and it helps to cut down on some redundant includes.
Commit: 916093f49fafa54a7a4a8473ec4704eca3dc5a67
https://github.com/llvm/llvm-project/commit/916093f49fafa54a7a4a8473ec4704eca3dc5a67
Author: Zbigniew Sarbinowski <zibi at ca.ibm.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M libcxx/include/__support/ibm/nanosleep.h
Log Message:
-----------
[SystemZ][z/OS] correct rc and errno within nanosleep()
This patch fixes rc and errno within nanosleep(). It also updates __rem parameter as well it introduces cast to handle conversions from long into unsigned int to avoid warnings.
Reviewed By: Mordante
Differential Revision: https://reviews.llvm.org/D99373
Commit: 518e6f341dddab7824592b3769146318950a01be
https://github.com/llvm/llvm-project/commit/518e6f341dddab7824592b3769146318950a01be
Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M mlir/include/mlir/Dialect/Linalg/IR/LinalgInterfaces.td
M mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp
M mlir/test/Dialect/Linalg/fusion-tensor.mlir
Log Message:
-----------
[mlir][Linalg] Fix fusion on tensors operands / bbArg mismatch
Linalg fusion on tensors has mismatching assumptions on the operand side than on the region bbArg side.
Relax the behavior on the operand/indexing map side so that we better support output operands that may also be read from.
Differential revision: https://reviews.llvm.org/D99499
Commit: 53283cc2f1ddc2562bac0f623aa48eeeba359798
https://github.com/llvm/llvm-project/commit/53283cc2f1ddc2562bac0f623aa48eeeba359798
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/horizontal-sum.ll
Log Message:
-----------
[X86][SSE] canonicalizeShuffleWithBinOps - add MOVSD/MOVSS handling.
Commit: f98567b3fecb2d0efe390f7c3f309333287d9398
https://github.com/llvm/llvm-project/commit/f98567b3fecb2d0efe390f7c3f309333287d9398
Author: Victor Huang <wei.huang at ibm.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/MC/XCOFFObjectWriter.cpp
A llvm/test/CodeGen/PowerPC/aix-tls-xcoff-variables.ll
M llvm/tools/llvm-readobj/XCOFFDumper.cpp
Log Message:
-----------
[AIX][TLS] Add support for TLS variables to XCOFF object writer
This patch adds support for TLS variables to the XCOFF object writer:
- Add TData and TBSS sections
- Add CsectGroups for the mapping classes XCOFF::XMC_TL and XCOFF::XMC_UL
- Add XMC_UL in the enum entry of CsectStorageMapping class to print the string
while reading the symbol properties for TLS variables
- Fix the starting address of TData and TBSS sections
Reviewed by: hubert.reinterpretcast, DiggerLin
Differential Revision: https://reviews.llvm.org/D98946
Commit: 17f4f23eeab402c792fb5c6a8e66be6afd88c33f
https://github.com/llvm/llvm-project/commit/17f4f23eeab402c792fb5c6a8e66be6afd88c33f
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M mlir/test/Transforms/canonicalize.mlir
Log Message:
-----------
[MLIR, test] Fix use of undef FileCheck var
MLIR test Transforms/canonicalize.mlir tries to check for the absence of
a sequence of instructions with several CHECK-NOT with one of those
directives using a variable defined in another. However CHECK-NOT are
checked independently so that is using a variable defined in a pattern
that should not occur in the input.
This commit removes the dependency between those CHECK-NOT by replacing
occurences of variables by the regex that were used to define them.
Reviewed By: pifon2a
Differential Revision: https://reviews.llvm.org/D99958
Commit: 9c5ebf0358960adf28931569a0c801b56c8008d9
https://github.com/llvm/llvm-project/commit/9c5ebf0358960adf28931569a0c801b56c8008d9
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/test/Transforms/GVN/PRE/load-pre-nonlocal.ll
M llvm/test/Transforms/GVN/big-endian.ll
M llvm/test/Transforms/NewGVN/big-endian.ll
Log Message:
-----------
[test, GVN] Fix use of var defined in CHECK-NOT
Commit 22ce5eb051591b828b1ce4238624b6e95d334a5b, changed checks in
GVN/big-endian.ll into CHECK-NOT. The intent was to check that a
succession of lines does not occur but each CHECK-NOT is checked
independently. In other word, one CHECK-NOT uses a variable defined
in a pattern (the one defining the variable) that should not occur in
the input. The bug was then copied over in NewGVN/big-endian.ll.
This commit only checks for the absence of i16 load which rules out the
presence of the whole sequence and does not involve an undefined
variable.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D99581
Commit: 93c87fc06eca8d8a65ff6c0bdd9f2671227224ac
https://github.com/llvm/llvm-project/commit/93c87fc06eca8d8a65ff6c0bdd9f2671227224ac
Author: Ben Langmuir <blangmuir at apple.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/include/clang/Index/DeclOccurrence.h
M clang/include/clang/Index/IndexingOptions.h
M clang/lib/Index/FileIndexRecord.cpp
M clang/lib/Index/FileIndexRecord.h
M clang/lib/Index/IndexingAction.cpp
M clang/lib/Index/IndexingContext.cpp
M clang/lib/Index/IndexingContext.h
M clang/lib/Index/USRGeneration.cpp
M clang/test/Index/Core/Inputs/module/ModA.h
M clang/test/Index/Core/Inputs/module/SubModA.h
M clang/test/Index/Core/Inputs/sys/system-head.h
M clang/test/Index/Core/index-macros.c
M clang/test/Index/Core/index-with-module.m
M clang/tools/c-index-test/core_main.cpp
M clang/unittests/Index/IndexTests.cpp
Log Message:
-----------
[index] Improve macro indexing support
The major change here is to index macro occurrences in more places than
before, specifically
* In non-expansion references such as `#if`, `#ifdef`, etc.
* When the macro is a reference to a builtin macro such as __LINE__.
* When using the preprocessor state instead of callbacks, we now include
all definition locations and undefinitions instead of just the latest
one (which may also have had the wrong location previously).
* When indexing an existing module file (.pcm), we now include module
macros, and we no longer report unrelated preprocessor macros during
indexing the module, which could have caused duplication.
Additionally, we now correctly obey the system symbol filter for macros,
so by default in system headers only definition/undefinition occurrences
are reported, but it can be configured to report references as well if
desired.
Extends FileIndexRecord to support occurrences of macros. Since the
design of this type is to keep a single list of entities organized by
source location, we incorporate macros into the existing DeclOccurrence
struct.
Differential Revision: https://reviews.llvm.org/D99758
Commit: a3e1b1112317bace8bf77de79cb0b421d833ec70
https://github.com/llvm/llvm-project/commit/a3e1b1112317bace8bf77de79cb0b421d833ec70
Author: Julian Lettner <julian.lettner at apple.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M compiler-rt/test/sanitizer_common/ios_commands/iossim_compile.py
M compiler-rt/test/sanitizer_common/ios_commands/iossim_env.py
M compiler-rt/test/sanitizer_common/ios_commands/iossim_prepare.py
M compiler-rt/test/sanitizer_common/ios_commands/iossim_run.py
Log Message:
-----------
[Sanitizer] Adopt Python 3 for iOS simulator test scripts
Differential Revision: https://reviews.llvm.org/D99911
Commit: 710651c61dcdb2f969811b9a8c7efb425b5e2918
https://github.com/llvm/llvm-project/commit/710651c61dcdb2f969811b9a8c7efb425b5e2918
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M lldb/source/Commands/CommandObjectMemory.cpp
M lldb/test/API/functionalities/memory/read/TestMemoryRead.py
Log Message:
-----------
[lldb] Fix bug where memory read --outfile is not truncating the file
The memory read --outfile command should truncate the output when unless
--append-outfile. Fix the bug and add a test.
rdar://76062318
Differential revision: https://reviews.llvm.org/D99890
Commit: 5571cc7deed6dc01f4764adbbf3d668866f22173
https://github.com/llvm/llvm-project/commit/5571cc7deed6dc01f4764adbbf3d668866f22173
Author: Alexander Belyaev <pifon at google.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td
Log Message:
-----------
[mlir][linalg] Add helpers for linalg.tiled_loop [nfc].
Differential Revision: https://reviews.llvm.org/D99968
Commit: 04b3c8c52c549ee57e69a1b23484b8c4109f83b8
https://github.com/llvm/llvm-project/commit/04b3c8c52c549ee57e69a1b23484b8c4109f83b8
Author: Paul Robinson <paul.robinson at sony.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
A clang/test/Driver/crash-diagnostics-dir-2.c
M llvm/lib/Support/Signals.cpp
M llvm/lib/Support/Windows/Signals.inc
Log Message:
-----------
Pass -fcrash-diagnostics-dir along to LLVM
This allows frontend and backend diagnostic files to all go into the
same place. Have it control the Windows (mini-)dump location.
Differential Revision: https://reviews.llvm.org/D99199
Commit: 9c8b28a69b95db539f5da5ee5af6e273504bf869
https://github.com/llvm/llvm-project/commit/9c8b28a69b95db539f5da5ee5af6e273504bf869
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
A llvm/test/tools/llvm-reduce/remove-module-inline-asm.ll
M llvm/tools/llvm-reduce/CMakeLists.txt
M llvm/tools/llvm-reduce/DeltaManager.cpp
A llvm/tools/llvm-reduce/deltas/ReduceModuleInlineAsm.cpp
A llvm/tools/llvm-reduce/deltas/ReduceModuleInlineAsm.h
M llvm/utils/gn/secondary/llvm/tools/llvm-reduce/BUILD.gn
Log Message:
-----------
[llvm-reduce] Remove unwanted module inline asm
We can clear line by line, but that's likely not very important.
Reviewed By: hans
Differential Revision: https://reviews.llvm.org/D99921
Commit: 96dbdd753a1f8bfe0d03f13de484fa18c8bca8db
https://github.com/llvm/llvm-project/commit/96dbdd753a1f8bfe0d03f13de484fa18c8bca8db
Author: Christopher Di Bella <cjdb at google.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M libcxx/docs/Cxx2aStatusPaperStatus.csv
M libcxx/include/concepts
A libcxx/test/std/concepts/concepts.callable/concept.equiv/equivalence_relation.compile.pass.cpp
A libcxx/test/std/concepts/concepts.callable/concept.equiv/equivalence_relation.subsumption.compile.pass.cpp
A libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.compile.pass.cpp
A libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.subsumption.compile.pass.cpp
A libcxx/test/std/concepts/concepts.callable/concept.relation/relation.compile.pass.cpp
A libcxx/test/std/concepts/concepts.callable/concept.relation/relation.subsumption.compile.pass.cpp
A libcxx/test/std/concepts/concepts.callable/concept.strictweakorder/strict_weak_order.compile.pass.cpp
A libcxx/test/std/concepts/concepts.callable/concept.strictweakorder/strict_weak_order.subsumption.compile.pass.cpp
Log Message:
-----------
[libcxx] adds remaining callable concepts
* `std::predicate`
* `std::relation`
* `std::equivalence_relation`
* `std::strict_weak_order`
Implements parts of:
- P0898R3 Standard Library Concepts
- P1754 Rename concepts to standard_case for C++20, while we still can
Differential Revision: https://reviews.llvm.org/D96477
Commit: dc8d63de5d5ec987b89256564a038cb580cae607
https://github.com/llvm/llvm-project/commit/dc8d63de5d5ec987b89256564a038cb580cae607
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M lldb/source/Plugins/Language/ObjC/Cocoa.cpp
Log Message:
-----------
[lldb] Format Plugins/Language/ObjC/Cocoa.cpp (NFC)
Commit: 8f798566a3988491b8ff4d2e77cff5063e2fc92f
https://github.com/llvm/llvm-project/commit/8f798566a3988491b8ff4d2e77cff5063e2fc92f
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
Log Message:
-----------
[AMDGPU] SIFoldOperands: use isUseMIInFoldList. NFC.
Commit: 3ae03f67fe41f336c022ada37f8525bfa2bc5a8e
https://github.com/llvm/llvm-project/commit/3ae03f67fe41f336c022ada37f8525bfa2bc5a8e
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.h
Log Message:
-----------
[RISCV] Add helper function to share some of the code for isel of vector load/store intrinsics.
Many of the operands are handled the same or in the same order
for all these intrinsics. Factor out the code for selecting and
pushing them into the Operands vector.
Differential Revision: https://reviews.llvm.org/D99923
Commit: 91d6debbb9136a0ac30278135bd4089c9e614ad1
https://github.com/llvm/llvm-project/commit/91d6debbb9136a0ac30278135bd4089c9e614ad1
Author: Martin Storsjö <martin at martin.st>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp
M libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.pass.cpp
Log Message:
-----------
[libcxx] [test] Use dedicated types for the invocable concept tests for multiple overloads
This should be clearer, instead of relying on rules for implicit
conversions regarding built in float/integer types.
Differential Revision: https://reviews.llvm.org/D99928
Commit: 948dd664c3ed30dd853df03cb931436f280bad4a
https://github.com/llvm/llvm-project/commit/948dd664c3ed30dd853df03cb931436f280bad4a
Author: Martin Storsjö <martin at martin.st>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M libcxx/include/experimental/functional
M libcxx/include/functional
M libcxx/include/utility
M libcxx/test/libcxx/diagnostics/nodiscard_extensions.pass.cpp
M libcxx/test/std/utilities/function.objects/func.search/func.search.default/default.pass.cpp
M libcxx/test/std/utilities/function.objects/func.search/func.search.default/default.pred.pass.cpp
Log Message:
-----------
[libcxx] Fix the type attribute for a couple templates
Use `_LIBCPP_TEMPLATE_VIS` instead of `_LIBCPP_TYPE_VIS` for a template
class.
This fixes the nodiscard_extensions.pass.cpp and a couple
func.search.default test cases when built in MSVC/DLL configurations.
Differential Revision: https://reviews.llvm.org/D99932
Commit: 48268aa0a9c18ab244b252b9617b91f6f5055c95
https://github.com/llvm/llvm-project/commit/48268aa0a9c18ab244b252b9617b91f6f5055c95
Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M mlir/test/Bindings/Python/ir_affine_map.py
Log Message:
-----------
[mlir][python] Add missing affine map compression test
Commit: 4059c1c32d37ff3738428dcc2a4c98c4677d3a24
https://github.com/llvm/llvm-project/commit/4059c1c32d37ff3738428dcc2a4c98c4677d3a24
Author: Florian Hahn <flo at fhahn.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/test/Transforms/InstSimplify/gep.ll
Log Message:
-----------
[SimplifyInst] Use correct type for GEPs with vector indices.
The current code does not properly handle vector indices unless they are
the first index.
At the moment LangRef gives the impression that the vector index must be
the one and only index (https://llvm.org/docs/LangRef.html#getelementptr-instruction).
But vector indices can appear at any position and according to the
verifier there may be multiple vector indices. If that's the case, the
number of elements must match.
This patch updates SimplifyGEPInst to properly handle those additional
cases.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D99961
Commit: 801cea2ce9515cc6b6c9b59dfac6e48074737da1
https://github.com/llvm/llvm-project/commit/801cea2ce9515cc6b6c9b59dfac6e48074737da1
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
Log Message:
-----------
[lldb] Fix else-after-return in AppleObjCRuntimeV2 (NFC)
Use early returns to associate the error message with the corresponding
condition and eliminate some else-after-returns in the process.
Commit: 4e83e59eb8f096c8399489c61c1db034814a76ba
https://github.com/llvm/llvm-project/commit/4e83e59eb8f096c8399489c61c1db034814a76ba
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/GVN.cpp
A llvm/test/Transforms/GVN/pr49193.ll
Log Message:
-----------
[GVN] Add missing ICF update
performScalarPREInsertion() inserts instructions into blocks that we
need to tell ImplicitControlFlowTracking about, otherwise the ICF cache
may be invalid.
Fixes PR49193.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D99909
Commit: a9a7498b3f25750608ae07eb009a4091cbe9060f
https://github.com/llvm/llvm-project/commit/a9a7498b3f25750608ae07eb009a4091cbe9060f
Author: Martin Storsjö <martin at martin.st>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/path.pass.cpp
M libcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/ctor.pass.cpp
M libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp
M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.exists/exists.pass.cpp
M libcxx/test/support/filesystem_test_helper.h
Log Message:
-----------
[libcxx] [test] Allow C:\System Volume Information to be missing
If running in a Windows Container, there is no such directory at all.
If running from within bash on Windows Server, the directory seems to
be fully accessible. (The mechanics of this isn't fully understood, and
it doesn't seem to happen on desktop versions.)
If the directory isn't available with the expected behaviour, mark those
individual tests as unsupported. (The test as a whole is considered to
pass, but the unsupported test is mentioned in a test summary printed on
stdout.)
Differential Revision: https://reviews.llvm.org/D98960
Commit: 3b1b1d7530e6cf2c3aac25fc9d079f083e929137
https://github.com/llvm/llvm-project/commit/3b1b1d7530e6cf2c3aac25fc9d079f083e929137
Author: James Y Knight <jyknight at google.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cpp
Log Message:
-----------
Fix f6ee97d8271e1dfd9b6572222fefe8f40433952e:
PrintAddress needs to be false (as it was before), or this breaks sanitizer backtraces.
Commit: a6d2a8d6f59a974752666305c4baaabebee41b95
https://github.com/llvm/llvm-project/commit/a6d2a8d6f59a974752666305c4baaabebee41b95
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/include/llvm/Analysis/AssumptionCache.h
M llvm/include/llvm/IR/IntrinsicInst.h
M llvm/lib/Analysis/AssumptionCache.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/lib/Transforms/Scalar/LoopUnswitch.cpp
M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
M llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp
M llvm/lib/Transforms/Utils/CodeExtractor.cpp
M llvm/lib/Transforms/Utils/InlineFunction.cpp
M llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
M llvm/lib/Transforms/Utils/LoopUnroll.cpp
M llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp
M llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp
Log Message:
-----------
Add a subclass of IntrinsicInst for llvm.assume [nfc]
Add the subclass, update a few places which check for the intrinsic to use idiomatic dyn_cast, and update the public interface of AssumptionCache to use the new class. A follow up change will do the same for the newer assumption query/bundle mechanisms.
Commit: e0df2b540a5a7d6076bb77352e50fcd0e14522e0
https://github.com/llvm/llvm-project/commit/e0df2b540a5a7d6076bb77352e50fcd0e14522e0
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M lld/MachO/Driver.cpp
M lld/MachO/InputFiles.cpp
M lld/MachO/InputFiles.h
Log Message:
-----------
[lld-macho] Rename SubsectionMapping to SubsectionMap
We bikeshedded about it here: https://reviews.llvm.org/D98837#inline-931557
I initially suggested SubsectionMapping, but I thought the discussion
landed on doing `std::vector<SubsectionEntry>`. @alexshap went and did
both, but on hindsight I regret adding 3 more characters to an already
long name, and I think SubsectionEntry is descriptive enough...
This diff also renames `subsectionMap` to `subsecMap` for consistency
with other variable names in the codebase.
Commit: 174deb0539ee4af7d20bfead9f73055782e878e3
https://github.com/llvm/llvm-project/commit/174deb0539ee4af7d20bfead9f73055782e878e3
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M lld/MachO/Driver.cpp
M lld/MachO/Driver.h
M lld/MachO/Symbols.cpp
M lld/MachO/Symbols.h
M lld/MachO/SyntheticSections.cpp
Log Message:
-----------
[lld-macho] clang-format cleanup
find . -type f -name "*.cpp" -o -name "*.h" | xargs clang-format -i
Commit: fb41cae03976f5148af15684a64b3172beed47d5
https://github.com/llvm/llvm-project/commit/fb41cae03976f5148af15684a64b3172beed47d5
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h
Log Message:
-----------
More precisely type code used for gc.relocate assertions [nfc]
Commit: a7ef45bc5c1d0c2788680dbcb261304d7dfae03c
https://github.com/llvm/llvm-project/commit/a7ef45bc5c1d0c2788680dbcb261304d7dfae03c
Author: Fangrui Song <i at maskray.me>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Passes/StandardInstrumentations.cpp
Log Message:
-----------
[NewPM] Fix -Wunused-lambda-capture in -DLLVM_ENABLE_ASSERTIONS=off builds after D91327
Commit: bd6033eca7be937a236401fdbbf414d6929a44e8
https://github.com/llvm/llvm-project/commit/bd6033eca7be937a236401fdbbf414d6929a44e8
Author: Amy Kwan <amy.kwan1 at ibm.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
M llvm/test/CodeGen/PowerPC/p10-constants.ll
Log Message:
-----------
[PowerPC] Materialize 34-bit constants with pli directly
Previously, 34-bit constants were materialized in selectI64Imm(), and we relied
on td pattern matching to instead produce a pli. This becomes problematic as
there is no guarantee that the 34-bit constant will reach the td pattern
selection for pli. It is also possible for other transformations (such as complex
bit permutations) to also produce and utilize the 34-bit constant materialized
through selectI64Imm().
This patch instead produces pli on Power10 directly whenever the constant fits
within 34-bits.
Differential Revision: https://reviews.llvm.org/D99906
Commit: 1d9d7f6a2c0f6121df9468ea156d3a147c3b604c
https://github.com/llvm/llvm-project/commit/1d9d7f6a2c0f6121df9468ea156d3a147c3b604c
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M mlir/test/Dialect/Linalg/transform-patterns.mlir
Log Message:
-----------
[MLIR, test] Fix use of undef FileCheck var
MLIR test Dialect/Linalg/transform-patterns.mlir tries to check for the
absence of a sequence of instructions with several CHECK-NOT with one of
those directives using a variable defined in another. However CHECK-NOT
are checked independently so that is using a variable defined in a
pattern that should not occur in the input.
This commit removes the dependency between those CHECK-NOT by replacing
occurences of variables by the regex that were used to define them.
Note to reviewers: please pay attention to whether the remaining
reference to l0 is correct. There was a l0 defined in those CHECK-NOT
and one defined before. I'm not sure what was the intent there.
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D99957
Commit: 9456e720ec8465a9da2acbda14cd7d67cddf16f7
https://github.com/llvm/llvm-project/commit/9456e720ec8465a9da2acbda14cd7d67cddf16f7
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
R lld/test/MachO/dylink-lazy.s
R lld/test/MachO/stub-framework.s
R lld/test/MachO/stub-link-by-arch.s
R lld/test/MachO/stub-link.s
A lld/test/MachO/tapi-framework.s
A lld/test/MachO/tapi-link-by-arch.s
A lld/test/MachO/tapi-link.s
A lld/test/MachO/x86-64-stubs.s
Log Message:
-----------
[lld-macho][nfc] Rename some tests
"stub" is a bit too overloaded... we were using it to refer to
TAPI files, but it's also the name for the PLT trampolines in Mach-O.
Going ahead, let's just use "TAPI" or ".tbd" to refer to TAPI stuff.
Reviewed By: #lld-macho, oontvoo
Differential Revision: https://reviews.llvm.org/D99807
Commit: 94f75202accb26d71fd3149f410e80d602fc562d
https://github.com/llvm/llvm-project/commit/94f75202accb26d71fd3149f410e80d602fc562d
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M lld/MachO/Options.td
M lld/test/MachO/sectcreate.s
M lld/test/MachO/why-load.s
Log Message:
-----------
[lld-macho][nfc] Remove HelpHidden from aliases to implemented flags
This is a no-op. Just cleaning up Options.td...
Reviewed By: #lld-macho, oontvoo
Differential Revision: https://reviews.llvm.org/D99874
Commit: ceec610754b045cdac4ae0d705d8d9651e323fc4
https://github.com/llvm/llvm-project/commit/ceec610754b045cdac4ae0d705d8d9651e323fc4
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M lld/MachO/InputFiles.cpp
M lld/MachO/SymbolTable.cpp
M lld/MachO/Symbols.h
M lld/test/MachO/stabs.s
M lld/test/MachO/symtab.s
Log Message:
-----------
[lld-macho] Fix & refactor symbol size calculations
I noticed two problems with the previous implementation:
* N_ALT_ENTRY symbols weren't being handled correctly -- they should
determine the size of the previous symbol, even though they don't
cause a new section to be created
* The last symbol in a section had its size calculated wrongly;
the first subsection's size was used instead of the last one
I decided to take the opportunity to refactor things as well, mainly to
realize my observation
[here](https://reviews.llvm.org/D98837#inline-931511) that we could
avoid doing a binary search to match symbols with subsections. I think
the resulting code is a bit simpler too.
N Min Max Median Avg Stddev
x 20 4.31 4.43 4.37 4.3775 0.034162922
+ 20 4.32 4.43 4.38 4.3755 0.02799906
No difference proven at 95.0% confidence
Reviewed By: #lld-macho, alexshap
Differential Revision: https://reviews.llvm.org/D99972
Commit: fcc57558783b12de7a7d2cea809f72705ea849b4
https://github.com/llvm/llvm-project/commit/fcc57558783b12de7a7d2cea809f72705ea849b4
Author: Christian Sigg <csigg at google.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M mlir/lib/IR/BuiltinAttributes.cpp
Log Message:
-----------
[mlir] Remove no-op array assignment in dictionaryAttrSort().
Reviewed By: rriddle
Differential Revision: https://reviews.llvm.org/D99954
Commit: ae318beb35517c70505114cab8d1fb286f99ab4b
https://github.com/llvm/llvm-project/commit/ae318beb35517c70505114cab8d1fb286f99ab4b
Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp
M libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.pass.cpp
Log Message:
-----------
[libc++] Post-commit review on D99928.
The "user-defined conversion by implicit constructor" codepath is already
handled by `B(int)`; we don't need to test `A(const A&)` a second time
via `DA` (nor the isomorphic case with `DB`).
We don't need `&` anywhere in this test.
Generally, `operator()` should be const; this test needn't be special.
(No functional change in test coverage.)
Commit: 2d0f1fa472a99dbb46735623363fe918feeda795
https://github.com/llvm/llvm-project/commit/2d0f1fa472a99dbb46735623363fe918feeda795
Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M libcxx/docs/Contributing.rst
M libcxx/include/chrono
M libcxx/include/deque
M libcxx/include/filesystem
M libcxx/include/iterator
M libcxx/include/map
M libcxx/include/memory
M libcxx/include/optional
M libcxx/include/queue
M libcxx/include/regex
M libcxx/include/set
M libcxx/include/string
M libcxx/include/string_view
M libcxx/include/system_error
M libcxx/include/tuple
M libcxx/include/typeindex
M libcxx/include/unordered_map
M libcxx/include/unordered_set
M libcxx/include/utility
M libcxx/include/variant
M libcxx/include/vector
A libcxx/test/libcxx/inclusions/algorithm.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/array.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/bitset.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/chrono.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/cinttypes.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/complex.h.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/deque.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/filesystem.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/forward_list.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/ios.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/iostream.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/iterator.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/list.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/map.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/memory.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/optional.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/queue.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/random.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/regex.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/set.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/stack.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/string.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/string_view.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/system_error.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/tgmath.h.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/thread.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/tuple.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/typeindex.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/unordered_map.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/unordered_set.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/utility.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/valarray.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/variant.inclusions.compile.pass.cpp
A libcxx/test/libcxx/inclusions/vector.inclusions.compile.pass.cpp
A libcxx/utils/generate_header_inclusion_tests.py
Log Message:
-----------
[libc++] Header inclusion tests.
As mandated by the Standard's various synopses, e.g. [iterator.synopsis].
Searching the TeX source for '#include' is a good way to find all of these
mandates.
The new tests are all autogenerated by utils/generate_header_inclusion_tests.py.
I was SHOCKED by how many mandates there are, and how many of them
libc++ wasn't conforming with.
Differential Revision: https://reviews.llvm.org/D99309
Commit: 8fbc05acd5531a8bb74f689699e8de2788bcb769
https://github.com/llvm/llvm-project/commit/8fbc05acd5531a8bb74f689699e8de2788bcb769
Author: Alexandre Ganea <alexandre.ganea at ubisoft.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
A clang/test/Frontend/rewrite-includes-macros.cpp
Log Message:
-----------
[Windows] Add test coverage for line endings when rewriting includes
Validate that we're properly generating a single line ending on Windows when
using -frewrite-includes. Otherwise we're breaking split-line macros. The test
fails before 23929af383f27a6ddf23704192a25591481152b3.
See discussion in https://reviews.llvm.org/D96363#2650460 and D99426
Differential Revision: https://reviews.llvm.org/D99973
Commit: ddebed8e9742add4372d54021cb55e06b655cfd6
https://github.com/llvm/llvm-project/commit/ddebed8e9742add4372d54021cb55e06b655cfd6
Author: Felix Berger <flx at google.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang-tools-extra/clang-tidy/utils/Matchers.h
M clang-tools-extra/docs/clang-tidy/checks/performance-for-range-copy.rst
M clang-tools-extra/docs/clang-tidy/checks/performance-unnecessary-copy-initialization.rst
M clang-tools-extra/docs/clang-tidy/checks/performance-unnecessary-value-param.rst
M clang-tools-extra/test/clang-tidy/checkers/performance-for-range-copy-allowed-types.cpp
Log Message:
-----------
[clang-tidy] performance-* checks: Match AllowedTypes against qualified type names when they contain "::".
This allows users to be more precise and exclude a type in a specific namespace
from triggering the check instead of excluding all types with the same
unqualified name.
This change should not interfere with correctly configured clang-tidy setups
since an AllowedType with "::" would never match.
Differential Revision: https://reviews.llvm.org/D98738
Reviewed-by: ymandel, hokein
Commit: 61d065e21ff37fb9040aed711c97daddac2f7577
https://github.com/llvm/llvm-project/commit/61d065e21ff37fb9040aed711c97daddac2f7577
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/CodeGen/CGAtomic.cpp
M clang/lib/Sema/SemaChecking.cpp
A clang/test/CodeGen/fp-atomic-ops.c
A clang/test/CodeGenCUDA/amdgpu-atomic-ops.cu
M clang/test/CodeGenOpenCL/atomic-ops.cl
M clang/test/Sema/atomic-ops.c
M clang/test/SemaOpenCL/atomic-ops.cl
Log Message:
-----------
Let clang atomic builtins fetch add/sub support floating point types
Recently atomicrmw started to support fadd/fsub:
https://reviews.llvm.org/D53965
However clang atomic builtins fetch add/sub still does not support
emitting atomicrmw fadd/fsub.
This patch adds that.
Reviewed by: John McCall, Artem Belevich, Matt Arsenault, JF Bastien,
James Y Knight, Louis Dionne, Olivier Giroux
Differential Revision: https://reviews.llvm.org/D71726
Commit: 0c3bc1f3a47752489871b7a0b06f6986935c4a1e
https://github.com/llvm/llvm-project/commit/0c3bc1f3a47752489871b7a0b06f6986935c4a1e
Author: Luís Marques <luismarques at lowrisc.org>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M compiler-rt/lib/asan/asan_mapping.h
M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
Log Message:
-----------
[ASan][RISCV] Fix RISC-V memory mapping
Fixes the ASan RISC-V memory mapping (originally introduced by D87580 and
D87581). This should be an improvement both in terms of first principles
soundness and observed test failures --- test failures would occur
non-deterministically depending on the ASLR random offset.
On RISC-V Linux (64-bit), `TASK_UNMAPPED_BASE` is currently defined as
`PAGE_ALIGN(TASK_SIZE / 3)`. The non-power-of-two divisor makes the result
be the not very round number 0x1555556000. That address had to be further
rounded to ensure page alignment after the shadow scale shifting is applied.
Still, that value explains why the mapping table may look less regular than
expected.
Further cleanups:
- Moved the mapping table comment, to ensure that the two Linux/AArch64
tables stayed together;
- Removed mention of Sv48. Neither the original mapping nor this one are
compatible with an actual Linux Sv48 address space (mainline Linux still
operates Sv48 in Sv39 mode). A future patch can improve this;
- Removed the additional comments, for consistency.
Differential Revision: https://reviews.llvm.org/D97646
Commit: b09df246cad93436325150f9115b69471dda2531
https://github.com/llvm/llvm-project/commit/b09df246cad93436325150f9115b69471dda2531
Author: Luís Marques <luismarques at lowrisc.org>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/utils/lit/tests/xfail-cl.py
Log Message:
-----------
[lit testing] Fix xfail-cl.py test worker count
This would fail in test environments with < 3 hardware threads.
Differential Revision: https://reviews.llvm.org/D99858
Commit: 96caf3817f4771eb6ef496371b62e69994ef28cf
https://github.com/llvm/llvm-project/commit/96caf3817f4771eb6ef496371b62e69994ef28cf
Author: Jacques Pienaar <jpienaar at google.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M mlir/tools/mlir-tblgen/CMakeLists.txt
M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
M mlir/tools/mlir-tblgen/OpDocGen.cpp
A mlir/tools/mlir-tblgen/OpGenHelpers.cpp
A mlir/tools/mlir-tblgen/OpGenHelpers.h
Log Message:
-----------
[mlir] Hoist out getRequestedOpDefinitions helper
Enables performing the same filtering in the op doc definition as in the op definition generator.
Differential Revision: https://reviews.llvm.org/D99793
Commit: 9ef6aa020b6fb9c7672919985b0ed2a6953a3596
https://github.com/llvm/llvm-project/commit/9ef6aa020b6fb9c7672919985b0ed2a6953a3596
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/include/llvm/Analysis/AssumeBundleQueries.h
M llvm/include/llvm/Transforms/Scalar/GVN.h
M llvm/include/llvm/Transforms/Utils/AssumeBundleBuilder.h
M llvm/lib/Analysis/AssumeBundleQueries.cpp
M llvm/lib/Transforms/IPO/Attributor.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/Scalar/GVN.cpp
M llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp
M llvm/lib/Transforms/Utils/Local.cpp
M llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp
Log Message:
-----------
Plumb AssumeInst through operand bundle apis [nfc]
Follow up to a6d2a8d6f5. This covers all the public interfaces of the bundle related code. I tried to cleanup the internals where the changes were obvious, but there's definitely more room for improvement.
Commit: d0615a93bb6d7aedc43323dc8957fe57e86ed8ae
https://github.com/llvm/llvm-project/commit/d0615a93bb6d7aedc43323dc8957fe57e86ed8ae
Author: Artem Belevich <tra at google.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp
M llvm/test/CodeGen/NVPTX/lower-byval-args.ll
Log Message:
-----------
[NVPTX] Handle bitcast and ASC(101) when trying to avoid argument copy.
This allows us to skip the copy in few more cases.
Differential Revision: https://reviews.llvm.org/D99979
Commit: 3ba246719b7cde7cb5f4603dd25c0c46df22ea36
https://github.com/llvm/llvm-project/commit/3ba246719b7cde7cb5f4603dd25c0c46df22ea36
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/test/CodeGen/AArch64/speculation-hardening.ll
Log Message:
-----------
[test, AArch64] Fix use of var defined in CHECK-NOT
LLVM test CodeGen/AArch64/speculation-hardening.ll tries to check for
the absence of a sequence of instructions with several CHECK-NOT with
one of those directives using a variable defined in another. However
CHECK-NOT are checked independently so that is using a variable defined
in a pattern that should not occur in the input.
This commit removes the dependency between those CHECK-NOT by replacing
single occurence of the undefined variable by a regex match, and
multiple occurences by a definition followed by a use.
Reviewed By: aemerson
Differential Revision: https://reviews.llvm.org/D99866
Commit: 69190f95b1698cec8366ad657000b275c2039c1b
https://github.com/llvm/llvm-project/commit/69190f95b1698cec8366ad657000b275c2039c1b
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M libcxx/test/libcxx/language.support/support.rtti/type.info/type_info.comparison.apple.compile.pass.cpp
Log Message:
-----------
[libc++] NFCI: Fix test pinning down RTTI implementation on Apple platforms
The test didn't handle arm64 correctly.
Commit: 908215b34636f579533ecd6671bb6213b8327dbc
https://github.com/llvm/llvm-project/commit/908215b34636f579533ecd6671bb6213b8327dbc
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Analysis/AssumptionCache.cpp
M llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
M llvm/lib/Analysis/TypeMetadataUtils.cpp
M llvm/lib/CodeGen/CodeGenPrepare.cpp
M llvm/lib/IR/User.cpp
M llvm/lib/IR/Value.cpp
M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/lib/Transforms/Scalar/EarlyCSE.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
Log Message:
-----------
Use AssumeInst in a few more places [nfc]
Follow up to a6d2a8d6f5. These were found by simply grepping for "::assume", and are the subset of that result which looked cleaner to me using the isa/dyn_cast patterns.
Commit: 4bf8985f4fb1411831505a4b38265eb517783dc7
https://github.com/llvm/llvm-project/commit/4bf8985f4fb1411831505a4b38265eb517783dc7
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
Log Message:
-----------
Replace calls to IntrinsicInst::Create with CallInst::Create [nfc]
There is no IntrinsicInst::Create. These are binding to the method in the super type. Be explicitly about which method is being called.
Commit: dfec26b186d2f0c80f2b70901b7cc5747f5b377c
https://github.com/llvm/llvm-project/commit/dfec26b186d2f0c80f2b70901b7cc5747f5b377c
Author: Aaron Puchert <aaron.puchert at sap.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/lib/Analysis/ThreadSafety.cpp
M clang/test/SemaCXX/warn-thread-safety-analysis.cpp
Log Message:
-----------
Thread safety analysis: Don't warn about managed locks on join points
We already did so for scoped locks acquired in the constructor, this
change extends the treatment to deferred locks and scoped unlocking, so
locks acquired outside of the constructor. Obviously this makes things
more consistent.
Originally I thought this was a bad idea, because obviously it
introduces false negatives when it comes to double locking, but these
are typically easily found in tests, and the primary goal of the Thread
safety analysis is not to find double locks but race conditions.
Since the scoped lock will release the mutex anyway when the scope ends,
the inconsistent state is just temporary and probably fine.
Reviewed By: delesley
Differential Revision: https://reviews.llvm.org/D98747
Commit: 0312b25df0a872295f8db203fbebfb4a0d7f0f3e
https://github.com/llvm/llvm-project/commit/0312b25df0a872295f8db203fbebfb4a0d7f0f3e
Author: Rob Suderman <rob.suderman at gmail.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
Log Message:
-----------
[mlir][tosa] Add tosa.table lowering to linalg.generic
Table op lowering to linalg.generic for both i8 (behaves like a gather) and a
pair of gathers with a quantized interpolation.
Differential Revision: https://reviews.llvm.org/D99756
Commit: c060945b23a1c54d4b2a053ff4b093a2277b303d
https://github.com/llvm/llvm-project/commit/c060945b23a1c54d4b2a053ff4b093a2277b303d
Author: Vince Bridgers <vince.a.bridgers at gmail.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang-tools-extra/docs/clang-tidy/checks/bugprone-misplaced-widening-cast.rst
Log Message:
-----------
[docs] Update documentation for bugprone-misplaced-widening-cast
The default setting for CheckImplicitCasts was changed in
https://reviews.llvm.org/D32164 but the documentation was not updated.
This simple change just syncs the documentation with the behavior of
that checker.
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D99991
Commit: d81d9e8b8604c85709de0a22bb8dd672a28f0401
https://github.com/llvm/llvm-project/commit/d81d9e8b8604c85709de0a22bb8dd672a28f0401
Author: Sidharth Baveja <sidharth.baveja at ibm.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
M llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp
M llvm/unittests/Transforms/Utils/BasicBlockUtilsTest.cpp
Log Message:
-----------
[SplitEdge] Update SplitCriticalEdge to return a nullptr only when the edge is not critical
Summary:
The function SplitCriticalEdge (called by SplitEdge) can return a nullptr in
cases where the edge is a critical. SplitEdge uses SplitCriticalEdge assuming it
can always split all critical edges, which is an incorrect assumption.
The three cases where the function SplitCriticalEdge will return a nullptr is:
1. DestBB is an exception block
2. Options.IgnoreUnreachableDests is set to true and
isa(DestBB->getFirstNonPHIOrDbgOrLifetime()) is not equal to a nullptr
3. LoopSimplify form must be preserved (Options.PreserveLoopSimplify is true)
and it cannot be maintained for a loop due to indirect branches
For each of these situations they are handled in the following way:
1. Modified the function ehAwareSplitEdge originally from
llvm/lib/Transforms/Coroutines/CoroFrame.cpp to handle the cases when the DestBB
is an exception block. This function is called directly in SplitEdge.
SplitEdge does not call SplitCriticalEdge in this case
2. Options.IgnoreUnreachableDests is set to false by default, so this situation
does not apply.
3. Return a nullptr in this situation since the SplitCriticalEdge also returned
nullptr. Nothing we can do in this case.
Reviewed By: asbirlea
Differential Revision:https://reviews.llvm.org/D94619
Commit: 0126e906483c50c47db0687195e4b0216479846e
https://github.com/llvm/llvm-project/commit/0126e906483c50c47db0687195e4b0216479846e
Author: John Demme <john.demme at microsoft.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M mlir/lib/Bindings/Python/IRCore.cpp
M mlir/lib/Bindings/Python/IRModule.h
M mlir/test/Bindings/Python/ir_operation.py
Log Message:
-----------
[MLIR] [Python] Add capsule methods for pybind11 to PyOperation
Add the `getCapsule()` and `createFromCapsule()` methods to the PyOperation class.
Reviewed By: stellaraccident
Differential Revision: https://reviews.llvm.org/D99927
Commit: 0d6dd23ca9a32325bb756c656cfc1a275984b05e
https://github.com/llvm/llvm-project/commit/0d6dd23ca9a32325bb756c656cfc1a275984b05e
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/include/llvm/Support/MachineValueType.h
Log Message:
-----------
[MachineValueTypes] Add blank lines between floating point vectors with different element types. NFC
Commit: 2461804b484e53e448632de0b195ce187e9b0b04
https://github.com/llvm/llvm-project/commit/2461804b484e53e448632de0b195ce187e9b0b04
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M lld/MachO/InputFiles.cpp
M lld/MachO/SymbolTable.cpp
M lld/MachO/SymbolTable.h
Log Message:
-----------
[lld-macho] Symbol::value should always be uint64_t
D98837 migrated a bunch of `value`s to uint64_t, but missed these.
Commit: 3da61ddae7fe77f71b89ce20cf6b5febd68d216a
https://github.com/llvm/llvm-project/commit/3da61ddae7fe77f71b89ce20cf6b5febd68d216a
Author: Hansang Bae <hansang.bae at intel.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/include/clang/Basic/Builtins.def
M clang/lib/AST/ExprConstant.cpp
R clang/test/OpenMP/is_initial_device.c
A openmp/libomptarget/test/api/is_initial_device.c
M openmp/runtime/src/include/omp.h.var
Log Message:
-----------
[OpenMP] Define omp_is_initial_device() variants in omp.h
omp_is_initial_device() is marked as a built-in function in the current
compiler, and user code guarded by this call may be optimized away,
resulting in undesired behavior in some cases. This patch provides a
possible fix for such cases by defining the routine as a variant
function and removing it from builtin list.
Differential Revision: https://reviews.llvm.org/D99447
Commit: 2641c1f15ea53125eb4119af036c60553b30f7bf
https://github.com/llvm/llvm-project/commit/2641c1f15ea53125eb4119af036c60553b30f7bf
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
Log Message:
-----------
[RISCV] Don't custom type legalize fixed vector to scalar integer bitcasts if the fixed vector type isn't legal.
We encountered a hang in our internal code base. I'm having trouble
creating a test case because the test that hit it was testing some
code that is not upstream.
Commit: 52cc9df1c14cf34dbfe491cf2b4079c920a2190e
https://github.com/llvm/llvm-project/commit/52cc9df1c14cf34dbfe491cf2b4079c920a2190e
Author: Peter Steinfeld <psteinfeld at nvidia.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M flang/lib/Evaluate/fold-integer.cpp
M flang/lib/Evaluate/formatting.cpp
M flang/lib/Semantics/type.cpp
M flang/test/Semantics/assign04.f90
A flang/test/Semantics/resolve104.f90
M flang/test/Semantics/resolve89.f90
Log Message:
-----------
[flang] Improve constant folding for type parameter inquiries
We were not folding type parameter inquiries for the form 'var%typeParam'
where 'typeParam' was a KIND or LEN type parameter of a derived type and 'var'
was a designator of the derived type. I fixed this by adding code to the
function 'FoldOperation()' for 'TypeParamInquiry's to handle this case. I also
cleaned up the code for the case where there is no designator.
In order to make the error messages correctly refer to both the points of
declaration and instantiation, I needed to add an argument to the function
'InstantiateIntrinsicType()' for the location of the instantiation.
I also changed the formatting of 'TypeParamInquiry' to correctly format this
case. I also added tests for both KIND and LEN type parameter inquiries in
resolve104.f90.
Making these changes revealed an error in resolve89.f90 and caused one of the
error messages in assign04.f90 to be different.
Reviewed By: klausler
Differential Revision: https://reviews.llvm.org/D99892
Commit: a1aada75f565fe9312e341cb850d415529a84eb2
https://github.com/llvm/llvm-project/commit/a1aada75f565fe9312e341cb850d415529a84eb2
Author: Nicolás Alvarez <nicolas.alvarez at gmail.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/include/llvm/ADT/STLExtras.h
M llvm/include/llvm/Analysis/ValueLattice.h
M llvm/include/llvm/BinaryFormat/MsgPackDocument.h
M llvm/include/llvm/CodeGen/AccelTable.h
M llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h
M llvm/include/llvm/CodeGen/GlobalISel/Combiner.h
M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
M llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h
M llvm/include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h
M llvm/include/llvm/CodeGen/GlobalISel/GISelKnownBits.h
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
M llvm/include/llvm/CodeGen/GlobalISel/LostDebugLocObserver.h
M llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h
M llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h
M llvm/include/llvm/CodeGen/LowLevelType.h
M llvm/include/llvm/CodeGen/Passes.h
M llvm/include/llvm/CodeGen/TargetPassConfig.h
M llvm/include/llvm/ExecutionEngine/Orc/SpeculateAnalyses.h
M llvm/include/llvm/IR/GlobalIFunc.h
M llvm/include/llvm/IR/PassManagerImpl.h
M llvm/include/llvm/IR/PassManagerInternal.h
M llvm/include/llvm/InterfaceStub/ELFObjHandler.h
M llvm/include/llvm/Support/BinaryStreamArray.h
M llvm/include/llvm/Support/Chrono.h
M llvm/include/llvm/Support/LowLevelTypeImpl.h
M llvm/include/llvm/Support/OptimizedStructLayout.h
M llvm/lib/CodeGen/EdgeBundles.cpp
M llvm/lib/CodeGen/LiveRangeUtils.h
M llvm/lib/CodeGen/MachineSSAUpdater.cpp
M llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
M llvm/lib/Target/X86/ImmutableGraph.h
M llvm/lib/Target/X86/X86OptimizeLEAs.cpp
Log Message:
-----------
[docs] Fix doxygen comments wrongly attached to the llvm namespace
Looking at the Doxygen-generated documentation for the llvm namespace
currently shows all sorts of random comments from different parts of the
codebase. These are mostly caused by:
- File doc comments that aren't marked with \file, so they're attached to
the next declaration, which is usually "namespace llvm {".
- Class doc comments placed before the namespace rather than before the
class.
- Code comments before the namespace that (in my opinion) shouldn't be
extracted by doxygen at all.
This commit fixes these comments. The generated doxygen documentation now
has proper docs for several classes and files, and the docs for the llvm
and llvm::detail namespaces are now empty.
Reviewed By: thakis, mizvekov
Differential Revision: https://reviews.llvm.org/D96736
Commit: 01a23dccb1a167869cb08f23817e5a885bd7b555
https://github.com/llvm/llvm-project/commit/01a23dccb1a167869cb08f23817e5a885bd7b555
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
Log Message:
-----------
[RISCV] Add an assertion to the ReplaceNodeResults handling of bitcasts to make sure the VT is always a scalar integer.
Commit: 4fd05e0ad7fba41f27a6f61d9f7fec4382cb96fe
https://github.com/llvm/llvm-project/commit/4fd05e0ad7fba41f27a6f61d9f7fec4382cb96fe
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/HIP.cpp
M clang/test/Driver/hip-code-object-version.hip
M clang/test/Driver/hip-target-id.hip
M clang/test/Driver/hip-toolchain-device-only.hip
M clang/test/Driver/hip-toolchain-no-rdc.hip
M clang/test/Driver/hip-toolchain-rdc-separate.hip
M clang/test/Driver/hip-toolchain-rdc-static-lib.hip
M clang/test/Driver/hip-toolchain-rdc.hip
M clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp
Log Message:
-----------
[HIP] Change to code object v4
Change to code object v4 by default to match ROCm 4.1.
Reviewed by: Artem Belevich
Differential Revision: https://reviews.llvm.org/D99235
Commit: 86175d5fedba7c09ad09ee5afd359e7f9246367a
https://github.com/llvm/llvm-project/commit/86175d5fedba7c09ad09ee5afd359e7f9246367a
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/test/Driver/hip-code-object-version.hip
Log Message:
-----------
Minor fix for test hip-code-object-version.hip
Changed the order of checking of v2 and v3.
Change-Id: Ifea8197b398afdfb0aa1bd40140cda30f00f0c17
Commit: e74e6afcf13aeb7d0a30e55b2eda89f5910d6e68
https://github.com/llvm/llvm-project/commit/e74e6afcf13aeb7d0a30e55b2eda89f5910d6e68
Author: Jacques Pienaar <jpienaar at google.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
M mlir/test/Dialect/Shape/ops.mlir
Log Message:
-----------
[shape] Add min and max ops
These are element-wise operations that operates on shapes with equal ranks.
Also add missing printer/parser for join operator.
Differential Revision: https://reviews.llvm.org/D99986
Commit: 401826800ef1d2e73ac9ea8e7e31d6c12d543c5e
https://github.com/llvm/llvm-project/commit/401826800ef1d2e73ac9ea8e7e31d6c12d543c5e
Author: Weverything <rtrieu at google.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/test/SemaCXX/warn-max-unsigned-zero.cpp
Log Message:
-----------
Add missing CHECK lines in test
Commit: b5c63e30ca1af7e36ba5069eb0121d1eb4b06ebb
https://github.com/llvm/llvm-project/commit/b5c63e30ca1af7e36ba5069eb0121d1eb4b06ebb
Author: Yevgeny Rouban <yrouban at azul.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Passes/StandardInstrumentations.cpp
Log Message:
-----------
[NewPM] Set verify-cfg-preserved=1 by default for debug builds
Commit: c4c98c1b0a0c276475fdbd895aa21a85d23352e4
https://github.com/llvm/llvm-project/commit/c4c98c1b0a0c276475fdbd895aa21a85d23352e4
Author: Alex Orlov <aorlov at accesssoftek.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
Log Message:
-----------
Removed redundant code.
Commit: 5d07dc897707f877c45cab6c7e4b65dad7d3ff6d
https://github.com/llvm/llvm-project/commit/5d07dc897707f877c45cab6c7e4b65dad7d3ff6d
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/include/llvm/DWARFLinker/DWARFLinker.h
M llvm/include/llvm/DWARFLinker/DWARFStreamer.h
M llvm/lib/DWARFLinker/DWARFLinker.cpp
M llvm/lib/DWARFLinker/DWARFStreamer.cpp
M llvm/test/tools/dsymutil/ARM/obfuscated.test
M llvm/test/tools/dsymutil/X86/basic-linking-bundle.test
M llvm/test/tools/dsymutil/X86/basic-linking-x86.test
M llvm/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test
M llvm/test/tools/dsymutil/X86/basic-lto-linking-x86.test
M llvm/test/tools/dsymutil/X86/dsym-companion.test
R llvm/test/tools/dsymutil/X86/minimize.test
M llvm/test/tools/dsymutil/X86/update.test
M llvm/test/tools/dsymutil/cmdline.test
M llvm/tools/dsymutil/DwarfLinkerForBinary.cpp
M llvm/tools/dsymutil/LinkUtils.h
M llvm/tools/dsymutil/Options.td
M llvm/tools/dsymutil/dsymutil.cpp
Log Message:
-----------
[dsymutil] Don't emit .debug_pubnames and .debug_pubtypes
Consider the .debug_pubnames and .debug_pubtypes their own kind of
accelerator and stop emitting them together with the Apple-style
accelerator tables. The only reason we were still emitting both was for
(byte-for-byte) compatibility with dsymutil-classic.
- This patch adds a new accelerator table kind "Pub" which can be
specified with --accelerator=Pub.
- This patch removes the ability to emit both pubnames/types and apple
style accelerator tables. I don't think anyone is relying on that but
it's worth pointing out.
- This patch removes the --minimize option and makes this behavior the
default. Specifying the flag will result in a warning but won't abort
the program.
Differential revision: https://reviews.llvm.org/D99907
Commit: 233c24330b8e253c4a22053fb405cffb6da769d9
https://github.com/llvm/llvm-project/commit/233c24330b8e253c4a22053fb405cffb6da769d9
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/DWARFLinker/DWARFLinker.cpp
Log Message:
-----------
[dsymutil] Don't keep old abbreviations
Don't keep the old abbreviations around. This code existed for
compatibility with dsymutil-classic.
Commit: 162c2759b66a5ecc5ffa59fb0e894e8bbb377f6a
https://github.com/llvm/llvm-project/commit/162c2759b66a5ecc5ffa59fb0e894e8bbb377f6a
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/DWARFLinker/DWARFLinker.cpp
M llvm/test/tools/dsymutil/X86/frame-2.test
Log Message:
-----------
[dsymutil] Stop emulating dsymutil-classic CIE caching behavior
Stop emulating dsymutil-classic which only cached the last used CIE for
reuse.
Commit: 8b109bc2eae0d33a140982c02c77501932bfa394
https://github.com/llvm/llvm-project/commit/8b109bc2eae0d33a140982c02c77501932bfa394
Author: Jacques Pienaar <jpienaar at google.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
M mlir/lib/Dialect/Shape/IR/Shape.cpp
M mlir/test/Dialect/Shape/canonicalize.mlir
Log Message:
-----------
[mlir,shape] Add max/min folder for simple case
When both arguments are the same for these ops, propagate this argument.
Commit: a547b4e26b311e417cd51100e379693f51a3f448
https://github.com/llvm/llvm-project/commit/a547b4e26b311e417cd51100e379693f51a3f448
Author: Petr Hosek <phosek at google.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
M llvm/test/Transforms/InstCombine/abs-1.ll
M llvm/test/Transforms/InstCombine/sub-from-sub.ll
Log Message:
-----------
Revert "[InstCombine] Fold `((X - Y) - Z)` to `X - (Y + Z)` (PR49858)"
This reverts commit 31d219d2997fed1b7dc97e0adf170d5aaf65883e which
causes an infinite loop when compiling the XRay runtime.
Commit: cedd07df5136ba446be23dbd2ca7d29d7b82cd60
https://github.com/llvm/llvm-project/commit/cedd07df5136ba446be23dbd2ca7d29d7b82cd60
Author: Christopher Di Bella <cjdb at google.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M libcxx/docs/Cxx2aStatusIssuesStatus.csv
M libcxx/include/concepts
M libcxx/test/std/concepts/concepts.lang/concept.swappable/swappable_with.compile.pass.cpp
Log Message:
-----------
[libcxx] fixes `common_reference` requirement for `swappable_with`
LWG3175 identifies that the `common_reference` requirement for
`swappable_with` is over-constraining and doesn't need to concern itself
with cv- or reference qualifiers.
Differential Revision: https://reviews.llvm.org/D99817
Commit: 000cf84cf1bb2f5475600737c16c3ccf43096f58
https://github.com/llvm/llvm-project/commit/000cf84cf1bb2f5475600737c16c3ccf43096f58
Author: Petr Hosek <phosek at google.com>
Date: 2021-04-06 (Tue, 06 Apr 2021)
Changed paths:
M clang/test/CodeGen/builtins-ppc-quadword-noi128.c
Log Message:
-----------
Revert "[NFC][Clang] Speculative fix for builtins-ppc-quadword-noi128.c"
This reverts commit 849d3729433e05e6d89892c1814fa07ed3ec18e2 which
depends on 31d219d2997fed1b7dc97e0adf170d5aaf65883e that was reverted.
Commit: fee330824a2b3d7e502a27e1464c418a4663d7a3
https://github.com/llvm/llvm-project/commit/fee330824a2b3d7e502a27e1464c418a4663d7a3
Author: Max Kazantsev <mkazantsev at azul.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Analysis/ScalarEvolution.cpp
A llvm/test/Analysis/ScalarEvolution/pr49856.ll
Log Message:
-----------
[SCEV] Fix false-positive recognition of simple recurrences. PR49856
A value from reachable block may come to a Phi node as its input from
unreachable block. This may confuse matchSimpleRecurrence which
has no access to DomTree and can falsely recognize something as a recurrency
because of this effect, as the attached test shows.
Patch `ae7b1e` deals with half of this problem, but it only accounts from
the case when an unreachable instruction comes to Phi as an input.
This patch provides a generalization by checking that no Phi block's
predecessor is unreachable (no matter what the input is).
Differential Revision: https://reviews.llvm.org/D99929
Reviewed By: reames
Commit: 03f7b13d4452e3ee7749ed0cd354071eced25502
https://github.com/llvm/llvm-project/commit/03f7b13d4452e3ee7749ed0cd354071eced25502
Author: LemonBoy <thatlemon at gmail.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/include/llvm/Target/TargetOptions.h
Log Message:
-----------
[X86] Initialize TargetOptions::StackProtectorGuardOffset member to its default value
D88631 introduced a set of knobs to tweak how the stack protector is codegen'd for x86 targets, including the offset from the base register where the stack cookie is located. The `StackProtectorGuardOffset` field in `TargetOptions` was left uninitialized instead of being reset to its neutral value -1, making it possible to emit nonsensical code if the frontend doesn't change the field value at all before feeding the `TargetOptions` to the target machine initializer.
Reviewed By: nickdesaulniers
Differential Revision: https://reviews.llvm.org/D99952
Commit: 030ac786d4ff3540b414172810f0a92ece3ca81c
https://github.com/llvm/llvm-project/commit/030ac786d4ff3540b414172810f0a92ece3ca81c
Author: Stefan Gränitz <stefan.graenitz at gmail.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/test/lit.cfg.py
Log Message:
-----------
[Orc][examples] Add lit ToolSubst for LLJITWithRemoteDebugging example
The test case added in 258f055ed936 was lacking two important details for the test infrastructure. ae217bf1f327 added the executable to LLVM_TEST_DEPENDS in CMake to make sure the exectubale gets built before we run the test suite. This patch adds a ToolSubst for the executable in LIT, which replaces the tool invokation in the RUN line with an absolute path. It makes sure we don't run accidentally run some other tool from the user's PATH. The test works without it in case LLVM's main binary directory happens to be the working directory (which is default apparently). Configurations that don't build the examples ignore failures for this ToolSubst (and won't run the test).
Reviewed By: echristo
Differential Revision: https://reviews.llvm.org/D99931
Commit: 033c9c25520c4aa2825e3e162f88f48e189794db
https://github.com/llvm/llvm-project/commit/033c9c25520c4aa2825e3e162f88f48e189794db
Author: Qiu Chaofan <qiucofan at cn.ibm.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
M llvm/test/CodeGen/PowerPC/swap-reduction.ll
Log Message:
-----------
[PowerPC] Fix use check of swap-reduction
This will fix swap-reduction in DAGISel for cases where COPY_TO_REGCLASS
has multiple uses.
Commit: 0aa0458f1429372038ca6a4edc7e94c96cd9a753
https://github.com/llvm/llvm-project/commit/0aa0458f1429372038ca6a4edc7e94c96cd9a753
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/lib/CodeGen/CGCall.cpp
M clang/test/CodeGen/attr-nomerge.cpp
M clang/test/CodeGenCXX/this-nonnull.cpp
M clang/test/CodeGenCoroutines/coro-symmetric-transfer-01.cpp
M clang/test/CodeGenObjCXX/objc-struct-cxx-abi.mm
M clang/test/OpenMP/irbuilder_for_iterator.cpp
M clang/test/OpenMP/irbuilder_for_rangefor.cpp
M clang/test/utils/update_cc_test_checks/Inputs/basic-cplusplus.cpp.expected
Log Message:
-----------
[CGCall] Annotate `this` argument with alignment
As it is being noted in D99249, lack of alignment information on `this`
has been preventing LICM from happening.
For some time now, lack of alignment attribute does *not* imply
natural alignment, but an alignment of `1`.
Also, we used to treat dereferenceable as implying alignment,
but we no longer do, so it's a bugfix.
Differential Revision: https://reviews.llvm.org/D99790
Commit: b62c62c51973f82713477ecba28d0a4bd7c6ee6a
https://github.com/llvm/llvm-project/commit/b62c62c51973f82713477ecba28d0a4bd7c6ee6a
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-02.ll
Log Message:
-----------
[Coroutines, test] Fix use of var defined in CHECK-NOT
LLVM test Transforms/Coroutine/coro-split-sink-lifetime-O2.ll tries to
check for the absence of a sequence of instructions with several
CHECK-NOT with one of those directives using a variable defined in
another. However CHECK-NOT are checked independently so that is using a
variable defined in a pattern that should not occur in the input.
This commit simplifies the CHECK-NOT block to only check for the
presence of any lifetime start marker since that is effectively what
the test was testing at the moment.
Reviewed By: junparser
Differential Revision: https://reviews.llvm.org/D99856
Commit: e018698bec363637f0da25b68da9ba8c3192d1cb
https://github.com/llvm/llvm-project/commit/e018698bec363637f0da25b68da9ba8c3192d1cb
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/test/CodeGen/libcalls.c
Log Message:
-----------
[clang, test] Fix use of undef FileCheck var
Clang test CodeGen/libcalls.c contains CHECK-NOT directives using a
variable defined in a CHECK directive with a different prefix never
enabled together, therefore causing the variable to be undefined in that
CHECK-NOT.
The intent of the test is to check that some declaration do not have the
same attribute as when compiling the test without -fmath-errno. This
commits instead changes all CHECK-NOT to CHECK directive, checking that
they all use the same attribute. It also adds an extra CHECK for that
prefix to check the expected attributes these functions should have when
compiling with -fmath-errno.
Reviewed By: rjmccall
Differential Revision: https://reviews.llvm.org/D99898
Commit: 73a7d451a2ca7a90fb09b2cd934948ae30cc72c3
https://github.com/llvm/llvm-project/commit/73a7d451a2ca7a90fb09b2cd934948ae30cc72c3
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/test/CodeGen/PowerPC/ppc-disable-non-volatile-cr.ll
Log Message:
-----------
[PowerPC, test] Fix use of undef FileCheck var
LLVM test CodeGen/PowerPC/ppc-disable-non-volatile-cr.ll tries to check
for the absence of a sequence of instructions with several CHECK-NOT
with one of those directives using a variable defined in another.
However CHECK-NOT are checked independently so that is using a variable
defined in a pattern that should not occur in the input.
This commit changes occurence of the variable for the regex used in its
definition, thereby making each CHECK-NOT independent.
Reviewed By: NeHuang, nemanjai
Differential Revision: https://reviews.llvm.org/D99880
Commit: c972e2d1c29fc248e47f1c502f90472a1c26b256
https://github.com/llvm/llvm-project/commit/c972e2d1c29fc248e47f1c502f90472a1c26b256
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/test/Transforms/InstCombine/sub-from-sub.ll
Log Message:
-----------
[NFC][InstCombine] Add sub-of-sub tests with constant expressions
These would cause endless combine loop after 31d219d2997fed1b7dc97e0adf170d5aaf65883e.
Commit: 93d1d94b745b940c9ad0adf20322eb16ed624ef3
https://github.com/llvm/llvm-project/commit/93d1d94b745b940c9ad0adf20322eb16ed624ef3
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
M llvm/test/Transforms/InstCombine/sub-from-sub.ll
Log Message:
-----------
[InstCombine] Restrict "C-(X+C2) --> (C-C2)-X" fold to immediate constants
I.e., if any/all of the consants is an expression, don't do it.
Since those constants won't reduce into an immediate,
but would be left as an constant expression, they could cause
endless combine loops after 31d219d2997fed1b7dc97e0adf170d5aaf65883e
added an inverse transformation.
Commit: 2829094a8e252d04f13aabdf6f416c42a06af695
https://github.com/llvm/llvm-project/commit/2829094a8e252d04f13aabdf6f416c42a06af695
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/test/CodeGen/builtins-ppc-quadword-noi128.c
M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
M llvm/test/Transforms/InstCombine/abs-1.ll
M llvm/test/Transforms/InstCombine/sub-from-sub.ll
Log Message:
-----------
Reland [InstCombine] Fold `((X - Y) - Z)` to `X - (Y + Z)` (PR49858)
This reverts commit a547b4e26b311e417cd51100e379693f51a3f448,
relanding commit 31d219d2997fed1b7dc97e0adf170d5aaf65883e,
which was reverted because there was a conflicting inverse transform,
which was causing an endless combine loop, which has now been adjusted.
Original commit message:
https://alive2.llvm.org/ce/z/67w-wQ
We prefer `add`s over `sub`, and this particular xform
allows further folds to happen:
Fixes https://bugs.llvm.org/show_bug.cgi?id=49858
Commit: 792ee5be36926bca22291cc93595cf65d0cd6985
https://github.com/llvm/llvm-project/commit/792ee5be36926bca22291cc93595cf65d0cd6985
Author: Stefan Gränitz <stefan.graenitz at gmail.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/examples/OrcV2Examples/LLJITWithRemoteDebugging/LLJITWithRemoteDebugging.cpp
M llvm/test/Examples/OrcV2Examples/lljit-with-remote-debugging.test
Log Message:
-----------
[Orc][examples] Add missing FileCheck for lit test and polish output
Commit: 35bc7569f8ad8e76d36560386bbc45ca40716410
https://github.com/llvm/llvm-project/commit/35bc7569f8ad8e76d36560386bbc45ca40716410
Author: Sven van Haastregt <sven.vanhaastregt at arm.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/lib/Headers/opencl-c-base.h
M clang/test/SemaOpenCL/as_type.cl
Log Message:
-----------
[OpenCL] Add as_size/ptrdiff/intptr/uintptr_t operators
size_t and friends are built-in scalar data types and s6.4.4.2 of the
OpenCL C Specification says the as_type() operator must be available
for these data types.
Differential Revision: https://reviews.llvm.org/D98959
Commit: cd824a48cccb000655498e2d52129adfda25f49b
https://github.com/llvm/llvm-project/commit/cd824a48cccb000655498e2d52129adfda25f49b
Author: Utkarsh Saxena <usx at google.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/lib/Tooling/Syntax/Tokens.cpp
Log Message:
-----------
[clang][Syntax] Handle invalid source range in expandedTokens.
Differential Revision: https://reviews.llvm.org/D99934
Commit: f37ea62e57b5e0e7b52102a2254288e205bfef89
https://github.com/llvm/llvm-project/commit/f37ea62e57b5e0e7b52102a2254288e205bfef89
Author: Kirill Bobyrev <kbobyrev at google.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/cmake/modules/LLVMInstallSymlink.cmake
Log Message:
-----------
[CMake] try creating symlink first on windows
//-E create_symlink// is available on windows since CMake 3.13 (LLVM now uses 3.13.4)
It may needs administrator privileges or enabled developer mode (Windows 10)
See https://cmake.org/cmake/help/latest/release/3.13.html
Reviewed By: kbobyrev
Differential Revision: https://reviews.llvm.org/D99170
Commit: 43637c0dfeebcf4a4fcbb331f1094662e8882430
https://github.com/llvm/llvm-project/commit/43637c0dfeebcf4a4fcbb331f1094662e8882430
Author: crr0004 <crr0004 at gmail.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang-tools-extra/clangd/Protocol.cpp
Log Message:
-----------
Fix crash when an invalid URI is parsed and error handling is attempted
When you pass in a payload with an invalid URI in a build with assertions enabled, it will crash.
Consuming the error from the failed URI parse prevents the error.
The crash is caused by the [llvm::expected](https://llvm.org/doxygen/classllvm_1_1Expected.html) having protection around trying to deconstruct without consuming the error first.
Reviewed By: kadircet
Differential Revision: https://reviews.llvm.org/D99872
Commit: a7eb6b00e934befae9e8e49803ae6621b27be604
https://github.com/llvm/llvm-project/commit/a7eb6b00e934befae9e8e49803ae6621b27be604
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/test/CodeGen/X86/bmi2.ll
Log Message:
-----------
[X86] Add BZHI test case for PR48768
D94856 covered the BMI cases where we had existing tests, this adds a missing BZHI test case
Commit: 4821c15691bab9efaef871c957a8ba73697cdda9
https://github.com/llvm/llvm-project/commit/4821c15691bab9efaef871c957a8ba73697cdda9
Author: Valeriy Savchenko <vsavchenko at apple.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/lib/Analysis/BodyFarm.cpp
M clang/test/Analysis/properties.mm
Log Message:
-----------
[analyzer] Fix body farm for Obj-C++ properties
When property is declared in a superclass (or in a protocol),
it still can be of CXXRecord type and Sema could've already
generated a body for us. This patch joins two branches and
two ways of acquiring IVar in order to reuse the existing code.
And prevent us from generating l-value to r-value casts for
C++ types.
rdar://67416721
Differential Revision: https://reviews.llvm.org/D99194
Commit: 3e738afae4b5994b3f5e4fc6f7249083fc470df5
https://github.com/llvm/llvm-project/commit/3e738afae4b5994b3f5e4fc6f7249083fc470df5
Author: Yevgeny Rouban <yrouban at azul.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
A llvm/test/CodeGen/X86/statepoint-spill-slot-size-promotion.ll
Log Message:
-----------
[Statepoint Lowering] Allow other than N byte sized types in deopt bundle
I do not see any bit-width restriction from the point of the
LLVM Lang Ref - Operand Bundles on the types of the deopt bundle
operands. Statepoint Lowering seems to be able to work with any
types.
This patch relaxes the two related assertions and adds a new test
for this change.
Reviewed By: reames
Differential Revision: https://reviews.llvm.org/D100006
Commit: 77f1e096e8a0a0f37a4c5f8a0bacc7c60f44f0a1
https://github.com/llvm/llvm-project/commit/77f1e096e8a0a0f37a4c5f8a0bacc7c60f44f0a1
Author: Valeriy Savchenko <vsavchenko at apple.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/lib/Analysis/CalledOnceCheck.cpp
M clang/test/SemaObjC/warn-called-once.m
Log Message:
-----------
[-Wcompletion-handler] Don't recognize init methods as conventional
rdar://75704162
Differential Revision: https://reviews.llvm.org/D99601
Commit: 583258723fe22cbb8b10d4a21b50a486b2df59ed
https://github.com/llvm/llvm-project/commit/583258723fe22cbb8b10d4a21b50a486b2df59ed
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86InstrInfo.cpp
M llvm/test/CodeGen/X86/bmi2.ll
Log Message:
-----------
[X86] Improve optimizeCompareInstr for signed comparisons after BZHI instructions
Extend D94856 to handle 'bzhi' instructions as well
Commit: f0e102c1a39f0f7e9e309b27916533b8fefd9be7
https://github.com/llvm/llvm-project/commit/f0e102c1a39f0f7e9e309b27916533b8fefd9be7
Author: Balazs Benics <balazsbenics at sigmatechnology.se>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/test/Analysis/malloc.c
Log Message:
-----------
[analyzer][NFC] Add tests for extents
If we allocate memory, the extent of the MemRegion will be the symbolic
value of the size parameter. This way, if that symbol gets constrained,
the extent will be also constrained.
This test demonstrates that the extent is indeed the same symbol.
Reviewed By: NoQ
Differential Revision: https://reviews.llvm.org/D99959
Commit: 6951b72334bbe4c189c71751edc1e361d7b5632c
https://github.com/llvm/llvm-project/commit/6951b72334bbe4c189c71751edc1e361d7b5632c
Author: serge-sans-paille <sguelton at redhat.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/lib/Basic/SourceManager.cpp
M llvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test
Log Message:
-----------
[clang] Speedup line offset mapping computation
Clang spends a decent amount of time in the LineOffsetMapping::get(...)
function. This function used to be vectorized (through SSE2) then the
optimization got dropped because the sequential version was on-par performance
wise.
This provides an optimization of the sequential version that works on a word at
a time, using (documented) bithacks to provide a portable vectorization.
When preprocessing the sqlite amalgamation, this yields a sweet 3% speedup.
Differential Revision: https://reviews.llvm.org/D99409
Commit: 7ca4dd82175c9571e8251dfcd452b9ba0fb59280
https://github.com/llvm/llvm-project/commit/7ca4dd82175c9571e8251dfcd452b9ba0fb59280
Author: Florian Hahn <flo at fhahn.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/test/CodeGen/attr-mustprogress.c
M clang/test/CodeGenCXX/attr-mustprogress.cpp
Log Message:
-----------
[Clang] Extend test coverage for -f[no-]finite-loops options.
Extend test coverage by checking various standard versions with
-f[no-]finite-loops. Suggested as part of D96418.
Commit: c0ef93bec85a8847b51d91d2a6470af903e1ec9a
https://github.com/llvm/llvm-project/commit/c0ef93bec85a8847b51d91d2a6470af903e1ec9a
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
A llvm/test/CodeGen/X86/and-with-overflow.ll
A llvm/test/CodeGen/X86/or-with-overflow.ll
A llvm/test/CodeGen/X86/xor-with-overflow.ll
Log Message:
-----------
[X86] Add AND/OR/XOR signed-comparison overflow test cases for PR48768
D94856 covered the BMI cases where we had existing tests, this adds missing AND/OR/XOR test cases
Commit: 65a3f289397fd7d6cfcb4ddfdf324e37cf90cad7
https://github.com/llvm/llvm-project/commit/65a3f289397fd7d6cfcb4ddfdf324e37cf90cad7
Author: Matthias Springer <springerm at google.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M mlir/include/mlir/Conversion/VectorToLLVM/ConvertVectorToLLVM.h
M mlir/include/mlir/Dialect/Vector/VectorOps.h
M mlir/include/mlir/Dialect/Vector/VectorOps.td
M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVMPass.cpp
M mlir/lib/Conversion/VectorToROCDL/VectorToROCDL.cpp
M mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
M mlir/lib/Dialect/Vector/VectorOps.cpp
M mlir/lib/Dialect/Vector/VectorTransforms.cpp
M mlir/test/Conversion/VectorToLLVM/vector-mask-to-llvm.mlir
M mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
M mlir/test/Dialect/Vector/ops.mlir
M mlir/test/Integration/Dialect/Vector/CPU/test-transfer-read.mlir
Log Message:
-----------
[mlir] Add "mask" operand to vector.transfer_read/write.
Also factors out out-of-bounds mask generation from vector.transfer_read/write into a new MaterializeTransferMask pattern.
Differential Revision: https://reviews.llvm.org/D100001
Commit: e571e56ae839e8f672eeb57f60581dac12b0688d
https://github.com/llvm/llvm-project/commit/e571e56ae839e8f672eeb57f60581dac12b0688d
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/test/Transforms/InstCombine/minmax-intrinsics.ll
Log Message:
-----------
[InstCombine] add tests for not-of-min/max; NFC
Commit: 0333ed8e0c3763e50ec0c43e289967d407c14786
https://github.com/llvm/llvm-project/commit/0333ed8e0c3763e50ec0c43e289967d407c14786
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
Log Message:
-----------
[InstCombine] move abs transform to helper function; NFC
The swap of the operands can affect later transforms that
are expecting a constant as operand 1. I don't think we
can trigger a bug with the current code, but I hit that
problem while drafting a new transform for min/max intrinsics.
Commit: fc1117df5b875b922ec4d4417404b26abaceaf7b
https://github.com/llvm/llvm-project/commit/fc1117df5b875b922ec4d4417404b26abaceaf7b
Author: oToToT <ty1208chiang at gmail.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/lib/Frontend/CompilerInstance.cpp
Log Message:
-----------
[clang] Check AuxTarget exists when creating target in CompilerInstance
D97493 separate target creation out to a single function
`CompilerInstance::createTarget`. However, it would overwrite AuxTarget
even if it has been set.
As @kadircet recommended in D98128, this patch check the existence of
AuxTarget and not overwrite it when it has been set.
Reviewed By: kadircet
Differential Revision: https://reviews.llvm.org/D100024
Commit: b83a4450c216879d76d78c21a2a0b864fdc2eb3d
https://github.com/llvm/llvm-project/commit/b83a4450c216879d76d78c21a2a0b864fdc2eb3d
Author: Andrzej Warzynski <andrzej.warzynski at arm.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/include/clang/Driver/Options.td
M clang/lib/Driver/ToolChains/Flang.cpp
M flang/include/flang/Frontend/CompilerInvocation.h
M flang/include/flang/Frontend/FrontendOptions.h
M flang/include/flang/Frontend/PreprocessorOptions.h
M flang/lib/Frontend/CompilerInstance.cpp
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/lib/Frontend/FrontendAction.cpp
M flang/lib/Frontend/FrontendActions.cpp
M flang/lib/Frontend/FrontendOptions.cpp
A flang/test/Driver/cpp-nocpp-command-line-macro.f90
A flang/test/Driver/cpp-nocpp-predefined-macro.F90
M flang/test/Driver/driver-help-hidden.f90
M flang/test/Driver/driver-help.f90
M flang/test/Driver/input-from-stdin.f90
A flang/test/Driver/macro-def-undef.F90
R flang/test/Driver/macro-def-undef.f90
A flang/test/Driver/macro-multiline.F90
R flang/test/Driver/macro-multiline.f90
A flang/test/Driver/predefined-macros-compiler-version.F90
R flang/test/Driver/predefined-macros-compiler-version.f90
Log Message:
-----------
[flang][driver] Add support for `-cpp/-nocpp`
This patch adds support for the `-cpp` and `-nocpp` flags. The
implemented semantics match f18 (i.e. the "throwaway" driver), but are
different to gfortran. In Flang the preprocessor is always run. Instead,
`-cpp/-nocpp` are used to control whether predefined and command-line
preprocessor macro definitions are enabled or not. In practice this is
sufficient to model gfortran`s `-cpp/-nocpp`.
In the absence of `-cpp/-nocpp`, the driver will use the extension of
the input file to decide whether to include the standard macro
predefinitions. gfortran's documentation [1] was used to decide which
file extension to use for this.
The logic mentioned above was added in FrontendAction::BeginSourceFile.
That's relatively late in the driver set-up, but this roughly where the
name of the input file becomes available. The logic for deciding between
fixed and free form works in a similar way and was also moved to
FrontendAction::BeginSourceFile for consistency (and to reduce
code-duplication).
The `-cpp/-nocpp` flags are respected also when the input is read from
stdin. This is different to:
* gfortran (behaves as if `-cpp` was used)
* f18 (behaves as if `-nocpp` was used)
Starting with this patch, file extensions are significant and some test
files had to be renamed to reflect that. Where possible, preprocessor
tests were updated so that they can be shared between `f18` and
`flang-new`. This was implemented on top of adding new test for
`-cpp/-nocpp`.
[1] https://gcc.gnu.org/onlinedocs/gcc/Overall-Options.html
Reviewed By: kiranchandramohan
Differential Revision: https://reviews.llvm.org/D99292
Commit: bf6cab6f07e1db2329c36b5d8009bf4b16d2761c
https://github.com/llvm/llvm-project/commit/bf6cab6f07e1db2329c36b5d8009bf4b16d2761c
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
Log Message:
-----------
[AMDGPU] SIFoldOperands: don't dump extra '\n' after MachineInstr. NFC.
Commit: 85b86c6f43ab50ba70571ed49da7e81f7d52ffd2
https://github.com/llvm/llvm-project/commit/85b86c6f43ab50ba70571ed49da7e81f7d52ffd2
Author: Andrzej Warzynski <andrzej.warzynski at arm.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M flang/include/flang/Frontend/FrontendOptions.h
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/test/Driver/debug-provenance.f90
Log Message:
-----------
[flang][driver] Fix `-fdebug-dump-provenance`
The -fdebug-dump-provenance flag is meant to be used with
needProvenanceRangeToCharBlockMappings set to true. This way, extra
mapping is generated that allows e.g. IDEs to retrieve symbol's scope
(offset into cooked character stream) based on symbol's source code
location. This patch makes sure that this option is set when using
-fdebug-dump-provenance.
With this patch, the implementation of -fdebug-dump-provenance in
`flang-new -fc1` becomes consistent with `f18`. The corresponding LIT
test is updated so that it can be shared with `f18`. I refined it a bit
so that:
* it becomes a frontend-only test
* it's stricter about the expected output
Differential Revision: https://reviews.llvm.org/D98847
Commit: a78e86e6beb2d62196fa42be9f4a2994823f71f3
https://github.com/llvm/llvm-project/commit/a78e86e6beb2d62196fa42be9f4a2994823f71f3
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP]Avoid multiple attempts to vectorize CmpInsts.
No need to lookup through and/or try to vectorize operands of the
CmpInst instructions during attempts to find/vectorize min/max
reductions. Compiler implements postanalysis of the CmpInsts so we can
skip extra attempts in tryToVectorizeHorReductionOrInstOperands and save
compile time.
Differential Revision: https://reviews.llvm.org/D99950
Commit: 302e7480655b0d1c1a3a629b4ef446bf77dcb01a
https://github.com/llvm/llvm-project/commit/302e7480655b0d1c1a3a629b4ef446bf77dcb01a
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86InstrInfo.cpp
M llvm/test/CodeGen/X86/and-with-overflow.ll
M llvm/test/CodeGen/X86/or-with-overflow.ll
M llvm/test/CodeGen/X86/xor-with-overflow.ll
Log Message:
-----------
[X86] Improve optimizeCompareInstr for signed comparisons after AND/OR/XOR instructions
Extend D94856 to handle 'and', 'or' and 'xor' instructions as well
We still fail on many i8/i16 cases as the test and the logic-op are performed on different widths
Commit: c22b09debddbaa00be3418b47ca33446ee8a8319
https://github.com/llvm/llvm-project/commit/c22b09debddbaa00be3418b47ca33446ee8a8319
Author: Nico Weber <thakis at chromium.org>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/lib/Basic/SourceManager.cpp
M llvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test
Log Message:
-----------
Revert "[clang] Speedup line offset mapping computation"
This reverts commit 6951b72334bbe4c189c71751edc1e361d7b5632c.
Breaks several bots, see comments on https://reviews.llvm.org/D99409
Commit: 798b0fd36b48f55fa9eb7c2b449179d9af2f9b63
https://github.com/llvm/llvm-project/commit/798b0fd36b48f55fa9eb7c2b449179d9af2f9b63
Author: Jingu Kang <jingu.kang at arm.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Passes/PassBuilder.cpp
Log Message:
-----------
[NPM] Fix typo inisLTOPreLink for loop rotate
Differential Revision: https://reviews.llvm.org/D100033
Commit: 2dc6be52093af5347162f1ff71c61df8b9d0fdf8
https://github.com/llvm/llvm-project/commit/2dc6be52093af5347162f1ff71c61df8b9d0fdf8
Author: Sebastian Neubauer <sebastian.neubauer at amd.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
Log Message:
-----------
[AMDGPU] Update SGPRSpillVGPRCSR name. NFC
The struct is used for both, callee and caller-save registers now.
The frame index is not set for entrypoints, as we do not need to save
the registers then.
Update the struct name to reflect that.
Differential Revision: https://reviews.llvm.org/D99722
Commit: f23b259e1877115794c0bb5654a329c7bdefadb0
https://github.com/llvm/llvm-project/commit/f23b259e1877115794c0bb5654a329c7bdefadb0
Author: Sam Clegg <sbc at chromium.org>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/MC/WasmObjectWriter.cpp
Log Message:
-----------
[WebAssembly] Improve error messages regarding missing indirect function table. NFC
Use report_fatal_error here since this is an internal error, and not
something the user can/should be trying to fix.
Also distinguish between the symbol being missing and the symbol having
the wrong type.
We have a failure internally where the symbol is missing. Currently
trying to reduce the test case to something we can attach to an llvm
bug.
Differential Revision: https://reviews.llvm.org/D99960
Commit: 672f673004663aeb15ece1af4b5b219994924167
https://github.com/llvm/llvm-project/commit/672f673004663aeb15ece1af4b5b219994924167
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_abd.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_abs.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_acge.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_acgt.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_acle.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_aclt.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_add.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_adda.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_addv.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_adrb.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_adrd.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_adrh.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_adrw.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_and.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_andv.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_asr.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_asrd.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bic.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_brka.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_brkb.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_brkn.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_brkpa.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_brkpb.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cadd.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_clasta-bfloat.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_clasta.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_clastb-bfloat.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_clastb.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cls.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_clz.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmla.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmpeq.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmpge.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmpgt.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmple.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmplt.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmpne.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmpuo.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cnot.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cnt-bfloat.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cnt.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cntb.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cntd.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cnth.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cntp.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cntw.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_compact.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cvt.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_div.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_divr.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dot.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dup-bfloat.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dup.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dupq-bfloat.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dupq.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_eor.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_eorv.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_expa.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ext-bfloat.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ext.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_extb.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_exth.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_extw.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get2.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get3.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get4.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_index.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_insr-bfloat.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_insr.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_lasta-bfloat.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_lasta.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_lastb-bfloat.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_lastb.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1rq.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1sb.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1sh.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1sw.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1ub.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1uh.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1uw.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1sb.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1sh.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1sw.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1ub.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1uh.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1uw.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1sb.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1sh.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1sw.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1ub.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1uh.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1uw.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnt1.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_len-bfloat.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_len.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_lsl.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_lsr.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mad.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_max.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_maxnm.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_maxnmv.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_maxv.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_min.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_minnm.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_minnmv.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_minv.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mla.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mls.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mov.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_msb.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mul.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mulh.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mulx.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nand.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_neg.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nmad.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nmla.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nmls.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nmsb.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nor.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_not.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_orn.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_orr.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_orv.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_pfalse.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_pfirst.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_pnext.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_prfb.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_prfd.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_prfh.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_prfw.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ptest.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ptrue.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qadd.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qdecb.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qdecd.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qdech.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qdecp.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qdecw.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qincb.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qincd.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qinch.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qincp.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qincw.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qsub.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rbit.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rdffr.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_recpe.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_recps.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_recpx.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_reinterpret-bfloat.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_reinterpret.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rev.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_revb.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_revh.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_revw.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rinta.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rinti.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rintm.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rintn.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rintp.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rintx.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rintz.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rsqrte.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rsqrts.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_scale.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_sel-bfloat.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_sel.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_setffr.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_splice-bfloat.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_splice.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_sqrt.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1b.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1h.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1w.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st2.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st3.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st4.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_stnt1.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_sub.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_subr.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_tbl-bfloat.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_tbl.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_tmad.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn1.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn2.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_tsmul.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_tssel.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_unpkhi.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_unpklo.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp1.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp2.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_whilele.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_whilelt.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_wrffr.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip1.c
M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip2.c
M llvm/test/Analysis/CostModel/AArch64/cost-scalable-vector-gep.ll
M llvm/test/Analysis/CostModel/AArch64/getIntrinsicInstrCost-vector-reverse.ll
M llvm/test/Analysis/CostModel/AArch64/sve-bitcast.ll
M llvm/test/Analysis/CostModel/AArch64/sve-cmpsel.ll
M llvm/test/Analysis/CostModel/AArch64/sve-fpext.ll
M llvm/test/Analysis/CostModel/AArch64/sve-fptoi.ll
M llvm/test/Analysis/CostModel/AArch64/sve-fptrunc.ll
M llvm/test/Analysis/CostModel/AArch64/sve-gather.ll
M llvm/test/Analysis/CostModel/AArch64/sve-intrinsics.ll
M llvm/test/Analysis/CostModel/AArch64/sve-scatter.ll
M llvm/test/Analysis/CostModel/AArch64/sve-shuffle-broadcast.ll
M llvm/test/Analysis/CostModel/AArch64/sve-stepvector.ll
M llvm/test/Analysis/CostModel/AArch64/sve-trunc.ll
M llvm/test/Analysis/CostModel/AArch64/sve-widening-instruction.ll
M llvm/test/Analysis/LoopAccessAnalysis/gep-induction-operand-typesize-warning.ll
M llvm/test/Analysis/LoopAccessAnalysis/runtime-pointer-checking-insert-typesize.ll
M llvm/test/CodeGen/AArch64/DAGCombine_vscale.ll
M llvm/test/CodeGen/AArch64/dag-combine-insert-subvector.ll
M llvm/test/CodeGen/AArch64/dag-combine-lifetime-end-store-typesize.ll
M llvm/test/CodeGen/AArch64/llvm-masked-gather-legal-for-sve.ll
M llvm/test/CodeGen/AArch64/llvm-masked-scatter-legal-for-sve.ll
M llvm/test/CodeGen/AArch64/named-vector-shuffle-reverse-neon.ll
M llvm/test/CodeGen/AArch64/named-vector-shuffle-reverse-sve.ll
M llvm/test/CodeGen/AArch64/sdag-no-typesize-warnings-regandsizes.ll
M llvm/test/CodeGen/AArch64/sve-alloca-stackid.ll
M llvm/test/CodeGen/AArch64/sve-bit-counting-pred.ll
M llvm/test/CodeGen/AArch64/sve-bit-counting.ll
M llvm/test/CodeGen/AArch64/sve-bitcast.ll
M llvm/test/CodeGen/AArch64/sve-breakdown-scalable-vectortype.ll
M llvm/test/CodeGen/AArch64/sve-callbyref-notailcall.ll
M llvm/test/CodeGen/AArch64/sve-calling-convention-byref.ll
M llvm/test/CodeGen/AArch64/sve-calling-convention-tuple-types.ll
M llvm/test/CodeGen/AArch64/sve-calling-convention.ll
M llvm/test/CodeGen/AArch64/sve-cmp-select.ll
M llvm/test/CodeGen/AArch64/sve-coalesce-ptrue-intrinsics.ll
M llvm/test/CodeGen/AArch64/sve-extract-element.ll
M llvm/test/CodeGen/AArch64/sve-extract-subvector.ll
M llvm/test/CodeGen/AArch64/sve-extract-vector.ll
M llvm/test/CodeGen/AArch64/sve-fcmp.ll
M llvm/test/CodeGen/AArch64/sve-fcvt.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-subvector.ll
M llvm/test/CodeGen/AArch64/sve-fmul-idempotency.ll
M llvm/test/CodeGen/AArch64/sve-fold-vscale.ll
M llvm/test/CodeGen/AArch64/sve-forward-st-to-ld.ll
M llvm/test/CodeGen/AArch64/sve-fp-reduce.ll
M llvm/test/CodeGen/AArch64/sve-fp.ll
M llvm/test/CodeGen/AArch64/sve-gather-scatter-dag-combine.ll
M llvm/test/CodeGen/AArch64/sve-gep.ll
M llvm/test/CodeGen/AArch64/sve-insert-element.ll
M llvm/test/CodeGen/AArch64/sve-insert-vector.ll
M llvm/test/CodeGen/AArch64/sve-int-arith-imm.ll
M llvm/test/CodeGen/AArch64/sve-int-arith-pred.ll
M llvm/test/CodeGen/AArch64/sve-int-arith.ll
M llvm/test/CodeGen/AArch64/sve-int-div-pred.ll
M llvm/test/CodeGen/AArch64/sve-int-imm.ll
M llvm/test/CodeGen/AArch64/sve-int-log-imm.ll
M llvm/test/CodeGen/AArch64/sve-int-log-pred.ll
M llvm/test/CodeGen/AArch64/sve-int-log.ll
M llvm/test/CodeGen/AArch64/sve-int-mad-pred.ll
M llvm/test/CodeGen/AArch64/sve-int-mul-pred.ll
M llvm/test/CodeGen/AArch64/sve-int-pred-reduce.ll
M llvm/test/CodeGen/AArch64/sve-int-reduce-pred.ll
M llvm/test/CodeGen/AArch64/sve-int-reduce.ll
M llvm/test/CodeGen/AArch64/sve-intrinsic-opts-ptest.ll
M llvm/test/CodeGen/AArch64/sve-intrinsic-opts-reinterpret.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-adr.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-bfloat.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-contiguous-prefetches.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-conversion.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-counting-bits.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-counting-elems.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-create-tuple.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-dup-x.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-ff-gather-loads-32bit-scaled-offsets.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-ff-gather-loads-32bit-unscaled-offsets.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-ff-gather-loads-64bit-scaled-offset.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-ff-gather-loads-64bit-unscaled-offset.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-ff-gather-loads-vector-base-imm-offset.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-ff-gather-loads-vector-base-scalar-offset.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-ffr-manipulation.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-fp-arith-merging.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-fp-arith.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-fp-compares.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-fp-converts.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-fp-reduce.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-gather-loads-32bit-scaled-offsets.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-gather-loads-32bit-unscaled-offsets.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-gather-loads-64bit-scaled-offset.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-gather-loads-64bit-unscaled-offset.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-gather-loads-vector-base-imm-offset.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-gather-loads-vector-base-scalar-offset.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-gather-prefetches-scalar-base-vector-indexes.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-gather-prefetches-vect-base-imm-offset.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-gather-prefetches-vect-base-invalid-imm-offset.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-index.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-insert-extract-tuple.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-imm.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-merging.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-int-compares-with-imm.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-int-compares.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-ld1-addressing-mode-reg-imm.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-ld1-addressing-mode-reg-reg.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-ld1.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-ld1ro-addressing-mode-reg-imm.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-ld1ro-addressing-mode-reg-reg.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-ld1ro.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-ldN-reg+imm-addr-mode.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-ldN-reg+reg-addr-mode.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-loads-ff.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-loads-nf.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-loads.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-logical.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-matmul-fp32.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-matmul-fp64.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-matmul-int8.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-perm-select-matmul-fp64.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-perm-select.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-pred-creation.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-pred-operations.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-pred-testing.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-reinterpret.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-reversal.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-scalar-to-vec.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-scatter-stores-32bit-scaled-offsets.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-scatter-stores-32bit-unscaled-offsets.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-scatter-stores-64bit-scaled-offset.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-scatter-stores-64bit-unscaled-offset.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-scatter-stores-vector-base-imm-offset.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-scatter-stores-vector-base-scalar-offset.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-sel.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-shifts-merging.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-shifts.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-sqdec.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-sqinc.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-st1-addressing-mode-reg-imm.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-st1-addressing-mode-reg-reg.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-st1.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-stN-reg-imm-addr-mode.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-stN-reg-reg-addr-mode.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-stores.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-uqdec.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-uqinc.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-while.ll
M llvm/test/CodeGen/AArch64/sve-ld-post-inc.ll
M llvm/test/CodeGen/AArch64/sve-ld1-addressing-mode-reg-imm.ll
M llvm/test/CodeGen/AArch64/sve-ld1-addressing-mode-reg-reg.ll
M llvm/test/CodeGen/AArch64/sve-masked-ldst-nonext.ll
M llvm/test/CodeGen/AArch64/sve-masked-ldst-sext.ll
M llvm/test/CodeGen/AArch64/sve-masked-ldst-trunc.ll
M llvm/test/CodeGen/AArch64/sve-masked-ldst-zext.ll
M llvm/test/CodeGen/AArch64/sve-merging-stores.ll
M llvm/test/CodeGen/AArch64/sve-mul-idempotency.ll
M llvm/test/CodeGen/AArch64/sve-pred-arith.ll
M llvm/test/CodeGen/AArch64/sve-pred-contiguous-ldst-addressing-mode-reg-imm.ll
M llvm/test/CodeGen/AArch64/sve-pred-contiguous-ldst-addressing-mode-reg-reg.ll
M llvm/test/CodeGen/AArch64/sve-pred-log.ll
M llvm/test/CodeGen/AArch64/sve-pred-non-temporal-ldst-addressing-mode-reg-imm.ll
M llvm/test/CodeGen/AArch64/sve-pred-non-temporal-ldst-addressing-mode-reg-reg.ll
M llvm/test/CodeGen/AArch64/sve-redundant-store.ll
M llvm/test/CodeGen/AArch64/sve-rev.ll
M llvm/test/CodeGen/AArch64/sve-select.ll
M llvm/test/CodeGen/AArch64/sve-setcc.ll
M llvm/test/CodeGen/AArch64/sve-sext-zext.ll
M llvm/test/CodeGen/AArch64/sve-split-extract-elt.ll
M llvm/test/CodeGen/AArch64/sve-split-fcvt.ll
M llvm/test/CodeGen/AArch64/sve-split-fp-reduce.ll
M llvm/test/CodeGen/AArch64/sve-split-insert-elt.ll
M llvm/test/CodeGen/AArch64/sve-split-int-pred-reduce.ll
M llvm/test/CodeGen/AArch64/sve-split-int-reduce.ll
M llvm/test/CodeGen/AArch64/sve-split-load.ll
M llvm/test/CodeGen/AArch64/sve-split-store.ll
M llvm/test/CodeGen/AArch64/sve-st1-addressing-mode-reg-imm.ll
M llvm/test/CodeGen/AArch64/sve-st1-addressing-mode-reg-reg.ll
M llvm/test/CodeGen/AArch64/sve-stepvector.ll
M llvm/test/CodeGen/AArch64/sve-tailcall.ll
M llvm/test/CodeGen/AArch64/sve-tbl-dupx.ll
M llvm/test/CodeGen/AArch64/sve-trunc.ll
M llvm/test/CodeGen/AArch64/sve-varargs.ll
M llvm/test/CodeGen/AArch64/sve-vector-splat.ll
M llvm/test/CodeGen/AArch64/sve-vscale-combine.ll
M llvm/test/CodeGen/AArch64/sve-vscale.ll
M llvm/test/CodeGen/AArch64/sve-vselect-imm.ll
M llvm/test/CodeGen/AArch64/sve-zeroinit.ll
M llvm/test/CodeGen/AArch64/sve2-bitwise-ternary.ll
M llvm/test/CodeGen/AArch64/sve2-int-addsub-long.ll
M llvm/test/CodeGen/AArch64/sve2-int-mul.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-binary-narrowing-add-sub.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-binary-narrowing-shr.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-bit-permutation.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-character-match.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-complex-dot.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-contiguous-conflict-detection.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-crypto.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-fp-converts.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-fp-int-binary-logarithm.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-fp-widening-mul-acc.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-int-mul-lane.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-non-widening-pairwise-arith.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-gather-loads-32bit-unscaled-offset.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-gather-loads-64bit-scaled-offset.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-gather-loads-64bit-unscaled-offset.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-gather-loads-vector-base-scalar-offset.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-scatter-stores-32bit-unscaled-offset.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-scatter-stores-64bit-scaled-offset.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-scatter-stores-64bit-unscaled-offset.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-scatter-stores-vector-base-scalar-offset.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-perm-tb.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-polynomial-arithmetic-128.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-polynomial-arithmetic.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-unary-narrowing.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-uniform-complex-arith.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-uniform-dsp-zeroing.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-uniform-dsp.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-vec-hist-count.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-while.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-widening-complex-int-arith.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-widening-dsp.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-widening-pairwise-arith.ll
M llvm/test/CodeGen/AArch64/sve2-mla-indexed.ll
M llvm/test/CodeGen/AArch64/sve2-mla-unpredicated.ll
M llvm/test/CodeGen/X86/named-vector-shuffle-reverse.ll
M llvm/test/Transforms/InstCombine/debuginfo-scalable-typesize.ll
M llvm/test/Transforms/InstCombine/gep-can-replace-gep-idx-with-zero-typesize.ll
M llvm/test/Transforms/InstCombine/scalable-cast-of-alloc.ll
M llvm/test/Transforms/InstCombine/scalable-const-fp-splat.ll
M llvm/test/Transforms/InstCombine/scalable-trunc.ll
M llvm/test/Transforms/InstSimplify/named-vector-shuffle-reverse.ll
M llvm/test/Transforms/LoopIdiom/memcpy-vectors.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-basic-vec.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-extract-last-veclane.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-inductions.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-inv-loads.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-scalable-load-in-loop.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-vector-reverse-mask4.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-vector-reverse.ll
M llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse-mask4.ll
M llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/insertelement-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/insertelement.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/scalable-vector.ll
Log Message:
-----------
[SVE] Remove checks for warnings in scalable-vector tests.
After D98856 these tests will by default break (fatal_error) if any of
the wrong interfaces are used, so there's no longer a need to have a
RUN line that checks for a warning message emitted by the compiler.
Commit: 628dda08b82fcedcd9e89c9ef7850388e988bf68
https://github.com/llvm/llvm-project/commit/628dda08b82fcedcd9e89c9ef7850388e988bf68
Author: Jacques Pienaar <jpienaar at google.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
Log Message:
-----------
[mlir,shape] Update min/max op description
Commit: 1bcf58b2136d4a5f07f525ba8c3dfabede0af046
https://github.com/llvm/llvm-project/commit/1bcf58b2136d4a5f07f525ba8c3dfabede0af046
Author: Abhina Sreeskantharajan <Abhina.Sreeskantharajan at ibm.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/TableGen/Main.cpp
Log Message:
-----------
[SystemZ][z/OS][TableGen] TableGen files should be text
This patch sets tablegen files as text. It should have no effect on Windows after this patch landed https://reviews.llvm.org/rG82b3e28e836d2f5c8cfd6e1047b93c088522365a.
Reviewed By: anirudhp
Differential Revision: https://reviews.llvm.org/D100036
Commit: 3b460f8cc08790c7f9a77c28671e7fe5791a5bb5
https://github.com/llvm/llvm-project/commit/3b460f8cc08790c7f9a77c28671e7fe5791a5bb5
Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M mlir/cmake/modules/CMakeLists.txt
Log Message:
-----------
[mlir] Export python-related .cmake files
This allows downstream projects to build python extensions using the same macros as MLIR.
Differential Revision: https://reviews.llvm.org/D100040
Commit: 93fb72575f7a70c0e095f7b278fd249260fe84a8
https://github.com/llvm/llvm-project/commit/93fb72575f7a70c0e095f7b278fd249260fe84a8
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/test/CodeGen/X86/vector-shuffle-256-v4.ll
Log Message:
-----------
[X86][AVX] Add HADD lane crossing test
This used to work before rG77d625f8d8aa, but we now merge the shuffles across the fadd resulting in a hadd that requires a lane crossing post shuffle, which we don't permit on AVX1 targets
Commit: 6d5132b426fbe23c5bc3e591ca2ca09a315d459b
https://github.com/llvm/llvm-project/commit/6d5132b426fbe23c5bc3e591ca2ca09a315d459b
Author: wlei <wlei at fb.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Transforms/IPO/SampleProfile.cpp
A llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-icp-factor.prof
A llvm/test/Transforms/SampleProfile/pseudo-probe-icp-factor.ll
Log Message:
-----------
[CSSPGO] Fix incorrect probe distribution factor computation in top-down inliner
We see a regression related to low probe factor(0.01) which prevents some callsites being promoted in ICPPass and later cause the missing inline in CGSCC inliner. The root cause is due to redundant(the second) multiplication of the probe factor and this change try to fix it.
`Sum` does multiply a factor right after findCallSamples but later when using as the parameter in setProbeDistributionFactor, it multiplies one again.
This change could get ~2% perf back on mcf benchmark. In mcf, previously the corresponding factor is 1 and it's the recent feature introducing the <1 factor then trigger this bug.
Reviewed By: hoy, wenlei
Differential Revision: https://reviews.llvm.org/D99787
Commit: d855a727bbf3dd0a8c7502980a667641b50e54d3
https://github.com/llvm/llvm-project/commit/d855a727bbf3dd0a8c7502980a667641b50e54d3
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
A lld/test/MachO/arm64-stubs.s
Log Message:
-----------
[lld-macho][nfc] Add test for ARM64 stubs
Reviewed By: #lld-macho, gkm
Differential Revision: https://reviews.llvm.org/D99813
Commit: 982e3c05108b606701d99d43098331357d9dd0ca
https://github.com/llvm/llvm-project/commit/982e3c05108b606701d99d43098331357d9dd0ca
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M lld/MachO/SyntheticSections.h
M lld/test/CMakeLists.txt
M lld/test/MachO/stabs.s
Log Message:
-----------
[lld-macho] Sibling N_SO symbols must have the empty string
We had been giving them a string index of zero, which actually corresponds to a
string with a single space due to {D89639}.
This was far from obvious in the old test because llvm-nm doesn't quote the
symbol names, making the empty string look identical to a string of a single
space. `dsymutil -s` quotes its strings, so I've changed the test accordingly.
Fixes llvm.org/PR48714. Thanks @clayborg for the tips!
Reviewed By: clayborg
Differential Revision: https://reviews.llvm.org/D100003
Commit: c7ad02009934ecaea4e2f152ff784ee0d36029a0
https://github.com/llvm/llvm-project/commit/c7ad02009934ecaea4e2f152ff784ee0d36029a0
Author: Christopher Di Bella <cjdb at google.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
A libcxx/test/std/concepts/concepts.callable/concept.equiv/equivalence_relation.pass.cpp
A libcxx/test/std/concepts/concepts.callable/concept.equiv/equivalence_relation.subsumption.pass.cpp
A libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.pass.cpp
A libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.subsumption.pass.cpp
A libcxx/test/std/concepts/concepts.callable/concept.relation/relation.pass.cpp
A libcxx/test/std/concepts/concepts.callable/concept.relation/relation.subsumption.pass.cpp
A libcxx/test/std/concepts/concepts.callable/concept.strictweakorder/strict_weak_order.pass.cpp
A libcxx/test/std/concepts/concepts.callable/concept.strictweakorder/strict_weak_order.subsumption.pass.cpp
Log Message:
-----------
[libcxx] adds remaining callable concepts
* `std::predicate`
* `std::relation`
* `std::equivalence_relation`
* `std::strict_weak_order`
Implements parts of:
- P0898R3 Standard Library Concepts
- P1754 Rename concepts to standard_case for C++20, while we still can
Differential Revision: https://reviews.llvm.org/D96477
Commit: 920c0f7e09e2a55a800a181fb9bfe296a8733c89
https://github.com/llvm/llvm-project/commit/920c0f7e09e2a55a800a181fb9bfe296a8733c89
Author: Christopher Di Bella <cjdb at google.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M libcxx/docs/Cxx2aStatusIssuesStatus.csv
M libcxx/docs/Cxx2aStatusPaperStatus.csv
M libcxx/docs/FeatureTestMacroTable.rst
M libcxx/include/concepts
M libcxx/include/version
M libcxx/test/std/language.support/support.limits/support.limits.general/concepts.version.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp
M libcxx/utils/generate_feature_test_macro_components.py
Log Message:
-----------
[libcxx] adds __cpp_lib_concepts feature-test macro
Also adjusts C++20 status paper to indicate full concepts support.
Depends on D96477, D99817.
Differential Revision: https://reviews.llvm.org/D99805
Commit: 1894c6c59e37b47c284f2a5ebb92b73911e71e38
https://github.com/llvm/llvm-project/commit/1894c6c59e37b47c284f2a5ebb92b73911e71e38
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/test/Transforms/InstCombine/select-extractelement.ll
Log Message:
-----------
[InstCombine] avoid infinite loop from partial undef vectors
This fixes the examples from
D99674 and
https://llvm.org/PR49878
The matchers succeed on partial undef/poison vector constants,
but the transform creates a full 'not' (-1) constant, so it
would undo a demanded vector elements change triggered by the
extractelement.
Differential Revision: https://reviews.llvm.org/D100044
Commit: 48fa06f70b07fc195a07bfb67ee42cfd307ca450
https://github.com/llvm/llvm-project/commit/48fa06f70b07fc195a07bfb67ee42cfd307ca450
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M libcxx/docs/Contributing.rst
Log Message:
-----------
[libc++] Update contributor documentation.
The document has the following updates:
- Rename 'feature test' to 'feature-test', the latter is the spelling
used in the Standard.
- Add information how an ABI list can be downloaded from Buildkite.
Differential Revision: https://reviews.llvm.org/D99290
Commit: 24f67473dd1253f484e10fd5dfbed95489487b60
https://github.com/llvm/llvm-project/commit/24f67473dd1253f484e10fd5dfbed95489487b60
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
M llvm/test/Transforms/InstCombine/sub-from-sub.ll
Log Message:
-----------
[InstCombine] foldAddWithConstant(): don't deal with non-immediate constants
All of the code that handles general constant here (other than the more
restrictive APInt-dealing code) expects that it is an immediate,
because otherwise we won't actually fold the constants, and increase
instruction count. And it isn't obvious why we'd be okay with
increasing the number of constant expressions,
those still will have to be run..
But after 2829094a8e252d04f13aabdf6f416c42a06af695
this could also cause endless combine loops.
So actually properly restrict this code to immediates.
Commit: b3e9b07a7d1cb543dcd8652a49a3613e6c9d993a
https://github.com/llvm/llvm-project/commit/b3e9b07a7d1cb543dcd8652a49a3613e6c9d993a
Author: Dimitry Andric <dimitry at andric.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/unittests/Support/TypeTraitsTest.cpp
Log Message:
-----------
Avoid testing for libc++ internal macros after D99834
As D99834 was meant specifically for FreeBSD, which still uses the older
non-trivial std::pair copy constructors, test for `__FreeBSD__` instead
of relying on a macro which is an internal detail of libc++.
Noted by Louis Dionne.
Commit: 3acf49829c0064d5bcea5d8f6ca032559bf8e73a
https://github.com/llvm/llvm-project/commit/3acf49829c0064d5bcea5d8f6ca032559bf8e73a
Author: Aart Bik <ajcbik at google.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/SparseLowering.cpp
M mlir/lib/Dialect/Linalg/Transforms/Sparsification.cpp
M mlir/lib/ExecutionEngine/SparseUtils.cpp
M mlir/test/Integration/Sparse/CPU/sparse_matvec.mlir
M mlir/test/Integration/data/wide.mtx
Log Message:
-----------
[mlir][sparse] support integral types i32,i16,i8 for *numerical* values
Some sparse matrices operate on integral values (in contrast with the common
f32 and f64 values). This CL expands the compiler and runtime support to deal
with several common type combinations.
Reviewed By: bixia
Differential Revision: https://reviews.llvm.org/D99999
Commit: 5fc0e98d9a06e0fdd8cbd8dbf374bc002497db7e
https://github.com/llvm/llvm-project/commit/5fc0e98d9a06e0fdd8cbd8dbf374bc002497db7e
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
Log Message:
-----------
[LoopIdiomRecognize] Minor cleanups to the FFS idiom matching. NFC
-Make sure of the CreateShl/LShr/AShr methods that take a uint64_t
instead of creating a ConstantInt for 1 ourselves.
-Use Builder.getInt1 or ConstantInt::getBool instead of a conditional.
-Pull out repeated calls to getType.
Commit: 67953311e2e370a9fcf77595d66d39c505565382
https://github.com/llvm/llvm-project/commit/67953311e2e370a9fcf77595d66d39c505565382
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
A llvm/test/CodeGen/AArch64/pr49781.ll
M llvm/test/CodeGen/RISCV/rvv/vadd-sdnode-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vadd-sdnode-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmulh-sdnode-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vsub-sdnode-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vsub-sdnode-rv64.ll
Log Message:
-----------
[SelectionDAG] Teach SelectionDAG::FoldConstantArithmetic to handle SPLAT_VECTOR
This allows FoldConstantArithmetic to handle SPLAT_VECTOR in
addition to BUILD_VECTOR. This allows it to support scalable
vectors. I'm also allowing fixed length SPLAT_VECTOR which is
used by some targets, but I'm not familiar enough to write tests
for those targets.
I had to block this function from running on CONCAT_VECTORS to
avoid calling getNode for a CONCAT_VECTORS of 2 scalars.
This can happen because the 2 operand getNode calls this
function for any opcode. Previously we were protected because
CONCAT_VECTORs of BUILD_VECTOR is folded to a larger BUILD_VECTOR
before that call. But it's not always possible to fold a CONCAT_VECTORS
of SPLAT_VECTORs, and we don't even try.
This fixes PR49781 where DAG combine thought constant folding
should be possible, but FoldConstantArithmetic couldn't do it.
Reviewed By: david-arm
Differential Revision: https://reviews.llvm.org/D99682
Commit: df59850038d800e8e8b062a5fc2e3d4ed624b526
https://github.com/llvm/llvm-project/commit/df59850038d800e8e8b062a5fc2e3d4ed624b526
Author: Aaron En Ye Shi <enye.shi at gmail.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/test/Driver/rocm-detect.hip
Log Message:
-----------
[HIP] Fix rocm-detect.hip test path
The ROCm installation directory may be another
directory, llvm/ inside the build directory.
Reviewed By: yaxunl
Differential Revision: https://reviews.llvm.org/D100045
Commit: f087d7544a4194066506a45eac0524265bfab08d
https://github.com/llvm/llvm-project/commit/f087d7544a4194066506a45eac0524265bfab08d
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.h
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
M llvm/test/CodeGen/RISCV/rvv/vslide1down-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vslide1up-rv32.ll
Log Message:
-----------
[RISCV] Support vslide1up/down intrinsics for SEW=64 on RV32.
This can't use our normal strategy of splatting the scalar and using
a .vv operation instead of .vx.
Instead this patch bitcasts the vector to the equivalent SEW=32
vector and inserts the scalar parts using two vslide1up/down. We
do that unmasked and apply the mask separately at the end with
a vmerge.
For vslide1up there maybe some other options here like getting
i64 into element 0 and using vslideup.vi with this vector as
vd and the original source as vs1. Masking would still need to
be done afterwards.
That idea doesn't work for vslide1down. We need to slidedown and
then insert a single scalar at vl-1 which we could do with a
vslideup, but that assumes vl > 0 which I don't think we can assume.
The i32 double slide1down implemented here is the best I could come
up with and I just made vslide1up consistent.
Reviewed By: frasercrmck
Differential Revision: https://reviews.llvm.org/D99910
Commit: f49a4440d38a4123b01ded6493a02b4cbf038928
https://github.com/llvm/llvm-project/commit/f49a4440d38a4123b01ded6493a02b4cbf038928
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M lldb/source/Host/common/Editline.cpp
M lldb/test/API/commands/expression/multiline-navigation/TestMultilineNavigation.py
Log Message:
-----------
[lldb][Editline] Fix crash when navigating through empty command history.
An empty history entry can happen by entering the expression evaluator an immediately hitting enter:
```
$ lldb
(lldb) e
Enter expressions, then terminate with an empty line to evaluate:
1: <hit enter>
```
The next time the user enters the expression evaluator, if they hit the up arrow to load the previous expression, lldb crashes. This patch treats empty history sessions as a single expression of zero length, instead of an empty list of expressions.
Fixes http://llvm.org/PR49845.
Differential Revision: https://reviews.llvm.org/D100048
Commit: ffc65824f0ee20e1f8e884811062b92bd6707b11
https://github.com/llvm/llvm-project/commit/ffc65824f0ee20e1f8e884811062b92bd6707b11
Author: Vy Nguyen <vyng at google.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M lld/MachO/Driver.cpp
Log Message:
-----------
[lld-macho][nfc] Minor refactoring + clang-tidy fixes
- use "empty()" instead of "size()"
- refactor the re-export code so it doesn't create a new vector every time.
Differential Revision: https://reviews.llvm.org/D100019
Commit: 028092eb613e5553ce0833878e7d36fcaf11fcb2
https://github.com/llvm/llvm-project/commit/028092eb613e5553ce0833878e7d36fcaf11fcb2
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/utils/TableGen/ClangAttrEmitter.cpp
Log Message:
-----------
Correct the tablegen logic for MutualExclusions attribute checking.
Just because an attribute is a statement attribute doesn't mean it's
not also a declaration attribute. In Clang, there are not currently any
DeclOrStmtAttr attributes that require mutual exclusion checking, but
downstream clients discovered this issue.
Commit: 5c8462b5daa2a17eadf5e9f6b976452369aa3a93
https://github.com/llvm/llvm-project/commit/5c8462b5daa2a17eadf5e9f6b976452369aa3a93
Author: Abhina Sreeskantharajan <Abhina.Sreeskantharajan at ibm.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Support/ToolOutputFile.cpp
Log Message:
-----------
[Windows] Remove global OF_None flag for Windows in ToolOutputFiles
Since we have created a new OF_TextWithCRLF flag, we no longer need to worry about OF_Text flag turning on CRLF translation. I can remove this workaround I added to globally open all ToolOutputFiles as binary on Windows.
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D100034
Commit: 90af134473331095adcf2c7e4a511ac35d9f2f4a
https://github.com/llvm/llvm-project/commit/90af134473331095adcf2c7e4a511ac35d9f2f4a
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/include/llvm/CodeGen/MachineModuleInfo.h
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
M llvm/lib/CodeGen/MachineModuleInfo.cpp
Log Message:
-----------
Revert "[AsmPrinter] Delete dead takeDeletedSymbsForFunction()"
This reverts commit 9583a3f2625818b78c0cf6d473cdedb9f23ad82c.
This wasn't NFC as initially thought. Needed for D99707.
Commit: 6415f424bc2a3bbb4f2fd7bb67863968ac3c19f6
https://github.com/llvm/llvm-project/commit/6415f424bc2a3bbb4f2fd7bb67863968ac3c19f6
Author: Jonas Hahnfeld <jonas.hahnfeld at cern.ch>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Target/AArch64/AArch64FastISel.cpp
A llvm/test/CodeGen/AArch64/fast-isel-fpimm.ll
M llvm/test/CodeGen/AArch64/fpimm.ll
M llvm/test/CodeGen/AArch64/literal_pools_float.ll
Log Message:
-----------
[AArch64] Materialize FP constant in code for large code model
When using the large code model with FastISel (for example via
clang -O0 which adds the optnone attribute), FP constants could
still be materialized using adrp + ldr. Unconditionally enable
the existing path for MachO to materialize the constant in code.
For testing, restore literal_pools_float.ll to exercise the constant
pool and add two optnone-functions that return a float and a double,
respectively. Consolidate fpimm.ll and add a new fast-isel-fpimm.ll
to check the code paths taken with FastISel.
Differential Revision: https://reviews.llvm.org/D99607
Commit: 6e36859a84df8add520d5f48f15eea236e2b32e2
https://github.com/llvm/llvm-project/commit/6e36859a84df8add520d5f48f15eea236e2b32e2
Author: Florian Hahn <flo at fhahn.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/test/Analysis/BasicAA/gep-modulo.ll
Log Message:
-----------
[BasicAA] Extend test coverage for GEP modulo logic.
Add a few additional test cases which combine multiplies with
powers-of-2, different wrapping flags.
Commit: 98952851911624918c9bb7309dd8030a73f8ef76
https://github.com/llvm/llvm-project/commit/98952851911624918c9bb7309dd8030a73f8ef76
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
Log Message:
-----------
[RISCV] Replace 'return ReplaceNode' with 'ReplaceNode; return;' NFC
ReplaceNode is a void function as is the function that we were
doing this in. While this is valid code, it was a bit confusing.
Commit: 676a9ab5e406f3a54179b3dd7be1ccd141841d19
https://github.com/llvm/llvm-project/commit/676a9ab5e406f3a54179b3dd7be1ccd141841d19
Author: Paul Robinson <paul.robinson at sony.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/.gitignore
M llvm/.gitignore
Log Message:
-----------
Remove .gitignore entries not relevant in the monorepo.
Differential Revision: https://reviews.llvm.org/D100049
Commit: 39ee9fd8c1c2424f76260f62ac223e3aa1760612
https://github.com/llvm/llvm-project/commit/39ee9fd8c1c2424f76260f62ac223e3aa1760612
Author: Haruki Imai <imaihal at jp.ibm.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
M mlir/test/Transforms/canonicalize.mlir
Log Message:
-----------
[mlir] Fixed alignment attribute of alloc constant folding.
When allocLikeOp is updated in alloc constant folding,
alighnment attribute was ignored. This patch fixes it.
Signed-off-by: Haruki Imai <imaihal at jp.ibm.com>
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D99882
Commit: 7d8513b7f2e996fbbb35e0ffce4fe1d4f695928b
https://github.com/llvm/llvm-project/commit/7d8513b7f2e996fbbb35e0ffce4fe1d4f695928b
Author: Saurabh Jha <saurabh.jhaa at gmail.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/lib/CodeGen/CGExprScalar.cpp
Log Message:
-----------
[clang] Move int <-> float scalar conversion to a separate function
As prelude to this patch https://reviews.llvm.org/D99037, we want to
move the int-float conversion
into a separate function that can be reused by matrix cast
Differential Revision: https://reviews.llvm.org/D100051
Commit: ebf2dc33287ea414059d3b2f3568f6653ddd4b51
https://github.com/llvm/llvm-project/commit/ebf2dc33287ea414059d3b2f3568f6653ddd4b51
Author: Jennifer Yu <jennifer.yu at intel.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/lib/Sema/SemaOpenMP.cpp
M clang/test/OpenMP/dispatch_ast_print.cpp
Log Message:
-----------
Fix missing generate capture expression for novariants condition.
Commit: db851dfb495822c3288d04e4809ecddb829d97be
https://github.com/llvm/llvm-project/commit/db851dfb495822c3288d04e4809ecddb829d97be
Author: Vy Nguyen <vyng at google.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M lld/MachO/Driver.cpp
M lld/test/MachO/time-trace.s
Log Message:
-----------
[lld-macho] Make time-trace* options more permissive.
If either `time-trace-granularity` or `time-trace-file` is specified, then don't make users specify `-time-trace`.
It seems silly that I have to type all three options, eg, `-time-trace -time-trace-file=- -time-trace-granularity=...`.
Differential Revision: https://reviews.llvm.org/D100011
Commit: a723310b419be870acf72aafd3bfabacbaace642
https://github.com/llvm/llvm-project/commit/a723310b419be870acf72aafd3bfabacbaace642
Author: Jinsong Ji <jji at us.ibm.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/test/Driver/nostdincxx.cpp
Log Message:
-----------
[Driver][test] Test intended target only
6fe7de90b9e4e466a5c2baadafd5f72d3203651d changed GNU toolchain,
and added new RUN line to test expected behavior.
The change is for GNU toolchain only, so this will fail other toolchain,
eg: AIX.
Update the test with `-target` to test GNU tool chain only.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D99901
Commit: 2da6ce60a5e92e431ea121175f2bc20287cc8ef9
https://github.com/llvm/llvm-project/commit/2da6ce60a5e92e431ea121175f2bc20287cc8ef9
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M libcxxabi/test/test_exception_address_alignment.pass.cpp
Log Message:
-----------
[libc++abi] Adjust XFAIL for misaligned exception header on ARM
On ARM, the alignment has always been the right one, so this test never
fails.
Commit: 56ea2e2fdd691136d5e6631fa0e447173694b82c
https://github.com/llvm/llvm-project/commit/56ea2e2fdd691136d5e6631fa0e447173694b82c
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/sadd_sat.ll
M llvm/test/CodeGen/RISCV/sadd_sat_plus.ll
M llvm/test/CodeGen/RISCV/ssub_sat.ll
M llvm/test/CodeGen/RISCV/ssub_sat_plus.ll
Log Message:
-----------
[RISCV] Add a special case to lowerSELECT for select of 2 constants with a SETLT condition.
If the constants have a difference of 1 we can convert one to
the other by adding or subtracting the condition.
We have a DAG combine for this, but it only runs before type
legalization. If the select is introduced later during type
legalization or op legalization we will miss it.
We don't need a specific condition, but some conditions are
harder to materialize than others on RISCV. I know that SETLT
will be a single instruction and it is what is used by the
motivating pattern from signed saturating add/sub.
Differential Revision: https://reviews.llvm.org/D99021
Commit: 79ac5bbb96c46e3c6c3568a441c13aa10c087b25
https://github.com/llvm/llvm-project/commit/79ac5bbb96c46e3c6c3568a441c13aa10c087b25
Author: Shafik Yaghmour <syaghmour at apple.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M lldb/docs/use/variable.rst
M lldb/test/API/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py
M lldb/test/API/functionalities/data-formatter/data-formatter-advanced/main.cpp
Log Message:
-----------
[LLDB] Clarifying the documentation for variable formatting wrt to qualifiers and adding a test that demonstrates this
When looking up user specified formatters qualifiers are removed from types before matching,
I have added a clarifying example to the document and added an example to a relevant test to demonstrate this behavior.
Differential Revision: https://reviews.llvm.org/D99827
Commit: aca26133309ef197dc591b1fd6639ef2c4aaf6f2
https://github.com/llvm/llvm-project/commit/aca26133309ef197dc591b1fd6639ef2c4aaf6f2
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/test/Transforms/InstCombine/minmax-intrinsics.ll
Log Message:
-----------
[InstCombine] add test for min/max intrinsic with not ops; NFC
Commit: c0bbd0cc35b91c7244b15c3fed1e0dbcf9c0df55
https://github.com/llvm/llvm-project/commit/c0bbd0cc35b91c7244b15c3fed1e0dbcf9c0df55
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
M llvm/test/Transforms/InstCombine/minmax-intrinsics.ll
Log Message:
-----------
[InstCombine] fold not ops around min/max intrinsics
This is another step towards parity with the existing
cmp+select folds (see D98152).
Commit: 0056e7e15ac0c89cb6eab37d79900d174adb713e
https://github.com/llvm/llvm-project/commit/0056e7e15ac0c89cb6eab37d79900d174adb713e
Author: Florian Hahn <flo at fhahn.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/test/Analysis/BasicAA/gep-modulo.ll
Log Message:
-----------
[BasicAA] Add another GEP modulo test with shl with odd op.
Commit: d5d412f2aec1e432803fce451876e4449096acd1
https://github.com/llvm/llvm-project/commit/d5d412f2aec1e432803fce451876e4449096acd1
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.h
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/AMDGPU/GCNRegBankReassign.cpp
Log Message:
-----------
[AMDGPU] Split GCNRegBankReassign
Allow pass to work separately with SGPR, VGPR registers or both.
This is NFC now but will be needed to split RA for separate
SGPR and VGPR passes.
Differential Revision: https://reviews.llvm.org/D100063
Commit: 4658cd4c18ba73257a8642fd757c2124ad840204
https://github.com/llvm/llvm-project/commit/4658cd4c18ba73257a8642fd757c2124ad840204
Author: Tony Tye <Tony.Tye at amd.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/docs/AMDGPUUsage.rst
M llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
M llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs-packed.ll
M llvm/test/CodeGen/AMDGPU/dag-divergence-atomic.ll
M llvm/test/CodeGen/AMDGPU/expand-atomicrmw-syncscope.ll
M llvm/test/CodeGen/AMDGPU/fp64-atomics-gfx90a.ll
M llvm/test/CodeGen/AMDGPU/global-atomics-fp.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-fence.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-system.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
Log Message:
-----------
[AMDGPU] Update gfx90a memory model support
Reviewed By: rampitec
Differential Revision: https://reviews.llvm.org/D100070
Commit: 37878de5036718481e13d5067a17d65eb85c3388
https://github.com/llvm/llvm-project/commit/37878de5036718481e13d5067a17d65eb85c3388
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/test/MC/AMDGPU/gfx90a_asm_features.s
M llvm/test/MC/AMDGPU/gfx90a_err.s
M llvm/test/MC/AMDGPU/misaligned-vgpr-tuples-err.s
M llvm/test/MC/Disassembler/AMDGPU/gfx90a_dasm_features.txt
Log Message:
-----------
Disable use of SCC bit from asm
Differential Revision: https://reviews.llvm.org/D100069
Commit: d9065fe8ea643bd889821c0dc4c7dbec0469c28e
https://github.com/llvm/llvm-project/commit/d9065fe8ea643bd889821c0dc4c7dbec0469c28e
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M lld/MachO/SyntheticSections.h
M lld/MachO/Writer.cpp
Log Message:
-----------
[lld-macho] Parallelize __LINKEDIT generation
Benchmarking chromium_framework on a 3.2 GHz 16-Core Intel Xeon W Mac Pro:
N Min Max Median Avg Stddev
x 20 4.33 4.42 4.37 4.37 0.021026299
+ 20 4.12 4.23 4.18 4.175 0.035318103
Difference at 95.0% confidence
-0.195 +/- 0.0186025
-4.46224% +/- 0.425686%
(Student's t, pooled s = 0.0290644)
Reviewed By: #lld-macho, gkm
Differential Revision: https://reviews.llvm.org/D99998
Commit: 5f6b3d1833fdf20e18a3c8bf3ede7b5060130f73
https://github.com/llvm/llvm-project/commit/5f6b3d1833fdf20e18a3c8bf3ede7b5060130f73
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/include/clang/Basic/riscv_vector.td
Log Message:
-----------
[RISCV] Use multiclass inheritance to simplify some of riscv_vector.td. NFCI
We don't need to instantiate single multiclasses inside of
other multiclasses. We can use inheritance and save writing 'defm ""'.
Reviewed By: khchen
Differential Revision: https://reviews.llvm.org/D100074
Commit: f5645ea65f0dfdef2ae9c74075cc4b44f05dcb82
https://github.com/llvm/llvm-project/commit/f5645ea65f0dfdef2ae9c74075cc4b44f05dcb82
Author: CongzheUalberta <congzhecao at gmail.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
M llvm/test/Transforms/LoopInterchange/lcssa-preheader.ll
A llvm/test/Transforms/LoopInterchange/outer-header-jump-to-inner-latch.ll
Log Message:
-----------
[LoopInterchange] Fix transformation bugs in loop interchange
After loop interchange, the (old) outer loop header should not jump to
`LoopExit`. Note that the old outer loop becomes the new inner loop
after interchange. If we branched to `LoopExit` then after interchange
we would jump directly from the (new) inner loop header to `LoopExit`
without executing the rest of (new) outer loop.
This patch modifies adjustLoopBranches() such that the old outer
loop header (which becomes the new inner loop header) jumps to the
old inner loop latch which becomes the new outer loop latch after
interchange.
Reviewed By: bmahjour
Differential Revision: https://reviews.llvm.org/D98475
Commit: 2e9465ce2ef6fb7be13d25024f95118642097be1
https://github.com/llvm/llvm-project/commit/2e9465ce2ef6fb7be13d25024f95118642097be1
Author: Tony Tye <Tony.Tye at amd.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/docs/AMDGPUUsage.rst
Log Message:
-----------
[NFC][AMDGPU] Correct indentation in AMDGPUUsage.rst
Correct indentation that results in rST syntax error.
Commit: 593cb4655097552ac6d81ce18a2851ae0feb8d3c
https://github.com/llvm/llvm-project/commit/593cb4655097552ac6d81ce18a2851ae0feb8d3c
Author: Congzhe Cao <congzhe.cao at huawei.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
M llvm/test/Transforms/LoopInterchange/lcssa-preheader.ll
R llvm/test/Transforms/LoopInterchange/outer-header-jump-to-inner-latch.ll
Log Message:
-----------
Revert "[LoopInterchange] Fix transformation bugs in loop interchange"
This reverts commit 6ec68bd815d00c1eec2a6b9766452554f0e6cb61.
Commit: 74e77295e75412ddba74c16d0f0766dfb5b67e89
https://github.com/llvm/llvm-project/commit/74e77295e75412ddba74c16d0f0766dfb5b67e89
Author: Chen Zheng <czhengsz at cn.ibm.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
M llvm/test/CodeGen/PowerPC/convert-ri-addi-to-ri.mir
Log Message:
-----------
[PowerPC] fixup killed flags for ri + addi to ri transformation
Fixup killed flags if DefMI and MI are not in the same basic blocks.
Reviewed By: nemanjai
Differential Revision: https://reviews.llvm.org/D100023
Commit: d5fee599c5206ce81272a072fe389109761de593
https://github.com/llvm/llvm-project/commit/d5fee599c5206ce81272a072fe389109761de593
Author: hsmahesha <mahesha.comp at gmail.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
A llvm/test/CodeGen/AMDGPU/ds-alignment.ll
Log Message:
-----------
[AMDGPU] Add some exhaustive ds read/write alignment tests
PS: Submitting on behalf of Jay.
Reviewed By: rampitec
Differential Revision: https://reviews.llvm.org/D100007
Commit: ac64995ceb4016fe89305f7a24a79c94bdfd249d
https://github.com/llvm/llvm-project/commit/ac64995ceb4016fe89305f7a24a79c94bdfd249d
Author: hsmahesha <mahesha.comp at gmail.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/DSInstructions.td
M llvm/test/CodeGen/AMDGPU/GlobalISel/lds-misaligned-bug.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-unaligned.ll
M llvm/test/CodeGen/AMDGPU/ds-alignment.ll
M llvm/test/CodeGen/AMDGPU/ds_read2.ll
M llvm/test/CodeGen/AMDGPU/ds_write2.ll
M llvm/test/CodeGen/AMDGPU/lds-misaligned-bug.ll
Log Message:
-----------
[AMDGPU] Only use ds_read/write_b128 for alignment >= 16
PS: Submitting on behalf of Jay.
Reviewed By: rampitec
Differential Revision: https://reviews.llvm.org/D100008
Commit: 65b1103798df7bc84137766d813315b4cc54df3e
https://github.com/llvm/llvm-project/commit/65b1103798df7bc84137766d813315b4cc54df3e
Author: Serge Pavlov <sepavloff at gmail.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.h
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
Log Message:
-----------
[RISCV] DAG nodes and pseudo instructions for CSR access
New custom DAG nodes were added to represent operations on CSR. These
nodes are lowered to corresponding pseudo instruction. Using the pseudo
instructions allows to specify different scheduling information for
operations on different system registers. It also make possible to
specify dependencies of instructions on specific system registers.
Differential Revision: https://reviews.llvm.org/D98936
Commit: 8ac5e440615dd3dc9fd2eb88c0bad32fdc5f678c
https://github.com/llvm/llvm-project/commit/8ac5e440615dd3dc9fd2eb88c0bad32fdc5f678c
Author: Fangrui Song <i at maskray.me>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/lib/Driver/Driver.cpp
M clang/test/Driver/program-path-priority.c
Log Message:
-----------
[Driver] Drop $DEFAULT_TRIPLE-$name as a fallback program name
D13340 introduced this behavior which is not needed even for mips.
This was raised on https://lists.llvm.org/pipermail/cfe-dev/2020-May/065437.html
but no action was taken.
This was raised again in https://lists.llvm.org/pipermail/cfe-dev/2021-April/067974.html
"The LLVM host/target TRIPLE padding drama on Debian"
as it caused confusion. This patch drops the behavior.
Differential Revision: https://reviews.llvm.org/D99996
Commit: 0918f44e2670ed9beece4b37c33ff803de5199bb
https://github.com/llvm/llvm-project/commit/0918f44e2670ed9beece4b37c33ff803de5199bb
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/docs/CodeReview.rst
M llvm/docs/DeveloperPolicy.rst
Log Message:
-----------
[docs] Document our norms around reverts
This has come up a few times recently, and I was surprised to notice that we don't have anything in the docs.
This patch deliberately sticks to stuff that is uncontroversial in the community. Everything herein is thought to be widely agreed to by a large majority of the community. A few things were noted and removed in review which failed this standard, if you spot anything else, please point it out.
Differential Revision: https://reviews.llvm.org/D99305
Commit: 73cbc7f60ed90ad207b54b55aaf0efa0e5c38c47
https://github.com/llvm/llvm-project/commit/73cbc7f60ed90ad207b54b55aaf0efa0e5c38c47
Author: Dan Liew <dliew at apple.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M clang/cmake/caches/Apple-stage2.cmake
Log Message:
-----------
Include `llvm-config` and `not` in AppleClang toolchains.
The motivation here is so that we can configure and run compiler-rt
tests from a standalone build against AppleClang.
rdar://75975846
Differential Revision: https://reviews.llvm.org/D100086
Commit: eb7f5eaf3500fd0502a8ee56cc227432430c382b
https://github.com/llvm/llvm-project/commit/eb7f5eaf3500fd0502a8ee56cc227432430c382b
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M mlir/include/mlir/Support/MlirOptMain.h
Log Message:
-----------
Change the default value for `preloadDialectsInContext` for MlirOptMain
This option has been deprecated for 6 months, change the default setting for now before
future removal.
While clients can set the option to true for now, they should start
updating their passes to define the right `dependentDialects` in
preparation of the removal of this option. See the FAQ for more info:
https://mlir.llvm.org/getting_started/Faq/
Reviewed By: rriddle, jpienaar
Differential Revision: https://reviews.llvm.org/D99025
Commit: 2a2720a2dec4ad4fdc7ae58939448e51824a12c4
https://github.com/llvm/llvm-project/commit/2a2720a2dec4ad4fdc7ae58939448e51824a12c4
Author: Hongtao Yu <hoy at fb.com>
Date: 2021-04-07 (Wed, 07 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/CodeGenPrepare.cpp
A llvm/test/Transforms/SampleProfile/pseudo-probe-selectionDAG.ll
Log Message:
-----------
[CSSPGO] Move pseudo probes to the beginning of a block to unblock SelectionDAG combine.
Pseudo probes, when scattered in a block, can be chained dependencies of other regular DAG nodes and block DAG combine optimizations. To fix this, scattered probes in a block are grouped and placed at the beginning of the block. This shouldn't affect the profile quality.
Test Plan:
Reviewed By: wenlei, wmi
Differential Revision: https://reviews.llvm.org/D100002
Commit: 648544f998cd0811670a625f4f2964125cf833b3
https://github.com/llvm/llvm-project/commit/648544f998cd0811670a625f4f2964125cf833b3
Author: Juneyoung Lee <aqjune at gmail.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/IR/Constants.cpp
M llvm/unittests/IR/ConstantsTest.cpp
Log Message:
-----------
[Constant] ConstantStruct/Array should not lower poison to undef
This is a (late) follow-up patch of 8871a4b4cab8a56fd6ff12fd024002c3c79128b3 and
c95f39891a282ebf36199c73b705d4a2c78a46ce to make ConstantStruct::get/ConstantArray::getImpl
correctly return PoisonValue if all elements are poison.
This was found while discussing about the elements of a vector-typed UndefValue (D99853)
Commit: fe16aa7d65512161bd7ea3b85f6aa726cc36ae12
https://github.com/llvm/llvm-project/commit/fe16aa7d65512161bd7ea3b85f6aa726cc36ae12
Author: Juneyoung Lee <aqjune at gmail.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/unittests/IR/ConstantsTest.cpp
Log Message:
-----------
[Constant] Remove unused variable
Commit: b8cd6681156a533dd6d4b3f0f5a1acf1116bc347
https://github.com/llvm/llvm-project/commit/b8cd6681156a533dd6d4b3f0f5a1acf1116bc347
Author: Hsiangkai Wang <kai.wang at sifive.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
A llvm/test/CodeGen/RISCV/rvv/addi-scalable-offset.mir
Log Message:
-----------
[NFC][RISCV] Add test for scalable offset under large stack size.
This test case shows that we access wrong stack slots when the frame
object has scalable offset under large stack size.
Differential Revision: https://reviews.llvm.org/D100084
Commit: ba72bdef3250ce2ef602d7a07af6a5a6c5255fde
https://github.com/llvm/llvm-project/commit/ba72bdef3250ce2ef602d7a07af6a5a6c5255fde
Author: Hsiangkai Wang <kai.wang at sifive.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
M llvm/test/CodeGen/RISCV/rvv/addi-scalable-offset.mir
Log Message:
-----------
[RISCV] Add scalable offset under very large stack size.
If the stack size is larger than 12 bits, we have to use a scratch
register to store the stack size. Before we introduce the scalable stack
offset, we could simplify
%0 = ADDI %stack.0, 0
=>
%scratch = ... # sequence of instructions to move the offset into
%%scratch
%0 = ADD %fp, %scratch
However, if the offset contains scalable part, we need to consider it.
%0 = ADDI %stack.0, 0
=>
%scratch = ... # sequence of instructions to move the offset into
%%scratch
%scratch = ADD %fp, %scratch
%scalable_offset = ... # sequence of instructions for vscaled-offset.
%0 = ADD/SUB %scratch, %scalable_offset
Differential Revision: https://reviews.llvm.org/D100035
Commit: 0c36da722aa55535d35d1423c70fc04ab8889090
https://github.com/llvm/llvm-project/commit/0c36da722aa55535d35d1423c70fc04ab8889090
Author: Esme-Yi <esme.yi at ibm.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
M llvm/lib/CodeGen/CommandFlags.cpp
A llvm/test/DebugInfo/XCOFF/dbx-inlinedstrings.ll
Log Message:
-----------
[Debug-Info] Use inlined strings in .dwinfo section by default for DBX.
Summary: Set the default DwarfInlinedStrings as inlined strings for DBX, due to DBX does not support .dwstr section for now.
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D99933
Commit: 0a1c6637a1e89ca757e69225f6ead27bf151a16b
https://github.com/llvm/llvm-project/commit/0a1c6637a1e89ca757e69225f6ead27bf151a16b
Author: Serguei Katkov <serguei.katkov at azul.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/RegAllocGreedy.cpp
Log Message:
-----------
[GreedyRA ORE] Compute ORE stats if extra analysis is enabled
To save compile time, avoid computation of stats if ORE will not emit it.
The motivation is to add more stats and compute it only if it will dumped.
Reviewers: reames, MatzeB, anemet, thegameg
Reviewed By: reames
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D100010
Commit: df2578779778906438d7cb8f84ead414ae9b1a04
https://github.com/llvm/llvm-project/commit/df2578779778906438d7cb8f84ead414ae9b1a04
Author: Serguei Katkov <serguei.katkov at azul.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/RegAllocGreedy.cpp
Log Message:
-----------
[GreedyRA ORE] Extract stats in RAGreedyStats struct. NFC.
Combine all collected stats into separate struct RAGreedyStats
with add and report methods.
The motivation is to extend the number of statistics to capture and instead of
adding new parameters, just combine all of them into one structure.
Additionally I plan to use report from different places in future to report data
for function as well.
Reviewers: reames, MatzeB, anemet, thegameg
Reviewed By: thegameg
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D100012
Commit: 6b64c662c79524a2ec5f5b1bc10ce4c2a1e3ff37
https://github.com/llvm/llvm-project/commit/6b64c662c79524a2ec5f5b1bc10ce4c2a1e3ff37
Author: Serguei Katkov <serguei.katkov at azul.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/RegAllocGreedy.cpp
Log Message:
-----------
[GreedyRA ORE] Extract computeNumberOfSplillsReloads to use in different places. NFC.
Extract one basic block handling to introduce stat computation for method scope.
Reviewers: reames, MatzeB, anemet, thegameg
Reviewed By: reames, thegameg
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D100013
Commit: edb18ea5a9132a8e359ce0c0b103286d15244b8a
https://github.com/llvm/llvm-project/commit/edb18ea5a9132a8e359ce0c0b103286d15244b8a
Author: LemonBoy <thatlemon at gmail.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/MC/MCParser/AsmLexer.cpp
M llvm/test/MC/AsmParser/directive_values.s
Log Message:
-----------
[AsmParser] Recognize more escaped characters between single quotes
The GNU AS manual states the following about single-character constants enclosed within single quotes:
> Some backslash escapes apply to characters, \b, \f, \n, \r, \t, and \" with the same meaning as for strings, plus \' for a single quote.
Add two more characters to the switch handling this case to match GAS behaviour, plus a test to make sure nothing regresses.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D99609
Commit: 20105b6b4874a85813f7a4a3d8ad2a0f023dda14
https://github.com/llvm/llvm-project/commit/20105b6b4874a85813f7a4a3d8ad2a0f023dda14
Author: serge-sans-paille <sguelton at redhat.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M clang/lib/Basic/SourceManager.cpp
Log Message:
-----------
[clang] Speedup line offset mapping computation
Clang spends a decent amount of time in the LineOffsetMapping::get(...)
function. This function used to be vectorized (through SSE2) then the
optimization got dropped because the sequential version was on-par performance
wise.
This provides an optimization of the sequential version that works on a word at
a time, using (documented) bithacks to provide a portable vectorization.
When preprocessing the sqlite amalgamation, this yields a sweet 3% speedup.
This is a recommit of 6951b72334bbe4c189c71751edc1e361d7b5632c with endianness
and unsigned long vs uint64_t issues fixed (hopefully).
Differential Revision: https://reviews.llvm.org/D99409
Commit: b614ada0e80fe1af00294e8460f987dc6a7e4d5b
https://github.com/llvm/llvm-project/commit/b614ada0e80fe1af00294e8460f987dc6a7e4d5b
Author: Tobias Gysi <gysit at google.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M mlir/docs/Rationale/Rationale.md
M mlir/include/mlir/Dialect/StandardOps/IR/Ops.td
M mlir/include/mlir/Dialect/Vector/VectorOps.td
M mlir/include/mlir/IR/BuiltinTypes.td
M mlir/include/mlir/IR/OpBase.td
M mlir/include/mlir/Interfaces/DataLayoutInterfaces.h
M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
M mlir/lib/Dialect/Vector/CMakeLists.txt
M mlir/lib/Dialect/Vector/VectorOps.cpp
M mlir/lib/Dialect/Vector/VectorTransforms.cpp
M mlir/lib/IR/BuiltinAttributes.cpp
M mlir/lib/IR/BuiltinTypes.cpp
M mlir/lib/Interfaces/DataLayoutInterfaces.cpp
M mlir/lib/Parser/TypeParser.cpp
M mlir/test/Conversion/StandardToLLVM/standard-to-llvm.mlir
M mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
M mlir/test/Dialect/Vector/ops.mlir
M mlir/test/IR/invalid-ops.mlir
M mlir/test/IR/invalid.mlir
A mlir/test/Integration/Dialect/Vector/CPU/test-index-vectors.mlir
Log Message:
-----------
[mlir] add support for index type in vectors.
The patch enables the use of index type in vectors. It is a prerequisite to support vectorization for indexed Linalg operations. This refactoring became possible due to the newly introduced data layout infrastructure. The data layout of a module defines the bitwidth of the index type needed to verify bitcasts and similar vector operations.
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D99948
Commit: 04419628e011d32a1b3dd8efd981ed9e978bf43d
https://github.com/llvm/llvm-project/commit/04419628e011d32a1b3dd8efd981ed9e978bf43d
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/test/CodeGen/AMDGPU/amdgpu.private-memory.ll
M llvm/test/CodeGen/AMDGPU/private-memory-r600.ll
Log Message:
-----------
[AMDGPU, test] Fix use of undef FileCheck var
Test CodeGen/AMDGPU/amdgpu.private-memory.ll and
CodeGen/AMDGPU/private-memory-r600.ll have a block of CHECK directives
whose prefix is inconsistent: R600-CHECK Vs R600. This leads to a
R600-NOT directive using an undefined CHAN variable due to R600-CHECK
directives never being considered by FileCheck. Fixing the prefix leads
to the testcase failing. As per https://reviews.llvm.org/D99865#2675235
this commit removes the directives instead since it is not possible to
write a reliable check.
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D99865
Commit: d9773c1b4eb14c5f38d23323270ef67b4c528844
https://github.com/llvm/llvm-project/commit/d9773c1b4eb14c5f38d23323270ef67b4c528844
Author: Jason Molenda <jason at molenda.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M lldb/test/API/macosx/lc-note/firmware-corefile/Makefile
M lldb/test/API/macosx/lc-note/firmware-corefile/TestFirmwareCorefiles.py
R lldb/test/API/macosx/lc-note/firmware-corefile/bout.mk
M lldb/test/API/macosx/lc-note/firmware-corefile/main.c
A lldb/test/API/macosx/lc-note/firmware-corefile/operating_system.py
Log Message:
-----------
Reorg firmware corefile tests; add test for OS plugin loading
A little cleanup to how these firmware corefile tests are done; add
a test that loads a dSYM that loads an OS plugin, and confirm that
the OS plugin's threads are created.
Commit: 8fcb114d002bf7cd61309af80b26af68389944d0
https://github.com/llvm/llvm-project/commit/8fcb114d002bf7cd61309af80b26af68389944d0
Author: Sven van Haastregt <sven.vanhaastregt at arm.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M clang/lib/Sema/OpenCLBuiltins.td
Log Message:
-----------
[OpenCL] Fix mipmap read_image return types
The return type did not match the function name.
Commit: a5693445cac05238559f3d957918b22b8ea02310
https://github.com/llvm/llvm-project/commit/a5693445cac05238559f3d957918b22b8ea02310
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.h
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vreductions-mask.ll
A llvm/test/CodeGen/RISCV/rvv/vreductions-mask.ll
Log Message:
-----------
[RISCV] Support OR/XOR/AND reductions on vector masks
This patch adds RVV codegen support for OR/XOR/AND reductions for both
scalable- and fixed-length vector types. There are a few possible
codegen strategies for each -- vmfirst.m, vmsbf.m, and vmsif.m could be
used to some extent -- but the vpopc.m instruction was chosen since it
produces the scalar result in one instruction, after which scalar
instructions can finish off the computation.
The reductions are lowered identically for both scalable- and
fixed-length vectors, although some alternate strategies may be more
optimal on fixed-length vectors since it's cheaper to get the length of
those types.
Other reduction types were not deemed to be relevant for mask vectors.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D100030
Commit: 1a4d3d0bca2beda5bdfb3261547a97af70cffb47
https://github.com/llvm/llvm-project/commit/1a4d3d0bca2beda5bdfb3261547a97af70cffb47
Author: David Green <david.green at arm.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
A llvm/test/Transforms/LoopVectorize/ARM/mve-selectandorcost.ll
Log Message:
-----------
[LV] Add a logical and/or select cost test. NFC
Commit: 8675ef100f8cbf59f2e90f4836fb92db83b6062e
https://github.com/llvm/llvm-project/commit/8675ef100f8cbf59f2e90f4836fb92db83b6062e
Author: David Green <david.green at arm.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/ARM/mve-selectandorcost.ll
Log Message:
-----------
[LV] Logical and/or select costs
D99674 stopped the folding of certain select operations into and/or, due
to incorrect folding in the presence of poison. D97360 added some costs
to attempt to account for the change, but only worked at the getUserCost
level, not the getCmpSelInstrCost that the vectorizer will use directly.
This adds similar logic into the vectorizer to handle these logical
and/or selects, treating them like and/or directly.
This fixes 60% performance regressions from code like the attached test
case.
Differential Revision: https://reviews.llvm.org/D99884
Commit: e81b3401177a67481605447ea5250d8345cb4341
https://github.com/llvm/llvm-project/commit/e81b3401177a67481605447ea5250d8345cb4341
Author: Andrzej Warzynski <andrzej.warzynski at arm.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M clang/include/clang/Driver/Options.td
M flang/include/flang/Frontend/FrontendActions.h
M flang/include/flang/Frontend/FrontendOptions.h
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/lib/Frontend/FrontendActions.cpp
M flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
M flang/test/Driver/driver-help.f90
A flang/test/Driver/dump-parse-tree-no-sema.f90
M flang/test/Parser/omp-allocate-unparse.f90
M flang/test/Parser/omp-atomic-unparse.f90
M flang/tools/f18/f18.cpp
Log Message:
-----------
[flang][driver] Add debug options not requiring semantic checks
This patch adds two debugging options in the new Flang driver
(flang-new):
*fdebug-unparse-no-sema
*fdebug-dump-parse-tree-no-sema
Each of these options combines two options from the "throwaway" driver
(left: f18, right: flang-new):
* `-fdebug-uparse -fdebug-no-semantics` --> `-fdebug-unparse-no-sema`
* `-fdebug-dump-parse-tree -fdebug-no-semantics` -->
`-fdebug-dump-parse-tree-no-sema`
There are no plans to implement `-fdebug-no-semantics` in the new
driver. Such option would be too powerful. Also, it would only make
sense when combined with specific frontend actions (`-fdebug-unparse`
and `-fdebug-dump-parse-tree`). Instead, this patch adds 2 specialised
options listed above. Each of these is implemented through a dedicated
FrontendAction (also added).
The new frontend actions are implemented in terms of a new abstract base
action: `PrescanAndSemaAction`. This new base class was required so that
we can have finer control over what steps within the frontend are
executed:
* `PrescanAction`: run the _prescanner_
* `PrescanAndSemaAction`: run the _prescanner_ and the _parser_ (new
in this patch)
* `PrescanAndSemaAction`: run the _prescanner_, _parser_ and run the
_semantic checks_
This patch introduces `PrescanAndParseAction::BeginSourceFileAction`.
Apart from the semantic checks removed at the end, it is similar to
`PrescanAndSemaAction::BeginSourceFileAction`.
Differential Revision: https://reviews.llvm.org/D99645
Commit: a0e8738d452794c9fb956676e7112ae915fe9302
https://github.com/llvm/llvm-project/commit/a0e8738d452794c9fb956676e7112ae915fe9302
Author: Serguei Katkov <serguei.katkov at azul.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/RegAllocGreedy.cpp
M llvm/test/CodeGen/AArch64/arm64-spill-remarks.ll
Log Message:
-----------
[GreedyRA ORE] Add function level spill/reloads stats
Reviewers: reames, MatzeB, anemet, thegameg
Reviewed By: reames, thegameg
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D100014
Commit: 6e8601ff4ae1154e6f7963c70453b4818d7453e0
https://github.com/llvm/llvm-project/commit/6e8601ff4ae1154e6f7963c70453b4818d7453e0
Author: Anastasia Stulova <anastasia.stulova at arm.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M clang/docs/OpenCLSupport.rst
Log Message:
-----------
[OpenCL][Docs] Fix typo in section label
Commit: 4b273b19826515e47837c0e5c1e5abf625615080
https://github.com/llvm/llvm-project/commit/4b273b19826515e47837c0e5c1e5abf625615080
Author: Andrzej Warzynski <andrzej.warzynski at arm.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
A flang/test/Driver/flarge-sizes.f90
R flang/test/Driver/flarge_sizes.f90
A flang/test/Driver/intrinsic-module-path.f90
R flang/test/Driver/intrinsic_module_path.f90
A flang/test/Driver/std2018-wrong.f90
R flang/test/Driver/std2018_wrong.f90
A flang/test/Driver/werror-parse.f
A flang/test/Driver/werror-scan.f
A flang/test/Driver/werror-sema.f90
A flang/test/Driver/werror-wrong.f90
R flang/test/Driver/werror_parse.f
R flang/test/Driver/werror_scan.f
R flang/test/Driver/werror_sema.f90
R flang/test/Driver/werror_wrong.f90
Log Message:
-----------
[flang][nfc] Rename some test files
Update test names as per Flang's coding style guide [1]:
```
File names should use dashes, not underscores.
```
[1] https://github.com/llvm/llvm-project/blob/main/flang/docs/C%2B%2Bstyle.md#files
Commit: 2a1f87167cc01261e1164772ba58418fea58326b
https://github.com/llvm/llvm-project/commit/2a1f87167cc01261e1164772ba58418fea58326b
Author: Mikael Holmen <mikael.holmen at ericsson.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp
Log Message:
-----------
[NVPTX] Fix compiler warning in NDEBUG build [NFC]
Without the fix we get
../lib/Target/NVPTX/NVPTXLowerArgs.cpp:236:24: error: lambda capture 'Arg' is not used [-Werror,-Wunused-lambda-capture]
auto IsALoadChain = [Arg](Value *Start) {
^~~
1 error generated.
Commit: b601c6719226fb83c43dae62a581e5ee08bfb169
https://github.com/llvm/llvm-project/commit/b601c6719226fb83c43dae62a581e5ee08bfb169
Author: Michał Górny <mgorny at moritz.systems>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
A lldb/test/API/functionalities/gdb_remote_client/TestMultiprocess.py
Log Message:
-----------
[lldb] [client] Support for multiprocess extension
Add a minimal support for the multiprocess extension in gdb-remote
client. It accepts PIDs as part of thread-ids, and rejects PIDs that
do not match the current inferior.
Differential Revision: https://reviews.llvm.org/D99603
Commit: aa165eac322d9f377b364864af66de71fc69f613
https://github.com/llvm/llvm-project/commit/aa165eac322d9f377b364864af66de71fc69f613
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/test/Analysis/CostModel/X86/load_store.ll
Log Message:
-----------
[NFC][X86][CostModel] Add some load/store tests w/ non-power-of-two elt cnt vectors
For example the cost to load <48 x i16> should likely be 3,
because that's just 3x load i256.
Commit: 140757bfaaa00110a92d2247a910c847e6e3bcc8
https://github.com/llvm/llvm-project/commit/140757bfaaa00110a92d2247a910c847e6e3bcc8
Author: Stephen Tozer <Stephen.Tozer at Sony.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/include/llvm/IR/IntrinsicInst.h
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
A llvm/test/Transforms/LoopStrengthReduce/dbg-preserve-2.ll
Log Message:
-----------
[DebugInfo] Prevent invalid debug info being produced during LoopStrengthReduce
During LoopStrengthReduce, some of the SSA values that are used by debug values
may be lost and/or salvaged. After LSR we attempt to recover any undef debug
values, including any that were salvaged but then lost their values afterwards,
by replacing the lost values with any live equal values (plus a possible
constant offset) that have been gathered prior to running LSR. When we do this
we restore the debug value's original DIExpression, to undo any salvaging (as we
have gone back to using the original debug value).
This process can currently produce invalid debug info if the number of operands
has changed by salvaging during LSR. Replacing old values during the
applyEqualValues step does not change the number of location operands, which
means that when we restore the old DIExpression we may have a mismatch between
the number of operands used by the debug value and the number of operands
referenced by the DIExpression. This patch fixes this by restoring the full
original location metadata at the start of the applyEqualValues step, so that
there is no mismatch in operand count between the debug value and its
DIExpression.
Differential Revision: https://reviews.llvm.org/D98644
Commit: 94a6fe43de4583038e137f2fcbe634c174af5662
https://github.com/llvm/llvm-project/commit/94a6fe43de4583038e137f2fcbe634c174af5662
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
Log Message:
-----------
[AMDGPU] SIFoldOperands: refactor tryFoldCndMask with early-outs. NFC.
Commit: 004f29c0bb3cad623bfd147f73bf6f8ab293ed53
https://github.com/llvm/llvm-project/commit/004f29c0bb3cad623bfd147f73bf6f8ab293ed53
Author: Lei Zhang <antiagainst at google.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp
Log Message:
-----------
[mlir][spirv] Timely fail type conversion
Per the TypeConverter API contract, returning `llvm:None` means
other conversion rules should be tried. But we only have one
rule per input type. So there is no need to try others and we can
just directly fail, which should return `nullptr`. This avoids
unnecessary checks.
Differential Revision: https://reviews.llvm.org/D100058
Commit: 5299843c31468ab73d63242eaa79bedfc885b877
https://github.com/llvm/llvm-project/commit/5299843c31468ab73d63242eaa79bedfc885b877
Author: Lei Zhang <antiagainst at google.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M mlir/include/mlir/Conversion/Passes.td
M mlir/include/mlir/Dialect/SPIRV/Transforms/SPIRVConversion.h
M mlir/lib/Conversion/StandardToSPIRV/StandardToSPIRVPass.cpp
M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp
M mlir/test/Conversion/StandardToSPIRV/std-types-to-spirv.mlir
Log Message:
-----------
[mlir][spirv] Add control for non-32-bit scalar type emulation
Non-32-bit scalar types require special hardware support that may not
exist on all GPUs. This is reflected in SPIR-V as that non-32-bit scalar
types require special capabilities or extensions.
Previously when there is a non-32-bit type and no native support, we
unconditionally emulate it with 32-bit ones. This isn't good given that
it can have implications over ABI and data layout consistency.
This commit introduces an option to control whether to use 32-bit
types to emulate.
Differential Revision: https://reviews.llvm.org/D100059
Commit: 1206313f82f819381055dc730294ef50b3af63c9
https://github.com/llvm/llvm-project/commit/1206313f82f819381055dc730294ef50b3af63c9
Author: David Sherwood <david.sherwood at arm.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
A llvm/test/CodeGen/AArch64/sve-fptrunc-store.ll
Log Message:
-----------
[CodeGen][AArch64] Fix isel crash for truncating FP stores
When attempting to truncate a FP vector and store the result out
to memory we crashed because we had no pattern for truncating FP
stores. In fact, we don't support these types of stores and the
correct fix is to stop marking these truncating stores as legal.
Tests have been added here:
CodeGen/AArch64/sve-fptrunc-store.ll
Differential Revision: https://reviews.llvm.org/D100025
Commit: 3b9a15d910a8c748b1444333a4a3905a996528bc
https://github.com/llvm/llvm-project/commit/3b9a15d910a8c748b1444333a4a3905a996528bc
Author: Paul C. Anagnostopoulos <paul at windfall.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/docs/TableGen/ProgRef.rst
M llvm/include/llvm/TableGen/Record.h
M llvm/lib/TableGen/Record.cpp
M llvm/lib/TableGen/TGParser.cpp
M llvm/lib/TableGen/TGParser.h
M llvm/test/TableGen/assert.td
Log Message:
-----------
[TableGen] Add support for the 'assert' statement in multiclasses
Commit: 14580ce2fdd1898d130b20d9eb21bc4281868e7c
https://github.com/llvm/llvm-project/commit/14580ce2fdd1898d130b20d9eb21bc4281868e7c
Author: Paul C. Anagnostopoulos <paul at windfall.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/TableGen/Record.cpp
M llvm/test/TableGen/ListSlices.td
Log Message:
-----------
[TableGen] Make behavior of list slice suffix consistent across all values
Differential Revision: https://reviews.llvm.org/D99883
Commit: 6fccfd7cbdca0c1184cdb77f92329534ffde544c
https://github.com/llvm/llvm-project/commit/6fccfd7cbdca0c1184cdb77f92329534ffde544c
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/test/Transforms/InstCombine/icmp-add.ll
Log Message:
-----------
[InstCombine] add icmp with no-wrap add tests; NFC
Goes with D100095
Commit: c10cc4ea2729b687757b5932cb568ee6225f6f33
https://github.com/llvm/llvm-project/commit/c10cc4ea2729b687757b5932cb568ee6225f6f33
Author: Sebastian Neubauer <sebastian.neubauer at amd.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
M llvm/test/CodeGen/AMDGPU/pei-scavenge-vgpr-spill.mir
Log Message:
-----------
[AMDGPU] Fix computing live registers in prolog
ScratchExecCopy needs to be marked as live, we cannot use that register
while EXEC is stored in there.
Marking SGPRForFPSaveRestoreCopy and SGPRForBPSaveRestoreCopy as
available is unnecessary, they should not be live at that point anway.
Differential Revision: https://reviews.llvm.org/D100098
Commit: 3344cd3a14778e3a514c99c24f9dd98b9d577894
https://github.com/llvm/llvm-project/commit/3344cd3a14778e3a514c99c24f9dd98b9d577894
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
Log Message:
-----------
[AMDGPU] SIFoldOperands: make tryFoldCndMask a member function. NFC.
Commit: b785e03612d76145c58cb31b6fd6911a5e41e8e3
https://github.com/llvm/llvm-project/commit/b785e03612d76145c58cb31b6fd6911a5e41e8e3
Author: Joseph Tremoulet <jotrem at microsoft.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Support/Unix/Path.inc
Log Message:
-----------
Support: mapped_file_region: Pass MAP_NORESERVE to mmap
This allows mapping larger files, delaying OOM failures until too many
pages of them are accessed. This is makes the behavior of the
mapped_file_region in this regard consistent between its "Unix" and
"Windows" implementations.
Guard the code witih #if defined(MAP_NORESERVE), consistent with other
uses of MAP_NORESERVE in llvm-project, because some FreeBSD versions do
not provide this flag.
Reviewed By: clayborg
Differential Revision: https://reviews.llvm.org/D96626
Commit: 9f0d8bac144c8eb1ca4aff823b2e2d5a0f990072
https://github.com/llvm/llvm-project/commit/9f0d8bac144c8eb1ca4aff823b2e2d5a0f990072
Author: Valeriy Savchenko <vsavchenko at apple.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp
M clang/test/Analysis/dead-stores.c
Log Message:
-----------
[analyzer] Fix dead store checker false positive
It is common to zero-initialize not only scalar variables,
but also structs. This is also defensive programming and
we shouldn't complain about that.
rdar://34122265
Differential Revision: https://reviews.llvm.org/D99262
Commit: e4de3cdf3d66590ac7ac3eb468c3027aaa11a71b
https://github.com/llvm/llvm-project/commit/e4de3cdf3d66590ac7ac3eb468c3027aaa11a71b
Author: Florian Hahn <flo at fhahn.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV] Pass VPWidenPHIRecipe to widenPHIInstruction (NFC).
Instead of passing the start value and the defined value to
widenPHIInstruction, pass the VPWidenPHIRecipe directly, which can be
used to get both (and more in future patches).
Commit: c28f79a0e3352a972026f6dc896d13f81835b468
https://github.com/llvm/llvm-project/commit/c28f79a0e3352a972026f6dc896d13f81835b468
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
M llvm/test/CodeGen/AMDGPU/fold-cndmask-wave32.mir
Log Message:
-----------
[AMDGPU] SIFoldOperands: try harder to fold cndmask instructions
Look through copies to find more cases where the two values being
selected are identical. The motivation for this is just to be able to
remove the weird special case where tryFoldCndMask was called from
foldInstOperand, part way through folding a move-immediate into its
users, without regressing any lit tests.
Commit: 2724b57ecdbba92435f258d0ec610780f6d60d84
https://github.com/llvm/llvm-project/commit/2724b57ecdbba92435f258d0ec610780f6d60d84
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
Log Message:
-----------
[AMDGPU] SIFoldOperands: remove an unneeded make_early_inc_range. NFC.
Commit: a250e91d1034a53562c86451642327bb5cbc4c0b
https://github.com/llvm/llvm-project/commit/a250e91d1034a53562c86451642327bb5cbc4c0b
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
Log Message:
-----------
[AMDGPU] SIFoldOperands: make use of emplace_back. NFC.
Commit: 9229465bad8504190bdfb92be829cb6c1157fea5
https://github.com/llvm/llvm-project/commit/9229465bad8504190bdfb92be829cb6c1157fea5
Author: serge-sans-paille <sguelton at redhat.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M clang/lib/Basic/SourceManager.cpp
Log Message:
-----------
[NFC] Fix warning introduced in 20105b6b4874a85813f7a4a3d8ad2a0f023dda14
Commit: 1e511bb1be718657a5584ccb792723d9ddac481f
https://github.com/llvm/llvm-project/commit/1e511bb1be718657a5584ccb792723d9ddac481f
Author: Pavel Labath <pavel at labath.sk>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M lldb/test/API/tools/lldb-vscode/launch/TestVSCode_launch.py
Log Message:
-----------
[lldb] Re-skip TestVSCode_launch
The test is flaky (sleeps didn't help).
Commit: 2ecf928153fc56dcb6bb0bd910584eac86bc23bd
https://github.com/llvm/llvm-project/commit/2ecf928153fc56dcb6bb0bd910584eac86bc23bd
Author: Pavel Labath <pavel at labath.sk>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
M lldb/unittests/SymbolFile/DWARF/DWARFUnitTest.cpp
Log Message:
-----------
[lldb/DWARF] Fix a crash parsing invalid dwarf (pr49678)
If the debug info is missing the terminating null die, we would crash
when trying to access the nonexisting children/siblings. This was
discovered because the test case for D98619 accidentaly produced such
input.
Commit: 466fab5c9410abb79f1a70c5075147e9a768124e
https://github.com/llvm/llvm-project/commit/466fab5c9410abb79f1a70c5075147e9a768124e
Author: David Spickett <david.spickett at linaro.org>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M compiler-rt/test/lsan/TestCases/malloc_zero.c
M compiler-rt/test/lsan/TestCases/realloc_too_big.c
Log Message:
-----------
[lsan] Mark 2 new lsan tests unsupported on arm-linux
These tests were added in:
1daa48f005bd477ba8711ecdf91a1f1515f01383
59e422c90bf4796fc73237e838d8954b4e2099b1
malloc_zero.c and realloc_too_big.c fail when only
leak sanitizer is enabled.
http://lab.llvm.org:8011/#/builders/59/builds/1635
(also in an armv8 32 bit build)
(I would XFAIL them but the same test is run with
address and leak sanitizer enabled and that one does
pass)
Commit: 2cb8c10342ee5d040725abb1166feb92a64c7df6
https://github.com/llvm/llvm-project/commit/2cb8c10342ee5d040725abb1166feb92a64c7df6
Author: Dávid Bolvanský <david.bolvansky at gmail.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M clang/lib/CodeGen/CodeGenFunction.cpp
M clang/test/CodeGen/aarch64-neon-ldst-one.c
M clang/test/CodeGen/aarch64-neon-scalar-x-indexed-elem.c
M clang/test/CodeGen/aarch64-poly128.c
M clang/test/CodeGen/aarch64-poly64.c
M clang/test/CodeGenCXX/dllexport-ctor-closure.cpp
M clang/test/CodeGenCXX/dllexport.cpp
Log Message:
-----------
Revert "Reduce the number of attributes attached to each function"
This reverts commit 053dc95839b3b8a36db46f8c419e36e632e989cd. It causes perf regressions - see discussion in D97116.
Commit: a1a372dfb526d916edda40d85ebd0d96537b8391
https://github.com/llvm/llvm-project/commit/a1a372dfb526d916edda40d85ebd0d96537b8391
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
Log Message:
-----------
[AMDGPU] SIFoldOperands: remove an unneeded isReg check. NFC.
Commit: e184eeaa3ba124722684dcaece92e712f2484d9b
https://github.com/llvm/llvm-project/commit/e184eeaa3ba124722684dcaece92e712f2484d9b
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/test/CodeGen/AMDGPU/fold-cndmask-wave32.mir
M llvm/test/CodeGen/AMDGPU/fold-cndmask.mir
M llvm/test/CodeGen/AMDGPU/fold-operands-order.mir
M llvm/test/CodeGen/AMDGPU/fold-readlane.mir
Log Message:
-----------
[AMDGPU] Add some implicit uses to tests. NFC.
This is just to stop a future patch from optimizing away the things that
we actually want to check for.
Commit: e10493eb5012a2c313471489646bde9595ea06c0
https://github.com/llvm/llvm-project/commit/e10493eb5012a2c313471489646bde9595ea06c0
Author: Stephen Tozer <Stephen.Tozer at Sony.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
A llvm/test/CodeGen/X86/dbg-list-dependencies.ll
Log Message:
-----------
[DebugInfo] Correctly track SDNode dependencies for list debug values
During SelectionDAG, we must track the SDNodes that each SDDbgValue depends on
to compute its value. These are ultimately derived from the location operands to
the SDDbgValue, but were stored in a separate vector prior to this patch. This
resulted in cases where one of the lists was updated incorrectly, resulting in
crashes during compilation. This patch fixes the issue by directly recomputing
the dependency list from the SDDbgOperands in getDependencies().
Differential Revision: https://reviews.llvm.org/D99423
Commit: 2690d4d45a63ecee224a0dce1a5fd557b140df51
https://github.com/llvm/llvm-project/commit/2690d4d45a63ecee224a0dce1a5fd557b140df51
Author: Arjun P <arjunpitchanathan at gmail.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M mlir/lib/Analysis/AffineStructures.cpp
M mlir/lib/Analysis/LinearTransform.cpp
M mlir/unittests/Analysis/AffineStructuresTest.cpp
Log Message:
-----------
[MLIR] Support symbols in emptiness checks for FlatAffineConstraints
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D100114
Commit: 050a7a27ca844a912e46cdfeed7a472847ad0bc9
https://github.com/llvm/llvm-project/commit/050a7a27ca844a912e46cdfeed7a472847ad0bc9
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M lld/MachO/Config.h
M lld/MachO/Driver.cpp
M lld/MachO/LTO.cpp
M lld/MachO/Options.td
A lld/test/MachO/thinlto-jobs.ll
Log Message:
-----------
[lld-macho] Support --thinlto-jobs
The test is loosely based off LLD-ELF's `thinlto.ll`. However, I
found that test questionable because the the -save_temps behavior it
checks for is identical regardless of whether we are running in single-
or multi-threaded mode. I tried writing a test based on `--time-trace`
but couldn't get it to run deterministically... so I've opted to just
skip checking that behavior for now.
Reviewed By: #lld-macho, gkm
Differential Revision: https://reviews.llvm.org/D99356
Commit: 3f6753efe1990a928ed120bd907940a9fb3e2fc3
https://github.com/llvm/llvm-project/commit/3f6753efe1990a928ed120bd907940a9fb3e2fc3
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M lld/test/MachO/abs-symbols.s
Log Message:
-----------
[lld-macho][nfc] Extend abs-symbol.s to test for local absolute symbols
Addresses an old TODO.
Reviewed By: #lld-macho, oontvoo
Differential Revision: https://reviews.llvm.org/D100082
Commit: f08a2fc09e7547c2cfeccc13f5968aada98fb4b7
https://github.com/llvm/llvm-project/commit/f08a2fc09e7547c2cfeccc13f5968aada98fb4b7
Author: Andrew Savonichev <andrew.savonichev at gmail.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-0-single-add.s
A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-1-add-seq.s
A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-10-fma.s
A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-11-fma-mix.s
A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-2-skewed-alu.s
A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-3-mul.s
A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-4-sdiv.s
A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-5-mul-sdiv.s
A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-6-mul.s
A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-7-cmp.s
A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-8-ldr.s
A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-9-fabs.s
Log Message:
-----------
[MCA] Add tests for IPC on Cortex-A55
The tests compare IPC statistics that MCA provides with IPC values
measured on Cortex-A55 hardware. For hardware tests, each snippet is
run in a loop unrolled by 1000, and IPC is measured by linux-perf.
Several tests do not match the hardware: the skewed ALU is not
supported, LDR seem to be missing a forwarding path.
Differential Revision: https://reviews.llvm.org/D98174
Commit: bcb8ef2d5a8ba4cea44bb39a856ba3ef88c8c2f7
https://github.com/llvm/llvm-project/commit/bcb8ef2d5a8ba4cea44bb39a856ba3ef88c8c2f7
Author: Yuanfang Chen <yuanfang.chen at sony.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/utils/abtest.py
Log Message:
-----------
abtest.py: support bisection based on a response file
Also makes LINK_TEST customizable from commandline with `--test` option.
Commit: a345419ee03095c8cdfbe1c2728467c4da8fa0a4
https://github.com/llvm/llvm-project/commit/a345419ee03095c8cdfbe1c2728467c4da8fa0a4
Author: Michał Górny <mgorny at moritz.systems>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
A lldb/include/lldb/Host/linux/Host.h
M lldb/source/Host/linux/Host.cpp
M lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp
M lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.h
M lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD.h
M lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.cpp
M lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.h
M lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_x86_64.cpp
M lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_x86_64.h
M lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
M lldb/source/Plugins/Process/Linux/NativeProcessLinux.h
M lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp
M lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h
M lldb/test/API/functionalities/gdb_remote_client/TestMultiprocess.py
A lldb/test/Shell/Subprocess/Inputs/fork.cpp
A lldb/test/Shell/Subprocess/clone-follow-parent-wp.test
A lldb/test/Shell/Subprocess/clone-follow-parent.test
A lldb/test/Shell/Subprocess/fork-follow-parent-wp.test
A lldb/test/Shell/Subprocess/fork-follow-parent.test
A lldb/test/Shell/Subprocess/vfork-follow-parent-wp.test
A lldb/test/Shell/Subprocess/vfork-follow-parent.test
Log Message:
-----------
[lldb] [Process] Watch for fork/vfork notifications
Watch for fork(2)/vfork(2) (also fork/vfork-style clone(2) on Linux)
notifications and explicitly detach the forked child process, and add
initial tests for these cases. The code covers FreeBSD, Linux
and NetBSD process plugins. There is no new user-visible functionality
provided -- this change lays foundations over subsequent work on fork
support.
Differential Revision: https://reviews.llvm.org/D98822
Commit: 1b589172bd19b83e8137185ed11f50bba06e8766
https://github.com/llvm/llvm-project/commit/1b589172bd19b83e8137185ed11f50bba06e8766
Author: Stephen Tozer <Stephen.Tozer at Sony.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
R llvm/test/CodeGen/X86/dbg-list-dependencies.ll
Log Message:
-----------
Revert "[DebugInfo] Correctly track SDNode dependencies for list debug values"
Reverted due to failure on the sanitizer-x86_64-linux-fast bot.
This reverts commit e10493eb5012a2c313471489646bde9595ea06c0.
Commit: 4b958dd6bccab386be432cac99332b867ab9ee22
https://github.com/llvm/llvm-project/commit/4b958dd6bccab386be432cac99332b867ab9ee22
Author: Valeriy Savchenko <vsavchenko at apple.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M clang/lib/StaticAnalyzer/Core/SValBuilder.cpp
A clang/test/Analysis/PR47511.cpp
Log Message:
-----------
[analyzer] Fix crash on spaceship operator (PR47511)
rdar://68954187
Differential Revision: https://reviews.llvm.org/D99181
Commit: 663ac91ed1d6156e848e5f5f00cd7e7dd6cf867f
https://github.com/llvm/llvm-project/commit/663ac91ed1d6156e848e5f5f00cd7e7dd6cf867f
Author: Valeriy Savchenko <vsavchenko at apple.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp
M clang/test/Analysis/inner-pointer.cpp
Log Message:
-----------
[analyzer] Fix false positives in inner pointer checker (PR49628)
This patch supports std::data and std::addressof functions.
rdar://73463300
Differential Revision: https://reviews.llvm.org/D99260
Commit: 151752ab2082b9b4c2f1c33f2de01120060532c6
https://github.com/llvm/llvm-project/commit/151752ab2082b9b4c2f1c33f2de01120060532c6
Author: Lei Zhang <antiagainst at google.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M mlir/test/Dialect/Linalg/tile-and-fuse-tensors.mlir
Log Message:
-----------
[mlir][linalg] Fix loop upper bounds in conv fusion test
Reviewed By: mravishankar
Differential Revision: https://reviews.llvm.org/D100112
Commit: b68545acf9771b6b205647b8028d9e042ede8838
https://github.com/llvm/llvm-project/commit/b68545acf9771b6b205647b8028d9e042ede8838
Author: Sushma Unnibhavi <sushmaunnibhavi425 at gmail.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M lldb/docs/use/tutorial.rst
Log Message:
-----------
[lldb] Improve the documentation (#42017)
Added punctuation and changed "So for instance" to "For instance".
Fixes https://llvm.org/PR42017
Differential revision: https://reviews.llvm.org/D100053
Commit: 3f919ff25013d417ea050019154d28b2d7492f6b
https://github.com/llvm/llvm-project/commit/3f919ff25013d417ea050019154d28b2d7492f6b
Author: Paul C. Anagnostopoulos <paul at windfall.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/docs/TableGen/ProgRef.rst
M llvm/include/llvm/TableGen/Record.h
M llvm/lib/TableGen/Record.cpp
M llvm/lib/TableGen/TGParser.cpp
M llvm/lib/TableGen/TGParser.h
M llvm/test/TableGen/assert.td
Log Message:
-----------
Revert "[TableGen] Add support for the 'assert' statement in multiclasses"
This reverts commit 3b9a15d910a8c748b1444333a4a3905a996528bc.
Commit: d01bff8cbdc98fb8751f7bf10af19b47ae5c445d
https://github.com/llvm/llvm-project/commit/d01bff8cbdc98fb8751f7bf10af19b47ae5c445d
Author: Michał Górny <mgorny at moritz.systems>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M lldb/test/Shell/Subprocess/clone-follow-parent-wp.test
M lldb/test/Shell/Subprocess/clone-follow-parent.test
Log Message:
-----------
[lldb] [test] Skip clone() tests on Linux/aarch64
Commit: c23b92acd0654bd63942fd70d39c7955354ba3f6
https://github.com/llvm/llvm-project/commit/c23b92acd0654bd63942fd70d39c7955354ba3f6
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M lld/MachO/Config.h
M lld/MachO/Driver.cpp
M lld/MachO/Options.td
M lld/MachO/SyntheticSections.cpp
A lld/test/MachO/add-ast-path.s
Log Message:
-----------
[lld-macho] Support -add_ast_path
Swift builds seem to use it. All it requires is emitting the
corresponding paths as STABS.
Fixes llvm.org/PR49385.
Reviewed By: clayborg
Differential Revision: https://reviews.llvm.org/D100076
Commit: c2e76a9a6dcc09434d47ba9217fa02d997c2401d
https://github.com/llvm/llvm-project/commit/c2e76a9a6dcc09434d47ba9217fa02d997c2401d
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M lld/MachO/Driver.cpp
Log Message:
-----------
[lld-macho][nfc] Use varargs form of hasArg()
Commit: 5f0ac1ef78880f233dea2070ab55894c6bd2690c
https://github.com/llvm/llvm-project/commit/5f0ac1ef78880f233dea2070ab55894c6bd2690c
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Analysis/CallGraph.cpp
R llvm/test/Analysis/CallGraph/ignore-llvm-used.ll
A llvm/test/Analysis/CallGraph/llvm-used.ll
Log Message:
-----------
Set IgnoreLLVMUsed to false in CallGraph::addToCallGraph()
clang++ uses llvm.compiler.used in certain cases to preserve
symbol which is fully inlined. D96087 has resulted in undefined
symbols in such cases. Set it to false by default to preserve
old behavior but keep the option for specific uses where we
want to ignore these (e.g. to detect a potential indirect call
to a function).
Differential Revision: https://reviews.llvm.org/D99897
Commit: 02ef9963e1ad1e6ded539c830861a074b879dc70
https://github.com/llvm/llvm-project/commit/02ef9963e1ad1e6ded539c830861a074b879dc70
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M clang/include/clang/Basic/BuiltinsRISCV.def
M clang/lib/Basic/Targets/RISCV.cpp
M clang/lib/Basic/Targets/RISCV.h
M clang/lib/Sema/SemaChecking.cpp
A clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbb-error.c
Log Message:
-----------
[RISCV] Prevent __builtin_riscv_orc_b_64 from being compiled RV32 target.
The backend can't handle this and will throw a fatal error from
type legalization. It's easy enough to fix that for this intrinsic
by just splitting the IR intrinsic since it works on individual bytes.
There will be other intrinsics in the future that would be harder
to support through splitting, for example grev, gorc, and shfl. Those
would require a compare and a select be inserted to check the MSB of
their control input.
This patch adds support for preventing this in the frontend with
a nice diagnostic.
Reviewed By: frasercrmck
Differential Revision: https://reviews.llvm.org/D99984
Commit: c52dbdbc33b998e43edbc21b6c150bda5f5516a2
https://github.com/llvm/llvm-project/commit/c52dbdbc33b998e43edbc21b6c150bda5f5516a2
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/test/Transforms/InstCombine/minmax-intrinsics.ll
Log Message:
-----------
[InstCombine] add tests for min/max with negated operand; NFC
Commit: 5094e1279eb2e168bf6818b368bf6ff4835de2bc
https://github.com/llvm/llvm-project/commit/5094e1279eb2e168bf6818b368bf6ff4835de2bc
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/minmax-intrinsics.ll
Log Message:
-----------
[InstCombine] fold min/max intrinsic with negated operand to abs
The smax case shows up in https://llvm.org/PR49885 .
The others seem unlikely, but we might as well try
for uniformity (although that could mean an extra
instruction to create "nabs").
smax -- https://alive2.llvm.org/ce/z/8yYaGy
smin -- https://alive2.llvm.org/ce/z/0_7zc_
umax -- https://alive2.llvm.org/ce/z/EcsZWs
umin -- https://alive2.llvm.org/ce/z/Xw6WvB
Commit: 461b554999811ca76cb252a0ed8e14f0b8b86e1a
https://github.com/llvm/llvm-project/commit/461b554999811ca76cb252a0ed8e14f0b8b86e1a
Author: Levy Hsu <admin at levyhsu.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
M llvm/test/MC/RISCV/rv32b-aliases-valid.s
M llvm/test/MC/RISCV/rv64b-aliases-valid.s
Log Message:
-----------
[RISCV] Add InstAlias for Zbb Zbp and Zbs extension
Add InstAlias that allows the last operand to be an imm for following instructions:
1. Zbb or Zbp:
- ror
- rorw (RV64 Only)
2. Zbs
- best
- bclr
- binv
- bext
Reviewed By: craig.topper, jrtc27
Differential Revision: https://reviews.llvm.org/D100083
Commit: ce2db9005d701ffbd786f395ff8065ca9fdadea9
https://github.com/llvm/llvm-project/commit/ce2db9005d701ffbd786f395ff8065ca9fdadea9
Author: Congzhe Cao <congzhe.cao at huawei.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
M llvm/test/Transforms/LoopInterchange/lcssa-preheader.ll
A llvm/test/Transforms/LoopInterchange/outer-header-jump-to-inner-latch.ll
Log Message:
-----------
[LoopInterchange] Fix transformation bugs in loop interchange
After loop interchange, the (old) outer loop header should not jump to
the `LoopExit`. Note that the old outer loop becomes the new inner loop
after interchange. If we branched to `LoopExit` then after interchange
we would jump directly from the (new) inner loop header to `LoopExit`
without executing the rest of outer loop.
This patch modifies adjustLoopBranches() such that the old outer
loop header (which becomes the new inner loop header) jumps to the
old inner loop latch which becomes the new outer loop latch after
interchange.
Reviewed By: bmahjour
Differential Revision: https://reviews.llvm.org/D98475
Commit: 04e9cd09c888fdb14a40289808859c63985a476b
https://github.com/llvm/llvm-project/commit/04e9cd09c888fdb14a40289808859c63985a476b
Author: Wouter van Oortmerssen <aardappel at gmail.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
M llvm/test/CodeGen/WebAssembly/load-store-pic.ll
Log Message:
-----------
[WebAssembly] Fix for PIC external symbol ISEL
wasm64 was missing DAG ISEL patterns for external symbol based global.get, but simply adding these analogous to the existing 32-bit versions doesn't work.
This is because we are conflating the 32-bit global index with the pointer represented by the external symbol, which for wasm32 happened to work.
The simplest fix is to pretend we have a 64-bit global index. This sounds incorrect, but is immaterial since once this index is stored as a MachineOperand it becomes 64-bit anyway (and has been all along). As such, the EmitInstrWithCustomInserter based implementation I experimented with become a no-op and no further changes in the C++ code are required.
Differential Revision: https://reviews.llvm.org/D99904
Commit: c3614358452e5050b5b191fd3df3fad8b2664221
https://github.com/llvm/llvm-project/commit/c3614358452e5050b5b191fd3df3fad8b2664221
Author: Hanhan Wang <hanchung at google.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M mlir/include/mlir/Dialect/SPIRV/Transforms/SPIRVConversion.h
M mlir/lib/Conversion/StandardToSPIRV/StandardToSPIRV.cpp
M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp
M mlir/test/Conversion/StandardToSPIRV/std-ops-to-spirv.mlir
M mlir/test/Conversion/StandardToSPIRV/std-types-to-spirv.mlir
Log Message:
-----------
[mlir][StandardToSPIRV] Handle i1 case for lowering memref.load/store op
This patch unconditionally converts i1 types to i8 types on memrefs. If the
extensions or capabilities are not met, they will be converted to i32. Hence the
logic in IntLoadPattern and IntStorePattern are also updated.
Also added the implementation of SPIRVTypeConverter::getOptions().
Reviewed By: antiagainst
Differential Revision: https://reviews.llvm.org/D99724
Commit: 3a4c0354b6eb5484b9b0cff6f6a7df982b49414e
https://github.com/llvm/llvm-project/commit/3a4c0354b6eb5484b9b0cff6f6a7df982b49414e
Author: Arnamoy Bhattacharyya <arnamoy.bhattacharyya at huawei.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/test/Semantics/omp-do05.f90
M flang/test/Semantics/omp-nested01.f90
M flang/test/Semantics/omp-reduction07.f90
Log Message:
-----------
[flang][OpenMP] Add functionality to check "close nesting" of regions, which can be used for Semantic checks. Also adding more test cases.
Reviewed By: kiranchandramohan
Differential Revision: https://reviews.llvm.org/D99970
Commit: d5085617986e8ceabe7af02eb9c50f5350b3f980
https://github.com/llvm/llvm-project/commit/d5085617986e8ceabe7af02eb9c50f5350b3f980
Author: Xiangling Liao <Xiangling.Liao at ibm.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M clang/lib/CodeGen/CGDeclCXX.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/CodeGen/CodeGenModule.h
M clang/lib/CodeGen/ItaniumCXXABI.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/test/CodeGen/aix-init-priority-attribute.cpp
Log Message:
-----------
[AIX] Support init priority attribute
Differential Revision: https://reviews.llvm.org/D99291
Commit: 189310a140fa1c33f8f4838560f567bab9e99245
https://github.com/llvm/llvm-project/commit/189310a140fa1c33f8f4838560f567bab9e99245
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M clang/docs/ClangCommandLineReference.rst
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/fp64-atomics-gfx90a.ll
M llvm/test/CodeGen/AMDGPU/global-atomics-fp.ll
Log Message:
-----------
[AMDGPU] Allow -amdgpu-unsafe-fp-atomics to ignore denorm mode
Fixes: SWDEV-274276
Differential Revision: https://reviews.llvm.org/D100072
Commit: 59a2f67011ba84a0a72fc97af1ee2bebb2832c16
https://github.com/llvm/llvm-project/commit/59a2f67011ba84a0a72fc97af1ee2bebb2832c16
Author: Nikita Popov <nikita.ppv at gmail.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopRotation.cpp
M llvm/test/CodeGen/AMDGPU/opt-pipeline.ll
M llvm/test/Other/opt-O2-pipeline.ll
M llvm/test/Other/opt-O3-pipeline-enable-matrix.ll
M llvm/test/Other/opt-O3-pipeline.ll
M llvm/test/Other/opt-Os-pipeline.ll
M llvm/test/Other/pass-pipelines.ll
Log Message:
-----------
[LoopRotate] Don't split loop pass manager
After D99249 we use three different loop pass managers for LICM,
LoopRotate and LICM+LoopUnswitch. This happens because LazyBFI
and LazyBPI are not preserved by LoopRotate (note that D74640
is no longer needed). Avoid this by marking them as preserved.
My understanding of D86156 is that it is okay to simply preserve
them (which LoopUnswitch already does for the same reason) and
rely on callbacks to deal with deleted blocks.
Differential Revision: https://reviews.llvm.org/D99843
Commit: dd453a1389b6a7e6d9214b449d3c54981b1a89b6
https://github.com/llvm/llvm-project/commit/dd453a1389b6a7e6d9214b449d3c54981b1a89b6
Author: Jason Molenda <jason at molenda.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M lldb/include/lldb/Target/Process.h
M lldb/source/Target/LanguageRuntime.cpp
M lldb/source/Target/Process.cpp
M lldb/source/Target/TargetProperties.td
Log Message:
-----------
Add setting to disable LanguageRuntime UnwindPlans
When debugging LanguageRuntime unwindplans, it can be
helpful to disable their use and see the normal
stack walk. Add a setting for this.
Differential Revision: https://reviews.llvm.org/D99828
Commit: 627dab3dbfc9f0c38363c5c2b6d8ce1b22395ae5
https://github.com/llvm/llvm-project/commit/627dab3dbfc9f0c38363c5c2b6d8ce1b22395ae5
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/GCNRegBankReassign.cpp
M llvm/test/CodeGen/AMDGPU/regbank-reassign.mir
Log Message:
-----------
[AMDGPU] Check for all meta instrs in GCNRegBankReassign
It used to work correctly even with a KILL, but there is
no reason to consider meta instructions since they do not
create real HW uses.
Differential Revision: https://reviews.llvm.org/D100135
Commit: 4fae63c612a7b6c4a777224f53edddb9c9c0b810
https://github.com/llvm/llvm-project/commit/4fae63c612a7b6c4a777224f53edddb9c9c0b810
Author: Konstantin Zhuravlyov <kzhuravl_dev at outlook.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/docs/AMDGPUUsage.rst
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
A llvm/test/CodeGen/AMDGPU/tid-code-object-v2-backwards-compatibility.ll
Log Message:
-----------
AMDGPU: Add gfx90c support to code object v2 for backwards compatibility
Differential Revision: https://reviews.llvm.org/D100126
Commit: 5ca168b0321136930fc4f1b6ba858996963a24c2
https://github.com/llvm/llvm-project/commit/5ca168b0321136930fc4f1b6ba858996963a24c2
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/unittests/FileCheck/FileCheckTest.cpp
Log Message:
-----------
[FileCheck, test] Rename checkWildcardRegexCharMatchFailure
Proposed edit https://reviews.llvm.org/D97845#inline-922769 in D97845
suggests the checkWildcardRegexCharMatchFailure function name is
misleading because it is not clear it checks for a match failure on each
character in the string parameter. This commit renames it to an
hopefully clearer name.
Reviewed By: jdenny
Differential Revision: https://reviews.llvm.org/D98343
Commit: f66e05a720f74409790bdede308380909f2ecd86
https://github.com/llvm/llvm-project/commit/f66e05a720f74409790bdede308380909f2ecd86
Author: Dan Liew <dliew at apple.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M clang/cmake/caches/Apple-stage2.cmake
Log Message:
-----------
Include `count` in AppleClang toolchains.
The motivation here is so we can run the compiler-rt tests
from a standalone build against AppleClang.
In particular the `Posix/halt_on_error-torture.cpp` and
`Posix/halt_on_error_suppress_equal_pcs.cpp` ASan test cases currently
require this binary for the tests to pass.
rdar://76366784
Differential Revision: https://reviews.llvm.org/D100087
Commit: c5d1ccbcdfb11c29c89a2789ac1e89cf4b270be7
https://github.com/llvm/llvm-project/commit/c5d1ccbcdfb11c29c89a2789ac1e89cf4b270be7
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h
M llvm/lib/Analysis/InstructionPrecedenceTracking.cpp
M llvm/lib/Transforms/Scalar/GVN.cpp
A llvm/test/Transforms/GVN/simplify-icf-cache-invalidation.ll
Log Message:
-----------
[GVN] Properly invalidate ICF cache when we simplify a value
This fixes a "Cached first special instruction is wrong!" assert.
The assert fires because replacing a value with another can cause an
instruction to no longer be "special" to ICF. In this case,
devirtualization happened, turning an indirect call to a
call to a willreturn function which is no longer special.
Reviewed By: nikic, rnk
Differential Revision: https://reviews.llvm.org/D99977
Commit: 35393c865c2cb1afbf1315a9d48ac41994cd1344
https://github.com/llvm/llvm-project/commit/35393c865c2cb1afbf1315a9d48ac41994cd1344
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
M llvm/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll
M llvm/test/CodeGen/AMDGPU/inline-attr.ll
M llvm/test/Transforms/FunctionAttrs/nofree.ll
M llvm/test/Transforms/FunctionAttrs/nosync.ll
M llvm/test/Transforms/FunctionAttrs/operand-bundles-scc.ll
M llvm/test/Transforms/FunctionAttrs/read-write-scc.ll
M llvm/test/Transforms/InferFunctionAttrs/norecurse_debug.ll
Log Message:
-----------
[funcattrs] Infer nosync from instruction walk
Pretty straightforward use of existing infrastructure and port of the attributor inference rules for nosync.
A couple points of interest:
* I deliberately switched from "monotonic or better" to "unordered or better". This is simply me being conservative and is better in line with the rest of the optimizer. We treat monotonic conservatively pretty much everywhere.
* The operand bundle test change is suspicious. It looks like we might have missed something here, but if so, it's an issue with the existing nofree inference as well. I'm going to take a closer look at that separately.
* I needed to keep the previous inference from readnone. This surprised me, but made sense once I realized readonly inference goes to lengths to reason about local vs non-local memory and that writes to local memory are okay. This is fine for the purpose of nosync, but would e.g. prevent us from inferring nofree from readnone - which is slightly surprising.
Differential Revision: https://reviews.llvm.org/D99769
Commit: ab124bbe2a7c59cf23da5728dc239aba6f1efabe
https://github.com/llvm/llvm-project/commit/ab124bbe2a7c59cf23da5728dc239aba6f1efabe
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/X86/several_store_chains.ll
Log Message:
-----------
[SLP]Fix PR49898: Infinite loop in SLP vectorizer.
We should not re-try attempt of finding of the consecutive store chain
if it was tried before.
Differential Revision: https://reviews.llvm.org/D100131
Commit: e761b6b4c58d4f7ae1073d925d7cb321d68ee93a
https://github.com/llvm/llvm-project/commit/e761b6b4c58d4f7ae1073d925d7cb321d68ee93a
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M lldb/test/Shell/Subprocess/vfork-follow-parent-wp.test
Log Message:
-----------
[lldb] (Temporarily) disable vfork-follow-parent-wp.test on Darwin
The test is failing on GreenDragon. Pinged Michał in D98822.
Commit: ac347a8a0fb40d351789209aba834e4e70b3614f
https://github.com/llvm/llvm-project/commit/ac347a8a0fb40d351789209aba834e4e70b3614f
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
Log Message:
-----------
[RISCV] Remove empty string after 'defm' at top level of vector .td files. NFC
This doesn't do anything so it's just wasted characters. I have
other plans for the ones in multiclasses.
Commit: 872931e5d8572aadd3827c6e746ff2043f083d2e
https://github.com/llvm/llvm-project/commit/872931e5d8572aadd3827c6e746ff2043f083d2e
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
Log Message:
-----------
[RISCV] Use multiclass inheritance where possible for the VPat* multiclasses in RISVInstrInfoVPseudos. NFCI
Instead of instantiating multiclasses inside multiclasses, just
inherit from them.
We can do the same for the VPseudo* multiclasses, but that may
interfere with the scheduler class work.
Commit: a7b51d8a4fc86459733d1e390e51236877ba02f4
https://github.com/llvm/llvm-project/commit/a7b51d8a4fc86459733d1e390e51236877ba02f4
Author: Leonard Chan <leonardchan at google.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M compiler-rt/lib/hwasan/hwasan_new_delete.cpp
Log Message:
-----------
[compiler-rt][hwasan] Add C++17 new/delete operators with alignment
Differential Revision: https://reviews.llvm.org/D99368
Commit: 2f181086b5cbbe83c4492aa44484a77ed06ec812
https://github.com/llvm/llvm-project/commit/2f181086b5cbbe83c4492aa44484a77ed06ec812
Author: Nikita Kniazev <kniazev.nikita at gmail.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M clang/docs/LibASTMatchersReference.html
M clang/include/clang/ASTMatchers/ASTMatchers.h
M clang/lib/ASTMatchers/ASTMatchersInternal.cpp
M clang/lib/ASTMatchers/Dynamic/Registry.cpp
M clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp
M clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
M clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp
Log Message:
-----------
[ASTMatchers] Add `cxxBaseSpecifier` matcher (non-top-level)
Required for capturing base specifier in matchers:
`cxxRecordDecl(hasDirectBase(cxxBaseSpecifier().bind("base")))`
Reviewed By: steveire, aaron.ballman
Differential Revision: https://reviews.llvm.org/D69218
Commit: 38b106f6815716db4757a813d28ba4649d083c14
https://github.com/llvm/llvm-project/commit/38b106f6815716db4757a813d28ba4649d083c14
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
Log Message:
-----------
Improve error message when tring to export to LLVM IR with a dialect missing the interface
Dialects can be translated to LLVM IR when they have the
LLVMTranslationDialectInterface interface registered. In case the
interface isn't explicitly registered, even the LLVM dialect can't be
exported to LLVM IR. This make the error message more explicit on this.
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D96729
Commit: 429088b9e214b2f39f6063a6b3639560fc7db47b
https://github.com/llvm/llvm-project/commit/429088b9e214b2f39f6063a6b3639560fc7db47b
Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/include/llvm/Support/FileSystem.h
M llvm/lib/Support/FileOutputBuffer.cpp
M llvm/unittests/Support/Path.cpp
Log Message:
-----------
Support: Extract fs::resize_file_before_mapping_readwrite from FileOutputBuffer
Add a variant of `fs::resize_file` for use immediately before opening a
file with `mapped_file_region::readwrite`. On Windows, `_chsize`
(`ftruncate`) is slow, but `CreateFileMapping` (`mmap`) automatically
extends the file so the call to `fs::resize_file` can be skipped.
This optimization was added to `FileOutputBuffer` in
da9bc2e56d5a5c6332a9def1a0065eb399182b93; this commit just extracts the
logic out and adds a unit test.
Differential Revision: https://reviews.llvm.org/D95490
Commit: 022ccedde8877e877b45e49641544b5e4fff0b42
https://github.com/llvm/llvm-project/commit/022ccedde8877e877b45e49641544b5e4fff0b42
Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/include/llvm/Support/Signposts.h
M llvm/lib/Support/Signposts.cpp
Log Message:
-----------
Support: Use std::unique_ptr for SignpostEmitter::Impl, NFC
Replace some manual memory management with std::unique_ptr.
Differential Revision: https://reviews.llvm.org/D100151
Commit: bf12b711f9ec322fd7fabb6919d975665df32b29
https://github.com/llvm/llvm-project/commit/bf12b711f9ec322fd7fabb6919d975665df32b29
Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Support/Signposts.cpp
Log Message:
-----------
Support: Drop the no-op initializer for SignpostEmitterImpl::Signposts, NFC
This is a DenseMap, which has its own initializer; we don't need to explicitly
call the default constructor here.
Differential Revision: https://reviews.llvm.org/D100152
Commit: 9be43874343b0aa2221497830d0356eb4b7eecfa
https://github.com/llvm/llvm-project/commit/9be43874343b0aa2221497830d0356eb4b7eecfa
Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Support/Signposts.cpp
Log Message:
-----------
Support: Avoid unnecessary std::function for SignpostEmitterImpl::SignpostLog
The destructor for SignPostEmitterImpl::SignpostLog is known statically. Avoid
the unnecessary vtable indirection through std::function in the std::unique_ptr
by turning LogDeleter into a struct. No real functionality change here.
Differential Revision: https://reviews.llvm.org/D100154
Commit: 078072285d3fbdaa94f9a91140eb5c1223b548af
https://github.com/llvm/llvm-project/commit/078072285d3fbdaa94f9a91140eb5c1223b548af
Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/include/llvm/Support/Signposts.h
M llvm/lib/Support/Signposts.cpp
Log Message:
-----------
Revert "Support: Use std::unique_ptr for SignpostEmitter::Impl, NFC"
This reverts commit 022ccedde8877e877b45e49641544b5e4fff0b42. Looks like
some hosts need a definition of SignpostEmitterImpl to put it in a
unique_ptr:
https://lab.llvm.org/buildbot/#/builders/92/builds/7733
Commit: e7ed5c920db3f537a85d962c1c918a1bb6de99fd
https://github.com/llvm/llvm-project/commit/e7ed5c920db3f537a85d962c1c918a1bb6de99fd
Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/include/llvm/Support/Signposts.h
M llvm/lib/Support/Signposts.cpp
Log Message:
-----------
Revert "Revert "Support: Use std::unique_ptr for SignpostEmitter::Impl, NFC""
This reverts commit 078072285d3fbdaa94f9a91140eb5c1223b548af, reapplying
022ccedde8877e877b45e49641544b5e4fff0b42.
I figured out why this was failing in other environments: it's not a
problem with std::unique_ptr, but that SignpostEmitterImpl only has a
forward declaration. Adding an empty definition should do the trick.
Original commit message:
Replace some manual memory management with std::unique_ptr.
Differential Revision: https://reviews.llvm.org/D100151
Commit: e35afbe535f96086141f57a5ce7d679429b4405f
https://github.com/llvm/llvm-project/commit/e35afbe535f96086141f57a5ce7d679429b4405f
Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/include/llvm/Support/Signposts.h
M llvm/lib/Support/Signposts.cpp
Log Message:
-----------
Revert "Revert "Revert "Support: Use std::unique_ptr for SignpostEmitter::Impl, NFC"""
This reverts commit e7ed5c920db3f537a85d962c1c918a1bb6de99fd again, due
to more buildbot failures:
https://lab.llvm.org/buildbot/#/builders/131/builds/8191
Commit: 6dc432510f29bc7e4cf7b0dfbffdd19443295cc8
https://github.com/llvm/llvm-project/commit/6dc432510f29bc7e4cf7b0dfbffdd19443295cc8
Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/include/llvm/Support/Signposts.h
M llvm/lib/Support/Signposts.cpp
Log Message:
-----------
Support: Use std::unique_ptr for SignpostEmitter::Impl, NFC, 3rd attempt
This reverts commit e35afbe535f96086141f57a5ce7d679429b4405f, reapplying
022ccedde8877e877b45e49641544b5e4fff0b42 and
e7ed5c920db3f537a85d962c1c918a1bb6de99fd.
- The first attempt missed defining `SignpostEmitterImpl`.
- The second attempt missed defining `llvm::SignpostEmitterImpl`.
Not sure how I failed to test both versions locally before; I thought
I'd turned the feature off via rerunning `cmake` but it must have been
stuck in place. This time I confirmed via `clang -E` that I was testing
both build configurations.
Original commit message:
Replace some manual memory management with std::unique_ptr.
Differential Revision: https://reviews.llvm.org/D100151
Commit: 12ffc260678dd2a4ce0fbfba562bfd1af9fe8efe
https://github.com/llvm/llvm-project/commit/12ffc260678dd2a4ce0fbfba562bfd1af9fe8efe
Author: Weiwei Li <weiwei.li1 at huawei.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVImageOps.td
M mlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
M mlir/test/Dialect/SPIRV/IR/image-ops.mlir
M mlir/test/Target/SPIRV/image-ops.mlir
Log Message:
-----------
[mlir][spirv] Define spv.ImageDrefGather operation
This patch doesn't support the optional operands of ImageDrefGather. The support of optional operands will be implemented later.
co-authered-by: Alan Liu <alanliu.yf at gmail.com>
Differential Revision: https://reviews.llvm.org/D100128
Commit: 8294019633b527f3c5d529e9ae2bac1d5af66361
https://github.com/llvm/llvm-project/commit/8294019633b527f3c5d529e9ae2bac1d5af66361
Author: David Blaikie <dblaikie at gmail.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp
Log Message:
-----------
Use default ref capture to avoid unused capture warning on assert-used variable
Commit: eb8a28e2cf033f2bfbfe33a0bd0d9e75a12e2679
https://github.com/llvm/llvm-project/commit/eb8a28e2cf033f2bfbfe33a0bd0d9e75a12e2679
Author: David Blaikie <dblaikie at gmail.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/test/CodeGenCXX/debug-info-template.cpp
Log Message:
-----------
DebugInfo: Include inline namespaces in template specialization parameter names
This ensures these types have distinct names if they are distinct types
(eg: if one is an instantiation with a type in one inline namespace, and
another from a type with the same simple name, but in a different inline
namespace).
Commit: 4a84b03eced28cf08636e45700d3c8594378f329
https://github.com/llvm/llvm-project/commit/4a84b03eced28cf08636e45700d3c8594378f329
Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/include/llvm/ADT/StringMapEntry.h
Log Message:
-----------
ADT: Sink the guts of StringMapEntry::Create into StringMapEntryBase
Sink the interesting parts of StringMapEntry::Create into a new function
StringMapEntryBase::allocateWithKey that's only templated on the
allocator, taking the entry size and alignment as parameters.
As dblaikie pointed out in the review, it'd be interesting as a
follow-up to make this more generic and maybe sink at least some of it
into a source file; I haven't done that yet myself, but I left behind an
encouraging comment.
Differential Revision: https://reviews.llvm.org/D95654
Commit: ceeb5b0f87a3f564026603c70d970eb7c1b6872e
https://github.com/llvm/llvm-project/commit/ceeb5b0f87a3f564026603c70d970eb7c1b6872e
Author: Rob Suderman <rob.suderman at gmail.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M mlir/include/mlir/Dialect/Linalg/IR/LinalgNamedStructuredOpsSpec.tc
M mlir/include/mlir/Dialect/StandardOps/EDSC/Intrinsics.h
M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
M mlir/test/Dialect/Linalg/generalize-named-ops.mlir
M mlir/test/Dialect/Linalg/named-ops.mlir
Log Message:
-----------
[mlir][tosa] Add tosa.max_pool2d lowering to linalg int max pooling additions
Lowerings tosa.max_pool2d to linalg equivalent operations. Includes
adding max pooling operations for linalg, with corresponding tests.
Differential Revision: https://reviews.llvm.org/D99824
Commit: f47a4c071376c32d970bb26fbfca5a2fb08c164e
https://github.com/llvm/llvm-project/commit/f47a4c071376c32d970bb26fbfca5a2fb08c164e
Author: Alex Orlov <aorlov at accesssoftek.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M lld/test/COFF/Inputs/pdb-type-server-invalid-path.yaml
M lld/test/COFF/Inputs/pdb-type-server-missing-2.yaml
M lld/test/COFF/Inputs/pdb-type-server-valid-signature.yaml
M lld/test/COFF/pdb-type-server-invalid-signature.yaml
M lld/test/COFF/pdb-type-server-missing.yaml
M lld/test/COFF/pdb-type-server-native-errors.yaml
M llvm/lib/DebugInfo/CodeView/Formatters.cpp
M llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp
M llvm/test/DebugInfo/PDB/DIA/pdbdump-flags.test
M llvm/test/DebugInfo/PDB/Native/pdb-native-summary.test
M llvm/test/DebugInfo/PDB/pdbdump-headers.test
M llvm/test/DebugInfo/PDB/pdbdump-readwrite.test
M llvm/test/DebugInfo/PDB/pdbdump-yaml.test
M llvm/test/ObjectYAML/CodeView/sections.yaml
M llvm/test/tools/llvm-pdbutil/explain-pdb-stream.test
M llvm/test/tools/llvm-pdbutil/stripped.test
Log Message:
-----------
[lld] Fixed CodeView GuidAdapter::format to handle GUID bytes in the right order.
This fixes https://bugs.llvm.org/show_bug.cgi?id=41712 bug.
Reviewed By: aganea
Differential Revision: https://reviews.llvm.org/D99978
Commit: 49c79e3b56448dbcd34aaf61e3678f7d6f5fcf80
https://github.com/llvm/llvm-project/commit/49c79e3b56448dbcd34aaf61e3678f7d6f5fcf80
Author: Jim Lin <tclin914 at gmail.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoA.td
Log Message:
-----------
[RISCV][NFC] Add explicit type i64 to RV64 only patterns.
Add explicit type i64 to RV64 only patterns to stop emitting unneeded i32 patterns.
It can reduce the isel table size.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D100089
Commit: ca55f0511698e5b64538e02eff9f6b2280282b15
https://github.com/llvm/llvm-project/commit/ca55f0511698e5b64538e02eff9f6b2280282b15
Author: Yang Fan <nullptr.cpp at gmail.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M clang/lib/Basic/SourceManager.cpp
Log Message:
-----------
[clang][SourceManager] Fix -Wparentheses warning (NFC)
GCC warning:
```
/llvm-project/clang/lib/Basic/SourceManager.cpp: In instantiation of ‘constexpr T likelyhasbetween(T, unsigned char, unsigned char) [with T = long unsigned int]’:
/llvm-project/clang/lib/Basic/SourceManager.cpp:1292:52: required from here
/llvm-project/clang/lib/Basic/SourceManager.cpp:1264:48: warning: suggest parentheses around ‘+’ in operand of ‘&’ [-Wparentheses]
1264 | (x & ~static_cast<T>(0) / 255 * 127) +
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
1265 | (~static_cast<T>(0) / 255 * (127 - (m - 1)))) &
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
Commit: d2e15a83a664ba6cdfa9d17e81ecc9115b2c5046
https://github.com/llvm/llvm-project/commit/d2e15a83a664ba6cdfa9d17e81ecc9115b2c5046
Author: Serguei Katkov <serguei.katkov at azul.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
Log Message:
-----------
[RS4GC] Cleanup meetBDVState. NFC.
meetBDVState looks pretty difficult to read and follow.
This is purely NFC but doing several things:
1) Combine meet and meetBDVState
2) Move the function to be a member of BDVState
3) Make BDVState be a mutable object
4) Convert switch to sequence of ifs
5) Adds comments.
Reviewers: reames, dantrushin
Reviewed By: reames
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D99064
Commit: 79cade52ed9406bd59936f51dc19f6f20f1fe352
https://github.com/llvm/llvm-project/commit/79cade52ed9406bd59936f51dc19f6f20f1fe352
Author: Esme-Yi <esme.yi at ibm.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/test/DebugInfo/XCOFF/dbx-inlinedstrings.ll
Log Message:
-----------
[debug-info][NFC] Set -mtriple to avoid the test failure under other targets.
Commit: 4c89bcadf6cae8320a1925eb9cbeb8c8c1f5f58b
https://github.com/llvm/llvm-project/commit/4c89bcadf6cae8320a1925eb9cbeb8c8c1f5f58b
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/LICM.cpp
A llvm/test/Transforms/LICM/invariant.group.ll
Log Message:
-----------
[LICM] Hoist loads with invariant.group metadata
Previously loading the vtable used in calling a virtual method in a loop
was not hoisted out of the loop. This fixes that.
canSinkOrHoistInst() itself doesn't check that the load operands are
loop invariant, callers also check that separately.
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D99784
Commit: 097d77d611d1e1b3972be661fdc3caaa4d1824b4
https://github.com/llvm/llvm-project/commit/097d77d611d1e1b3972be661fdc3caaa4d1824b4
Author: zoecarver <z.zoelec2 at gmail.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M libcxx/include/memory
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.assign/unique_ptr_Y.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/unique_ptr.pass.cpp
Log Message:
-----------
[libcxx] Allow shared_ptr's unique_ptr converting constructor to support array types.
Refs: https://bugs.llvm.org/show_bug.cgi?id=32147
Differential Revision: https://reviews.llvm.org/D80882
Commit: f4eb681dc37ae84e08579bf96cd2a6f58c44f260
https://github.com/llvm/llvm-project/commit/f4eb681dc37ae84e08579bf96cd2a6f58c44f260
Author: MaheshRavishankar <ravishankarm at google.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M mlir/include/mlir/Dialect/Linalg/Passes.td
M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
M mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
M mlir/test/Dialect/Linalg/canonicalize.mlir
M mlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir
M mlir/test/Dialect/Linalg/reshape_fusion.mlir
Log Message:
-----------
[mlir][Linalg] Drop unit-trip loops of reductions only if other reduction loops exists.
Recent change enable dropping unit-trip loops of "reduction" iterator
type as well. This is fine as long as there is one other "reduction"
iterator in the operation. Without this the initialized value (value
of `out`) is not read which leads to a correctness issue.
Also fix a bug in the `fill` -> `tensor_reshape` folding. The `out`
operand of the `fill` needs to be reshaped to get the `out` operand of
the generated `fill` operation.
Differential Revision: https://reviews.llvm.org/D100145
Commit: f6e3b4fe582f0598ad3b594ad915431dfb87bf66
https://github.com/llvm/llvm-project/commit/f6e3b4fe582f0598ad3b594ad915431dfb87bf66
Author: Serguei Katkov <serguei.katkov at azul.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/RegAllocGreedy.cpp
Log Message:
-----------
[GreedyRA ORE] Re-factor computeNumberOfSplillsReloads.
Replace if-else to if-continue usage.
This simplifies further extension of the collected stats.
Commit: 65d09bcb078d48edc5e10c6e4842966833cd15ef
https://github.com/llvm/llvm-project/commit/65d09bcb078d48edc5e10c6e4842966833cd15ef
Author: Max Kazantsev <mkazantsev at azul.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/test/Transforms/GVN/PRE/pre-loop-load.ll
Log Message:
-----------
[Test] Add two more tests on PRE with guards
Commit: 6169f1537c87be3d6caeb94ccd6d68a7be6e2502
https://github.com/llvm/llvm-project/commit/6169f1537c87be3d6caeb94ccd6d68a7be6e2502
Author: Jim Lin <jim at andestech.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCV.td
M llvm/test/MC/RISCV/rvv/zvamo.s
Log Message:
-----------
[RISCV][NFC] Fix formatting
Commit: 4b54345e4770df8d26a9e41fe90fda490d32123f
https://github.com/llvm/llvm-project/commit/4b54345e4770df8d26a9e41fe90fda490d32123f
Author: Chen Zheng <czhengsz at cn.ibm.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
A llvm/test/CodeGen/PowerPC/vsx-shuffle-le-multiple-uses.ll
Log Message:
-----------
[NFC][PowerPC] add test cases for reverse memory op transformation
Commit: 8bc08c55179f81d79e54d1033355faf0471ef081
https://github.com/llvm/llvm-project/commit/8bc08c55179f81d79e54d1033355faf0471ef081
Author: Alexander Belyaev <pifon at google.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/test/Feature/OperandBundles/function-attrs.ll
Log Message:
-----------
[lldb] Update UUID after https://reviews.llvm.org/D99978.
Commit: 39ae25fb8c648b0e710ba2d2d46e7a5b7fafff19
https://github.com/llvm/llvm-project/commit/39ae25fb8c648b0e710ba2d2d46e7a5b7fafff19
Author: Alexander Belyaev <pifon at google.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M lldb/test/Shell/ObjectFile/PDB/object.test
Log Message:
-----------
[lldb] Update object.test after 'nosync' inference was enabled.
https://reviews.llvm.org/D99769
Commit: 623475248a9df38fe9c84316d8fdf6a23b7bf744
https://github.com/llvm/llvm-project/commit/623475248a9df38fe9c84316d8fdf6a23b7bf744
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/test/Transforms/LoopVectorize/pr34681.ll
Log Message:
-----------
[test, LoopVectorize] Fix use of var defined in CHECK-NOT
LLVM test Transforms/LoopVectorize/pr34681.ll tries to check for the
absence of a sequence of instructions with several CHECK-NOT with one of
those directives using a variable defined in another. However CHECK-NOT
are checked independently so that is using a variable defined in a
pattern that should not occur in the input.
This commit only checks for the absence of icmp ne 1 which rules out the
presence of the whole sequence and does not involve an undefined
variable.
Reviewed By: fhahn
Differential Revision: https://reviews.llvm.org/D99582
Commit: 7eaa2810c4413667872befd4f0045639f7f50f9c
https://github.com/llvm/llvm-project/commit/7eaa2810c4413667872befd4f0045639f7f50f9c
Author: Jim Lin <jim at andestech.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
Log Message:
-----------
[RISCV][NFC] Replace explicit type i64 with riscv customized SDTypeProfile.
New SDTypeProfile can be reused for other word operation patterns without explicit i64 type in the future.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D100097
Commit: 538254e8e0e09e89776f21bd39c23be1f5868fa1
https://github.com/llvm/llvm-project/commit/538254e8e0e09e89776f21bd39c23be1f5868fa1
Author: Frederik Gossen <frgossen at google.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M mlir/lib/Dialect/Shape/IR/Shape.cpp
M mlir/test/Dialect/Shape/canonicalize.mlir
Log Message:
-----------
[MLIR] Do not yield values from an assuming op that are never used
Differential Revision: https://reviews.llvm.org/D100042
Commit: 275f3a2540fef429aaf8cebd2aa413bb9e7a6daa
https://github.com/llvm/llvm-project/commit/275f3a2540fef429aaf8cebd2aa413bb9e7a6daa
Author: Max Kazantsev <mkazantsev at azul.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/include/llvm/Transforms/Scalar/GVN.h
M llvm/lib/Transforms/Scalar/GVN.cpp
Log Message:
-----------
[GVN][NFC] Factor out load elimination logic via PRE for reuse
Commit: 36138db116a8eb05b801fa02ee52ab1436c5a3ac
https://github.com/llvm/llvm-project/commit/36138db116a8eb05b801fa02ee52ab1436c5a3ac
Author: Sebastian Neubauer <sebastian.neubauer at amd.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/FLATInstructions.td
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
M llvm/lib/Target/AMDGPU/SIDefines.h
M llvm/lib/Target/AMDGPU/SIInstrFormats.td
M llvm/lib/Target/AMDGPU/SIInstrInfo.h
Log Message:
-----------
[AMDGPU] IsFlatScratch/Global -> FlatScratch/Global
Remove 'Is' from IsFlatScratch/Global. NFC
Differential Revision: https://reviews.llvm.org/D100108
Commit: ba217b465532f9251cbd11c2863312e4044aebbb
https://github.com/llvm/llvm-project/commit/ba217b465532f9251cbd11c2863312e4044aebbb
Author: Sebastian Neubauer <sebastian.neubauer at amd.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/RegisterScavenging.cpp
Log Message:
-----------
[RegisterScavenging] Add asserts for better errors
These cases were failing before, but with cryptic asserts.
Add asserts in the RegScavenger that fail earlier with better
messages. NFC
Differential Revision: https://reviews.llvm.org/D100109
Commit: baf17e2cc97e9832f0fe3c097a8ac8f682d7d7b2
https://github.com/llvm/llvm-project/commit/baf17e2cc97e9832f0fe3c097a8ac8f682d7d7b2
Author: Max Kazantsev <mkazantsev at azul.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/GVN.cpp
Log Message:
-----------
[NFC] Move statictic increment out of helper
Commit: 735eac7c0bffd1c6ef0b92987bf72ff36cac9d11
https://github.com/llvm/llvm-project/commit/735eac7c0bffd1c6ef0b92987bf72ff36cac9d11
Author: Benjamin Kramer <benny.kra at googlemail.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/test/Feature/OperandBundles/function-attrs.ll
Log Message:
-----------
[FunctionAttrs] Force old pm in test so it doens't behave differently depending on the configuration setting for this flag
Commit: 79d12ded535b14e9af242944a588da7cea1202c7
https://github.com/llvm/llvm-project/commit/79d12ded535b14e9af242944a588da7cea1202c7
Author: Frederik Gossen <frgossen at google.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M mlir/lib/Dialect/Shape/IR/Shape.cpp
M mlir/test/Dialect/Shape/canonicalize.mlir
Log Message:
-----------
[MLIR][Shape] Canonicalize `assuming_all` when all operands are `cstr_eq` ops
Differential Revision: https://reviews.llvm.org/D100104
Commit: 3ae0a405fc94d1b7a0ced15742031e8d71b32d93
https://github.com/llvm/llvm-project/commit/3ae0a405fc94d1b7a0ced15742031e8d71b32d93
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/horizontal-sum.ll
Log Message:
-----------
[X86] combineHorizOpWithShuffle - peek through one use bitcasts when decoding shuffles.
Checking for one use, peek through bitcasts of the horizop args to allows us to merge shuffles of different widths through the horizop.
Commit: d066079728b90793dbff3ca0e0cf339b5f4362bd
https://github.com/llvm/llvm-project/commit/d066079728b90793dbff3ca0e0cf339b5f4362bd
Author: dfukalov <daniil.fukalov at amd.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/include/llvm/Analysis/AliasAnalysis.h
M llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h
M llvm/include/llvm/Analysis/MemorySSA.h
M llvm/lib/Analysis/AliasAnalysis.cpp
M llvm/lib/Analysis/AliasAnalysisEvaluator.cpp
M llvm/lib/Analysis/AliasSetTracker.cpp
M llvm/lib/Analysis/BasicAliasAnalysis.cpp
M llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp
M llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp
M llvm/lib/Analysis/DependenceAnalysis.cpp
M llvm/lib/Analysis/GlobalsModRef.cpp
M llvm/lib/Analysis/Lint.cpp
M llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
M llvm/lib/Analysis/MemorySSA.cpp
M llvm/lib/Analysis/ObjCARCAliasAnalysis.cpp
M llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp
M llvm/lib/Analysis/ScopedNoAliasAA.cpp
M llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp
M llvm/lib/CodeGen/DFAPacketizer.cpp
M llvm/lib/CodeGen/ImplicitNullChecks.cpp
M llvm/lib/CodeGen/MachineInstr.cpp
M llvm/lib/CodeGen/MachinePipeliner.cpp
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp
M llvm/lib/Target/Hexagon/HexagonStoreWidening.cpp
M llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
M llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
M llvm/lib/Transforms/Coroutines/CoroElide.cpp
M llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp
M llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp
M llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
M llvm/lib/Transforms/Utils/FlattenCFG.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/unittests/Analysis/AliasAnalysisTest.cpp
M llvm/unittests/Analysis/MemorySSATest.cpp
Log Message:
-----------
[NFC][AA] Prepare to convert AliasResult to class with PartialAlias offset.
Main reason is preparation to transform AliasResult to class that contains
offset for PartialAlias case.
Reviewed By: asbirlea
Differential Revision: https://reviews.llvm.org/D98027
Commit: 74d33052ddd2cfd06fd37159e0f3266b4be2301d
https://github.com/llvm/llvm-project/commit/74d33052ddd2cfd06fd37159e0f3266b4be2301d
Author: Frederik Gossen <frgossen at google.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
M mlir/lib/Dialect/Shape/IR/Shape.cpp
Log Message:
-----------
[MLIR][Shape] Add convenience builder for `shape.assuming_all`
Differential Revision: https://reviews.llvm.org/D100105
Commit: c1a88e007b04d510fc6d3207ff5b2d80556d8f12
https://github.com/llvm/llvm-project/commit/c1a88e007b04d510fc6d3207ff5b2d80556d8f12
Author: dfukalov <daniil.fukalov at amd.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/include/llvm/Analysis/AliasAnalysis.h
M llvm/include/llvm/Analysis/AliasSetTracker.h
M llvm/include/llvm/Analysis/MemorySSA.h
M llvm/lib/Analysis/AliasAnalysis.cpp
M llvm/lib/Analysis/BasicAliasAnalysis.cpp
M llvm/lib/Analysis/MemorySSA.cpp
M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
M llvm/unittests/Analysis/AliasAnalysisTest.cpp
M llvm/unittests/Analysis/MemorySSATest.cpp
Log Message:
-----------
[AA][NFC] Convert AliasResult to class containing offset for PartialAlias case.
Add an ability to store `Offset` between partially aliased location. Use this
storage within returned `ResultAlias` instead of caching it in `AAQueryInfo`.
Reviewed By: asbirlea
Differential Revision: https://reviews.llvm.org/D98718
Commit: cc7add52986bddf9d56aff63e0de5661b9d2dc2b
https://github.com/llvm/llvm-project/commit/cc7add52986bddf9d56aff63e0de5661b9d2dc2b
Author: Sebastian Neubauer <sebastian.neubauer at amd.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPUGISel.td
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
M llvm/lib/Target/AMDGPU/FLATInstructions.td
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.h
M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
Log Message:
-----------
[AMDGPU] Use SIInstrFlags for flat variants. NFC
Use SIInstrFlags to differentiate between the different
variants of flat instructions (flat, global and scratch).
This should make it easier to bundle the immediate offset logic in a
single place and implement restrictions and bug workarounds.
Fixed version of D99587, which does not rely on the address space.
Differential Revision: https://reviews.llvm.org/D99743
Commit: 99b46a6c5ba70f49effe1e16516bd08a8440c73d
https://github.com/llvm/llvm-project/commit/99b46a6c5ba70f49effe1e16516bd08a8440c73d
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/test/CodeGen/X86/setcc-logic.ll
Log Message:
-----------
[X86] Add PR44136 test coverage
Commit: af67deb005cae4e87109d8ad534446b300351483
https://github.com/llvm/llvm-project/commit/af67deb005cae4e87109d8ad534446b300351483
Author: Sven van Haastregt <sven.vanhaastregt at arm.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M clang/lib/Sema/SemaLookup.cpp
Log Message:
-----------
[OpenCL] Simplify InsertOCLBuiltinDeclarationsFromTable
- Use a range-based for loop. This will help a later patch to skip
prototypes that use an unavailable return type or argument type.
- Replace a dyn_cast with a cast, as we are only dealing with
FunctionProtoType Types here.
Commit: 494ba60bb71e234141205db0d3615e9da923e58e
https://github.com/llvm/llvm-project/commit/494ba60bb71e234141205db0d3615e9da923e58e
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/test/CodeGen/PowerPC/ppc64-i128-abi.ll
Log Message:
-----------
[PowerPC, test] Fix use of undef FileCheck var
Commit 6646033e6e759657b6122fde64844fd28a2c9635 removed the definition
of variable RESULT used in two CHECK-NOT directives in LLVM test
CodeGen/PowerPC/ppc64-i128-abi.ll. This commit replaces the uses by the
regex that was used to define that variable.
Reviewed By: nemanjai
Differential Revision: https://reviews.llvm.org/D99868
Commit: 3b4936ba290594cda4e53169958fe11c83119657
https://github.com/llvm/llvm-project/commit/3b4936ba290594cda4e53169958fe11c83119657
Author: Adam Czachorowski <adamcz at google.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
A clang-tools-extra/clangd/test/check-lines.test
M clang-tools-extra/clangd/tool/Check.cpp
M clang-tools-extra/clangd/tool/ClangdMain.cpp
Log Message:
-----------
[clangd] Add --check-lines to restrict --check to specific lines
This will allow us to add code completion, which is too expensive at
every token, to --check too.
Differential Revision: https://reviews.llvm.org/D98970
Commit: bb69173ae5d125b5d5238d0b34d8cdc02db4ba69
https://github.com/llvm/llvm-project/commit/bb69173ae5d125b5d5238d0b34d8cdc02db4ba69
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/test/CodeGen/PowerPC/ppc-shrink-wrapping.ll
Log Message:
-----------
[PowerPC, test] Fix use of undef FileCheck var
Commit 6ad3d05b681b36f6ecc98523257d154053e4116d disables the definition
of CSR that a follow-up CHECK-NOT directive depends on. This commit
replaces the undefined CSR variable use by the regex used to define it.
Reviewed By: nemanjai
Differential Revision: https://reviews.llvm.org/D99870
Commit: 0494b6b6769f9ceda7e019a30e83a472d23afff5
https://github.com/llvm/llvm-project/commit/0494b6b6769f9ceda7e019a30e83a472d23afff5
Author: Thomas Preud'homme <thomasp at graphcore.ai>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/test/CodeGen/PowerPC/ctrloops-softfloat.ll
Log Message:
-----------
[PowerPC, test] Fix use of undef FileCheck var
LLVM test CodeGen/PowerPC/ctrloops-softfloat.ll tries to check for the
absence of sequences of instructions with several CHECK-NOT with one of
those directives using a variable defined in another. However CHECK-NOT
are checked independently so that is using a variable defined in a
pattern that should not occur in the input.
This commit changes occurence of the variable for the regex used in its
definition, thereby making each CHECK-NOT independent.
Reviewed By: nemanjai
Differential Revision: https://reviews.llvm.org/D99881
Commit: 92498264269c86fd0f5645d184d9f7e1c0c3acdf
https://github.com/llvm/llvm-project/commit/92498264269c86fd0f5645d184d9f7e1c0c3acdf
Author: Nathan Sidwell <nathan at acm.org>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M clang/lib/Parse/ParseDeclCXX.cpp
Log Message:
-----------
[clang] Tiny format fix
Misindented close brace.
Differential Revision: https://reviews.llvm.org/D100129
Commit: 5b23e38d9c7ba5e0e11d3b7c841904974060ceab
https://github.com/llvm/llvm-project/commit/5b23e38d9c7ba5e0e11d3b7c841904974060ceab
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/test/CodeGen/X86/setcc-logic.ll
Log Message:
-----------
[X86] Adjust PR44136 tests to add cmpne coverage as well
Alive2: https://alive2.llvm.org/ce/z/pLngT-
Commit: a4ced03d3425f8808b09e3586659fdb5b9c4605d
https://github.com/llvm/llvm-project/commit/a4ced03d3425f8808b09e3586659fdb5b9c4605d
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/cvt_f32_ubyte.ll
M llvm/test/CodeGen/AMDGPU/flat-scratch-fold-fi.mir
M llvm/test/CodeGen/AMDGPU/fold-cndmask-wave32.mir
M llvm/test/CodeGen/AMDGPU/fold-cndmask.mir
M llvm/test/CodeGen/AMDGPU/fold-imm-f16-f32.mir
M llvm/test/CodeGen/AMDGPU/fold-operands-order.mir
M llvm/test/CodeGen/AMDGPU/fold-readlane.mir
M llvm/test/CodeGen/AMDGPU/huge-number-operand-folds.mir
M llvm/test/CodeGen/AMDGPU/promote-constOffset-to-imm.ll
M llvm/test/CodeGen/AMDGPU/udiv64.ll
M llvm/test/CodeGen/AMDGPU/urem64.ll
Log Message:
-----------
[AMDGPU] SIFoldOperands: eagerly delete dead copies
This is cheap to implement, means less work for future passes like
MachineDCE, and slightly improves the folding in some cases.
Differential Revision: https://reviews.llvm.org/D100117
Commit: acf3279a037ff9c8591f551e92b8e7a8c27b61a4
https://github.com/llvm/llvm-project/commit/acf3279a037ff9c8591f551e92b8e7a8c27b61a4
Author: Momchil Velikov <momchil.velikov at arm.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Analysis/LazyValueInfo.cpp
A llvm/test/Transforms/JumpThreading/nonnull-gep-out-of-bounds.ll
Log Message:
-----------
For non-null pointer checks, do not descend through out-of-bounds GEPs
In LazyValueInfoImpl::isNonNullAtEndOfBlock we populate a set of
pointers, known to be non-null at the end of a block (e.g. because we
did a load through them). We then infer that any pointer, based on an
element of this set is non-null as well ("based" here meaning a
non-null pointer is the underlying object). This is incorrect, even if
the base pointer was non-null, the value of a GEP, that lacks the
inbounds` attribute, may be null.
This issue appeared as miscompilation of the following test case:
int puts(const char *);
typedef struct iter {
int *val;
} iter_t;
static long distance(iter_t first, iter_t last) {
long r = 0;
for (; first.val != last.val; first.val++)
++r;
return r;
}
int main() {
int arr[2] = {0};
iter_t i, j;
i.val = arr;
j.val = arr + 1;
if (distance(i, j) >= 2)
puts("failed");
else
puts("passed");
}
This fixes PR49662.
Differential Revision: https://reviews.llvm.org/D99642
Commit: 25942d7c49ed37a6fa9b291423bb0a22ae77e32d
https://github.com/llvm/llvm-project/commit/25942d7c49ed37a6fa9b291423bb0a22ae77e32d
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/test/CodeGenCXX/builtin-amdgcn-atomic-inc-dec.cpp
M clang/test/SemaOpenCL/builtins-amdgcn-error.cl
Log Message:
-----------
[AMDGPU] Allow relaxed/consume memory order for atomic inc/dec
Reviewed by: Jon Chesterfield
Differential Revision: https://reviews.llvm.org/D100144
Commit: 175b8819f2eacb1dbf5a8ed361052b6b376e9405
https://github.com/llvm/llvm-project/commit/175b8819f2eacb1dbf5a8ed361052b6b376e9405
Author: Paul C. Anagnostopoulos <paul at windfall.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/docs/CommandGuide/clang-tblgen.rst
M llvm/docs/CommandGuide/lldb-tblgen.rst
M llvm/docs/CommandGuide/llvm-tblgen.rst
M llvm/docs/CommandGuide/mlir-tblgen.rst
M llvm/docs/CommandGuide/tblgen.rst
Log Message:
-----------
[TableGen] [docs] Change title of tblgen.rst to fix man page filename
Commit: b9b708eef8cb7bcb073361283cd573beb04992a9
https://github.com/llvm/llvm-project/commit/b9b708eef8cb7bcb073361283cd573beb04992a9
Author: Kadir Cetinkaya <kadircet at google.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M clang-tools-extra/clangd/ConfigCompile.cpp
M clang-tools-extra/clangd/unittests/ConfigCompileTests.cpp
Log Message:
-----------
[clangd] Log a message when gRPC support is off, but remote-index is configured
Before this change clangd would emit a diagnostic whenever remote-index
was configured but binary didn't have grpc support.
This can be annoying when projects are configuring remote-index through their
configs but developers have a clangd binary without the support.
Differential Revision: https://reviews.llvm.org/D100103
Commit: 68d62fe06859f0b3b681a01288ba0ee890227083
https://github.com/llvm/llvm-project/commit/68d62fe06859f0b3b681a01288ba0ee890227083
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/test/CodeGen/X86/and-with-overflow.ll
M llvm/test/CodeGen/X86/or-with-overflow.ll
M llvm/test/CodeGen/X86/xor-with-overflow.ll
Log Message:
-----------
[X86] Add zeroext attributes to i8/i16 and/or/xor overflow tests
Matches original c/c++ test cases
Commit: 5d7cb79416adee00cf52be12ee42692dd19d4acb
https://github.com/llvm/llvm-project/commit/5d7cb79416adee00cf52be12ee42692dd19d4acb
Author: Soumi Manna <soumi.manna at intel.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M clang/lib/CodeGen/TargetInfo.cpp
Log Message:
-----------
RISCVABIInfo::classifyArgumentType: Fix static analyzer warnings with uninitialized variables warnings - NFCI
Differential Revision: https://reviews.llvm.org/D100172
Commit: 1667fbe65082a1daf757d090bd57450b4e595db4
https://github.com/llvm/llvm-project/commit/1667fbe65082a1daf757d090bd57450b4e595db4
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/test/Transforms/InstCombine/minmax-intrinsics.ll
Log Message:
-----------
[InstCombine] add test with multiple uses of min/max negated operand; NFC
Commit: 84cdccc9dc68ce11b8eb9a0cbb4333b7f3cb1c1e
https://github.com/llvm/llvm-project/commit/84cdccc9dc68ce11b8eb9a0cbb4333b7f3cb1c1e
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/minmax-intrinsics.ll
Log Message:
-----------
[InstCombine] try to eliminate an instruction in min/max -> abs fold
As suggested in the review thread for 5094e12 and seen in the
motivating example from https://llvm.org/PR49885, it's not
clear if we have a way to create the optimal code without
this heuristic.
Commit: f9264ac0fdb7b58d1eb088ea91af0fee48816033
https://github.com/llvm/llvm-project/commit/f9264ac0fdb7b58d1eb088ea91af0fee48816033
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M clang/lib/Sema/SemaChecking.cpp
Log Message:
-----------
[HIP] Workaround ICE compiling SemaChecking.cpp with gcc 5
Change-Id: I6c6213bc6b90365bfb78636ce7fb0700a58807cf
Commit: f3d7536b24f1d65c09de4899a51d9fdda83c3b1d
https://github.com/llvm/llvm-project/commit/f3d7536b24f1d65c09de4899a51d9fdda83c3b1d
Author: jasonliu <jasonliu.development at gmail.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M libcxx/include/cmath
M libcxx/include/stdlib.h
Log Message:
-----------
[libc++] Fix abs and div overload issue for compilers on AIX
Summary:
AIX system's stdlib.h provide different overload of abs and div
depending on compiler versions.
For example, std::div(long, long) and std::abs(long) are not available
from OS's stdlib.h when building with clang, but they are available
when building with xlclang compiler.
Therefore, we need to provide those extra overloads in libc++'s stdlib.h
when OS's stdlib.h does not.
Differential Revision: https://reviews.llvm.org/D99767
Commit: 245036950a7a63f77aa1f06f46dfe2fbb2cafc0f
https://github.com/llvm/llvm-project/commit/245036950a7a63f77aa1f06f46dfe2fbb2cafc0f
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/setcc-logic.ll
Log Message:
-----------
[X86][BMI] Fold cmpeq/ne(or(X,Y),X) --> cmpeq/ne(and(~X,Y),0) (PR44136)
I've initially just enabled this for BMI which has the ANDN instruction for i32/i64 - the i16/i8 cases give an idea of what'd we get when we enable it in all cases (I'll do this as a later commit).
Additionally, the i16/i8 cases could be freely promoted to i32 (as the args are already zeroext) and we could then make use of ANDN + the free cmp0 there as well - this has come up in PR48768 and PR49028 so I'm going to look at this soon.
https://alive2.llvm.org/ce/z/QVWHP_
https://alive2.llvm.org/ce/z/pLngT-
Vector cases do not appear to benefit from this as we end up with having to generate the zero vector as well - this is one of the reasons I didn't try to tie this into hasAndNot/hasAndNotCompare.
Differential Revision: https://reviews.llvm.org/D100177
Commit: e413b86a2c0c0225f562d16da1aa50aa9a5cb7aa
https://github.com/llvm/llvm-project/commit/e413b86a2c0c0225f562d16da1aa50aa9a5cb7aa
Author: Frederik Gossen <frgossen at google.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M mlir/lib/Dialect/Shape/IR/Shape.cpp
M mlir/test/Dialect/Shape/canonicalize.mlir
Log Message:
-----------
[MLIR][Shape] Combine `cstr_eq` only if they share shape operands
Differential Revision: https://reviews.llvm.org/D100198
Commit: b7578f9d5a465ae1c061ccfbe3cf2a5265785f87
https://github.com/llvm/llvm-project/commit/b7578f9d5a465ae1c061ccfbe3cf2a5265785f87
Author: Paul Robinson <paul.robinson at sony.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/unittests/Support/ProgramTest.cpp
Log Message:
-----------
[RGT] Tweak test so assertion is always executed
Any given Windows system will have only one "system" encoding for
UTF-16 (BE or LE), so the assert for the other one would always
show up as rotten. Use a common assertion for both paths to avoid
this.
Commit: d8bc4de3cfe045cf393f6928e359a6f05deffd55
https://github.com/llvm/llvm-project/commit/d8bc4de3cfe045cf393f6928e359a6f05deffd55
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/avx512-cmp.ll
M llvm/test/CodeGen/X86/pr27202.ll
M llvm/test/CodeGen/X86/ragreedy-hoist-spill.ll
M llvm/test/CodeGen/X86/setcc-logic.ll
M llvm/test/CodeGen/X86/switch-or.ll
Log Message:
-----------
[X86] Fold cmpeq/ne(or(X,Y),X) --> cmpeq/ne(and(~X,Y),0) on non-BMI targets (PR44136)
Followup to D100177, enable the fold for non-BMI targets as well.
Commit: 18192228602c6a8093fb0eefa863ab854dd03e59
https://github.com/llvm/llvm-project/commit/18192228602c6a8093fb0eefa863ab854dd03e59
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M clang/test/CXX/class/class.init/class.copy.elision/p3.cpp
R clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p7-1y.cpp
A clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p7-cxx14.cpp
M clang/test/CXX/drs/dr3xx.cpp
R clang/test/CXX/expr/expr.prim/expr.prim.lambda/p4-1y.cpp
A clang/test/CXX/expr/expr.prim/expr.prim.lambda/p4-cxx14.cpp
A clang/test/CXX/special/class.copy/p3-cxx11.cpp
R clang/test/CXX/special/class.copy/p33-0x.cpp
M clang/test/CXX/temp/temp.decls/temp.mem/p5.cpp
A clang/test/CodeGen/nrvo-tracking.cpp
M clang/test/SemaCXX/P1155.cpp
M clang/test/SemaCXX/constant-expression-cxx11.cpp
A clang/test/SemaCXX/constant-expression-cxx14.cpp
R clang/test/SemaCXX/constant-expression-cxx1y.cpp
M clang/test/SemaCXX/conversion-function.cpp
M clang/test/SemaCXX/coroutine-rvo.cpp
M clang/test/SemaCXX/coroutines.cpp
R clang/test/SemaCXX/cxx1y-deduced-return-type.cpp
A clang/test/SemaCXX/deduced-return-type-cxx14.cpp
M clang/test/SemaCXX/return-stack-addr.cpp
M clang/test/SemaCXX/warn-return-std-move.cpp
Log Message:
-----------
[clang] tests: cleanup, update and add some new ones
This reworks a small set of tests, as preparatory work for implementing
P2266.
* Run for more standard versions, including c++2b.
* Normalize file names and run commands.
* Adds some extra tests.
New Coroutine tests taken from Aaron Puchert's D68845.
Signed-off-by: Matheus Izvekov <mizvekov at gmail.com>
Reviewed By: thakis
Differential Revision: https://reviews.llvm.org/D99225
Commit: aeff03d2df541d417ba216cec9f35c3eace39573
https://github.com/llvm/llvm-project/commit/aeff03d2df541d417ba216cec9f35c3eace39573
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/test/Transforms/InstCombine/2010-11-23-Distributed.ll
Log Message:
-----------
[InstCombine] Regenerate 2010-11-23-Distributed.ll tests
Commit: 9da35814e5fb71d8610ed7888d1f05703bfa8b54
https://github.com/llvm/llvm-project/commit/9da35814e5fb71d8610ed7888d1f05703bfa8b54
Author: Eric Schweitz <eschweitz at nvidia.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M flang/include/flang/Lower/Bridge.h
M flang/include/flang/Lower/Mangler.h
M flang/include/flang/Optimizer/CodeGen/CodeGen.h
M flang/lib/Lower/Mangler.cpp
Log Message:
-----------
[Flang] Changes to mangling code
Call static functions using the class name (fir::NameUniquer).
Add function for mangling derivedTypes.
All the name mangling functions that are ultimately called are
tested in unittests/Optimizer/InternalNamesTest.cpp.
Differential Revision: https://reviews.llvm.org/D99967
Commit: f2dfacea3e3ffe296383b581708b1169926be627
https://github.com/llvm/llvm-project/commit/f2dfacea3e3ffe296383b581708b1169926be627
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
A llvm/test/Transforms/PhaseOrdering/expect.ll
Log Message:
-----------
[PhaseOrdering] add test for llvm.expect; NFC
Commit: 6ce76ff7eb7640e53b65f0473848ce7d08165c98
https://github.com/llvm/llvm-project/commit/6ce76ff7eb7640e53b65f0473848ce7d08165c98
Author: Adrian Prantl <aprantl at apple.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/include/llvm/IR/DebugInfoMetadata.h
M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
M llvm/test/Transforms/Coroutines/coro-async.ll
M llvm/test/Transforms/Coroutines/coro-debug.ll
Log Message:
-----------
Update the linkage name of coro-split functions in the debug info.
This patch updates the linkage name in the DISubprogram of coro-split
functions, which is particularly important for Swift, where the
funclets have a special name mangling. This patch does not affect C++
coroutines, since the DW_AT_specification is expected to hold the
(original) linkage name. I believe this is mostly due to limitations
in AsmPrinter, so we might be able to relax this restriction in the
future.
Differential Revision: https://reviews.llvm.org/D99693
Commit: 206343f319da2ac7a6dfab7f35559edadc06d77d
https://github.com/llvm/llvm-project/commit/206343f319da2ac7a6dfab7f35559edadc06d77d
Author: Paul Robinson <paul.robinson at sony.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/unittests/Support/ThreadPool.cpp
Log Message:
-----------
[RGT] Disable some tests on Windows at compile-time, not runtime
These show up as un-executed on non-Windows hosts.
Found by the Rotten Green Tests project.
Commit: 16fe741c69429235210c03c46420f8fa6aece4a1
https://github.com/llvm/llvm-project/commit/16fe741c69429235210c03c46420f8fa6aece4a1
Author: Stefan Pintilie <stefanp at oc4686768078.ibm.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
M llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.h
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.h
M llvm/lib/Target/PowerPC/P9InstrResources.td
M llvm/lib/Target/PowerPC/PPCInstr64Bit.td
M llvm/lib/Target/PowerPC/PPCInstrFormats.td
M llvm/lib/Target/PowerPC/PPCInstrInfo.td
M llvm/test/MC/Disassembler/PowerPC/ppc64-encoding-ISA31.txt
M llvm/test/MC/PowerPC/ppc64-encoding-ISA31.s
Log Message:
-----------
[PowerPC] Add ROP Protection Instructions for PowerPC
There are four new PowerPC instructions that are introduced in
Power 10. They are hashst, hashchk, hashstp, hashchkp.
These instructions will be used for ROP Protection.
This patch adds the four instructions.
Reviewed By: nemanjai, amyk, #powerpc
Differential Revision: https://reviews.llvm.org/D99375
Commit: 40e75cafc0fef365b5580a9c09595ac475db0c19
https://github.com/llvm/llvm-project/commit/40e75cafc0fef365b5580a9c09595ac475db0c19
Author: Amara Emerson <amara at apple.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/select-vector-shift.mir
Log Message:
-----------
[AArch64][GlobalISel] Fix incorrect codegen for <16 x s8> G_ASHR.
Fixes PR49904
Commit: 107189a26eef0e6aef19b1bad4a3349d6207ac32
https://github.com/llvm/llvm-project/commit/107189a26eef0e6aef19b1bad4a3349d6207ac32
Author: Alex Richardson <Alexander.Richardson at cl.cam.ac.uk>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/TableGen/TGParser.cpp
M llvm/test/TableGen/template-args.td
Log Message:
-----------
[TableGen] Report an error message on a missing comma
I recently forgot a comma in a defm argument list and tablegen just
failed with exit code 1 without printing an error message. I believe
this issue was introduced in a9fc44c5573208859c2550382755098d750fc47d.
This change prints the following instead:
.../clang/include/clang/Driver/Options.td:569:3: error: Expected comma before next argument
Reviewed By: Paul-C-Anagnostopoulos
Differential Revision: https://reviews.llvm.org/D100178
Commit: ed0bf875a93e184c234510717b22fb4c8367ed82
https://github.com/llvm/llvm-project/commit/ed0bf875a93e184c234510717b22fb4c8367ed82
Author: Alex Richardson <Alexander.Richardson at cl.cam.ac.uk>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M compiler-rt/lib/builtins/aarch64/fp_mode.c
M compiler-rt/lib/builtins/arm/fp_mode.c
M compiler-rt/lib/builtins/fp_add_impl.inc
M compiler-rt/lib/builtins/fp_mode.c
M compiler-rt/lib/builtins/fp_mode.h
M compiler-rt/lib/builtins/i386/fp_mode.c
Log Message:
-----------
[builtins] Avoid enum name conflicts with fenv.h
After a follow-up change (D98332) this header can be included the same time
as fenv.h when running the tests. To avoid enum members conflicting with
the macros/enums defined in the host fenv.h, prefix them with CRT_.
Reviewed By: peter.smith
Differential Revision: https://reviews.llvm.org/D98333
Commit: dc4abca7662b74467c2b6bceb7e8b046ae04b8a0
https://github.com/llvm/llvm-project/commit/dc4abca7662b74467c2b6bceb7e8b046ae04b8a0
Author: Alex Richardson <Alexander.Richardson at cl.cam.ac.uk>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M clang/include/clang/Basic/Attr.td
M clang/lib/AST/ExprConstant.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
A clang/test/CodeGen/alloc-size-fnptr.c
M clang/test/CodeGen/alloc-size.c
M clang/test/Misc/pragma-attribute-supported-attributes-list.test
M clang/test/Sema/alloc-size.c
Log Message:
-----------
Handle alloc_size attribute on function pointers
I have been trying to statically find and analyze all calls to heap
allocation functions to determine how many of them use sizes known at
compile time vs only at runtime. While doing so I saw that quite a few
projects use replaceable function pointers for heap allocation and noticed
that clang was not able to annotate functions pointers with alloc_size.
I have changed the Sema checks to allow alloc_size on all function pointers
and typedefs for function pointers now and added checks that these
attributes are propagated to the LLVM IR correctly.
With this patch we can also compute __builtin_object_size() for calls to
allocation function pointers with the alloc_size attribute.
Reviewed By: aaron.ballman, erik.pilkington
Differential Revision: https://reviews.llvm.org/D55212
Commit: f30c429da63a0f7506770b926229486e74fda3b3
https://github.com/llvm/llvm-project/commit/f30c429da63a0f7506770b926229486e74fda3b3
Author: Thomas Lively <tlively at google.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
M llvm/test/CodeGen/WebAssembly/simd-build-vector.ll
A llvm/test/CodeGen/WebAssembly/simd-concat.ll
Log Message:
-----------
[WebAssembly] Add shuffles as an option for lowering BUILD_VECTOR
When lowering a BUILD_VECTOR SDNode, we choose among various possible vector
creation instructions in an attempt to minimize the total number of instructions
used. We previously considered using swizzles, consts, and splats, and this
patch adds shuffles as well. A common pattern that now lowers to shuffles is
when two 64-bit vectors are concatenated. Previously, concatenations generally
lowered to sequences of extract_lane and replace_lane instructions when they
could have been a single shuffle.
Differential Revision: https://reviews.llvm.org/D100018
Commit: b166441bbe7f33e80e70c49feb18285b52ecec3d
https://github.com/llvm/llvm-project/commit/b166441bbe7f33e80e70c49feb18285b52ecec3d
Author: Martin Storsjö <martin at martin.st>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_block_file/is_block_file.pass.cpp
M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_char_file/is_character_file.pass.cpp
M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_directory/is_directory.pass.cpp
M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp
M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp
M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_other/is_other.pass.cpp
M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_regular_file/is_regular_file.pass.cpp
M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp
M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_symlink/is_symlink.pass.cpp
Log Message:
-----------
[libcxx] [test] Use GetWindowsInaccessibleDir() instead of dirs with perms::none in fs.op.is_*
Differential Revision: https://reviews.llvm.org/D98442
Commit: 1f1f8e239bb32fc19990b652e0d0becff312f4aa
https://github.com/llvm/llvm-project/commit/1f1f8e239bb32fc19990b652e0d0becff312f4aa
Author: Martin Storsjö <martin at martin.st>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/assign.pass.cpp
M libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp
M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp
Log Message:
-----------
[libcxx] [test] Use GetWindowsInaccessibleDir() in a couple more tests
Differential Revision: https://reviews.llvm.org/D98443
Commit: 1e5f68d80a42ad0e377f6a3197034995bd7a2e16
https://github.com/llvm/llvm-project/commit/1e5f68d80a42ad0e377f6a3197034995bd7a2e16
Author: Martin Storsjö <martin at martin.st>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.rename/rename.pass.cpp
Log Message:
-----------
[libcxx] [test] Add more tests for renaming directories in fs.op.rename
This was requested during the review of D98640.
Differential Revision: https://reviews.llvm.org/D99982
Commit: 365053d2a55b5e045354f3c3d0d0cc7f5810f457
https://github.com/llvm/llvm-project/commit/365053d2a55b5e045354f3c3d0d0cc7f5810f457
Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Support/Path.cpp
M llvm/lib/Support/Unix/Path.inc
M llvm/lib/Support/Windows/Path.inc
Log Message:
-----------
Support: Remove code duplication for mapped_file_region accessors, NFC
Commit: 1a43fd27691c6ae5c3d725ca7c6f4fd19357f4b8
https://github.com/llvm/llvm-project/commit/1a43fd27691c6ae5c3d725ca7c6f4fd19357f4b8
Author: cchen <chichunchen844 at gmail.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M clang/include/clang-c/Index.h
M clang/include/clang/AST/OpenMPClause.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/AST/StmtOpenMP.h
M clang/include/clang/Basic/StmtNodes.td
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/lib/AST/OpenMPClause.cpp
M clang/lib/AST/StmtOpenMP.cpp
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/CodeGen/CGStmt.cpp
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Sema/SemaExceptionSpec.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
A clang/test/OpenMP/masked_ast_print.cpp
A clang/test/OpenMP/masked_messages.cpp
M clang/tools/libclang/CIndex.cpp
M clang/tools/libclang/CXCursor.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M llvm/include/llvm/Frontend/OpenMP/OMP.td
Log Message:
-----------
[OpenMP51] Initial support for masked directive and filter clause
Adds basic parsing/sema/serialization support for the #pragma omp masked
directive.
Reviewed By: ABataev
Differential Revision: https://reviews.llvm.org/D99995
Commit: d9c9c0b2db0dc4ddf407edcafba0a5a806850ddc
https://github.com/llvm/llvm-project/commit/d9c9c0b2db0dc4ddf407edcafba0a5a806850ddc
Author: Shafik Yaghmour <syaghmour at apple.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M lldb/include/lldb/DataFormatters/FormattersHelpers.h
Log Message:
-----------
[LLDB][NFC] Add clarifying comments for AddCXXSummary and AddCXXSynthetic
Adding comments to AddCXXSynthetic and AddCXXSummary to better explain what they are doing.
Commit: 5bca7cdafb897f2e8d50dd117bac7e7a663397ce
https://github.com/llvm/llvm-project/commit/5bca7cdafb897f2e8d50dd117bac7e7a663397ce
Author: Stefan Pintilie <stefanp at ca.ibm.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Target/PowerPC/PPCInstrPrefix.td
A llvm/test/CodeGen/PowerPC/ppc64-xxsplti32dx-pattern-check.ll
Log Message:
-----------
Add correct types to the xxsplti32dx pattern.
Regiser types for xxsplti32dx for two td file patterns was incorrect.
Fixed the two types and added a test case that was reduced from a larger
failing test.
Reviewed By: nemanjai, #powerpc
Differential Revision: https://reviews.llvm.org/D100223
Commit: 034fe0e03d9eb3c4690012fbe095486f049670ca
https://github.com/llvm/llvm-project/commit/034fe0e03d9eb3c4690012fbe095486f049670ca
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.udot2.ll
Log Message:
-----------
[AMDGPU] Added udot2 op_sel test. NFC.
Commit: b12539225930dd2738a79ac9eec455e63413ab91
https://github.com/llvm/llvm-project/commit/b12539225930dd2738a79ac9eec455e63413ab91
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M libcxx/include/__memory/allocator_traits.h
M libcxx/include/memory
Log Message:
-----------
[libc++] NFC: Move unused include of <limits> to allocator_traits.h
The include should have been moved when I split allocator_traits.h out
of memory.
Commit: f6bff8d15778e642ff888075a75480c5201866c2
https://github.com/llvm/llvm-project/commit/f6bff8d15778e642ff888075a75480c5201866c2
Author: Alina Sbirlea <asbirlea at google.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Analysis/MemorySSAUpdater.cpp
Log Message:
-----------
[MSSA] Rename uses in IDF regardless of new def position in basic block.
When inserting a new def and renaming of uses is asked, always compute
IDF and do the renaming for the blocks with Phis in that IDF.
Resolves PR49859.
Differential Revision: https://reviews.llvm.org/D100163
Commit: d19a42eba98fe853dd52f7dc89d8cd2727c7fc1c
https://github.com/llvm/llvm-project/commit/d19a42eba98fe853dd52f7dc89d8cd2727c7fc1c
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
Log Message:
-----------
[AMDGPU] SIFoldOperands: eagerly erase dead REG_SEQUENCEs
This is fairly cheap to implement and means less work for future
passes like MachineDCE.
Differential Revision: https://reviews.llvm.org/D100188
Commit: 5a0117b2d0eaedffeeb393bd9915f11cccfe241b
https://github.com/llvm/llvm-project/commit/5a0117b2d0eaedffeeb393bd9915f11cccfe241b
Author: Jay Foad <jay.foad at amd.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/test/CodeGen/AMDGPU/srem64.ll
M llvm/test/CodeGen/AMDGPU/udiv64.ll
M llvm/test/CodeGen/AMDGPU/urem64.ll
Log Message:
-----------
[AMDGPU] Remove MachineDCE after SIFoldOperands
Remove the MachineDCE pass after the first SIFoldOperands pass now
that SIFoldOperands deletes its own dead instructions.
Differential Revision: https://reviews.llvm.org/D100189
Commit: 3d816537df2c99cdb151a86249da58f4529ec17d
https://github.com/llvm/llvm-project/commit/3d816537df2c99cdb151a86249da58f4529ec17d
Author: cchen <chichunchen844 at gmail.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M clang/docs/OpenMPSupport.rst
Log Message:
-----------
[OpenMP51][DOCS] Claimed masked construct and report current patch, NFC.
Commit: ca0e250ec6e0f76e83358df5adc1ab061eed52f2
https://github.com/llvm/llvm-project/commit/ca0e250ec6e0f76e83358df5adc1ab061eed52f2
Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M mlir/include/mlir/Dialect/SCF/SCFOps.td
Log Message:
-----------
[mlir] NFC - Add help functions to scf.ForOp
This revision adds 2 helperr functions that help tie OpOperands and
BlockArguments in scf.ForOp without having to use the internal implementation
details.
Commit: 1a2756b777b6041a8337d704eff59e970227d929
https://github.com/llvm/llvm-project/commit/1a2756b777b6041a8337d704eff59e970227d929
Author: Mitch Phillips <31459023+hctim at users.noreply.github.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
M llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.h
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.h
M llvm/lib/Target/PowerPC/P9InstrResources.td
M llvm/lib/Target/PowerPC/PPCInstr64Bit.td
M llvm/lib/Target/PowerPC/PPCInstrFormats.td
M llvm/lib/Target/PowerPC/PPCInstrInfo.td
M llvm/test/MC/Disassembler/PowerPC/ppc64-encoding-ISA31.txt
M llvm/test/MC/PowerPC/ppc64-encoding-ISA31.s
Log Message:
-----------
Revert "[PowerPC] Add ROP Protection Instructions for PowerPC"
This reverts commit 16fe741c69429235210c03c46420f8fa6aece4a1.
Reason: Broke the UBSan buildbots. More information available in the
phabricator review: https://reviews.llvm.org/D99375
Commit: 50979defc9555d66dc2427e1dac68fd62c45e524
https://github.com/llvm/llvm-project/commit/50979defc9555d66dc2427e1dac68fd62c45e524
Author: Kostya Kortchinsky <kostyak at google.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M compiler-rt/lib/scudo/standalone/local_cache.h
Log Message:
-----------
[scudo][standalone] Use BatchClassId in drain rather than 0
D99763 fixed `SizeClassAllocatorLocalCache::drain` but with the
assumption that `BatchClassId` is 0 - which is currently true. I would
rather not make the assumption so that if we ever change the ID of
the batch class, the loop would still work. Since `BatchClassId` is
used more often in `local_cache.h`, introduce a constant so that we
don't have to specify `SizeClassMap::` every time.
Differential Revision: https://reviews.llvm.org/D100062
Commit: 7df30e77d499e2416e74d67baa6b121f5d47d2a0
https://github.com/llvm/llvm-project/commit/7df30e77d499e2416e74d67baa6b121f5d47d2a0
Author: Mitch Phillips <31459023+hctim at users.noreply.github.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M compiler-rt/lib/asan/asan_new_delete.cpp
A compiler-rt/test/asan/TestCases/replaceable_new_delete.cpp
Log Message:
-----------
[ASan] Allow new/delete replacement by making interceptors weak
ASan declares these functions as strongly-defined, which results in
'duplicate symbol' errors when trying to replace them in user code when
linking the runtimes statically.
Reviewed By: eugenis
Differential Revision: https://reviews.llvm.org/D100220
Commit: 99d6e31e0bd02d484c213a7446fd707c62dec45b
https://github.com/llvm/llvm-project/commit/99d6e31e0bd02d484c213a7446fd707c62dec45b
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
A llvm/test/Transforms/SROA/std-clamp.ll
Log Message:
-----------
[NFC][SROA] Add C++'s `std::clamp()` testcase from PR47271/PR49909
Commit: 077bff39d46364035a5dcfa32fc69910ad0975d0
https://github.com/llvm/llvm-project/commit/077bff39d46364035a5dcfa32fc69910ad0975d0
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M llvm/lib/Analysis/Loads.cpp
M llvm/test/Transforms/SROA/std-clamp.ll
Log Message:
-----------
[Analysis] isDereferenceableAndAlignedPointer(): recurse into select's hands
By doing this within the method itself,
we support traversing multiple levels of selects (TODO: PHI's),
fixing the SROA `std::clamp()` testcase.
Fixes https://bugs.llvm.org/show_bug.cgi?id=47271
Mostly fixes https://bugs.llvm.org/show_bug.cgi?id=49909
Commit: b6f22fa5feb606abdae2641036682b0734d0d34a
https://github.com/llvm/llvm-project/commit/b6f22fa5feb606abdae2641036682b0734d0d34a
Author: peter klausler <pklausler at nvidia.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M flang/lib/Semantics/check-declarations.cpp
A flang/test/Semantics/bind-c01.f90
Log Message:
-----------
[flang] Check for conflicting BIND(C) names
Check for two or more symbols that define a data object or entry point
with the same interoperable BIND(C) name.
Differential Revision: https://reviews.llvm.org/D100067
Commit: 49c3565b9ba738d0305ab97c2771fa37f2023726
https://github.com/llvm/llvm-project/commit/49c3565b9ba738d0305ab97c2771fa37f2023726
Author: Jessica Paquette <jpaquette at apple.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Target/AArch64/AArch64Combine.td
M llvm/lib/Target/AArch64/GISel/AArch64GlobalISelUtils.cpp
M llvm/lib/Target/AArch64/GISel/AArch64GlobalISelUtils.h
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-lowering-swap-compare-operands.mir
Log Message:
-----------
[AArch64][GlobalISel] Swap compare operands when it may be profitable
This adds support for swapping comparison operands when it may introduce new
folding opportunities.
This is roughly the same as the code added to AArch64ISelLowering in
162435e7b5e026b9f988c730bb6527683f6aa853.
For an example of a testcase which exercises this, see
llvm/test/CodeGen/AArch64/swap-compare-operands.ll
(Godbolt for that testcase: https://godbolt.org/z/43WEMb)
The idea behind this is that sometimes, we may be able to fold away, say, a
shift or extend in a compare by swapping its operands.
e.g. in the case of this compare:
```
lsl x8, x0, #1
cmp x8, x1
cset w0, lt
```
The following is equivalent:
```
cmp x1, x0, lsl #1
cset w0, gt
```
Most of the code here is just a reimplementation of what already exists in
AArch64ISelLowering.
(See `getCmpOperandFoldingProfit` and `getAArch64Cmp` for the equivalent code.)
Note that most of the AND code in the testcase doesn't actually fold. It seems
like we're missing selection support for that sort of fold right now, since SDAG
happily folds these away (e.g testSwapCmpWithShiftedZeroExtend8_32 in the
original .ll testcase)
Differential Revision: https://reviews.llvm.org/D89422
Commit: 3d4730a73fd1db6e28edeb9dac16e8e081529e3a
https://github.com/llvm/llvm-project/commit/3d4730a73fd1db6e28edeb9dac16e8e081529e3a
Author: Mitch Phillips <31459023+hctim at users.noreply.github.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
Log Message:
-----------
Revert "[AMDGPU] SIFoldOperands: eagerly erase dead REG_SEQUENCEs"
This reverts commit d19a42eba98fe853dd52f7dc89d8cd2727c7fc1c.
Reason: Broke the ASan buildbots. See the original phabricator review
for more details: https://reviews.llvm.org/D100188
Commit: 092f288d3644f58c931336080c443bba98e51ae9
https://github.com/llvm/llvm-project/commit/092f288d3644f58c931336080c443bba98e51ae9
Author: Mitch Phillips <31459023+hctim at users.noreply.github.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/test/CodeGen/AMDGPU/srem64.ll
M llvm/test/CodeGen/AMDGPU/udiv64.ll
M llvm/test/CodeGen/AMDGPU/urem64.ll
Log Message:
-----------
Revert "[AMDGPU] Remove MachineDCE after SIFoldOperands"
This reverts commit 5a0117b2d0eaedffeeb393bd9915f11cccfe241b.
Reason: Dependent change d19a42eba98fe853dd52f7dc89d8cd2727c7fc1c broke
the ASan buildbots.
Commit: 5091671c9ba2ca42ecede7b05347084b7c2dd974
https://github.com/llvm/llvm-project/commit/5091671c9ba2ca42ecede7b05347084b7c2dd974
Author: peter klausler <pklausler at nvidia.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M flang/include/flang/Semantics/tools.h
M flang/include/flang/Semantics/type.h
M flang/lib/Semantics/expression.cpp
M flang/lib/Semantics/resolve-names.cpp
M flang/lib/Semantics/scope.cpp
M flang/lib/Semantics/tools.cpp
M flang/lib/Semantics/type.cpp
Log Message:
-----------
[flang] Enforce a limit on recursive PDT instantiations
For pernicious test cases with explicit non-constant actual
type parameter expressions in components, e.g.:
type :: t(k)
integer, kind :: k
type(t(k+1)), pointer :: p
end type
we should detect the infinite recursion and complain rather
than looping until the stack overflows.
Differential Revision: https://reviews.llvm.org/D100065
Commit: 88cb786ec261c9d947b3116c00ecd30e6570f64c
https://github.com/llvm/llvm-project/commit/88cb786ec261c9d947b3116c00ecd30e6570f64c
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M lld/MachO/Arch/ARM64.cpp
M lld/MachO/Arch/X86_64.cpp
M lld/MachO/Relocations.cpp
M lld/MachO/Relocations.h
Log Message:
-----------
[lld-macho][nfc] Remove DYSYM8 reloc attribute
It's likely redundant, per discussion with @gkm. The BYTE8
attribute covers the bit width requirement already.
Reviewed By: #lld-macho, gkm
Differential Revision: https://reviews.llvm.org/D100133
Commit: e11140451b5f8b4d0a34297ba8aac77ded4dbc2a
https://github.com/llvm/llvm-project/commit/e11140451b5f8b4d0a34297ba8aac77ded4dbc2a
Author: peter klausler <pklausler at nvidia.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M flang/runtime/CMakeLists.txt
A flang/runtime/random.cpp
A flang/runtime/random.h
M flang/unittests/RuntimeGTest/CMakeLists.txt
A flang/unittests/RuntimeGTest/Random.cpp
Log Message:
-----------
[flang] RANDOM_NUMBER, RANDOM_SEED, RANDOM_INIT in runtime
Add APIs, initial non-coarray implementations, and unit
tests for the intrinsic subroutines for pseudo-random
number generation.
Differential Revision: https://reviews.llvm.org/D100064
Commit: 0db6488a7704a322ae05f20ef3466bed3eb1bb98
https://github.com/llvm/llvm-project/commit/0db6488a7704a322ae05f20ef3466bed3eb1bb98
Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
Date: 2021-04-09 (Fri, 09 Apr 2021)
Changed paths:
M llvm/include/llvm/Support/FileSystem.h
M llvm/lib/Support/FileOutputBuffer.cpp
M llvm/lib/Support/Unix/Path.inc
M llvm/lib/Support/Windows/Path.inc
M llvm/unittests/Support/Path.cpp
Log Message:
-----------
Support: Add move semantics to mapped_file_region
Update llvm::sys::fs::mapped_file_region to have a move constructor and
a move assignment operator, allowing it to be used as an Optional. Also,
update FileOutputBuffer's OnDiskBuffer to take advantage of this,
avoiding an extra allocation from the unique_ptr.
A nice follow-up would be to make the mapped_file_region constructor
private and replace its use with a factory function, such as
mapped_file_region::create(), that returns an Expected (or ErrorOr). I
don't plan on doing that immediately, but I might swing back later.
No functionality change, besides the saved allocation in OnDiskBuffer.
Differential Revision: https://reviews.llvm.org/D100159
Commit: 4f173c0c42d02b14ab388a826ef0d463a07d7953
https://github.com/llvm/llvm-project/commit/4f173c0c42d02b14ab388a826ef0d463a07d7953
Author: Ben Shi <powerman1st at 163.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M clang/include/clang/Basic/DiagnosticFrontendKinds.td
M clang/lib/Basic/Targets/AVR.cpp
M clang/lib/CodeGen/TargetInfo.cpp
M clang/test/CodeGen/address-space-avr.c
A clang/test/CodeGen/avr-flash.c
Log Message:
-----------
[clang][AVR] Support variable decorator '__flash'
Reviewed By: Anastasia
Differential Revision: https://reviews.llvm.org/D96853
Commit: 8f4b7e94a2b4465b7dac889da286cbd26309457b
https://github.com/llvm/llvm-project/commit/8f4b7e94a2b4465b7dac889da286cbd26309457b
Author: dfukalov <daniil.fukalov at amd.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
M llvm/lib/Target/ARM/ARMTargetTransformInfo.h
M llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/lib/Target/X86/X86TargetTransformInfo.h
R llvm/test/Analysis/CostModel/AMDGPU/br.ll
A llvm/test/Analysis/CostModel/AMDGPU/control-flow.ll
M llvm/test/CodeGen/AMDGPU/unroll.ll
M llvm/test/Transforms/LoopUnroll/AMDGPU/unroll-cost-addrspacecast.ll
Log Message:
-----------
[AMDGPU][CostModel] Refine cost model for control-flow instructions.
Added cost estimation for switch instruction, updated costs of branches, fixed
phi cost.
Had to increase `-amdgpu-unroll-threshold-if` default value since conditional
branch cost (size) was corrected to higher value.
Test renamed to "control-flow.ll".
Removed redundant code in `X86TTIImpl::getCFInstrCost()` and
`PPCTTIImpl::getCFInstrCost()`.
Reviewed By: rampitec
Differential Revision: https://reviews.llvm.org/D96805
Commit: 6270b3a1eafaba4279e021418c5a2c5a35abc002
https://github.com/llvm/llvm-project/commit/6270b3a1eafaba4279e021418c5a2c5a35abc002
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M clang/lib/CodeGen/CGCall.cpp
M clang/test/CodeGen/attr-nomerge.cpp
M clang/test/CodeGenCXX/this-nonnull.cpp
M clang/test/CodeGenCoroutines/coro-symmetric-transfer-01.cpp
M clang/test/CodeGenObjCXX/objc-struct-cxx-abi.mm
M clang/test/OpenMP/irbuilder_for_iterator.cpp
M clang/test/OpenMP/irbuilder_for_rangefor.cpp
M clang/test/utils/update_cc_test_checks/Inputs/basic-cplusplus.cpp.expected
Log Message:
-----------
Temporairly revert "[CGCall] Annotate `this` argument with alignment"
As per @jyknight, "It seems like there's a bug with vtable thunks getting the wrong information."
See https://reviews.llvm.org/D99790#2680857, https://godbolt.org/z/MxhYMe1q7
This reverts commit 0aa0458f1429372038ca6a4edc7e94c96cd9a753.
Commit: 471ae42c04e425776c81bab66ce2c094d48c6a11
https://github.com/llvm/llvm-project/commit/471ae42c04e425776c81bab66ce2c094d48c6a11
Author: Hsiangkai Wang <kai.wang at sifive.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M clang/include/clang/Basic/riscv_vector.td
A clang/test/CodeGen/RISCV/rvv-intrinsics/vleff.c
M clang/utils/TableGen/RISCVVEmitter.cpp
Log Message:
-----------
[RISCV][Clang] Add RVV vleff intrinsic functions.
Reviewed By: craig.topper, liaolucy, jrtc27, khchen
Differential Revision: https://reviews.llvm.org/D99151
Commit: 71ab6c98a0d1b5590ed12f955dea6dfc714e9490
https://github.com/llvm/llvm-project/commit/71ab6c98a0d1b5590ed12f955dea6dfc714e9490
Author: Saurabh Jha <saurabh.jhaa at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M clang/include/clang/AST/OperationKinds.def
M clang/include/clang/AST/Stmt.h
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Sema/Sema.h
M clang/lib/AST/Expr.cpp
M clang/lib/AST/ExprConstant.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGExprAgg.cpp
M clang/lib/CodeGen/CGExprComplex.cpp
M clang/lib/CodeGen/CGExprConstant.cpp
M clang/lib/CodeGen/CGExprScalar.cpp
M clang/lib/Edit/RewriteObjCFoundationAPI.cpp
M clang/lib/Sema/SemaCast.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
A clang/test/CodeGen/matrix-cast.c
A clang/test/Sema/matrix-cast.c
A clang/test/SemaCXX/matrix-casts.cpp
Log Message:
-----------
[Matrix] Implement C-style explicit type conversions for matrix types.
This implements C-style type conversions for matrix types, as specified
in clang/docs/MatrixTypes.rst.
Fixes PR47141.
Reviewed By: fhahn
Differential Revision: https://reviews.llvm.org/D99037
Commit: b6aaa8836ee0f8a6ec13319bf26523ec73cdbed4
https://github.com/llvm/llvm-project/commit/b6aaa8836ee0f8a6ec13319bf26523ec73cdbed4
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
A llvm/test/Transforms/CorrelatedValuePropagation/abs.ll
Log Message:
-----------
[NFC][CVP] Add `@llvm.abs` test cases
Commit: c329a47d9ed77512493f787520317e3f51be3387
https://github.com/llvm/llvm-project/commit/c329a47d9ed77512493f787520317e3f51be3387
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
M llvm/test/Transforms/CorrelatedValuePropagation/abs.ll
M llvm/test/Transforms/CorrelatedValuePropagation/minmaxabs.ll
Log Message:
-----------
[CVP] @llvm.abs() handling
Iff we know the sigdness domain of the argument,
we can either skip @llvm.abs, or do negation directly.
Notably, INT_MIN can belong to either domain:
* X u<= INT_MIN --> X is always fine
https://alive2.llvm.org/ce/z/QB8j-C https://alive2.llvm.org/ce/z/7sFKpS
* X s<= 0 --> -X is always fine
https://alive2.llvm.org/ce/z/QbGSyq https://alive2.llvm.org/ce/z/APsN84
If all else fails, try to inferr NSW flag:
https://alive2.llvm.org/ce/z/qCJfYm
Commit: 3b677b81cec7b3c5132aee8fccc30252d87deb69
https://github.com/llvm/llvm-project/commit/3b677b81cec7b3c5132aee8fccc30252d87deb69
Author: Whisperity <whisperity at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M clang-tools-extra/clang-tidy/ClangTidy.cpp
M clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/infrastructure/export-diagnostics.cpp
M clang-tools-extra/unittests/clang-apply-replacements/ApplyReplacementsTest.cpp
M clang-tools-extra/unittests/clang-tidy/TransformerClangTidyCheckTest.cpp
M clang/include/clang/Tooling/Core/Diagnostic.h
M clang/include/clang/Tooling/DiagnosticsYaml.h
M clang/lib/Tooling/Core/Diagnostic.cpp
M clang/unittests/Tooling/DiagnosticsYamlTest.cpp
Log Message:
-----------
[libtooling][clang-tidy] Fix diagnostics not highlighting fed SourceRanges
Fixes bug http://bugs.llvm.org/show_bug.cgi?id=49000.
This patch allows Clang-Tidy checks to do
diag(X->getLocation(), "text") << Y->getSourceRange();
and get the highlight of `Y` as expected:
warning: text [blah-blah]
xxx(something)
^ ~~~~~~~~~
Reviewed-By: aaron.ballman, njames93
Differential Revision: http://reviews.llvm.org/D98635
Commit: 0c184154969c020db416bd7066af80ffd2a27ac4
https://github.com/llvm/llvm-project/commit/0c184154969c020db416bd7066af80ffd2a27ac4
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M llvm/include/llvm/IR/IntrinsicInst.h
Log Message:
-----------
zz
Commit: 17cf2c94230bc107e7294ef84fad3b47f4cd1b73
https://github.com/llvm/llvm-project/commit/17cf2c94230bc107e7294ef84fad3b47f4cd1b73
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M llvm/include/llvm/Analysis/ValueLattice.h
M llvm/include/llvm/IR/ConstantRange.h
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/IR/ConstantRange.cpp
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
M llvm/unittests/IR/ConstantRangeTest.cpp
Log Message:
-----------
[NFC][ConstantRange] Add 'icmp' helper method
"Does the predicate hold between two ranges?"
Not very surprisingly, some places were already doing this check,
without explicitly naming the algorithm, cleanup them all.
Commit: 8371dde4857a4356df3c20c8624aa8989de1bb24
https://github.com/llvm/llvm-project/commit/8371dde4857a4356df3c20c8624aa8989de1bb24
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M llvm/include/llvm/IR/IntrinsicInst.h
Log Message:
-----------
Revert "zz"
It wasn't meant to be committed, two commits should have been squashed.
This reverts commit 0c184154969c020db416bd7066af80ffd2a27ac4.
Commit: 7b12c8c59da6f028db1aad948d116d09309a91f5
https://github.com/llvm/llvm-project/commit/7b12c8c59da6f028db1aad948d116d09309a91f5
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M llvm/include/llvm/Analysis/ValueLattice.h
M llvm/include/llvm/IR/ConstantRange.h
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/IR/ConstantRange.cpp
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
M llvm/unittests/IR/ConstantRangeTest.cpp
Log Message:
-----------
Revert "[NFC][ConstantRange] Add 'icmp' helper method"
This reverts commit 17cf2c94230bc107e7294ef84fad3b47f4cd1b73.
Commit: e8c7f43e2c2c6f3581ec1c6489ec21ad9f98958a
https://github.com/llvm/llvm-project/commit/e8c7f43e2c2c6f3581ec1c6489ec21ad9f98958a
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M llvm/include/llvm/Analysis/ValueLattice.h
M llvm/include/llvm/IR/ConstantRange.h
M llvm/include/llvm/IR/IntrinsicInst.h
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/IR/ConstantRange.cpp
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
M llvm/unittests/IR/ConstantRangeTest.cpp
Log Message:
-----------
[NFC][ConstantRange] Add 'icmp' helper method
"Does the predicate hold between two ranges?"
Not very surprisingly, some places were already doing this check,
without explicitly naming the algorithm, cleanup them all.
Commit: 8fa39752477b225294cde0967a3b4c9c492e699c
https://github.com/llvm/llvm-project/commit/8fa39752477b225294cde0967a3b4c9c492e699c
Author: Whisperity <whisperity at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
M clang-tools-extra/test/clang-tidy/infrastructure/export-diagnostics.cpp
M clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp
Log Message:
-----------
[libtooling][clang-tidy] Fix off-by-one rendering issue with SourceRanges
There was an off-by-one issue with calculating the *exact* end location
of token ranges (as given by SomeDecl->getSourceRange()) which resulted in:
xxx(something)
^~~~~~~~ // Note the missing ~ under the last character.
In addition, a test is added to keep the behaviour in check in the future.
This patch hotfixes commit 3b677b81cec7b3c5132aee8fccc30252d87deb69.
Commit: 8f16101c703e7d9995dc238ba0f03be52bdf4528
https://github.com/llvm/llvm-project/commit/8f16101c703e7d9995dc238ba0f03be52bdf4528
Author: peter klausler <pklausler at nvidia.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M flang/lib/Evaluate/fold-integer.cpp
M flang/lib/Evaluate/intrinsics.cpp
M flang/lib/Semantics/mod-file.cpp
M flang/module/__fortran_builtins.f90
M flang/module/ieee_arithmetic.f90
A flang/test/Semantics/modfile40.f90
Log Message:
-----------
[flang] Accept & fold IEEE_SELECTED_REAL_KIND
F18 supports the standard intrinsic function SELECTED_REAL_KIND
but not its synonym in the standard module IEEE_ARITHMETIC
named IEEE_SELECTED_REAL_KIND until this patch.
Differential Revision: https://reviews.llvm.org/D100066
Commit: 03225969e39ce3ab88673cd047a2a546d655dd95
https://github.com/llvm/llvm-project/commit/03225969e39ce3ab88673cd047a2a546d655dd95
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M llvm/include/llvm/IR/IntrinsicInst.h
Log Message:
-----------
[NFC] Rename LimitingIntrinsic into MinMaxIntrinsic
As requested in post-commit review
Commit: 257eda07940d8e6d46dbb5944589a0186e07c6e9
https://github.com/llvm/llvm-project/commit/257eda07940d8e6d46dbb5944589a0186e07c6e9
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M llvm/include/llvm/Analysis/LazyValueInfo.h
M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
M llvm/lib/Transforms/Scalar/JumpThreading.cpp
Log Message:
-----------
[NFC][LVI] getPredicateAt(): drop default value for UseBlockValue
The default is likely wrong.
Out of all the callees, only a single one needs to pass-in false (JumpThread),
everything else either already passes true, or should pass true.
Until the default is flipped, at least make it harder to unintentionally
add new callees with UseBlockValue=false.
Commit: fe7b3ad8d5f7bf5f38ccdc5bd11ba0ff5656aeb5
https://github.com/llvm/llvm-project/commit/fe7b3ad8d5f7bf5f38ccdc5bd11ba0ff5656aeb5
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
Log Message:
-----------
[CVP] LVI: Use in-block values when checking value signedness domain
This has a huge positive impact on all the folds that use these helpers,
as it can be seen on vanilla test-suite + rawspeed + darktable:
correlated-value-propagation.NumSRems +75.68% (+ 28)
correlated-value-propagation.NumAShrs +63.87% (+198)
correlated-value-propagation.NumSDivs +49.42% (+127)
correlated-value-propagation.NumSExt + 8.85% (+593)
correlated-value-propagation.NumUDivURemsNarrowed + 8.65% (+34)
... while having pretty minimal compile-time impact:
https://llvm-compile-time-tracker.com/compare.php?from=e8c7f43e2c2c6f3581ec1c6489ec21ad9f98958a&to=4cd197711e58ee1b2faeee0c35eea54540185569&stat=instructions
Commit: a407738def187baedf9413d94fc4560efc9d6b43
https://github.com/llvm/llvm-project/commit/a407738def187baedf9413d94fc4560efc9d6b43
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
Log Message:
-----------
[NFC][CVP] Add statistic for function pointer argument non-null-ness deduction
Commit: f041757e9c2f7e343f5c4458797ee97687096020
https://github.com/llvm/llvm-project/commit/f041757e9c2f7e343f5c4458797ee97687096020
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/JumpThreading.cpp
Log Message:
-----------
[NFC][JumpThreading] Increment 'NumFolds' statistic all places terminator becomes uncond
Commit: 00ef28ef21f0a46059203c5aa96e9febe1192e43
https://github.com/llvm/llvm-project/commit/00ef28ef21f0a46059203c5aa96e9febe1192e43
Author: Wenlei He <aktoon at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M llvm/include/llvm/ProfileData/SampleProf.h
M llvm/include/llvm/ProfileData/SampleProfWriter.h
M llvm/lib/ProfileData/SampleProf.cpp
M llvm/lib/ProfileData/SampleProfWriter.cpp
M llvm/test/tools/llvm-profgen/recursion-compression-noprobe.test
M llvm/test/tools/llvm-profgen/recursion-compression-pseudoprobe.test
M llvm/tools/llvm-profdata/llvm-profdata.cpp
M llvm/tools/llvm-profgen/CSPreInliner.cpp
M llvm/tools/llvm-profgen/ProfileGenerator.cpp
M llvm/tools/llvm-profgen/ProfileGenerator.h
Log Message:
-----------
[CSSPGO] Fix dangling context strings and improve profile order consistency and error handling
This patch fixed the following issues along side with some refactoring:
1. Fix bugs where StringRef for context string out live the underlying std::string. We now keep string table in profile generator to hold std::strings. We also do the same for bracketed context strings in profile writer.
2. Make sure profile output strictly follow (total sample, name) order. Previously, there's inconsistency between ProfileMap's key and FunctionSamples's name, leading to inconsistent ordering. This is now fixed by introducing context profile canonicalization. Assertions are also added to make sure ProfileMap's key and FunctionSamples's name are always consistent.
3. Enhanced error handling for profile writing to make sure we bubble up errors properly for both llvm-profgen and llvm-profdata when string table is not populated correctly for extended binary profile.
4. Keep all internal context representation bracket free. This avoids creating new strings for context trimming, merging and preinline. getNameWithContext API is now simplied accordingly.
5. Factor out the code for context trimming and merging into SampleContextTrimmer in SampleProf.cpp. This enables llvm-profdata to use the trimmer when merging profiles. Changes in llvm-profgen will be in separate patch.
Differential Revision: https://reviews.llvm.org/D100090
Commit: 8de2f1ff79aa2a8a72b8c44ea70b48aa9f282ae5
https://github.com/llvm/llvm-project/commit/8de2f1ff79aa2a8a72b8c44ea70b48aa9f282ae5
Author: Nikita Popov <nikita.ppv at gmail.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M llvm/lib/Analysis/IVUsers.cpp
Log Message:
-----------
[IVUsers] Check LoopSimplify cache earlier (NFC)
Check the cache before calling isLoopSimplifyForm(). Otherwise we'd
always perform the check for the innermost loop and only skip it
for dominating loops.
Commit: d610f051045163f781ebc6da2e97414deafecd1e
https://github.com/llvm/llvm-project/commit/d610f051045163f781ebc6da2e97414deafecd1e
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
A llvm/test/Transforms/CorrelatedValuePropagation/min-max.ll
Log Message:
-----------
[NFC][CVP] Add tests for @llvm.[us]{min,max}() intrinsics
Commit: 9829f5e6b1bca9b61efc629770d28bb9014dec45
https://github.com/llvm/llvm-project/commit/9829f5e6b1bca9b61efc629770d28bb9014dec45
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/include/llvm/Analysis/LazyValueInfo.h
M llvm/lib/Analysis/LazyValueInfo.cpp
M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
M llvm/test/Transforms/CorrelatedValuePropagation/min-max.ll
Log Message:
-----------
[CVP] @llvm.[us]{min,max}() intrinsics handling
If we can tell that either one of the arguments is taken,
bypass the intrinsic.
Notably, we are indeed fine with non-strict predicate:
* UL: https://alive2.llvm.org/ce/z/69qVW9 https://alive2.llvm.org/ce/z/kNFTKf
https://alive2.llvm.org/ce/z/AvaPw2 https://alive2.llvm.org/ce/z/oxo53i
* UG: https://alive2.llvm.org/ce/z/wxHeGH https://alive2.llvm.org/ce/z/Lf76qx
* SL: https://alive2.llvm.org/ce/z/hkeTGS https://alive2.llvm.org/ce/z/eR_b-W
* SG: https://alive2.llvm.org/ce/z/wEqRm7 https://alive2.llvm.org/ce/z/FpAsVr
Much like with all other comparison handling in CVP,
while we could sort-of handle two Value's,
at least for plain ICmpInst it does not appear to be worthwhile.
This only fires 78 times on test-suite + dt + rs,
but we don't canonicalize to these yet. (only SCEV produces them)
Commit: 82fbc5d45b0c2fc9050d1d5e335e35afb4ab2611
https://github.com/llvm/llvm-project/commit/82fbc5d45b0c2fc9050d1d5e335e35afb4ab2611
Author: patacca <patacca at autistici.org>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M polly/include/polly/CodeGen/IslAst.h
M polly/include/polly/CodeGen/IslNodeBuilder.h
M polly/lib/CodeGen/IslAst.cpp
M polly/lib/CodeGen/IslNodeBuilder.cpp
Log Message:
-----------
[Polly] Partially refactoring of IslAstInfo and IslNodeBuilder to use isl++. NFC.
Polly use algorithms from the Integer Set Library (isl), which is a library written in C and which is incompatible with the rest of the LLVM as it is written in C++.
Changes made:
- Refactoring the following methods of class IslAstInfo
- isParallel() isExecutedInParallel() isReductionParallel() getSchedule() getMinimalDependenceDistance() getBrokenReductions()
- Refactoring the following methods of class IslNodeBuilder
- getReferencesInSubtree() getScheduleForAstNode()
- Refactoring function getBrokenReductionsStr()
- Fixed the mismatching function declaration for getScheduleForAstNode()
Reviewed By: Meinersbur
Differential Revision: https://reviews.llvm.org/D99971
Commit: 6210261ecb21c84c9a440a76c0ccbc8ad211bed3
https://github.com/llvm/llvm-project/commit/6210261ecb21c84c9a440a76c0ccbc8ad211bed3
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/test/CodeGen/AArch64/O0-pipeline.ll
M llvm/test/CodeGen/AArch64/O3-pipeline.ll
M llvm/test/CodeGen/ARM/O3-pipeline.ll
M llvm/test/CodeGen/Generic/addr-label.ll
M llvm/test/CodeGen/X86/O0-pipeline.ll
M llvm/test/CodeGen/X86/opt-pipeline.ll
M llvm/test/CodeGen/X86/select_meta.ll
M llvm/test/Other/2010-05-06-Printer.ll
Log Message:
-----------
Remove "Rewrite Symbols" from codegen pipeline
It breaks up the function pass manager in the codegen pipeline.
With empty parameters, it looks at the -mllvm flag -rewrite-map-file.
This is likely not in use.
Add a check that we only have one function pass manager in the codegen
pipeline.
This required reverting commit 9583a3f2625818b78c0cf6d473cdedb9f23ad82c:
"[AsmPrinter] Delete dead takeDeletedSymbsForFunction()".
This was not NFC as initially thought. By coalescing two function
psas managers, this exposed the reverted code as necessary.
addr-label.ll was crashing due to an emitted blockaddress's block being
removed but the label not emitted.
Some tests relied on the fact that we had a module pass somewhere in the
codegen pipeline.
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D99707
Commit: c88b87f9ce6490145e28a9c82640547f3e99bf57
https://github.com/llvm/llvm-project/commit/c88b87f9ce6490145e28a9c82640547f3e99bf57
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2021-04-10 (Sat, 10 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/test/CodeGen/AArch64/O0-pipeline.ll
M llvm/test/CodeGen/AArch64/O3-pipeline.ll
M llvm/test/CodeGen/ARM/O3-pipeline.ll
M llvm/test/CodeGen/Generic/addr-label.ll
M llvm/test/CodeGen/X86/O0-pipeline.ll
M llvm/test/CodeGen/X86/opt-pipeline.ll
M llvm/test/CodeGen/X86/select_meta.ll
M llvm/test/Other/2010-05-06-Printer.ll
Log Message:
-----------
Revert "Remove "Rewrite Symbols" from codegen pipeline"
This reverts commit 6210261ecb21c84c9a440a76c0ccbc8ad211bed3.
addr-label.ll crashes on armv7.
Commit: e8b0542078515b315d98b2ae3193bc7dae4a2430
https://github.com/llvm/llvm-project/commit/e8b0542078515b315d98b2ae3193bc7dae4a2430
Author: Sushma Unnibhavi <sushmaunnibhavi at gmail.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/docs/LangRef.rst
Log Message:
-----------
Missing syntax highlighting for LLVM IR in Langref
Added syntax highlighting
Differential Revision: https://reviews.llvm.org/D100125
Commit: 002c6c1187d642fd920758973154e4a856acefb0
https://github.com/llvm/llvm-project/commit/002c6c1187d642fd920758973154e4a856acefb0
Author: Sushma Unnibhavi <sushmaunnibhavi at gmail.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/docs/GlobalISel/GenericOpcode.rst
Log Message:
-----------
Typo fix
Reviewed By: dsanders
Differential Revision: https://reviews.llvm.org/D100254
Commit: 37388b8ad13fcac08823937c54236bc8f081338a
https://github.com/llvm/llvm-project/commit/37388b8ad13fcac08823937c54236bc8f081338a
Author: Zhang Qing Shan <zhangqingshan.zll at bytedance.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/CREDITS.TXT
Log Message:
-----------
Update personal info in CREDITS.TXT
Commit: ae103003b219d0084a785c75920f24f56193e9f4
https://github.com/llvm/llvm-project/commit/ae103003b219d0084a785c75920f24f56193e9f4
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M libcxx/utils/ci/buildkite-pipeline.yml
M libcxx/utils/ci/run-buildbot
Log Message:
-----------
[libc++] [CI] Validate the output of the generated scripts.
This adds a CI job validating that the output of
utils/generate_feature_test_macro_components.py,
libcxx/utils/generate_header_inclusion_tests.py, and
utils/generate_header_tests.py are up to date.
The validation method has been copied from the Format job.
Differential Revision: https://reviews.llvm.org/D99862
Commit: ee6a17eb9fc46c417d3d9ec11a218681e03bf18e
https://github.com/llvm/llvm-project/commit/ee6a17eb9fc46c417d3d9ec11a218681e03bf18e
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/test/Transforms/LoopIdiom/X86/left-shift-until-bittest.ll
Log Message:
-----------
[NFC][LoopIdiom] Regenerate left-shift-until-bittest.ll
Commit: 0ac1920d035f4a0e6df772de998eefe874a44f1d
https://github.com/llvm/llvm-project/commit/0ac1920d035f4a0e6df772de998eefe874a44f1d
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/test/Transforms/LoopIdiom/X86/left-shift-until-bittest.ll
Log Message:
-----------
[NFC][LoopIdiom] left-shift-until-bittest: add small-bitwidth tests
Commit: 005881e96e5fedab66f71cfa09558909d21e4a00
https://github.com/llvm/llvm-project/commit/005881e96e5fedab66f71cfa09558909d21e4a00
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
M llvm/test/Transforms/LoopIdiom/X86/left-shift-until-bittest.ll
Log Message:
-----------
[LoopIdiom] left-shift-until-bittest: set all allowed no-wrap flags on add/sub
I've checked each one of these with alive2,
and this is both correct and precise.
Commit: d1ebdbff123acea85f05fe088e260f4762db3b47
https://github.com/llvm/llvm-project/commit/d1ebdbff123acea85f05fe088e260f4762db3b47
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/test/Transforms/LoopVectorize/interleaved-accesses.ll
Log Message:
-----------
[NFC][LoopVectorize] Autogenerate interleaved-accesses.ll
Commit: 811167b1f6a611363ce43c8e27e71b1494af6fc5
https://github.com/llvm/llvm-project/commit/811167b1f6a611363ce43c8e27e71b1494af6fc5
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/test/Transforms/InstCombine/add.ll
Log Message:
-----------
[NFC][InstCombine] Add a few test of adding to add-like or
Commit: a36bb7fd761942577b0d20d7f9b2bac57ffcd986
https://github.com/llvm/llvm-project/commit/a36bb7fd761942577b0d20d7f9b2bac57ffcd986
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
M llvm/test/Transforms/InstCombine/add.ll
M llvm/test/Transforms/LoopVectorize/interleaved-accesses.ll
Log Message:
-----------
[InstCombine] (X | Op01C) + Op1C --> X + (Op01C + Op1C) iff the or is actually an add
https://alive2.llvm.org/ce/z/Coc5yf
Commit: 07c13b3b5f67b9518323864723a8797cc6d60a43
https://github.com/llvm/llvm-project/commit/07c13b3b5f67b9518323864723a8797cc6d60a43
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
A llvm/test/Transforms/InstCombine/get-lowbitmask-upto-and-including-bit.ll
Log Message:
-----------
[NFC][InstCombine] Add tests for "get low bit mask upto and including bit X" pattern
Commit: 91248e2db93a896a374098703567b0b1c8b1ad86
https://github.com/llvm/llvm-project/commit/91248e2db93a896a374098703567b0b1c8b1ad86
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
M llvm/test/Transforms/InstCombine/get-lowbitmask-upto-and-including-bit.ll
Log Message:
-----------
[InstCombine] Improve "get low bit mask upto and including bit X" pattern
https://alive2.llvm.org/ce/z/3u-48R
Commit: 48d69edadef1e4155106b183cd7219a1086454fe
https://github.com/llvm/llvm-project/commit/48d69edadef1e4155106b183cd7219a1086454fe
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/test/CodeGen/RISCV/rv32zbb-zbp.ll
M llvm/test/CodeGen/RISCV/rv64zbb-zbp.ll
Log Message:
-----------
[RISCV] Add i8 and i16 srli and srai tests to Zbb/Zbp test files. NFC
These require the input to be zero or sign extended. If we have
sext.b, sext.h or zext.h instructions we can use them. Otherwise
we need to use a pair of shifts to accomplish the zero/sign extend
and the final shift.
We don't currently use zext.h when it is available.
Commit: bc0e0527305d41bc55b27c60581749cb3ebdd5af
https://github.com/llvm/llvm-project/commit/bc0e0527305d41bc55b27c60581749cb3ebdd5af
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
M llvm/test/CodeGen/RISCV/rv32zbb-zbp.ll
M llvm/test/CodeGen/RISCV/rv64zbb-zbp.ll
Log Message:
-----------
[RISCV] Teach targetShrinkDemandedConstant to preserve (and X, 0xffff) when zext.h is supported.
Similar to what we do for zext.w.
Disable the (srl (and X, 0xffff), C) custom isel when zext.h is
available.
Commit: 3ae71226ef4963c01792e7679a21fd0fb61b40d6
https://github.com/llvm/llvm-project/commit/3ae71226ef4963c01792e7679a21fd0fb61b40d6
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
M llvm/test/CodeGen/RISCV/rvv/vfwadd.w-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vfwadd.w-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vfwsub.w-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vfwsub.w-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vwadd.w-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vwadd.w-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vwaddu.w-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vwaddu.w-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vwsub.w-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vwsub.w-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vwsubu.w-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vwsubu.w-rv64.ll
Log Message:
-----------
[RISCV] Drop earlyclobber constraint from vwadd(u).wx, vwsub(u).wx, vfwadd.wf and vfwsub.wf.
The first source has the same EEW as the destination and the other
source is a scalar so the overlap constraints don't apply to
the unmasked version.
For the masked version we have a constraint that the destination
can't be V0 so that covers the only overlap issue there.
Reviewed By: khchen
Differential Revision: https://reviews.llvm.org/D100217
Commit: 38c799bce8016f7487067a031b62cf98069aaa4d
https://github.com/llvm/llvm-project/commit/38c799bce8016f7487067a031b62cf98069aaa4d
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/bmi.ll
M llvm/test/CodeGen/X86/movmsk-cmp.ll
M llvm/test/CodeGen/X86/pr27202.ll
M llvm/test/CodeGen/X86/vector-reduce-and-bool.ll
Log Message:
-----------
[X86] Fold cmpeq/ne(and(X,Y),Y) --> cmpeq/ne(and(~X,Y),0)
Followup to D100177, handle an similar (demorgan inverse style) case from PR47797 as well
The AVX512 test cases could be further improved if we folded not(iX bitcast(vXi1)) -> (iX bitcast(not(vXi1)))
Alive2: https://alive2.llvm.org/ce/z/AnA_-W
Commit: 13bdac57093a01f7babe5d4919933d1e3ebd930b
https://github.com/llvm/llvm-project/commit/13bdac57093a01f7babe5d4919933d1e3ebd930b
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
Log Message:
-----------
[X86] combineXor - Pull out repeated getOperand() calls. NFCI.
Commit: ea8dd3ee2eb457a8c3975e1f64caa7a58169e02e
https://github.com/llvm/llvm-project/commit/ea8dd3ee2eb457a8c3975e1f64caa7a58169e02e
Author: Thomas Lively <tlively at google.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
M llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll
M llvm/test/CodeGen/WebAssembly/simd-reductions.ll
M llvm/test/MC/Disassembler/WebAssembly/wasm.txt
M llvm/test/MC/WebAssembly/simd-encodings.s
Log Message:
-----------
[WebAssembly] Update v128.any_true
In the final SIMD spec, there is only a single v128.any_true instruction, rather
than one for each lane interpretation because the semantics do not depend on the
lane interpretation.
Differential Revision: https://reviews.llvm.org/D100241
Commit: 231b87618bb61b24674d060721f7004057da9336
https://github.com/llvm/llvm-project/commit/231b87618bb61b24674d060721f7004057da9336
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/movmsk-cmp.ll
M llvm/test/CodeGen/X86/vector-reduce-and-bool.ll
Log Message:
-----------
[X86][AVX512] Fold not(kmov(x)) -> kmov(not(x)) and not(widen_subvector(x)) -> widen_subvector(not(x))
Improve AVX512 mask inversion, rG38c799bce801 exposed some missing opportunities to move scalar not() back onto the boolvector types for folding with setcc etc.
Commit: 3219d981d45e5df9c85039dee88cfc51cd17069b
https://github.com/llvm/llvm-project/commit/3219d981d45e5df9c85039dee88cfc51cd17069b
Author: Florian Hahn <flo at fhahn.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
A llvm/test/Transforms/VectorCombine/AArch64/load-extractelement-scalarization.ll
Log Message:
-----------
[VectorCombine] Add tests for load/extract scalarization.
Add tests where scalarizing a vector load + extract is profitable.
Commit: 816cf4146280fbe45683555558fa393b6ff41beb
https://github.com/llvm/llvm-project/commit/816cf4146280fbe45683555558fa393b6ff41beb
Author: Florian Hahn <flo at fhahn.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
A llvm/test/Transforms/LoopUnroll/AArch64/large-vector-ops.ll
Log Message:
-----------
[LoopUnroll] Add AArch64 test case with large vector ops.
Add test case to illustrate over-eager unrolling on AArch64, due to the
cost-model not estimating the size of vector loads/stores accurately.
Commit: 6d44b3c56d4a80b16f144a52bc841111c0b4d2c2
https://github.com/llvm/llvm-project/commit/6d44b3c56d4a80b16f144a52bc841111c0b4d2c2
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/lib/Analysis/DomTreeUpdater.cpp
Log Message:
-----------
[NFCI][DomTreeUpdater] applyUpdates(): reserve space for updates first
While, indeed, we may end up pushing less updates that we'd reserve space
for, self-dominating updates aren't often enough for that to matter.
But this should matter for normal updates.
Commit: 2def9c3d8ed9df5a5dc737343c891ac17de1afc1
https://github.com/llvm/llvm-project/commit/2def9c3d8ed9df5a5dc737343c891ac17de1afc1
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Utils/Local.cpp
Log Message:
-----------
[NFCI][Local] TryToSimplifyUncondBranchFromEmptyBlock(): improve Dominator Tree updating
First, we don't need vector-ness for the predecessor lists.
Secondly, like elsewhere, do insertions before deletions.
Lastly, the check that we actually need to insert an edge,
that it doesn't exist already, is backwards. Instead of
looking at successors of every single 'PredOfBB',
just always look at predecessors of the 'Succ'.
The result is always the same, but we avoid *really* inefficient code.
Commit: e5692a564a73ef63b7baaf80c2b7a62ad74e9e66
https://github.com/llvm/llvm-project/commit/e5692a564a73ef63b7baaf80c2b7a62ad74e9e66
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
Log Message:
-----------
[NFCI][BasicBlockUtils] MergeBlockIntoPredecessor(): improve Dominator Tree updating
Same as with TryToSimplifyUncondBranchFromEmptyBlock() patch.
Commit: 0699da1569870a4f7cf26534b87ca3c3b14caf3b
https://github.com/llvm/llvm-project/commit/0699da1569870a4f7cf26534b87ca3c3b14caf3b
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Utils/Local.cpp
Log Message:
-----------
[NFCI][Local] MergeBasicBlockIntoOnlyPred(): improve Dominator Tree updating
Same as with TryToSimplifyUncondBranchFromEmptyBlock()/MergeBlockIntoPredecessor() patch.
Commit: 13fca9d8161e3a203dce6d7647763a07d39bed3f
https://github.com/llvm/llvm-project/commit/13fca9d8161e3a203dce6d7647763a07d39bed3f
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
Log Message:
-----------
[NFCI][SimplifyCFG] mergeEmptyReturnBlocks(): improve Dominator Tree updating
Same as with previous patches.
Commit: 8fc8c745cffb1a7ae3a8ed5d0a4962b193d7cd78
https://github.com/llvm/llvm-project/commit/8fc8c745cffb1a7ae3a8ed5d0a4962b193d7cd78
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
Log Message:
-----------
[NFCI][SimplifyCFG] PerformValueComparisonIntoPredecessorFolding(): improve Dominator Tree updating
Same as with previous patches.
Commit: ff902080a9fbf16fdeb076d3aadc8df6eea1cc04
https://github.com/llvm/llvm-project/commit/ff902080a9fbf16fdeb076d3aadc8df6eea1cc04
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
M llvm/test/CodeGen/RISCV/alu16.ll
M llvm/test/CodeGen/RISCV/bswap-ctlz-cttz-ctpop.ll
M llvm/test/CodeGen/RISCV/div.ll
M llvm/test/CodeGen/RISCV/rv64zbb-zbp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-bswap.ll
Log Message:
-----------
[RISCV] Use SLLI/SRLI instead of SLLIW/SRLIW for (srl (and X, 0xffff), C) custom isel on RV64.
We don't need the sign extending behavior here and SLLI/SRLI
are able to compress to C.SLLI/C.SRLI.
Commit: cb4c793e46bb01914e07d1c66238133e6d672321
https://github.com/llvm/llvm-project/commit/cb4c793e46bb01914e07d1c66238133e6d672321
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
Log Message:
-----------
[RISCV] Update computeKnownBitsForTargetNode to treat READ_VLENB as being 16 byte aligned.
According to the 0.10 spec, VLEN is at least 128 bits and is a
power of 2.
Commit: a3bfddbb6a27a1e2d34410068b9c553221fda8c3
https://github.com/llvm/llvm-project/commit/a3bfddbb6a27a1e2d34410068b9c553221fda8c3
Author: Jim Lin <jim at andestech.com>
Date: 2021-04-12 (Mon, 12 Apr 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
Log Message:
-----------
[RISCV][NFC] Remove unneeded explict XLenVT type on codegen patterns
Customized SDNode has been specified the explict XLenVT type.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D100190
Commit: ccc624bfd417c92b30581becf6974b42aba82a10
https://github.com/llvm/llvm-project/commit/ccc624bfd417c92b30581becf6974b42aba82a10
Author: Zakk Chen <zakk.chen at sifive.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M clang/include/clang/Basic/riscv_vector.td
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwadd.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwsub.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vwadd.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vwsub.c
Log Message:
-----------
[RISCV][Clang] Add RVV Widening Integer Add/Subtract intrinsic functions.
Reviewed By: craig.topper
Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>
Differential Revision: https://reviews.llvm.org/D99526
Commit: 007ea0e736432ef1f6be7d88378012822d96767b
https://github.com/llvm/llvm-project/commit/007ea0e736432ef1f6be7d88378012822d96767b
Author: Zakk Chen <zakk.chen at sifive.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M clang/include/clang/Basic/riscv_vector.td
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfdiv.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmax.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmin.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmul.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfrdiv.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfrsub.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfsgnj.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfsub.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfdiv.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmax.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmin.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmul.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfrdiv.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfrsub.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfsgnj.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfsub.c
Log Message:
-----------
[RISCV][Clang] Add some RVV Floating-Point intrinsic functions.
Support the following instructions which have the same class.
1. Vector Single-Width Floating-Point Subtract Instructions
2. Vector Single-Width Floating-Point Multiply/Divide Instructions
3. Vector Floating-Point MIN/MAX Instructions
4. Vector Floating-Point Sign-Injection Instructions
Reviewed By: craig.topper
Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>
Differential Revision: https://reviews.llvm.org/D99668
Commit: 98a3ff9d05250807867be3dd82fdb10ee5c4030a
https://github.com/llvm/llvm-project/commit/98a3ff9d05250807867be3dd82fdb10ee5c4030a
Author: Zakk Chen <zakk.chen at sifive.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M clang/include/clang/Basic/riscv_vector.td
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmacc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmadd.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmsac.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmsub.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmacc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmadd.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmsac.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmsub.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwadd.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwmacc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwmsac.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwmul.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwnmacc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwnmsac.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwsub.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfeq.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfge.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfgt.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfle.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmflt.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfne.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmacc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmadd.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmsac.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmsub.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfnmacc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfnmadd.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfnmsac.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfnmsub.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwadd.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwmacc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwmsac.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwmul.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwnmacc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwnmsac.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwsub.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmfeq.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmfge.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmfgt.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmfle.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmflt.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmfne.c
Log Message:
-----------
[RISCV][Clang] Add more RVV Floating-Point intrinsic functions.
Support below instructions.
1. Vector Widening Floating-Point Add/Subtract Instructions
2. Vector Widening Floating-Point Multiply
3. Vector Single-Width Floating-Point Fused Multiply-Add Instructions
4. Vector Widening Floating-Point Fused Multiply-Add Instructions
5. Vector Floating-Point Compare Instructions
Reviewed By: craig.topper, HsiangKai
Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>
Differential Revision: https://reviews.llvm.org/D99669
Commit: 5f7739b60e983dadc3c669b0ddf930d4d8242c4c
https://github.com/llvm/llvm-project/commit/5f7739b60e983dadc3c669b0ddf930d4d8242c4c
Author: Zakk Chen <zakk.chen at sifive.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M clang/include/clang/Basic/riscv_vector.td
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfclass.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmerge.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfrec7.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfrsqrt7.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfsqrt.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfclass.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmerge.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfrec7.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfrsqrt7.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfsqrt.c
Log Message:
-----------
[RISCV][Clang] Add some RVV Floating-Point intrinsic functions.
Support vfclass, vfmerge, vfrec7, vfrsqrt7, vfsqrt instructions.
Reviewed By: craig.topper
Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>
Differential Revision: https://reviews.llvm.org/D99741
Commit: 01fa222b6d9febc5f5c654ce40137380b6e4c540
https://github.com/llvm/llvm-project/commit/01fa222b6d9febc5f5c654ce40137380b6e4c540
Author: Zakk Chen <zakk.chen at sifive.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M clang/include/clang/Basic/riscv_vector.td
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfcvt.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfncvt.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwcvt.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfcvt.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfncvt.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwcvt.c
M clang/utils/TableGen/RISCVVEmitter.cpp
Log Message:
-----------
[RISCV][Clang] Add RVV Type-Convert intrinsic functions.
Fix extension macro condition.
Support below instructions:
1. Single-Width Floating-Point/Integer Type-Convert Instructions
2. Widening Floating-Point/Integer Type-Convert Instructions
3. Narrowing Floating-Point/Integer Type-Convert Instructions
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D99742
Commit: 07c3854a75bcbb7521f27e1e775bc79f4d0340f7
https://github.com/llvm/llvm-project/commit/07c3854a75bcbb7521f27e1e775bc79f4d0340f7
Author: Zakk Chen <zakk.chen at sifive.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M clang/include/clang/Basic/riscv_vector.td
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmerge.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmerge.c
Log Message:
-----------
[RISCV][Clang] Add RVV merge intrinsic functions.
Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D99963
Commit: c680b0dabf367046c9acb397cddc5e3a2194bbaa
https://github.com/llvm/llvm-project/commit/c680b0dabf367046c9acb397cddc5e3a2194bbaa
Author: Zakk Chen <zakk.chen at sifive.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M clang/include/clang/Basic/riscv_vector.td
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfredmax.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfredmin.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfredsum.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwredsum.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredand.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredmax.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredmin.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredor.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredsum.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredxor.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwredsum.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfredmax.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfredmin.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfredsum.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwredosum.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwredsum.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vredand.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vredmax.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vredmin.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vredor.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vredsum.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vredxor.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vwredsum.c
Log Message:
-----------
[RISCV][Clang] Add all RVV Reduction intrinsic functions.
Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D99964
Commit: e5a821926407713a3955409a74089de6ebf36493
https://github.com/llvm/llvm-project/commit/e5a821926407713a3955409a74089de6ebf36493
Author: Zakk Chen <zakk.chen at sifive.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M clang/include/clang/Basic/riscv_vector.td
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vlse.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vse.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsoxei.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsse.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsuxei.c
M clang/test/CodeGen/RISCV/rvv-intrinsics/vle.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vlse.c
M clang/test/CodeGen/RISCV/rvv-intrinsics/vse.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vsoxei.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vsse.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vsuxei.c
Log Message:
-----------
[RISCV][Clang] Add more RVV load/store intrinsic functions.
Support the following instructions.
1. Mask load and store
2. Vector Strided Instructions
3. Vector Indexed Store Instructions
Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D99965
Commit: a8fc0e445cad91a5c2f207e39ee9220253eb5578
https://github.com/llvm/llvm-project/commit/a8fc0e445cad91a5c2f207e39ee9220253eb5578
Author: Zakk Chen <zakk.chen at sifive.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M clang/include/clang/Basic/riscv_vector.td
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfirst.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vid.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/viota.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmand.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmnand.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmnor.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmor.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsbf.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsif.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsof.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmxnor.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmxor.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vpopc.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfirst.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vid.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/viota.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmand.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmclr.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmnand.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmnor.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmor.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmsbf.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmset.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmsif.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmsof.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmxnor.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vmxor.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vpopc.c
M clang/utils/TableGen/RISCVVEmitter.cpp
M llvm/include/llvm/IR/IntrinsicsRISCV.td
Log Message:
-----------
[RISCV][Clang] Add all RVV Mask intrinsic functions.
1. Redefine vpopc and vfirst IR intrinsic so it could adapt on
clang tablegen generator which always appends a type for vl
in IntrinsicType of clang codegen.
2. Remove `c` type transformer and add `u` and `l` for unsigned long
and long type.
Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D100120
Commit: 59d5b8c27b43021887dbf63e23800c340386080c
https://github.com/llvm/llvm-project/commit/59d5b8c27b43021887dbf63e23800c340386080c
Author: Zakk Chen <zakk.chen at sifive.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M clang/include/clang/Basic/riscv_vector.td
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfslide1down.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfslide1up.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vrgather.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vslide1down.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vslide1up.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vslidedown.c
A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vslideup.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfslide1down.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vfslide1up.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vrgather.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vslide1down.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vslide1up.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vslidedown.c
A clang/test/CodeGen/RISCV/rvv-intrinsics/vslideup.c
Log Message:
-----------
[RISCV][Clang] Add some RVV Permutation intrinsic functions.
Support the following instructions.
1. Vector Slide Instructions
2. Vector Register Gather Instructions
3. Vector Compress Instruction
Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D100127
Commit: ece7345859c38acb015243632822f41214d01adc
https://github.com/llvm/llvm-project/commit/ece7345859c38acb015243632822f41214d01adc
Author: Qiu Chaofan <qiucofan at cn.ibm.com>
Date: 2021-04-12 (Mon, 12 Apr 2021)
Changed paths:
M llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/test/CodeGen/PowerPC/f128-compare.ll
M llvm/test/CodeGen/PowerPC/fp-strict-fcmp.ll
Log Message:
-----------
[PowerPC] Lower f128 SETCC/SELECT_CC as libcall if p9vector disabled
XSCMPUQP is not available for pre-P9 subtargets. This patch will lower
them into libcall for correct behavior on power7/power8.
Reviewed By: steven.zhang
Differential Revision: https://reviews.llvm.org/D92083
Commit: 3a6a80b641bcffc570d5bc187b45f7bb9a2e7ce2
https://github.com/llvm/llvm-project/commit/3a6a80b641bcffc570d5bc187b45f7bb9a2e7ce2
Author: yifeng.dongyifeng <yifeng.dongyifeng at alibaba-inc.com>
Date: 2021-04-12 (Mon, 12 Apr 2021)
Changed paths:
M clang/lib/CodeGen/CGCoroutine.cpp
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/lib/CodeGen/CGDebugInfo.h
M clang/lib/CodeGen/CGDecl.cpp
M clang/lib/CodeGen/CodeGenFunction.cpp
M clang/lib/CodeGen/CodeGenFunction.h
A clang/test/CodeGenCoroutines/coro-dwarf.cpp
Log Message:
-----------
[Clang][Coroutine][DebugInfo] In c++ coroutine, clang will emit different debug info variables for parameters and move-parameters.
The first one is the real parameters of the coroutine function, the
other one just for copying parameters to the coroutine frame.
Considering the following c++ code:
```
struct coro {
...
};
coro foo(struct test & t) {
...
co_await suspend_always();
...
co_await suspend_always();
...
co_await suspend_always();
}
int main(int argc, char *argv[]) {
auto c = foo(...);
c.handle.resume();
...
}
```
Function foo is the standard coroutine function, and it has only
one parameter named t (ignoring this at first),
when we use the llvm code to compile this function, we can get the
following ir:
```
!2921 = distinct !DISubprogram(name: "foo", linkageName:
"_ZN6Object3fooE4test", scope: !2211, file: !45, li\
ne: 48, type: !2329, scopeLine: 48, flags: DIFlagPrototyped |
DIFlagAllCallsDescribed, spFlags: DISPFlagDefi\
nition | DISPFlagOptimized, unit: !44, declaration: !2328,
retainedNodes: !2922)
!2924 = !DILocalVariable(name: "t", arg: 2, scope: !2921, file: !45,
line: 48, type: !838)
...
!2926 = !DILocalVariable(name: "t", scope: !2921, type: !838, flags:
DIFlagArtificial)
```
We can find there are two `the same` DIVariable named t in the same
dwarf scope for foo.resume.
And when we try to use llvm-dwarfdump to dump the dwarf info of this
elf, we get the following output:
```
0x00006684: DW_TAG_subprogram
DW_AT_low_pc (0x00000000004013a0)
DW_AT_high_pc (0x00000000004013a8)
DW_AT_frame_base (DW_OP_reg7 RSP)
DW_AT_object_pointer (0x0000669c)
DW_AT_GNU_all_call_sites (true)
DW_AT_specification (0x00005b5c "_ZN6Object3fooE4test")
0x000066a5: DW_TAG_formal_parameter
DW_AT_name ("t")
DW_AT_decl_file ("/disk1/yifeng.dongyifeng/my_code/llvm/build/bin/coro-debug-1.cpp")
DW_AT_decl_line (48)
DW_AT_type (0x00004146 "test")
0x000066ba: DW_TAG_variable
DW_AT_name ("t")
DW_AT_type (0x00004146 "test")
DW_AT_artificial (true)
```
The elf also has two 't' in the same scope.
But unluckily, it might let the debugger
confused. And failed to print parameters for O0 or above.
This patch will make coroutine parameters and move
parameters use the same DIVar and try to fix the problems
that I mentioned before.
Test Plan: check-clang
Reviewed By: aprantl, jmorse
Differential Revision: https://reviews.llvm.org/D97533
Commit: bb346146a52e3093979d51454ba615194d51c709
https://github.com/llvm/llvm-project/commit/bb346146a52e3093979d51454ba615194d51c709
Author: Chen Zheng <czhengsz at cn.ibm.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
A llvm/test/CodeGen/Generic/pr49872.ll
Log Message:
-----------
[Debug-Info] make fortran CHARACTER(1) type as valid unsigned type
This resolves https://bugs.llvm.org/show_bug.cgi?id=49872
Reviewed By: aprantl
Differential Revision: https://reviews.llvm.org/D100015
Commit: 74283fc8534b729f5e15ae934de15c01fd6db9c0
https://github.com/llvm/llvm-project/commit/74283fc8534b729f5e15ae934de15c01fd6db9c0
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-11 (Sun, 11 Apr 2021)
Changed paths:
M lld/test/MachO/arm64-reloc-got-load.s
M lld/test/MachO/arm64-reloc-pointer-to-got.s
M lld/test/MachO/arm64-relocs.s
M lld/test/MachO/indirect-symtab.s
M lld/test/MachO/invalid/bad-got-to-dylib-tlv-reference.s
M lld/test/MachO/invalid/bad-tlv-def.s
M lld/test/MachO/invalid/bad-tlv-opcode.s
M lld/test/MachO/mattrs.ll
M lld/test/MachO/objc.s
M lld/test/MachO/tlv-dylib.s
M lld/test/MachO/tlv.s
M lld/test/MachO/weak-binding.s
M lld/test/MachO/weak-reference.s
M lld/test/MachO/why-load.s
M lld/test/MachO/x86-64-reloc-got-load.s
Log Message:
-----------
[lld-macho][nfc] Convert tabs to spaces
Commit: 5cb47be4104558b2a69dc3df667dbe046bdcce6d
https://github.com/llvm/llvm-project/commit/5cb47be4104558b2a69dc3df667dbe046bdcce6d
Author: Freddy Ye <freddy.ye at intel.com>
Date: 2021-04-12 (Mon, 12 Apr 2021)
Changed paths:
M clang/test/Preprocessor/predefined-arch-macros.c
M llvm/lib/Support/X86TargetParser.cpp
M llvm/lib/Target/X86/X86.td
M llvm/test/CodeGen/X86/clwb.ll
Log Message:
-----------
[X86] Remove FeatureCLWB from FeaturesICLClient
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D100279
Commit: 36b932d6a385bb97efe17818a7a47d29d2d8acf3
https://github.com/llvm/llvm-project/commit/36b932d6a385bb97efe17818a7a47d29d2d8acf3
Author: Evgeniy Brevnov <ybrevnov at azul.com>
Date: 2021-04-12 (Mon, 12 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/NaryReassociate.cpp
A llvm/test/Transforms/NaryReassociate/nary-req.ll
Log Message:
-----------
[NARY] Don't optimize min/max if there are side uses
Say we have
%1=min(%a,%b)
%2=min(%b,%c)
%3=min(%2,%a)
The optimization will try to reassociate the later one so that we can rewrite it to %3=min(%1, %c) and remove %2.
But if %2 has another uses outside of %3 then we can't remove %2 and end up with:
%1=min(%a,%b)
%2=min(%b,%c)
%3=min(%1, %c)
This doesn't harm by itself except it is not profitable and changes IR for no good reason.
What is bad it triggers next iteration which finds out that optimization is applicable to %2 and %3 and generates:
%1=min(%a,%b)
%2=min(%b,%c)
%3=min(%1,%c)
%4=min(%2,%a)
and so on...
The solution is to prevent optimization in the first place if intermediate result (%2) has side uses and
known to be not removed.
Reviewed By: mkazantsev
Differential Revision: https://reviews.llvm.org/D100170
Commit: 747111ea71f5ede10ebd03b8c1197b1f1e50e89f
https://github.com/llvm/llvm-project/commit/747111ea71f5ede10ebd03b8c1197b1f1e50e89f
Author: Bing1 Yu <bing1.yu at intel.com>
Date: 2021-04-12 (Mon, 12 Apr 2021)
Changed paths:
M llvm/lib/Target/X86/X86LowerAMXIntrinsics.cpp
M llvm/test/CodeGen/X86/AMX/amx-low-intrinsics.ll
Log Message:
-----------
[X86] Pass to transform tdpbsud&tdpbusd&tdpbuud intrinsics to scalar operation
Reviewed By: pengfei
Differential Revision: https://reviews.llvm.org/D99244
Commit: dd4c999c2316288f7c560f5c18077642c14b50df
https://github.com/llvm/llvm-project/commit/dd4c999c2316288f7c560f5c18077642c14b50df
Author: Jim Lin <jim at andestech.com>
Date: 2021-04-12 (Mon, 12 Apr 2021)
Changed paths:
M compiler-rt/CMakeLists.txt
Log Message:
-----------
fix typo in a CMake SANITIZER_CAN_USE_CXXABI variable initial definition
The current variable name isn't used anywhere else, which indicates it's
a typo. Let's fix it before someone copy+pastes it somewhere else.
Reviewed By: Jim
Differential Revision: https://reviews.llvm.org/D39157
Commit: 8a2d375a77bfd9d73f7dbb12bed5c8a014aa2a53
https://github.com/llvm/llvm-project/commit/8a2d375a77bfd9d73f7dbb12bed5c8a014aa2a53
Author: Jim Lin <jim at andestech.com>
Date: 2021-04-12 (Mon, 12 Apr 2021)
Changed paths:
M clang/lib/AST/VTableBuilder.cpp
Log Message:
-----------
[NFC] [Clang]: fix spelling mistake in assert message
Reviewed By: Jim
Differential Revision: https://reviews.llvm.org/D71541
Commit: 2dd22da965ffc1623421cb8163947d7e679ce187
https://github.com/llvm/llvm-project/commit/2dd22da965ffc1623421cb8163947d7e679ce187
Author: Mikael Holmen <mikael.holmen at ericsson.com>
Date: 2021-04-12 (Mon, 12 Apr 2021)
Changed paths:
M clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp
Log Message:
-----------
[libtooling][clang-tidy] Fix compiler warnings in testcase [NFC]
Without the fix we get:
06:31:09 In file included from ../../clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp:3:
06:31:09 ../utils/unittest/googletest/include/gtest/gtest.h:1392:11: error: comparison of integers of different signs: 'const int' and 'const unsigned int' [-Werror,-Wsign-compare]
06:31:09 if (lhs == rhs) {
06:31:09 ~~~ ^ ~~~
06:31:09 ../utils/unittest/googletest/include/gtest/gtest.h:1421:12: note: in instantiation of function template specialization 'testing::internal::CmpHelperEQ<int, unsigned int>' requested here
06:31:09 return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs);
06:31:09 ^
06:31:09 ../../clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp:60:3: note: in instantiation of function template specialization 'testing::internal::EqHelper<false>::Compare<int, unsigned int>' requested here
06:31:09 EXPECT_EQ(4, Errors[0].Message.FileOffset);
06:31:09 ^
06:31:09 ../utils/unittest/googletest/include/gtest/gtest.h:1924:63: note: expanded from macro 'EXPECT_EQ'
06:31:09 EqHelper<GTEST_IS_NULL_LITERAL_(val1)>::Compare, \
06:31:09 ^
06:31:09 ../utils/unittest/googletest/include/gtest/gtest.h:1392:11: error: comparison of integers of different signs: 'const int' and 'const unsigned long' [-Werror,-Wsign-compare]
06:31:09 if (lhs == rhs) {
06:31:09 ~~~ ^ ~~~
06:31:09 ../utils/unittest/googletest/include/gtest/gtest.h:1421:12: note: in instantiation of function template specialization 'testing::internal::CmpHelperEQ<int, unsigned long>' requested here
06:31:09 return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs);
06:31:09 ^
06:31:09 ../../clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp:64:3: note: in instantiation of function template specialization 'testing::internal::EqHelper<false>::Compare<int, unsigned long>' requested here
06:31:09 EXPECT_EQ(1, Errors[0].Message.Ranges.size());
06:31:09 ^
06:31:09 ../utils/unittest/googletest/include/gtest/gtest.h:1924:63: note: expanded from macro 'EXPECT_EQ'
06:31:09 EqHelper<GTEST_IS_NULL_LITERAL_(val1)>::Compare, \
06:31:09 ^
06:31:09 2 errors generated.
Commit: d69c236e1d6b4705d3a0041f39bfe864638eb24e
https://github.com/llvm/llvm-project/commit/d69c236e1d6b4705d3a0041f39bfe864638eb24e
Author: Zhang Qing Shan <zhangqingshan.zll at bytedance.com>
Date: 2021-04-12 (Mon, 12 Apr 2021)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
Log Message:
-----------
[NFC][Debug] Fix unnecessary deep-copy for vector to save compiling time
We saw some big compiling time impact after enabling the debug entry value
feature for X86 platform(D73534). Compiling time goes from 900s->1600s with
our testcase. It is caused by allocating/freeing the memory busily.
'using FwdRegWorklist = MapVector<unsigned, SmallVector<FwdRegParamInfo, 2>>;'
The value for this map is vector, and we miss the reference when access the
element. The same happens for `auto CalleesMap = MF->getCallSitesInfo();` which is a DenseMap.
Reviewed by: djtodoro, flychen50
Differential Revision: https://reviews.llvm.org/D100162
Commit: 6e5199104914c2415092315388ed09fbd9d629f7
https://github.com/llvm/llvm-project/commit/6e5199104914c2415092315388ed09fbd9d629f7
Author: Balázs Kéri <1.int32 at gmail.com>
Date: 2021-04-12 (Mon, 12 Apr 2021)
Changed paths:
M clang/lib/AST/Expr.cpp
M clang/unittests/Tooling/SourceCodeTest.cpp
Log Message:
-----------
[clang][AST] Handle overload callee type in CallExpr::getCallReturnType.
The function did not handle every case. In some cases this
caused assertion failure.
After the fix the function returns DependentTy if the exact
return type can not be determined.
It seems that clang itself does not call the function in the
affected cases but some checker or other code may call it.
Reviewed By: hokein
Differential Revision: https://reviews.llvm.org/D95244
Commit: 62fa9b9388aa114e3b1a58bbdbcd966ae3492ba5
https://github.com/llvm/llvm-project/commit/62fa9b9388aa114e3b1a58bbdbcd966ae3492ba5
Author: Esme-Yi <esme.yi at ibm.com>
Date: 2021-04-12 (Mon, 12 Apr 2021)
Changed paths:
M clang/lib/CodeGen/CGDebugInfo.cpp
A clang/test/CodeGenCXX/debug-info-programming-language.cpp
M clang/test/Modules/ModuleDebugInfo.cpp
Log Message:
-----------
[DebugInfo] Fix the mismatching between C++ language tags and Dwarf versions.
Summary: The tags DW_LANG_C_plus_plus_14 and DW_LANG_C_plus_plus_11, introduced in Dwarf-5, are unexpected in previous versions. Fixing the mismathing doesn't have any drawbacks for any other debuggers, but helps dbx.
Reviewed By: aprantl, shchenz
Differential Revision: https://reviews.llvm.org/D99250
Commit: a655f250fef84795e3e46c0bcb824d7b5fbceec6
https://github.com/llvm/llvm-project/commit/a655f250fef84795e3e46c0bcb824d7b5fbceec6
Author: Stelios Ioannou <stelios.ioannou at arm.com>
Date: 2021-04-12 (Mon, 12 Apr 2021)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
M llvm/test/CodeGen/AArch64/ragreedy-local-interval-cost.ll
Log Message:
-----------
[AArch64] Adds memory operands for indexed loads.
This patch adds the memory operands for indexed loads so
that certain optimizations can take place.
Differential Revision: https://reviews.llvm.org/D100215/
Change-Id: I539fcf046ca4ad1e7df1d893f57d751419d8364d
Commit: 731bf28a6092286dde6972803b35c026e32bd6b1
https://github.com/llvm/llvm-project/commit/731bf28a6092286dde6972803b35c026e32bd6b1
Author: Sven van Haastregt <sven.vanhaastregt at arm.com>
Date: 2021-04-12 (Mon, 12 Apr 2021)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaExprMember.cpp
M clang/test/SemaOpenCL/ext_vectors.cl
Log Message:
-----------
[OpenCL] Accept .rgba in OpenCL 3.0
The .rgba vector component accessors are supported in OpenCL C 3.0.
Previously, the diagnostic would check `OpenCLVersion` for version 2.2
(value 220) and report those accessors are an OpenCL 2.2 feature.
However, there is no "OpenCL C version 2.2", so change the check and
diagnostic text to 3.0 only.
A spurious `OpenCLVersion` argument was passed into the diagnostic;
remove that.
Differential Revision: https://reviews.llvm.org/D99969
Commit: f9a8c6a0e50540f68e6740a849a7caf5e4d46ca6
https://github.com/llvm/llvm-project/commit/f9a8c6a0e50540f68e6740a849a7caf5e4d46ca6
Author: Sebastian Neubauer <sebastian.neubauer at amd.com>
Date: 2021-04-12 (Mon, 12 Apr 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
M llvm/lib/Target/AMDGPU/SIRegisterInfo.h
M llvm/test/CodeGen/AMDGPU/control-flow-fastregalloc.ll
M llvm/test/CodeGen/AMDGPU/frame-setup-without-sgpr-to-vgpr-spills.ll
M llvm/test/CodeGen/AMDGPU/partial-sgpr-to-vgpr-spills.ll
M llvm/test/CodeGen/AMDGPU/sgpr-spill.mir
M llvm/test/CodeGen/AMDGPU/si-spill-sgpr-stack.ll
M llvm/test/CodeGen/AMDGPU/spill-m0.ll
M llvm/test/CodeGen/AMDGPU/spill-scavenge-offset.ll
A llvm/test/CodeGen/AMDGPU/spill-sgpr-stack-no-sgpr.ll
M llvm/test/CodeGen/AMDGPU/spill-special-sgpr.mir
Log Message:
-----------
[AMDGPU] Save VGPR of whole wave when spilling
Spilling SGPRs to scratch uses a temporary VGPR. LLVM currently cannot
determine if a VGPR is used in other lanes or not, so we need to save
all lanes of the VGPR. We even need to save the VGPR if it is marked as
dead.
The generated code depends on two things:
- Can we scavenge an SGPR to save EXEC?
- And can we scavenge a VGPR?
If we can scavenge an SGPR, we
- save EXEC into the SGPR
- set the needed lane mask
- save the temporary VGPR
- write the spilled SGPR into VGPR lanes
- save the VGPR again to the target stack slot
- restore the VGPR
- restore EXEC
If we were not able to scavenge an SGPR, we do the same operations, but
everytime the temporary VGPR is written to memory, we
- write VGPR to memory
- flip exec (s_not exec, exec)
- write VGPR again (previously inactive lanes)
Surprisingly often, we are able to scavenge an SGPR, even though we are
at the brink of running out of SGPRs.
Scavenging a VGPR does not have a great effect (saves three instructions
if no SGPR was scavenged), but we need to know if the VGPR we use is
live before or not, otherwise the machine verifier complains.
Differential Revision: https://reviews.llvm.org/D96336
Commit: 350cb28bdb7455d9846128aad09051606b81d4c9
https://github.com/llvm/llvm-project/commit/350cb28bdb7455d9846128aad09051606b81d4c9
Author: kai.ma <kai.ma at corerain.com>
Date: 2021-04-12 (Mon, 12 Apr 2021)
Changed paths:
M mlir/include/mlir/Conversion/GPUCommon/GPUCommonPass.h
M mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp
Log Message:
-----------
Merge branch 'dev-newmaster' of http://crdev2.corerain.com/software/llvm-project into dev-newmaster
Compare: https://github.com/llvm/llvm-project/compare/e8b5927cdcde...350cb28bdb74
More information about the All-commits
mailing list