- Sep 27, 2021
-
-
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
-
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/e5YE99a4P - for intels `Block RThroughput: =6.0`; for ryzens, `Block RThroughput: =2.0` So pick cost of `6`. For store we have: https://godbolt.org/z/3vM4KsE1n - for intels `Block RThroughput: =3.0`; for ryzens, `Block RThroughput: <=2.0` So pick cost of `3`. 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/D110505
-
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/1j3nf3dro - for intels `Block RThroughput: =2.0`; for ryzens, `Block RThroughput: <=1.0` So pick cost of `2`. For store we have: https://godbolt.org/z/4n1zvP37j - for intels `Block RThroughput: =1.0`; for ryzens, `Block RThroughput: <=0.5` So pick cost of `1`. 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/D110504
-
Dmitry Vyukov authored
There are 2 reasons to do this: 1. We place hot data in the first cache line of ThreadState, this assumed that it's cache-line-aligned but we never actually enforced it (or it was lost at some point). 2. The new vector clock uses vector instructions and requires data alignment. Later the new vector clock will be embedded in ThreadState, then ensuring vector clock alignment will be impossible w/o ThreadState alignment. Depends on D110519. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D110520
-
Dmitry Vyukov authored
Currently the shadow stack is located in the trace memory mapping. The new tsan runtime will remove the trace memory mapping. Move the shadow stack into ThreadState as a preparation step. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D110519
-
Fraser Cormack authored
This patch adds a generic DAGCombine for vector-predicated (VP) nodes. Those for which we can determine that no vector element is active can be replaced by either undef or, for reductions, the start value. This is tested rather trivially at the IR level, where it's possible that we want to teach instcombine to perform this optimization. However, we can also see the zero-evl case arise during SelectionDAG legalization, when wide VP operations can be split into two and the upper operation emerges as trivially false. It's possible that we could perform this optimization "proactively" (both on legal vectors and before splitting) and reduce the width of an operation and insert it into a larger undef vector: ``` v8i32 vp_add x, y, mask, 4 -> v8i32 insert_subvector (v8i32 undef), (v4i32 vp_add xsub, ysub, mask, 4), i32 0 ``` This is somewhat analogous to similar vector narrow/widening optimizations, but it's unclear at this point whether that's beneficial to do this for VP ops for any/all targets. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D109148
-
David Green authored
We align non-fallthrough branches under Cortex-M at O3 to lead to fewer instruction fetches. This improves that for the block after a LE or LETP. These blocks will still have terminating branches until the LowOverheadLoops pass is run (as they are not handled by analyzeBranch, the branch is not removed until later), so canFallThrough will return false. These extra branches will eventually be removed, leaving a fallthrough, so treat them as such and don't add unnecessary alignments. Differential Revision: https://reviews.llvm.org/D107810
-
Nicolas Vasilache authored
This revision adds a ``` FlatAffineValueConstraints(ValueRange ivs, ValueRange lbs, ValueRange ubs) ``` method and use it in hoist padding. Differential Revision: https://reviews.llvm.org/D110427
-
Daniel Kiss authored
During a backtrace the `.cfi_undefined` for a float register causes an assert in libunwind. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D110144
-
Max Kazantsev authored
-
Nicolas Vasilache authored
This revision extracts padding hoisting in a new file and cleans it up in prevision of future improvements and extensions. Differential Revision: https://reviews.llvm.org/D110414
-
Simon Pilgrim authored
This intention of this code turns out to be superfluous as we can handle this with shuffle combining, and it has a critical flaw in that it doesn't check for dependencies. Fixes PR51974
-
Florian Hahn authored
Add a few additional tests which require a large number of runtime checks for D109368.
-
Pushpinder Singh authored
-
Matthias Springer authored
When splitting with linalg.copy, cannot write into the destination alloc directly. Instead, write into a subview of the alloc. Differential Revision: https://reviews.llvm.org/D110512
-
Ben Shi authored
Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D110474
-
David Spickett authored
Due to the way detecting the hard float ABI is currently handled, clang fails to find the per target dir. I am working to fix this but in the meantime disable it by default on Arm Linux.
-
Fraser Cormack authored
This particular case was creating a `VMSET_VL` using the old fixed-length type in order to pass a mask to other custom nodes operating on the scalable container type. This kind of thing wasn't caught for us; I only noticed when experimenting with odd-length vectors, where it was trying to generate an invalid `v3i1` MVT. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D110420
-
Krasimir Georgiev authored
-
Jon Chesterfield authored
-
Michał Górny authored
Add a llvm::Split() implementation that can be used via range-for loop, e.g.: for (StringRef x : llvm::Split("foo,bar,baz", ',')) ... The implementation uses an additional SplittingIterator class that uses StringRef::split() internally. Differential Revision: https://reviews.llvm.org/D110496 -
Balazs Benics authored
Addresses https://bugs.llvm.org/show_bug.cgi?id=51902 Reviewed By: shafik, martong Differential Revision: https://reviews.llvm.org/D110052
-
Max Kazantsev authored
-
Krasimir Georgiev authored
No functional changes intended. Silence warnings from https://github.com/llvm/llvm-project/commit/3a6ba3675177cb5e47dee325f300aced4cd864ed.
-
Vignesh Balu authored
This is a continuation of the review: https://reviews.llvm.org/D100182 This patch implements the OMPD API as specified in the standard doc. Reviewed By: @hbae Differential Revision: https://reviews.llvm.org/D100183
-
serge-sans-paille authored
Fix https://bugs.llvm.org/show_bug.cgi?id=51897 Differential Revision: https://reviews.llvm.org/D110521
-
Freddy Ye authored
When AVX512FP16 is enabled, FROUND(f16) cannot be dealt with TypeLegalize, and no libcall in libm is ready for fround(f16) now. FROUNDEVEN(f16) has related instruction in AVX512FP16. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D110312
-
Max Kazantsev authored
Previously I've added tests that require context for inference, but it seems tha SCEV can't prove same facts even when the context isn't required.
-
Michael Kruse authored
SplitBlockPredecessors is unable to insert an additional BasicBlock between an indirectbr/callbr terminator and the successor blocks. This is needed by Polly to normalize the control flow before emitting its optimzed code. This patches rejects regions entered by an indirectbr/callbr to not fail later at code generation. This fixes llvm.org/PR51964
-
Lang Hames authored
The getPerDylibResources method may be called concurrently from multiple threads, so we need to protect access to the underlying map. Possible for fix https://llvm.org/PR51064
-
Wang, Pengfei authored
Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D110336
-
Lang Hames authored
Adds a 'start' method to SimpleRemoteEPCTransport to defer transport startup until the client has been configured. This avoids races on client members if the first messages arrives while the client is being configured. Also fixes races on the file descriptors in FDSimpleRemoteEPCTransport.
-
Amara Emerson authored
-
Mehdi Amini authored
-