- Dec 14, 2021
-
-
Petr Hosek authored
This is an attempt to address 458ead66 by better matching the previous configuration.
-
Med Ismail Bennani authored
This commit should fix a heap-use-after-free bug that was caught by the sanitizer bot. The issue is that we were reading memory from a second target into a `SBData` object in Python, that was passed to lldb's internal `ScriptedProcess::DoReadMemory` C++ method. The ScriptedPythonInterface then extracts the underlying `DataExtractor` from the `SBData` object, and is used to read the memory with the appropriate address size and byte order. Unfortunately, it seems that even though the DataExtractor object was still valid, it pointed to invalid, possibly garbage-collected memory from Python. To mitigate this, the patch uses `SBData::SetDataWithOwnership` to copy the pointed buffer to lldb's heap memory which prevents the use-after-free error. rdar://84511405 Differential Revision: https://reviews.llvm.org/D115654 Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Med Ismail Bennani authored
This patch introduces a new method to SBData: SetDataWithOwnership. Instead of referencing the pointer to the data, this method copies the data buffer into lldb's heap memory. This can prevent having the underlying DataExtractor object point to freed/garbage-collected memory. Differential Revision: https://reviews.llvm.org/D115652 Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Philip Reames authored
These are the ones my first round of scripting couldn't handle that required a bit of manual messaging. This should be the last batch in llvm-check.
-
Alexey Bataev authored
If the gather node is a mix of undefvalues and exractelement instructions, need to take the ordering for such nodes into account too. It allows to reorder some (sub)trees and remove some extra shuffles, improving overall vectorization. Also, outlined common functionality into a separate function. Differential Revision: https://reviews.llvm.org/D115358
-
Simon Pilgrim authored
-
Philip Reames authored
Done in advance of D115387. These are all the ones which my local script could handle, there's a couple more which need manual updates.
-
Michael Jones authored
Due to the differences between the types of long double, this function is effectively three functions in one. This patch adds basic support for the types of long double, although it's just using the fast path and the fallback for the moment. I still need to implement a version of Eisel-Lemire for performance, but the existing algorithms should be correct. Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D113710
-
Mircea Trofin authored
This would allow sharing the LiveRangeStageManager between different RegAllocEvictionAdvisors. One scenario is for ML training, where we want to capture what the default advisor would do, for bootstrapping (speeds up training). Differential Revision: https://reviews.llvm.org/D114831
-
Mircea Trofin authored
In the multi-threaded case, if a thread hits an error, we mimick LLVMContext's behavior of reporting the error and exit-ing. However, this doesn't cleanly join the other threads, so depending on how fast the process exits, other threads may report 'terminate called without an active exception'. To avoid this non-determinsim, and without introducing a more complicated design, we just report the error, but not exit early. We do track whether we hit errors and exit(1) after joining. Differential Revision: https://reviews.llvm.org/D115574
-
Simon Pilgrim authored
As noted on D115547
-
Fraser Cormack authored
Reviewed By: frasercrmck, simoll Differential Revision: https://reviews.llvm.org/D115027
-
Fangrui Song authored
The idea is to make scanRelocations mark some actions are needed (GOT/PLT/etc) and postpone the real work to postScanRelocations. It gives some flexibility: * Make it feasible to support .plt.got (PR32938): we need to know whether GLOB_DAT and JUMP_SLOT are both needed. * Make non-preemptible IFUNC handling slightly cleaner: avoid setting/clearing sym.gotInIgot * -z nocopyrel: report all copy relocation places for one symbol * Make parallel relocation scanning possible (if we can avoid all stateful operations and make Symbol attributes atomic), but parallelism may not be the appealing choice * Make GOT deduplication feasible Since this patch moves a large chunk of code out of ELFT templates. My x86-64 executable is actually a few hundred bytes smaller. For ppc32-ifunc-nonpreemptible-pic.s: I remove absolute relocation references to non-preemptible ifunc because absolute relocation references are incorrect in -fpie mode. Reviewed By: peter.smith, ikudrin Differential Revision: https://reviews.llvm.org/D114783
-
Simon Pilgrim authored
As noted on D115547
-
Noah Shutty authored
Sets LLVM_ENABLE_CURL to OFF by default to avoid accidental inclusion of libcurl in builds which do not override the default. Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D115500
-
eopXD authored
Expression guraded in loop entry can be folded prior to comparison. This patch proceeds D107353 and makes LIR able to deal with nested for-loop. Reviewed By: qianzhen, bmahjour Differential Revision: https://reviews.llvm.org/D108112
-
John Ericson authored
Just defensive CMake-ing. I pulled this from D115544 and D99484 which are blocked on some lldb CI failures I don't yet understand. Hoping to land something smaller in the meantime. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D115566
-
Adrian Prantl authored
-
Adrian Prantl authored
-
Paulo Matos authored
This patch implements a fix to recognize global symbols that represent WebAssembly appropriately and generate the necessary .tabletype directives. Reviewed By: sbc100 Differential Revision: https://reviews.llvm.org/D115511
-
Craig Topper authored
The reduction instructions only reads the first element. The execution time for a splat may take longer with a larger VL. We should use the smallest VL we can. Reviewed By: frasercrmck, HsiangKai Differential Revision: https://reviews.llvm.org/D115536
-
Roman Lebedev authored
[DAGCombine][X86][ARM] EXTRACT_SUBVECTOR(VECTOR_SHUFFLE(?,?,Mask)) -> VECTOR_SHUFFLE(EXTRACT_SUBVECTOR(?, ?), EXTRACT_SUBVECTOR(?, ?), Mask') In most test changes this allows us to drop some broadcasts/shuffles. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D104156
-
Yaxun (Sam) Liu authored
-
Kirill Stoimenov authored
This change moves optimized callbacks from each .o file to compiler-rt. Reviewed By: vitalybuka, morehouse Differential Revision: https://reviews.llvm.org/D115396
-
Yaxun (Sam) Liu authored
-
Kiran Chandramohan authored
kindMap variable is declared in the Setup function but passed as a reference to the firBuilder class. The firBuilder is declared in the class and hence its lifetime exceeds that of kindMap. This can lead to undefined behaviour. Move the kindMap variable into the class to avoid this. This is part of the upstreaming effort from the fir-dev branch in [1]. [1] https://github.com/flang-compiler/f18-llvm-project Reviewed By: awarzynski Differential Revision: https://reviews.llvm.org/D115631
-
Muiez Ahmed authored
The aim of this patch is to fix the post processing that is happening on the temporary test directories upon scope exit. In particular, ~scoped_test_env aims to chmod and remove the temporary directories; however, bad symlinks are followed and we get "No such file or directory". FIX: use find as alternative to chmod and avoid -follow option. Attempting to remove read-only files on z/OS prompts a message asking for confirmation. FIX: use the -f option to delete read-only files immediately without asking for confirmation. Some libcxx tests such as libcxx/test/std/input.output/filesystems/cl ass.directory_entry/directory_entry.cons/path.pass.cpp set the dir permissions to none. In turn, recursively doing chmod (-R) does not set the file permissions needed to be able to remove the dir on z/OS only. FIX: use find as alternative to chmod -R, which does not run into this issue on z/OS. Differential Revision: https://reviews.llvm.org/D108326
-
- Dec 13, 2021
-
-
LLVM GN Syncbot authored
-
Lei Zhang authored
This gives us better debugging print as it supports indent levels and other nice features. Reviewed By: Hardcode84 Differential Revision: https://reviews.llvm.org/D115583
-
Yaxun (Sam) Liu authored
This patch refactors the HIP tool chain for new HIP tool chain, HIPSPV tool chain, which is added in the follow up patch part 2. Rename HIPToolChain to HIPAMDToolChain and Renames HIP.* files to HIPAMD.*. Introduce HIPUtility.* file where common HIP utilities, shared among HIP tool chain implementations, are placed in. Move constructHIPFatbinCommand() and constructGenerateObjFileFromHIPFatBinary() to HIPUtility. HIPSPV tool chain is going to use them. Tweak bundle target ID in constructHIPFatbinCommand(): extra dashes are dropped if the Target ID is empty and 'hip' offload kind is made default for non-AMD targets. Patch by: Henry Linjamäki Reviewed by: Yaxun Liu, Artem Belevich, Eric Christopher Differential Revision: https://reviews.llvm.org/D110549
-
Nikita Popov authored
Extract the load/store type from the instruction rather than fetching it from the pointer element type.
-
Neubauer, Sebastian authored
Fixed ABI arguments are compute specific and should not be added to graphics shaders or functions, so do not try to add them. Differential Revision: https://reviews.llvm.org/D115344
-
Lei Zhang authored
The previous "optimization" that tries to reuse existing block for selection header block can be problematic for deserialization because it effectively pulls in previous ops in the selection op's enclosing block into the selection op's header. When deserializing, those ops will be placed in the selection op's region. If any of the previous ops has usage after the section op, it will break. That is, the following IR cannot round trip: ```mlir ^bb: %def = ... spv.mlir.selection { ... } %use = spv.SomeOp %def ``` This commit removes the "optimization" to always create new blocks for the selection header. Along the way, also made error reporting better in deserialization by turning asserts into proper errors and add check of uses outside of sinked structured control flow region blocks. Reviewed By: Hardcode84 Differential Revision: https://reviews.llvm.org/D115582 -
Chuanqi Xu authored
-
Louis Dionne authored
-
Sanjay Patel authored
I noticed this while reviewing the test diffs in D115460 (and so the diffs in that patch will be reduced if this one is applied first). This is effectively a revert of 3436dc29 ( https://reviews.llvm.org/rG3436dc29239d ) - since that commit, we've made several enhancements, so the reasoning there is no longer valid. Specifically, we added a poison value to IR, and we clarified the behavior of undef/poison elements in a shuffle mask: https://llvm.org/docs/LangRef.html#shufflevector-instruction Alive2 seems to agree that the propagation of flags in the test diffs shown here are valid: https://alive2.llvm.org/ce/z/UuY-jr https://alive2.llvm.org/ce/z/GXoMD9 https://alive2.llvm.org/ce/z/nVCyVH Differential Revision: https://reviews.llvm.org/D115526
-
Mogball authored
Despite handling regions and inferred return types, the builder was never generated for ops with both InferReturnTypeOpInterface and regions. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D115525
-
Kadir Cetinkaya authored
-
gysit authored
Use the current instead of the new source type to compute the rank-reduction map in getCanonicalSubViewResultType. Otherwise, the computation of the rank-reduction map fails when folding a cast into a subview since the strides of the new source type cannot be related to the strides of the current result type. Depends On D115428 Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D115446
-
Jay Foad authored
-