- Aug 15, 2020
-
-
Matt Arsenault authored
Unfortunately this ends up not working as expected on targets with 16-bit operations due to AMDGPUCodeGenPrepare's promotion of uniform 16-bit ops to i32. The vector case annoyingly requires switching the checked opcode, since constants for vectors aren't directly handled. I also need to think more carefully about whether this is valid for i1.
-
Jim Ingham authored
Differential Revision: https://reviews.llvm.org/D85951
-
Mehdi Amini authored
-
Julian Lettner authored
Add interceptors for `dispatch_async_and_wait[_f]()` which was added in macOS 10.14. This pair of functions is similar to `dispatch_sync()`, but does not force a context switch of the queue onto the caller thread when the queue is active (and hence is more efficient). For TSan, we can apply the same semantics as for `dispatch_sync()`. From the header docs: > Differences with dispatch_sync() > > When the runtime has brought up a thread to invoke the asynchronous > workitems already submitted to the specified queue, that servicing > thread will also be used to execute synchronous work submitted to the > queue with dispatch_async_and_wait(). > > However, if the runtime has not brought up a thread to service the > specified queue (because it has no workitems enqueued, or only > synchronous workitems), then dispatch_async_and_wait() will invoke the > workitem on the calling thread, similar to the behaviour of functions > in the dispatch_sync family. Additional context: > The guidance is to use `dispatch_async_and_wait()` instead of > `dispatch_sync()` when it is necessary to mix async and sync calls on > the same queue. `dispatch_async_and_wait()` does not guarantee > execution on the caller thread which allows to reduce context switches > when the target queue is active. > https://gist.github.com/tclementdev/6af616354912b0347cdf6db159c37057 rdar://35757961 Reviewed By: kubamracek Differential Revision: https://reviews.llvm.org/D85854
-
Mehdi Amini authored
This library does not depend on all the dialects, conceptually. This is changing the recently introduced `mlirContextLoadAllDialects()` function to not call `registerAllDialects()` itself, which aligns it better with the C++ code anyway (and this is deprecated and will be removed soon).
-
Stefan Gränitz authored
Differential Revision: https://reviews.llvm.org/D85919
-
- Aug 14, 2020
-
-
Jonas Devlieghere authored
This removes the fallback to Python 2 and makes Python 3 the only supported configuration. This is the first step to fully migrate to Python 3 over the coming releases as discussed on the mailing list. http://lists.llvm.org/pipermail/lldb-dev/2020-August/016388.html As a reminder, for the current release the test suite and the generated bindings should remain compatible with Python 2. Differential revision: https://reviews.llvm.org/D85942
-
Jordan Rupprecht authored
-
Jonas Devlieghere authored
Currently these two tests use an arbitrary wait of 5 seconds for the inferior to finish setting up. When the test machine is under heavy load this sometimes is insufficient leading to spurious test failures. This patch adds synchronization trough a token on the file system. In addition to making the test more reliable it also makes it much faster because we no longer have to wait the full 5 seconds if the setup was completed faster than that. Differential revision: https://reviews.llvm.org/D85915
-
Denis Antrushin authored
When spilling statepoint meta arg register it is incorrect to blindly mark it as killed - it may be used in non-meta args (e.g., as call parameter).
-
Matt Morehouse authored
This reverts commit 0426e284 due to ASan buildbot failure.
-
Ben Shi authored
The ARM backend breaks some specific immediates to two parts in binary operations. And this patch adds more tests for that. Reviewed By: samparker Differential Revision: https://reviews.llvm.org/D84100
-
Matt Morehouse authored
base and nptr_label were swapped, which meant we were passing nptr's shadow as the base to the operation. Usually, the shadow is 0, which causes strtoull to guess the correct base from the string prefix (e.g., 0x means base-16 and 0 means base-8), hiding this bug. Adjust the test case to expose the bug. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D85935
-
Simon Pilgrim authored
-
Johannes Doerfert authored
Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D85938
-
Johannes Doerfert authored
-
Bjorn Pettersson authored
-
Denis Antrushin authored
Extend FixupStatepointCallerSaved pass with ability to spill statepoint GC pointer arguments (optionally allowing them on CSRs). Special handling is required for invoke statepoints, because at MI level single landing pad may be shared by multiple statepoints, so we must ensure we spill landing pad's live-ins into the same stack slots. Full statepoint refactoring change set is available at D81603. Reviewed By: skatkov Differential Revision: https://reviews.llvm.org/D81647
-
Kazushi (Jam) Marukawa authored
Remove I8/I16 register classes which are prepared to implement previously to implement VE ABI. However, it is possible to implement VE ABI correctly without them. Therefore, removing them now. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D85905
-
Raphael Isemann authored
In sanitized builds the last packet this function finds for the TestMacCatalyst and TestPlatformSimulator tests is for the asan runtime. ``` < 69> send packet: $jGetLoadedDynamicLibrariesInfos:{"solib_addresses":[4296048640]}]#3a < 715> read packet: ${"images":[{"load_address":4296048640,"mod_date":0,"pathname": "/Users/buildslave/jenkins/workspace/lldb-cmake-sanitized/host-compiler/lib/clang/12.0.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib", "uuid":"8E38A2CD-753F-3E0F-8EB0-F4BD5788A5CA", "min_version_os_name":"macosx","min_version_os_sdk":"10.9", "mach_header":{"magic":4277009103,"cputype":16777223,"cpusubtype":3,"filetype":6, "flags":43090053}],"segments":[{"name":"__TEXT","vmaddr":0,"vmsize":565248,"fileoff":0, "filesize":565248,"maxprot":5}],{"name":"__DATA","vmaddr":565248,"vmsize":13152256,"fileoff":565248, "filesize":20480,"maxprot":3}],{"name":"__LINKEDIT","vmaddr":13717504,"vmsize":438272,"fileoff":585728, "filesize":435008,"maxprot":1}]]}]]}]#00 ``` This just fetches the last package which has fetch_all_solibs and we know it will contain the image of our test executable to get the tests running again. -
Chris Gyurgyik authored
-
Shinji Okumura authored
This patch provides an implementation of `AAPotentialValues`. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D85632
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Raphael Isemann authored
This test is flaky on Green Dragon as it often fails when the process state is "Invalid" in the assert: self.assertEqual(process.GetState(), lldb.eStateExited) It seems this is related to just doing "run" which apparently invalidates the Target's process in case it's still running and needs to be restarted. Just doing 'continue' on the process (and ignoring the error in case it already finished) prevents that and makes this consistently pass for me. Just pushing this out to get Green Dragon back online. -
Pavel Labath authored
The search for the complete class definition can also produce entries which are not of the expected type. This can happen for instance when there is a function with the same name as the class we're looking up (which means that the class needs to be disambiguated with the struct/class tag in most contexts). Previously we were just picking the first Decl that the lookup returned, which later caused crashes or assertion failures if it was not of the correct type. This patch changes that to search for an entry of the correct type. Differential Revision: https://reviews.llvm.org/D85904
-
Pavel Labath authored
This didn't cause test failures since this variable is only used during connection shutdown.
-
Stefan Gränitz authored
-
Raphael Isemann authored
There are two implementations for `TypeSystemMap::GetTypeSystemForLanguage` which are both identical beside one taking a `Module` and one taking a `Target` (and then passing that argument to the `TypeSystem::CreateInstance` function). This merges both implementations into one function with a lambda that wraps the different calls to `TypeSystem::CreateInstance`. Reviewed By: #lldb, JDevlieghere Differential Revision: https://reviews.llvm.org/D82537
-
Stefan Gränitz authored
-
Mehdi Amini authored
This changes the behavior of constructing MLIRContext to no longer load globally registered dialects on construction. Instead Dialects are only loaded explicitly on demand: - the Parser is lazily loading Dialects in the context as it encounters them during parsing. This is the only purpose for registering dialects and not load them in the context. - Passes are expected to declare the dialects they will create entity from (Operations, Attributes, or Types), and the PassManager is loading Dialects into the Context when starting a pipeline. This changes simplifies the configuration of the registration: a compiler only need to load the dialect for the IR it will emit, and the optimizer is self-contained and load the required Dialects. For example in the Toy tutorial, the compiler only needs to load the Toy dialect in the Context, all the others (linalg, affine, std, LLVM, ...) are automatically loaded depending on the optimization pipeline enabled.
-
Shu Anzai authored
This is relanding D81001. The patch originally failed as on newer editline versions it seems CC_REFRESH will move the cursor to the start of the line via \r and then back to the original position. On older editline versions like the one used by default on macOS, CC_REFRESH doesn't move the cursor at all. As the patch changed the way we handle tab completion (previously we did REDISPLAY but now we're doing CC_REFRESH), this caused a few completion tests to receive this unexpected cursor movement in the output stream. This patch updates those tests to also accept output that contains the specific cursor movement commands (\r and then \x1b[XC). lldbpexpect.py received an utility method for generating the cursor movement escape sequence. Original summary: I implemented autosuggestion if there is one possible suggestion. I set the keybinds for every character. When a character is typed, Editline::TypedCharacter is called. Then, autosuggestion part is displayed in gray, and you can actually input by typing C-k. Editline::Autosuggest is a function for finding completion, and it is like Editline::TabCommand now, but I will add more features to it. Testing does not work well in my environment, so I can't confirm that it goes well, sorry. I am dealing with it now. Reviewed By: teemperor, JDevlieghere, #lldb Differential Revision: https://reviews.llvm.org/D81001
-
Stefan Gränitz authored
This loop caused me a little headache once, because I didn't see the assigned variable is a member. The refactored version appears more readable to me. Differential Revision: https://reviews.llvm.org/D85922
-
Stefan Gränitz authored
This is analog to how LLJIT provides public access to all its layers. Differential Revision: https://reviews.llvm.org/D85921
-
Stefan Gränitz authored
This adds RemoteJITLinkMemoryManager is a new subclass of OrcRemoteTargetClient. It implements jitlink::JITLinkMemoryManager and targets the OrcRemoteTargetRPCAPI. Behavior should be very similar to RemoteRTDyldMemoryManager. The essential differnce with JITLink is that allocations work in isolation from its memory manager. Thus, the RemoteJITLinkMemoryManager might be seen as "JITLink allocation factory". RPCMMAlloc is another subclass of OrcRemoteTargetClient and implements the actual functionality. It allocates working memory on the host and target memory on the remote target. Upon finalization working memory is copied over to the tagrte address space. Finalization can be asynchronous for JITLink allocations, but I don't see that it makes a difference here. Differential Revision: https://reviews.llvm.org/D85919
-
Alex Zinenko authored
The convresion of memref cast operaitons from the Standard dialect to the LLVM dialect has been emitting bitcasts from a struct type to itself. Beyond being useless, such casts are invalid as bitcast does not operate on aggregate types. This kept working by accident because LLVM IR bitcast construction API skips the construction if types are equal before it verifies that the types are acceptable in a bitcast. Do not emit such bitcasts, the memref cast that only adds/erases size information is in fact a noop on the current descriptor as it always contains dynamic values for all sizes. Reviewed By: pifon2a Differential Revision: https://reviews.llvm.org/D85899
-
Alex Zinenko authored
We have been asking for this systematically, mention it in the documentation. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D85902
-
Sam Parker authored
Renamed to maybeLoweredToCall.
-
Frederik Gossen authored
Add custom assembly format for `shape.any` with variadic operands. Differential Revision: https://reviews.llvm.org/D85306
-
Pavel Labath authored
The function had very complicated signature, because it was trying to avoid making unnecessary copies of the Scalar object. However, this class is not hot enough to worry about these kinds of optimizations. My making copies unconditionally, we can simplify the function and all of its call sites. Differential Revision: https://reviews.llvm.org/D85906
-