- Feb 24, 2023
-
-
Kadir Cetinkaya authored
Differential Revision: https://reviews.llvm.org/D144646
-
Kadir Cetinkaya authored
getMemBufferCopy triggers an UB when it receives a default constructed StringRef. Make sure that we're always passing the null-terminated string created in ParseInputs throughout the scanPreamble. Differential Revision: https://reviews.llvm.org/D144708
-
Nathan Ridge authored
Fixes https://github.com/clangd/clangd/issues/1484 Differential Revision: https://reviews.llvm.org/D144703
-
Matthias Springer authored
This allows users to specify a top-down or bottom-up traversal of the IR, in addition to the already existing WalkOrder. Certain transformations work better with a forward traversal. E.g., when cloning a piece of IR, operations should be cloned top-down so that all uses are defined when creating an op. Certain transformations work better with a reverse traversal. E.g., when erasing a piece of IR, operations should be erased bottom-up to avoid erasing operations that still have users. Differential Revision: https://reviews.llvm.org/D144257
-
Florian Hahn authored
This should fix the regressions introduced by a53d940c by making sure no dynamic allocations are needed in the common case, while retaining support for arbitrary SCEV expressions. Alternative to D144335. Compile-time impact: * NewPM-O3: -0.11% * NewPM-ReleaseThinLTO: -0.10% *NewPM-ReleaseLTO-g: -0.08% https://llvm-compile-time-tracker.com/compare.php?from=df016a9525e5722dfd1e1e1632cec3ed7b33bc8a&to=c1c64de4a973bcecaddbc4038a539234eb39413b&stat=instructions:u Reviewed By: vitalybuka, nikic Differential Revision: https://reviews.llvm.org/D144382
-
Valentin Clement authored
Abstract derived-type components can have default value so perform the default value initialization if necessary. ``` type, abstract :: a integer :: b = 10 end type type, extends(a) :: b integer :: d end type ``` Reviewed By: klausler Differential Revision: https://reviews.llvm.org/D144668
-
Jean Perier authored
Enable character and derived type array constructor lowering. Nothing special needs to be done other than lowering the types before the array constructor lowering. Derived type are forced to use the runtime for now to avoid undesired usage of user defined assignment that hlfir.assign may trigger when using the runtime. Differential Revision: https://reviews.llvm.org/D144548
-
Serge Pavlov authored
This is recommit of 2e416cdd, fixed to be accepatble by GCC. The original commit message is below. With this change bitwise operations are allowed for FPClassTest enumeration, it must simplify using this type. Also some functions changed to get argument of type FPClassTest instead of unsigned. Differential Revision: https://reviews.llvm.org/D144241
-
Jean Perier authored
Lower the cases that require runtime support to deal with the allocation, reallocation, or copy of ac-values to the array constructor storage. Differential Revision: https://reviews.llvm.org/D144513
-
Martin Liska authored
We as GCC still emit __asan_global_source_location for global variables and we would like to use it in the future. On other hand, we don't support llvm-symbolizer and the default libbacktraace symbolizer does not support location info. Differential Revision: https://reviews.llvm.org/D144424
-
Jean Perier authored
The current code was replacing inquiry to array constructor whose ac-value shape depends on ac-implied-do-index with an expression using the ac-implied-do-index without the implied-do (folding the first case added in the test as in the second case with a regular symbol). Differential Revision: https://reviews.llvm.org/D144655
-
Jean Perier authored
By default evaluate::GetShape(expr) may return a compiler generated expression using symbols that are part of function interfaces if there are function references in "expr". It is not right to replace an inquiry of "expr" with such compiler generated expression since the call context would be lost, along with the meaning of the inquiry expression. Inquiry folding uses GetContextFreeShape(expr) that sets-up useResultSymbolShape_ in GetShapeHelper to prevent such bad rewrites. But this did not work properly with array constructor: GetShapeHelper made a call to GetShape, ignoring and losing the "useResultSymbolShape_" instruction. Differential Revision: https://reviews.llvm.org/D144512
-
LLVM GN Syncbot authored
-
Julian Lettner authored
This reverts commit d8b8911d.
-
Craig Topper authored
WebAssemblyUtils depends on CodeGen which depends on all middle end optimization libraries. This component is used by WebAssembly's AsmParser, Disassembler, and MCTargetDesc libraries. Because of this, any MC layer tool built with WebAssembly support includes a larger portion of LLVM than it should. To fix this I've created an MC only version of WebAssemblyTypeUtilities.cpp in MCTargetDesc to be used by the MC components. This shrinks llvm-objdump and llvm-mc on my local release+asserts build by 5-6 MB. Reviewed By: MaskRay, aheejin Differential Revision: https://reviews.llvm.org/D144354
-
Alexis Murzeau authored
When reading readability-identifier-naming.HungarianNotation.CString options, correctly use the type string stored in CStr.second instead of the option name (CStr.first) as the HNOption.CString map key. This will make CString options really working and properly parsed by the checker. Reviewed By: carlosgalvezp Differential Revision: https://reviews.llvm.org/D144431
-
Vikram authored
Differential Revision: https://reviews.llvm.org/D143987
-
Chuanqi Xu authored
Close https://github.com/llvm/llvm-project/issues/60486. When I look back at this problem again, it only appears if we specify it with `-fmodule-file=<BMI-path>`. And it disappears after we specify it as `-fmodule-file=<module-name>=<BMI-path>`. Since we want to depreacate the form `-fmodule-file=<BMI-path>`, we can think the problem goes away.
-
Mehdi Amini authored
-
Fangrui Song authored
Conflicting module flags leads to a proper error for regular LTO but a crash (report_fatal_error) for ThinLTO. Switch to createStringError to fix the crash and match regular LTO.
-
Chia-hung Duan authored
It is preferable to use `std::shared_mutex` style mutex. Will switch to using it when it's available. Differential Revision: https://reviews.llvm.org/D144691
-
Ben Shi authored
This is in accordance with avr-gcc, even '-mno-relax' is specified to avr-gcc, this flag will also be added to the output relocatables. With this flag set, the GNU ld will perform long call -> short call optimization for AVR, otherwise not. Fixes https://github.com/llvm/llvm-project/issues/54508 Reviewed By: MaskRay, jacquesguan, aykevl Differential Revision: https://reviews.llvm.org/D144617
-
Siva Chandra Reddy authored
Reviewed By: jhuber6 Differential Revision: https://reviews.llvm.org/D143139
-
Michael Liao authored
- The current implementation checks them for 24-bit inegers but the document says 23-bit one effectively by listing the range as [1,2^23). - Minor error message correction. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D144685
-
Siva Chandra Reddy authored
The target "check-libc" now runs all enabled tests which, depending on the build mode, includes the unit tests, the integration tests and the api test. Reviewed By: jhuber6 Differential Revision: https://reviews.llvm.org/D144663
-
Julian Lettner authored
This reverts commit ebd8eee6.
-
Noah Goldstein authored
There are extra patterns that have for these three logic operations that aren't covered in `SimplifyDemandedUseBits`. To avoid duplicating the code, just use `analyzeKnownBitsFromAndXorOr` in `SimplifyDemandedUseBits` to get full coverage. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D142429
-
Noah Goldstein authored
Any case of logicop + add/sub(Odd) we can prove the low bit is either zero/non-zero. Alive2 Links: xor: sub x, C: https://alive2.llvm.org/ce/z/aaABdS sub C, x: https://alive2.llvm.org/ce/z/2W-ZJ7 add C, x: https://alive2.llvm.org/ce/z/pzDkte or: sub x, C: https://alive2.llvm.org/ce/z/xd-bcP sub C, x: https://alive2.llvm.org/ce/z/p8hXJF add C, x: https://alive2.llvm.org/ce/z/osmkB6 and: sub x, C: https://alive2.llvm.org/ce/z/D_NNxR sub C, x: https://alive2.llvm.org/ce/z/N_5C62 add C, x: https://alive2.llvm.org/ce/z/4cy7a4 Differential Revision: https://reviews.llvm.org/D142427 -
Noah Goldstein authored
This change just factors out the existing logic for and/xor/or and puts them in a publicly available helper. functionality is the same. Differential Revision: https://reviews.llvm.org/D142849
-
Noah Goldstein authored
Differential Revision: https://reviews.llvm.org/D142426
-
Min-Yih Hsu authored
Using d0 for exception pointer and d1 for selector, as suggested by GCC.
-
Kadir Cetinkaya authored
This reverts commit 7c9b15fb. Breakage was in downstream code.
-
Shilei Tian authored
This patch fixes the wrong use of `fopen`. Fix https://github.com/llvm/llvm-project/issues/60934 Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D144601
-
Qiongsi Wu authored
`instrprof` currently does not set `__llvm_prf_vnds`'s alignment after creating it. The consequence is that the alignment is set to 16 later (https://github.com/llvm/llvm-project/blob/c0f3ac1d0015fd051144a987ff500b888a32be86/llvm/lib/IR/DataLayout.cpp#L1019). This can lead to undefined behaviour when we calculate `NumVNodes` in `lprofGetLoadModuleSignature` (https://github.com/llvm/llvm-project/blob/c0f3ac1d0015fd051144a987ff500b888a32be86/compiler-rt/lib/profile/InstrProfilingMerge.c#L32). The reason is that when the `__llvm_prf_vnds` array is 16 byte aligned, `__llvm_profile_end_vnodes() - __llvm_profile_begin_vnodes()` may not be a multiple of the size of ValueProfNode (which is 24, 20 on 32 bit targets). This patch sets `__llvm_prf_vnds`'s alignment to its ABI alignment, which always divides its size. Then `__llvm_profile_end_vnodes() - __llvm_profile_begin_vnodes()` will be a multiple of `sizeof(ValueProfNode)`. Reviewed By: w2yehia, MaskRay Differenti...
-
Alex Lorenz authored
This fixes the llvm docs build bot.
-
Markus Böck authored
-
Manolis Tsamis authored
The vendor-defined XTHeadFMemIdx (no comparable standard extension exists at the time of writing) extension adds indexed load/store instructions for floating-point registers. 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 this extension is available at: 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=f511f80fa3fcaf6bcbe727fb902b8bd5ec8f9c20 Depends on D144249 Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D144647
-
Chia-hung Duan authored
When all the blocks in the group are known to be used, we should just mark the pages in the range as all counted instead of visiting each of them. This will reduce the time of marking free blocks especially for smaller size class. Reviewed By: cferris Differential Revision: https://reviews.llvm.org/D141958
-
Caroline Tice authored
This reverts commit cbcb3eef. Causing many clangd test breakages, similar to: error: no matching constructor for initialization of 'llvm::SmallVector<clang::tooling::stdlib::Header>' : llvm::SmallVector<clang::tooling::stdlib::Header>( ^
-
Manolis Tsamis authored
The vendor-defined XTHeadMemIdx (no comparable standard extension exists at the time of writing) extension adds indexed load/store instructions as well as load/store and update register 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 this extension is available at: 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=27cfd142d0a7e378d19aa9a1278e2137f849b71b Depends on D144002 Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D144249
-