- Apr 21, 2022
-
-
River Riddle authored
The special case parsing of `func` operations is being removed.
-
River Riddle authored
[mlir][NFC] Update textual references of `func` to `func.func` in Bufferization/Complex/EmitC/CF/Func/GPU tests The special case parsing of `func` operations is being removed.
-
River Riddle authored
The special case parsing of `func` operations is being removed.
-
River Riddle authored
The special case parsing of `func` operations is being removed.
-
River Riddle authored
The special case parsing of `func` operations is being removed.
-
River Riddle authored
The special case parsing of `func` operations is being removed.
-
River Riddle authored
The special case parsing of `func` operations is being removed.
-
River Riddle authored
The special case parsing of `func` operations is being removed.
-
Craig Topper authored
We haven't been updating this as Zb* instructions have been used for immediate materialization. They will hit the default case and trigger an llvm_unreachable. Instead of trying to list them all, assume instructions that aren't explicitly listed aren't compressible. Spotted while looking at integer materialization for other reasons. I haven't seen a crash from this yet.
-
Chuanqi Xu authored
Now the implementation would accept following code: ``` //--- impl.cppm module M:impl; class A {}; //--- M.cppm export module M; import :impl; //--- Use.cpp import M; void test() { A a; // Expected error. A is not visible here. } ``` which is clearly wrong. The root cause is the implementation of `isInCurrentModule` would return true if the module is a partition! So in the above example, although Use.cpp is not a module unit, `isInCurrentModule ` would still return true when the compiler tries to see if the owning module of `A` is the current module. I believe this is an oversight. This patch tries to fix this problem. Reviewed By: iains Differential Revision: https://reviews.llvm.org/D123837 -
Chuanqi Xu authored
The legacy passes are deprecated now and would be removed in near future. This patch tries to remove legacy passes in coroutines. Reviewed By: aeubanks Differential Revision: https://reviews.llvm.org/D123918
-
hsmahesha authored
Based on available register budget, reserve highest available VGPR for AGPR copy before RA. After RA, shift it to lowest unused VGPR if the one exist. Fixes SWDEV-330006. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D123525
-
Weining Lu authored
These instructions are added by following the `LoongArch Reference Manual Volume 1: Basic Architecture Version 1.00`. Differential Revision: https://reviews.llvm.org/D123988
-
Shraiysh Vaishay authored
This patch handles empty hint value for critical and atomic constructs. This also adds checks and tests for hint clause on atomic constructs. Reviewed By: peixin, kiranchandramohan, NimishMishra Differential Revision: https://reviews.llvm.org/D123186
-
hsmahesha authored
[1]. Move the test which reject the usage of agpr before gfx908 into a separate file - reject-agpr-usage-before-gfx908.ll. [2]. Move those tests which are applicable to both gfx900 and gfx908 into a separate file - spill-vgpr.ll. [3]. Keep those tests which are specific to only gfx908 in the file spill-vgpr-to-agpr.ll. Above split is required to properly update the tests in D123525. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D123973
-
Richard Smith authored
This is extended to all `std::` functions that take a reference to a value and return a reference (or pointer) to that same value: `move`, `forward`, `move_if_noexcept`, `as_const`, `addressof`, and the libstdc++-specific function `__addressof`. We still require these functions to be declared before they can be used, but don't instantiate their definitions unless their addresses are taken. Instead, code generation, constant evaluation, and static analysis are given direct knowledge of their effect. This change aims to reduce various costs associated with these functions -- per-instantiation memory costs, compile time and memory costs due to creating out-of-line copies and inlining them, code size at -O0, and so on -- so that they are not substantially more expensive than a cast. Most of these improvements are very small, but I measured a 3% decrease in -O0 object file size for a simple C++ source file using the standard library after this change. We now automatically infer the `const` and `nothrow` attributes on these now-builtin functions, in particular meaning that we get a warning for an unused call to one of these functions. In C++20 onwards, we disallow taking the addresses of these functions, per the C++20 "addressable function" rule. In earlier language modes, a compatibility warning is produced but the address can still be taken. The same infrastructure is extended to the existing MSVC builtin `__GetExceptionInfo`, which is now only recognized in namespace `std` like it always should have been. This is a re-commit of fc309010, a571f82a, 64c045e2, and de6ddaee, and reverts aa643f45. This change also includes a workaround for users using libc++ 3.1 and earlier (!!), as apparently happens on AIX, where std::move sometimes returns by value. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D123345 Revert "Fixup D123950 to address revert of D123345" This reverts commit aa643f45.
-
Muhammad Omair Javaid authored
TestCrashDuringStep.py hangs on AArch64 windows with no resonable possible fix. I am marking it skipped for now.
-
Maksim Panchenko authored
LLVM with LTO can generate function names in the form func.llvm.<number>, where <number> could vary based on the compilation environment. As a result, if a profiled binary originated from a different build than a corresponding binary used for BOLT optimization, then profiles for such LTO functions will be ignored. To fix the problem, use "fuzzy" matching with "func.llvm.*" form. Reviewed By: yota9, Amir Differential Revision: https://reviews.llvm.org/D124117
-
David Tenty authored
Since D123345 got reverted Builtin::BIaddressof and Builtin::BI__addressof don't exist and cause build breaks.
-
Alexander Yermolovich authored
Looks like implementation in llvm changed, and now we need to process error being returned. Reviewed By: maksfb Differential Revision: https://reviews.llvm.org/D124133
-
David Tenty authored
This reverts commit b27430f9 as the parent https://reviews.llvm.org/D123345 breaks the AIX CI: https://lab.llvm.org/buildbot/#/builders/214/builds/819
-
David Tenty authored
This reverts commit e43c93dd as the parent https://reviews.llvm.org/D123345 breaks the AIX CI.
-
Evgeny Mankov authored
The change fixes https://github.com/llvm/llvm-project/issues/54609 (the second reported issue) by eliminating a compilation error occurring only on Windows while trying to compile any CUDA source file by clang (-x cuda). [Repro] clang -x cuda <any_cu_source> [Error] __clang_cuda_runtime_wrapper.h:473: __clang_cuda_intrinsics.h(517,19): error GC871EEFB: unknown type name 'uint32_t'; did you mean 'cuuint32_t'? __device__ inline uint32_t __nvvm_get_smem_pointer(void *__ptr) { ^ C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6/include\cuda.h:57:26: note: 'cuuint32_t' declared here typedef unsigned __int32 cuuint32_t; Reviewed By: tra Differential Revision: https://reviews.llvm.org/D122897
-
Jez Ng authored
These two tests were intended to cover the CU code paths, but invoked llvm-mc using a generic "darwin" platform. However, MC only attempts to emit CU for `macos >= 10.6` [1]. Thus we adjust the tests accordingly. compact-unwind-cfi_def_cfa.s was added in 2fca51d3 fp-setup-macho.s was added in 03ffa797 [1]: https://github.com/llvm/llvm-project/blob/16c93aaa4a955676fe05f876bd036719a1b14b2d/llvm/lib/MC/MCObjectFileInfo.cpp#L43 Reviewed By: MaskRay, smeenai Differential Revision: https://reviews.llvm.org/D124126
-
V Donaldson authored
When known at compile time, Ew.d and Dw.d output edit descriptors should respect limitations from the standard on the value of a kP scale factor with respect to the digit count (d), at least for values of k other than zero.
-
Krzysztof Parzyszek authored
This should reduce compilation time for huge functions.
-
Nathan James authored
Under the hood this prints the same as `QualType::getAsString()` but cuts out the middle-man when that string is sent to another raw_ostream. Also cleaned up all the call sites where this occurs. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D123926
-
Nikolas Klauser authored
Reviewed By: Mordante, #libc Spies: libcxx-commits, miyuki Differential Revision: https://reviews.llvm.org/D123912
-
Mehdi Amini authored
Improve invalid-ir-print-after-failure.mlir to show the effects of -mlir-print-assume-verified (NFC)
-
Muhammad Omair Javaid authored
This patch replaces getargspec with getfullargspec in funcutils.py. getargspec has been deprecated by python 11x release. This is important to run LLDB testsuite in Windows/Arm64 platform where Python native will be available from python release onwards. Note: getfullargspec is not available in python 2 Reviewed By: labath Differential Revision: https://reviews.llvm.org/D121786
-
Pengxuan Zheng authored
https://docs.microsoft.com/en-us/cpp/intrinsics/arm64-intrinsics?view=msvc-170 Reland after fixing the test failure. The failure was due to conflict with a change (D122983) which was merged right before this patch. Reviewed By: rnk, mstorsjo Differential Revision: https://reviews.llvm.org/D124032
-
serge-sans-paille authored
This is a port of f5c66674 to clang's tablegen, with a better wording. Differential Revision: https://reviews.llvm.org/D123682
-
Siva Chandra Reddy authored
Note that the underlying flush implementation does not yet fully implement the POSIX standard. It is complete with respect to the C standard however. A future change will add the POSIX behavior. It should not affect the implementation of the fflush function however as the POSIX behavior will be added in a lower layer. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D124073
-
Pengxuan Zheng authored
This reverts commit 8a9b4fb4.
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D124035
-
Florian Hahn authored
This patch extends the scope of VPlan to also include the exit (aka middle) block. For now, the exit block remains empty, but handling of exit values will subsequently be moved to VPlan, by adding recipes to model exit values in the exit block. As a first step, this will allow fixing #51366. Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D123457
-
Eli Friedman authored
This is sort of a followup to D37310; that basically fixed the same issue, but then the libstdc++ implementation of <atomic> changed. Re-fix the the issue in essentially the same way: look through the addressof operation to find the alignment of the underlying object. Differential Revision: https://reviews.llvm.org/D123950
-
Paul Kirth authored
Current stack size diagnostics ignore the size of the unsafe stack. This patch attaches the size of the static portion of the unsafe stack to the function as metadata, which can be used by the backend to emit diagnostics regarding stack usage. Reviewed By: phosek, mcgrathr Differential Revision: https://reviews.llvm.org/D119996
-
Jan Svoboda authored
This reverts commit 1d3ba05e which caused failures of the VFS/real-path-found-first.m test on Windows build bots.
-
Jan Svoboda authored
This patch removes uses of the deprecated `DirectoryEntry::getName()` from the `ModuleMap::diagnoseHeaderInclusion()` function by using `{File,Directory}EntryRef` instead. Reviewed By: bnbarham Differential Revision: https://reviews.llvm.org/D123856
-