- Dec 08, 2022
-
-
Nikita Popov authored
-
jacquesguan authored
Reviewed By: reames Differential Revision: https://reviews.llvm.org/D139510
-
Quentin Colombet authored
Collapsing dimensions of size 1 with random strides (a.k.a. non-contiguous w.r.t. collapsed dimensions) is a grey area that we'd like to clean-up. (See https://reviews.llvm.org/D136483#3909856) That said, the implementation in `memref-to-llvm` currently skips dimensions of size 1 when computing the stride of a group. While longer term we may want to clean that up, for now matches this behavior, at least in the static case. For the dynamic case, for this patch we stick to `min(group strides)`. However, if we want to handle the dynamic cases correctly while allowing non-truly-contiguous dynamic size of 1, we would need to `if-then-else` every dynamic size. In other words `min(stride_i, for all i in group and dim_i != 1)`. I didn't implement that in this patch at the moment since `memref-to-llvm` is technically broken in the general case for this. (It currently would only produce something sensible for row major tensors.) Differential Revision: https://reviews.llvm.org/D139329
-
Alex Brachet authored
-
Alex Brachet authored
A recent change made it such that target_link_libraries is always called and not conditionally. target_link_libraries doesn't currently work when LLVM_TOOL_LLVM_DRIVER_BUILD=On. This should be fixed in the future, but for now let's just remove dsymutil as part of the llvm-driver build. Differential Revision: https://reviews.llvm.org/D139588
-
Zain Jaffal authored
we can safely replace a `zext` instruction with `sext` if the top bit is zero. This is useful because we can select `smull` when both operands are sign extended. Reviewed By: fhahn, dmgreen Differential Revision: https://reviews.llvm.org/D134711
-
Johannes Doerfert authored
If a select or PHI instruction cannot be simplified to a single value it is often beneficial to keep the value intact rather than looking at all the operands. The reason is that various users require a single value and consequently can deal with the select or PHI but not multiple operands. Recursive calls of `Attributor::getAssumedSimplifiedValues` will be required to take such select and PHI instructions apart.
-
Sameer Sahasrabuddhe authored
This is in preparation for future changes that introduce an actual list of ranges per Access, to be called a RangeList. Differential Revision: https://reviews.llvm.org/D138644
-
Xiang1 Zhang authored
-
Johannes Doerfert authored
Assumptions are droppable and eliminating them to eliminate barriers seems reasonable.
-
Kazu Hirata authored
This is part of an effort to migrate from llvm::Optional to std::optional: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
-
Kazu Hirata authored
This is part of an effort to migrate from llvm::Optional to std::optional: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
-
Johannes Doerfert authored
We keep loads if they feed into assumes but even if we cannot predict their value we should delete them if the associated stores are deleted as well. This is not perfect but prioritizes deleting stores now.
-
gonglingqin authored
These intrinsics are required by Linux [1]. [1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/loongarch/include/asm/loongarch.h?h=v6.0&id=4fe89d07dcc2804c8b562f6c7896a45643d34b2f#n232 Differential Revision: https://reviews.llvm.org/D139288
-
Max Kazantsev authored
-
Kazu Hirata authored
These source files no longer use Optional<T>. This is part of an effort to migrate from llvm::Optional to std::optional: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
-
Kazu Hirata authored
STLForwardCompat.h defines remove_cvref and remove_cvref_t. These source files use neither one of those.
-
Kazu Hirata authored
This is part of an effort to migrate from llvm::Optional to std::optional: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
-
Kazu Hirata authored
This is part of an effort to migrate from llvm::Optional to std::optional: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
-
Craig Topper authored
2048 requires an LUI and ADDI instruction due to ADDI using a signed immediate. It can also be done with C.LI+C.SLLI for better code size. With Zbs we can use a single BSETI to have an instruction. Reorder the checks so that BSETI is checked first, with an extra qualification to prefer a single LUI or ADDI when possible. I'm continuing to think about other ways to structure this code, but this works for now. Fixes PR59362.
-
Kazu Hirata authored
This is part of an effort to migrate from llvm::Optional to std::optional: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
-
Kazu Hirata authored
This is part of an effort to migrate from llvm::Optional to std::optional: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
-
Craig Topper authored
I've enabled Zfhmin on 2 basic tests to show this isn't completely broken. Reviewed By: monkchiang Differential Revision: https://reviews.llvm.org/D139562
-
Craig Topper authored
Make fields private. This helps hide that the Imm field doesn't store a full int64_t.
-
Nico Weber authored
-
Nico Weber authored
-
Johannes Doerfert authored
The map with AssertingVHs has been moved into the OpenMPIRBuilder which extended their lifetime. On NVIDIA this will cause an assertion. This simply removes the AssertingVH wrapper.
-
Weining Lu authored
The size of long double in LoongArch (both LA32 and LA64) is 16 bytes, thus the mangled_size should be 32. This is same as RISCV's change in D126480. Reviewed By: xen0n Differential Revision: https://reviews.llvm.org/D138981
-
Roman Lebedev authored
These appear to be the only two crashing issues. Afterwards, we seem to not crash for all opcodes in all repetition modes in all measurement modes. Otherwise, we get: ``` # # Machine code for function foo: NoPHIs, TracksLiveness, NoVRegs bb.0: successors: %bb.1(0x80000000); %bb.1(100.00%) $r8 = MOV64ri 2 bb.1: ; predecessors: %bb.0, %bb.1 successors: %bb.1(0x80000000), %bb.2(0x00000000); %bb.1(100.00%), %bb.2(0.00%) liveins: $r8 HLT HLT $r8 = ADD64ri8 $r8(tied-def 0), -1, implicit-def $eflags JCC_1 %bb.1, 5, implicit $eflags bb.2: ; predecessors: %bb.1 RET64 # End machine code for function foo. *** Bad machine code: Non-terminator instruction after the first terminator *** - function: foo - basic block: %bb.1 (0x55df06791048) - instruction: $r8 = ADD64ri8 $r8(tied-def 0), -1, implicit-def $eflags First terminator was: HLT LLVM ERROR: Found 1 machine code errors. PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace. Stack dump: 0. Program arguments: bin/llvm-exegesis --skip-measurements -mode=uops --dump-object-to-disk=0 --repetition-mode=loop --loop-body-size=1000 --result-aggregation-mode=min --opcode-name=HLT --max-configs-per-opcode=8192 1. Running pass 'Function Pass Manager' on module 'ExegesisInfoTest'. 2. Running pass 'Verify generated machine code' on function '@foo' ```
-
Roman Lebedev authored
Otherwise, we get: ``` llvm-exegesis: /repositories/llvm-project/llvm/lib/CodeGen/MachineBasicBlock.cpp:1628: MachineBasicBlock::livein_iterator llvm::MachineBasicBlock::livein_begin() const: Assertion `getParent()->getProperties().hasProperty( MachineFunctionProperties::Property::TracksLiveness) && "Liveness information is accurate"' failed. ```
-
Youling Tang authored
Enable ubsan on LoongArch64. Reviewed By: SixWeining, xen0n, MaskRay Differential Revision: https://reviews.llvm.org/D139292
-
Youling Tang authored
This patch enabled tsan for loongarch64 with 47-bit VMA layout. All tests are passing. Also adds assembly routines to enable setjmp/longjmp for loongarch64 on linux. Reviewed By: dvyukov, SixWeining, #sanitizers Differential Revision: https://reviews.llvm.org/D138489
-
Phoebe Wang authored
This patch partially fixes #59305. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D139246
-
Kazu Hirata authored
Note that Optional::getPointer has been deprecated since commit 80145dcb on November 23, 2022.
-
Dan Albert authored
Allowing incorrect version scripts is not a helpful default. Flip that to help users find their bugs at build time rather than at run time. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D135402
-
smit-hinsu authored
Originally, inferReturnTensorTypes didn't support shaped type components containing an attribute just because there wasn't any motivating use-case. Removing that limitation and using it to set the encoding attribute for RankedTensorType. Updated the existing test to set result attribute based on the first operand, if available. Signed-off-by:
Smit Hinsu <smittvhinsu@gmail.com> Differential Revision: https://reviews.llvm.org/D139271
-
Ting Wang authored
Reviewed By: shchenz Differential Revision: https://reviews.llvm.org/D139492
-
Maksim Panchenko authored
When the user does not have permissions to access the profile, consume the error contained in Expected<> to avoid dumping stack to the user. Differential Revision: https://reviews.llvm.org/D139480
-
Roman Lebedev authored
`LLVMState::Create()` would autodetect if `native` is specified, but the default was `""`
-
Leonard Chan authored
Prior to this, metadata pertaining to the size or address point offsets into a relative vtable were twice the value they should be (treating component widths as pointer width rather than 4 bytes). This prevented some vtables from being devirtualized with D134320. This ensures the correct metadata is written so whole program devirtualization can catch these remaining devirt targets. Differential Revision: https://reviews.llvm.org/D134687
-