- Sep 28, 2021
-
-
Daniil Fukalov authored
1. Convert to generated tests. 2. Added code-size case in few places.
-
Sanjay Patel authored
This is no-functional-change-intended, but it hopefully makes things slightly clearer and more efficient to have transforms that require 'shl' be called only from visitShl(). Further cleanup is possible.
-
Pavel Labath authored
we need to drop nuls from the end of the string.
-
- Sep 27, 2021
-
-
Kazu Hirata authored
Note that getTheLanaiTarget is declared in TargetInfo/LanaiTargetInfo.h, which LanaiDisassembler.cpp includes. Identified with readability-redundant-declaration.
-
Kirill Bobyrev authored
Preparation for D108194. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D110386
-
Joseph Huber authored
This path defines the newly added `__kmpc_disitrute_static_init` functions in the device runtime library. These functions are currently exact copies of the current worksharing method but can be tuned later. Depends on D110429 Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D110430
-
Joseph Huber authored
This patch adds a new RTL function for worksharing. Currently we use `__kmpc_for_static_init` for both the `distribute` and `parallel` portion of the loop clause. This patch replaces the `distribute` portion with a new runtime call `__kmpc_distribute_static_init`. Currently this will be used exactly the same way, but will make it easier in the future to fine-tune the distribute and parallel portion of the loop. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D110429
-
Raphael Isemann authored
Apparently macOS is padding the name result with several padding zeroes at the end. Just strip them all to pretend it's a C-string. Thanks to Pavel for suggesting this fix.
-
Nico Weber authored
-
Jake Egan authored
The tests only specify -march, so when the tests are run on AIX the target OS defaults to AIX, which causes the tests to misbehave. This patch constrains the tests by specifying -mtriple instead of -march. Reviewed By: daltenty, jsji, MaskRay Differential Revision: https://reviews.llvm.org/D110186
-
Nico Weber authored
-
Nico Weber authored
-
Nico Weber authored
-
Nico Weber authored
These functions transfer ownership to the caller. Make this clear in the type system. No behavior change.
-
Sanjay Patel authored
This is another step towards trying to re-apply D110170 by eliminating conflicting transforms that cause infinite loops. a47c8e40 was a previous patch in this direction. The diffs here are mostly cosmetic, but intentional: 1. The existing code that would handle this pattern in FoldShiftByConstant() is limited to 'shl' only now. The formatting change to IsLeftShift shows that we could move several transforms into visitShl() directly for efficiency because they are not common shift transforms. 2. The tests are regenerated to show new instruction names to prove that we are getting (almost) identical logic results. 3. The one case where we differ ("trunc_sandwich_small_shift1") shows that we now use a narrow 'and' instruction. Previously, we relied on another transform to do that, but it is limited to legal types. That seems to be a legacy constraint from when IR analysis and codegen were less robust. https://alive2.llvm.org/ce/z/JxyGA4 declare void @llvm.assume(i1) define i8 @src(i32 %x, i32 %c0, i8 %c1) { ; The sum of the shifts must not overflow the source width. %z1 = zext i8 %c1 to i32 %sum = add i32 %c0, %z1 %ov = icmp ult i32 %sum, 32 call void @llvm.assume(i1 %ov) %sh1 = lshr i32 %x, %c0 %tr = trunc i32 %sh1 to i8 %sh2 = lshr i8 %tr, %c1 ret i8 %sh2 } define i8 @tgt(i32 %x, i32 %c0, i8 %c1) { %z1 = zext i8 %c1 to i32 %sum = add i32 %c0, %z1 %maskc = lshr i8 -1, %c1 %s = lshr i32 %x, %sum %t = trunc i32 %s to i8 %a = and i8 %t, %maskc ret i8 %a }
-
Sanjay Patel authored
Similar to: 29c09c76 Planned follow-up is to add a transform here to allow removing a common shift fold that is conflicting with D110170.
-
Amy Kwan authored
It appears that this test assumes that the toolchain utilizes the integrated assembler by default, since the expected output in the CHECKs are compilation_database.o. However, this test fails on AIX as AIX does not utilize the integrated assembler. On AIX, the output instead is of the form /tmp/compilation_database-*.s. Thus, this patch explicitly adds the -fintegrated-as option to match the assumption that the integrated assembler is used by default. Differential Revision: https://reviews.llvm.org/D110431
-
Eugene Zhulenev authored
Workaround for SystemZ ABI problem: https://bugs.llvm.org/show_bug.cgi?id=51898 Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D110550
-
Dmitry Vyukov authored
The trace tests crashed on darwin because of some thread initialization issues (thread initialization is somewhat different on darwin). Instead of starting real threads, create a new ThreadState in the main thread. This makes the tests more unit-testy and hopefully won't crash on darwin (there is almost no platform-specific code involved now). This will also help with future trace tests that will need more than 1 thread. Creating more than 1 real thread and dispatching test actions across multiple threads in the required deterministic order is painful. Depends on D110539. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D110546
-
Dmitry Vyukov authored
Depends on D110538. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D110539
-
Dmitry Vyukov authored
Currently detection of races with TLS/stack initialization is broken because we imitate the write before thread initialization, so it's modelled with a wrong thread/epoch. Fix that and add a test. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D110538
-
Sebastian Neubauer authored
KILL instructions are sometimes present and prevented hard clauses from being formed. Fix this by ignoring all meta instructions in clauses. Differential Revision: https://reviews.llvm.org/D106042
-
Nico Weber authored
We used to put the canonical spelling of flags after alias processing on that line. For clang-cl in particular, that meant that we put flags on that line that the clang-cl driver doesn't even accept, and the "Driver args:" line wasn't usable. Differential Revision: https://reviews.llvm.org/D110458
-
Dmitry Vyukov authored
Use MemCount instead of hard-coded value 7. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D110532
-
Michał Górny authored
Add a convenience method to add supplementary registers that takes care of adding invalidate_regs to all (potentially) overlapping registers. Differential Revision: https://reviews.llvm.org/D110023
-
Sjoerd Meijer authored
Function specialization was crashing on poison values and constexpr values. The problem is that these values are not added to the solver, so it crashes when a lookup is performed for these values. This fixes that by not specialising on these values. For poison that is obvious, but for constexpr this is a change in behaviour. Thus, in one way this is a bit of a stopgap, but specialising on constexpr values wasn't done very intentionally, and need some more work and tests if we wanted to support this. As a follow up, we need to look if the solver should exit more gracefully and return a "don't know", or that it should really support these constexprs. This should fix PR51600 (https://bugs.llvm.org/show_bug.cgi?id=51600). Differential Revision: https://reviews.llvm.org/D110529
-
David Green authored
Apparently I gave a ll file a .patch extension. Oops.
-
Aaron Ballman authored
The argument is always used with its default value, so remove the argument entirely.
-
Sjoerd Meijer authored
-
gbreynoo authored
This change is to add some missing details to the help text and command guide: - Added a note to the command guide that --debug-macro also dumps .debug_macinfo. - Added a note to the command guide that --debug-frame and --eh_frame are aliases, and in cases where both sections are present one command outputs both. - Changed the wording in the help output for --ignore-case and --regex to closer match the command guide.
-
LLVM GN Syncbot authored
-
Michał Górny authored
The StringConvert API is no longer used anywhere but in debugserver. Since debugserver does not use LLVM API, we cannot replace it with llvm::to_integer() and llvm::to_float() there. Let's just move the sources into debugserver. Differential Revision: https://reviews.llvm.org/D110478
-
Pushpinder Singh authored
Keeping all the checks in one place for future simplification. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D110513
-
Michał Górny authored
Refactor the XML converting attribute and text getters to use LLVM API. While at it, remove some redundant error and missing XML support handling, as the called base functions do that anyway. Add tests for these methods. Note that this patch changes the getter behavior to be IMHO more correct. In particular: - negative and overflowing integers are now reported as failures to convert, rather than being wrapped over or capped - digits followed by text are now reported as failures to convert to double, rather than their numeric part being converted Differential Revision: https://reviews.llvm.org/D110410
-
Michael Kruse authored
Use the in-project clang, llvm-link and opt if available and unless CMake cache variables specify to use a different compiler. This applies D101265 to the new DeviceRTL's CMakeLists.txt which was copied before D101265 was applied. Fixes the openmp-offloading-cuda-runtime builder which was failing since D110006. Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D110251
-
Tobias Gysi authored
Let the calling pass or pattern replace the uses of the original root operation. Internally, the tileAndFuse still replaces uses and updates operands but only of newly created operations. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D110169
-
Emre Kultursay authored
When rebase_exec=true in DidAttach(), all modules are loaded before the rendezvous breakpoint is set, which means the LoadInterpreterModule() method is not called and m_interpreter_module is not initialized. This causes the very first rendezvous breakpoint hit with m_initial_modules_added=false to accidentally unload the module_sp that corresponds to the dynamic loader. This bug (introduced in D92187) was causing the rendezvous mechanism to not work in Android 28. The mechanism works fine on older/newer versions of Android. Test: Verified rendezvous on Android 28 and 29 Test: Added dlopen test Reviewed By: labath Differential Revision: https://reviews.llvm.org/D109797
-
Roman Lebedev authored
The only sched models that for cpu's that support avx2 but not avx512 are: haswell, broadwell, skylake, zen1-3 For load we have: https://godbolt.org/z/q6GbK89br - for intels `Block RThroughput: =18.0`; for ryzens, `Block RThroughput: <=7.0` So pick cost of `18`. For store we have: https://godbolt.org/z/Yzfoo5TnW - for intels `Block RThroughput: =8.0`; for ryzens, `Block RThroughput: <=4.0` So pick cost of `8`. I'm directly using the shuffling asm the llc produced, without any manual fixups that may be needed to ensure sequential execution. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D110507
-
Roman Lebedev authored
The only sched models that for cpu's that support avx2 but not avx512 are: haswell, broadwell, skylake, zen1-3 For load we have: https://godbolt.org/z/Y1E7qnjz8 - for intels `Block RThroughput: =9.0`; for ryzens, `Block RThroughput: <=3.5` So pick cost of `9`. For store we have: https://godbolt.org/z/Y1E7qnjz8 - for intels `Block RThroughput: =4.0`; for ryzens, `Block RThroughput: <=2.0` So pick cost of `4`. I'm directly using the shuffling asm the llc produced, without any manual fixups that may be needed to ensure sequential execution. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D110506
-