- Feb 14, 2023
-
-
Jakub Kuderski authored
Also add missing tests for the scalar and splat cases. Reviewed By: antiagainst, Mogball Differential Revision: https://reviews.llvm.org/D143801
-
Alex Langford authored
lldb may crash when performing `image lookup --verbose --address $ADDR`. The ExecutionContext that gets passed into DWARFExpression::Evaluate may be valid but unpopulated. However, in one specific case, we were assuming that it has a valid Target and using it without checking first. We reach this codepath when we attempt to get information about an address that doesn't map to a CompileUnit in the module containing the requested address. lldb then checks to see if it maps to a global variable, so lldb has to evaluate the location of each global variable in the module. If a location expression contains DW_OP_deref_size that uses a FileAddress, we hit this code path. The simplest test case is to take a module that has a global variable with DW_OP_deref_size in its location expression, attempt to read an address that doesn't map to a CompileUnit (e.g. 0x0) and ensure we don't crash. Differential Revision: https://reviews.llvm.org/D143792
-
Vlad Serebrennikov authored
Also mark [[ https://wg21.link/cwg1291 | CWG1291 ]] as "na". [[ https://wg21.link/p1787 | P1787 ]]: CWG1291 and CWG2396 are resolved by explicitly specifying how to look up names in a conversion-type-id. Wording: see changes to [basic.lookup.unqual]/5 and [basic.lookup.qual]/2. "Calling a conversion function" example in [[ https://wg21.link/p1787 | P1787 ]] is also relevant. Differential Revision: https://reviews.llvm.org/D142316
-
Craig Topper authored
The vsetvli insertion pass can replace it with MU if needed by a using instruction. The vsetvli insertion pass will not convert MU to MA so we need to start at MA. Reviewed By: eopXD Differential Revision: https://reviews.llvm.org/D143790
-
Vadim Paretsky (Intel Americas Inc) authored
than ordinal This check-in changes the OpenMP build script to generate the Windows import library that imports by name rather than ordinal to reduce ordinals order dependency and promote runtime flavors compatibility going forward. The existing ordinals ordering is preserved to maintain backward compatibility. Differential Revision: https://reviews.llvm.org/D143431
-
Jake Hall authored
Float8E5M2FNUZ and Float8E4M3FNUZ have been added to APFloat in D141863. This change adds these types as MLIR builtin types alongside Float8E5M2 and Float8E4M3FN (added in D133823 and D138075). Reviewed By: krzysz00 Differential Revision: https://reviews.llvm.org/D143744
-
Peter Klausler authored
f18 accepts statement labels in fixed form source even if they follow a semicolon -- i.e., they're not in the fixed form's label field. Emit a warning for such usage. Differential Revision: https://reviews.llvm.org/D143817
-
Han Zhu authored
When `LLVM_ENABLE_PIC = OFF`, shared libraries cannot be built against code that's compiled without -fPIC. Example error message: `` ld.lld: error: relocation R_X86_64_32 cannot be used against local symbol; recompile with -fPIC >>> defined in lib/libLLVMSupport.a(StringMap.cpp.o) >>> referenced by StringMap.cpp >>> StringMap.cpp.o:(llvm::StringMapImpl::StringMapImpl(unsigned >>> int, unsigned int)) in archive lib/libLLVMSupport.a `` Similar to [how libclang handles this](https://github.com/llvm/llvm-project/blob/main/clang/tools/clang-shlib/CMakeLists.txt#L2-L4), skip building these shared libraries when `LLVM_ENABLE_PIC = OFF`. Differential Revision: https://reviews.llvm.org/D142941
-
Michael Buch authored
This reverts commit 19128792. As pointed out in https://reviews.llvm.org/D143652 this implementation doesn't quite work for subobject constructors/destructors because DWARF can map multiple definitions of a ctor/dtor to the same specification DIE. With the current implementation we would pick the first definition we find and use that linkage name which means we can sometimes pick the wrong dtor/ctor and fail to execute a valid expression. Differential Revision: https://reviews.llvm.org/D143652
-
Michael Buch authored
Revert "[lldb][Test][NFC] TestExternalCtorDtorLookup: add more instantiations to test linkage name is correct" This reverts commit 3c160d30. This patch depends on the reverted patch in https://reviews.llvm.org/D143652 Differential Revision: https://reviews.llvm.org/D143652
-
Philip Reames authored
-
Kazu Hirata authored
Differential Revision: https://reviews.llvm.org/D143882
-
Mark de Wever authored
This adds the papers voted in during the Issaquah plenary.
-
Corentin Jabot authored
-
Alex Brachet authored
This flag implies `-ivfsoverlay`, and additionally passes the same argument to the linker if it supports it. At present the only linker which does is lld-link, so this functionality has only been added to the MSVC toolchain. Additionally this option has been made a CoreOption so that clang-cl can use it without `-Xclang` Differential Revision: https://reviews.llvm.org/D141808
-
Peter Klausler authored
The recent code that uses an iterative rather than recursive walk over the parse tree when processing expressions needs to allow for the rare case in which an intrinsic operator (e.g., +) is extended by a generic interface in the program. Differential Revision: https://reviews.llvm.org/D143818
-
Hongtao Yu authored
The previous threshold 3000 is too small to enable any inlining for giant functions which come in with bigger size than that. In real world, I've seen a big hot function with 34000 dissasembly size. Motivated by that I'm changing the value to 50000. With the new value the allowance size growth should still be reasonable, as it is also bounded by another threshold, i.e, --sample-profile-inline-growth-limit , which defaults to 12. The new value should mostly only affect giant functions. I've seen for serveral internal services, the new threshold boosts performance, and it has neutral impact for other services without hot giant functions. So far I haven't seen any performance regression with that. Reviewed By: wenlei Differential Revision: https://reviews.llvm.org/D143696
-
Roy Jacobson authored
While working on D140664, I thought it would be nice to be able to write tests for parameter passing ABI. Currently we test this by dumping the AST and matching the results which makes it hard to write new tests. Adding this builtin will allow writing better ABI tests which can help improve our coverage in this area. While less useful, maybe some users would also find it useful for asserting against pessimisations for their classes. Reviewed By: erichkeane Differential Revision: https://reviews.llvm.org/D141775
-
Philip Reames authored
This has been a repeated point of recent confusion. There are a couple attempts in flight to change the way we handle the extensions, but for the moment, let's just document what's going on. Differential Revision: https://reviews.llvm.org/D14392
-
Younan Zhang authored
Clangd maintains a symbol map from standard library, in order to prevent unexpected header/symbol leaks from internal files. (e.g. files under `bits/` for libstdc++) This symbol map was generated by a python script that parses pages of offline cppreference archive. The script didn't handle the case for `std::experimental::`, where most symbols are from TS. It works well as symbols are directly laid out in the corresponding header under `experimental` directory for most of time. However, libstdc++'s implementation split symbols of TS FS into a few header files located in `experimental/bits`. This would make the code completion provide internal headers when we simply select the symbols. There are slightly differences between TS FS and C++17 FS. Some functions like `system_complete` was replaced by `absolute` and relative-related operations were introduced later by another proposal. Even so, all mainstream implementation are based on N4100, the final filesystem TS draft that was published in 2014 and from which symbols we've added are exported. This fixes https://github.com/clangd/clangd/issues/1481 Reviewed By: kadircet Differential Revision: https://reviews.llvm.org/D142836
-
Michael Buch authored
Reland "[lldb][DWARFASTParserClang] Correctly resolve imported namespaces during expression evaluation" This relands a patch previously reverted in `181d6e24`. This wasn't quite working on Linux because we weren't populating the manual DWARF index with `DW_TAG_imported_declaration`. The relanded patch does this. **Summary** This patch makes the expression evaluator understand namespace aliases. This will become important once `std::ranges` become more widespread since `std::views` is defined as: ``` namespace std { namespace ranges::views {} namespace views = ranges::views; } ``` **Testing** * Added API test Differential Revision: https://reviews.llvm.org/D143398
-
Philipp Tomsich authored
Fix the following warning: /lib/Target/RISCV/RISCVISelLowering.cpp:315:24: error: braces around scalar initializer [-Werror,-Wbraced-scalar-init] setOperationAction({ISD::CTLZ}, XLenVT, Legal); ^~~~~~~~~~~ -
Lang Hames authored
Add new StaticLibraryDefinitionGenerator::Create methods to support construction from in-memory universal binaries.
-
Louis Dionne authored
We try to keep as little code as possible within #ifdef. Differential Revision: https://reviews.llvm.org/D143299
-
Christudasan Devadasan authored
Some subtargets use architected SGPRs for workgroup IDs instead of the regular SGPRs. This patch enables the support for the same and is guarded under the subtarget feature FeatureArchitectedSGPRs. Reviewed By: foad Differential Revision: https://reviews.llvm.org/D143707
-
Christudasan Devadasan authored
Reviewed By: rampitec, foad Differential Revision: https://reviews.llvm.org/D143706
-
John Brawn authored
The previous change to extract_symbols.py means that building on macOS with LLVM_EXPORT_SYMBOLS_FOR_PLUGINS fails as we try to export some local symbols, as the regex used to match external symbols wasn't good enough. Solve this by using the -g option to nm, so we only get external symbols and don't have to check for local symbols at all.
-
Mirko Müller authored
The glibc and older musl handlers of tlsdesc_dynamic use a cmp instruction which will clobber NZCV. See glibc's _dl_tlsdesc_dynamic: https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/aarch64/dl-tlsdesc.S;hb=refs/heads/release/2.37/master See v1.1.21 Musl's __tlsdesc_dynamic: https://git.musl-libc.org/cgit/musl/tree/src/ldso/aarch64/tlsdesc.s?h=v1.1.21 Differential Revision: https://reviews.llvm.org/D143157
-
Dinar Temirbulatov authored
Remove a dead masked store if another one has the same base pointer and mask or the following store has all true constant mask and size if equal or bigger to the first store. Differential Revision: https://reviews.llvm.org/D143069
-
Jakub Kuderski authored
We do not plan to handle wide vector types with SPIR-V arrays anymore. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D143777
-
Philipp Tomsich authored
The vendor-defined XTHeadBb (predating the standard Zbb extension) extension adds some bit-manipulation extensions with somewhat similar semantics as some of the Zbb instructions. It is supported by the C9xx cores (e.g., found in the wild in the Allwinner D1) by Alibaba T-Head. The current (as of this commit) public documentation for XTHeadBb is available from: https://github.com/T-head-Semi/thead-extension-spec/releases/download/2.2.2/xthead-2023-01-30-2.2.2.pdf Support for these instructions has already landed in GNU Binutils: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=8254c3d2c94ae5458095ea6c25446ba89134b9da Depends on D143036 Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D143439
-
- Feb 13, 2023
-
-
Tobias Hieta authored
-
Matthias Springer authored
`bufferizesToMemoryWrite(OpResult)` looks for OpOperands that bufferize to memory writes inside the region of the defining op (if it has one). Currently, if the reverse use-def chain stops at any value inside of the region, the OpResult is considered to bufferize to a memory write. It is always safe to have false positives among `bufferizesToMemoryWrite`, so the previous implementation is also correct. However, it can lead to additional buffer copies. Differential Revision: https://reviews.llvm.org/D142223
-
Peter Klausler authored
Don't compute the address of element [0] of a vector when the vector is empty, even if the address is not used. Differential Revision: https://reviews.llvm.org/D143824
-
Hans Wennborg authored
It causes mysterious memory leaks when comparing std::string, see GitHub Issue #60709 and the code review. > All supported compilers support `consteval`, so there is no more need for the macro. > > Reviewed By: ldionne, Mordante, #libc > > Spies: libcxx-commits > > Differential Revision: https://reviews.llvm.org/D143489 This reverts commit aaef3b82.
-
Philipp Tomsich authored
The vendor-defined XTHeadBs (predating the standard Zbs extension) extension adds a bit-test instruction (th.tst) with similar semantics as bexti from Zbs. It is supported by the C9xx cores (e.g., found in the wild in the Allwinner D1) by Alibaba T-Head. The current (as of this commit) public documentation for XTHeadBs is available from: https://github.com/T-head-Semi/thead-extension-spec/releases/download/2.2.2/xthead-2023-01-30-2.2.2.pdf Support for these instructions has already landed in GNU Binutils: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=8254c3d2c94ae5458095ea6c25446ba89134b9da Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D143036
-
Guillaume Chatelet authored
-
WuXinlong authored
This patch reorder the list of Experimental Extensions in doc, and change the spec verision in doc to match the actual Implementation if this patch is so small that it is not worth to submit separately, Apologies for bothering Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D143908
-
Stefan Pintilie authored
Two of the float materialization patterns use the VSSRC regsiter class. This register class is not available before Power 8. The patterns will stay the same for Power 8 and up but must use the class F4RC for Power 7 and earlier. This patch fixes those patterns. Reviewed By: nemanjai, amyk, #powerpc Differential Revision: https://reviews.llvm.org/D142120
-
Phoebe Wang authored
When both v8i64 and v4f16 are not legal in a v8i64->v8f16 conversion, legalizer will breaks it into v8i64->v4i64->v4f32->v8f32->v8f16. Given we support v4i64->v8f16, we can combine them with a shuffle instruction. Reviewed By: LuoYuanke Differential Revision: https://reviews.llvm.org/D143872
-