- Jan 29, 2023
-
-
Peter Klausler authored
A dummy argument that appears only in ENTRY statements may not be used in the executable part prior to its first ENTRY statement. Differential Revision: https://reviews.llvm.org/D142758
-
Kazu Hirata authored
-
Mark de Wever authored
LWG3754 Class template expected synopsis contains declarations that do not match the detailed description This parts of the detailed synopsis that is not copied in libc++, so effectively there's nothing to do. Reviewed By: #libc, philnik Differential Revision: https://reviews.llvm.org/D142809
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Kirill Stoimenov authored
I needed that to make -fsanitize-hwaddress-experimental-aliasing work, but it looks like the test pass without it also. This should fix https://lab.llvm.org/buildbot/#/builders/192 failures. Reviewed By: kstoimenov Differential Revision: https://reviews.llvm.org/D142812
-
- Jan 28, 2023
-
-
Hans Wennborg authored
This caused Chromium to crash, see comment on the code review. > Currently both calling conventions preserve registers that are used to > store a return value. This causes the returned value to be lost: > > define i32 @bar() { > %1 = call preserve_mostcc i32 @foo() > ret i32 %1 > } > > define preserve_mostcc i32 @foo() { > ret i32 2 > ; preserve_mostcc will restore %rax, > ; whatever it was before the call. > } > > This contradicts the current documentation (preserve_allcc "behaves > identical to the `C` calling conventions on how arguments and return > values are passed") and also breaks [[clang::preserve_most]]. > > This change makes CSRs be preserved iff they are not used to store a > return value (e.g. %rax for scalars, {%rax:%rdx} for __int128, %xmm0 > for double). For void functions no additional registers are > preserved, i.e. the behaviour is backward compatible with existing > code. > > Differential Revision: https://reviews.llvm.org/D141020 This reverts commit 0276fa89. -
Aaron Ballman authored
This addresses the issue found in: https://lab.llvm.org/buildbot/#/builders/92/builds/39306
-
Matt Arsenault authored
-
Matt Arsenault authored
-
eopXD authored
This patch works towards the simplification proposal [0] of Nick Knight. After this patch, we have reduced the hierarchy of intrinsics from two sets (non-policy and policy) into a single set, with a general assumption that policy behavior is agnostic unless specified. [0] https://gist.github.com/nick-knight/6cb0b74b351a25323dfb1821d3a269b9 Pull Request: riscv-non-isa/rvv-intrinsic-doc#186. Depends on D141796. Reviewed By: craig.topper, kito-cheng Differential Revision: https://reviews.llvm.org/D142016
-
Benjamin Kramer authored
-
Benjamin Kramer authored
This is needed for the AArch64 asm parser after 9ea00fc7
-
Chenguang Wang authored
It was removed in D142272. This commit is manually verified with: bazel test --config=generic_clang @llvm-project//mlir/unittests:ir_tests Reviewed By: bkramer Differential Revision: https://reviews.llvm.org/D142789
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Craig Topper authored
We try to shift both X and C left by 32 to replace the zext.w with a SLLI and use mulhu. If C is already a simm32, this likely makes a constant that is more expensive to materialize.
-
Shivam Gupta authored
-
Noah Goldstein authored
Recommit "Reorder (shl (add/sub (shl x, C0), y), C1) -> (add/sub (shl x, C0 + C1), (shl y, C1))" 2nd Try First time caused build failure: https://lab.llvm.org/buildbot/#/builders/183/builds/10447 but after investigating it seems to be unrelated. The same test/build passed later with the original commit here: https://lab.llvm.org/buildbot/#/builders/183/builds/10448 This is just expanding the existing pattern that exists for AND/XOR/OR and gets a bit more parallelism in from the instruction sequence. Alive2: Add - https://alive2.llvm.org/ce/z/dSmPkV Sub1 - https://alive2.llvm.org/ce/z/6rpi5V Sub2 - https://alive2.llvm.org/ce/z/UfYeUd Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D141875 -
Noah Goldstein authored
First time caused build failure: https://lab.llvm.org/buildbot/#/builders/183/builds/10447 but after investigating it seems to be unrelated. The same test/build passed later with the original commit here: https://lab.llvm.org/buildbot/#/builders/183/builds/10448 1. Add checks if X and/or Y are odd. The Odd values are unnecessary to the icmp: isZero(Odd * N) == isZero(N) 2. If neither X nor Y is known odd, then if X * Y cannot overflow AND if X and/or Y is non-zero, the non-zero values are unnecessary to the icmp. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D140850 -
Kazu Hirata authored
The argument is known to be nonzero, so we can safely switch to llvm::bit_ceil.
-
Matt Arsenault authored
Allegedly fixes test failure if there are no targets built.
-
Matt Arsenault authored
-
Matt Arsenault authored
For now keep the exising intrinsics working.
-
Mircea Trofin authored
-
Flash Sheridan authored
Differential revision: https://reviews.llvm.org/D140730
-
Flash Sheridan authored
The documentation for code coverage in clang/docs/SourceBasedCodeCoverage.rst omits a couple of crucial steps when using it with Lit. This patch should fix that. Differential revision: https://reviews.llvm.org/D140730
-
River Riddle authored
This makes it a bit easier to share the functionality for building language servers, and makes the API public. No real functional change, as the API was already intended for this anyways. Differential Revision: https://reviews.llvm.org/D142790
-
zhongyunde authored
Fix https://github.com/llvm/llvm-project/issues/59892 Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D141258
-
Peter Klausler authored
When folding the intrinsic functions CHAR and ACHAR, emit an error message if the argument is out of the valid range for the kind of the result. Differential Revision: https://reviews.llvm.org/D142754
-
LLVM GN Syncbot authored
-
Mircea Trofin authored
This is a model runner for ML researchers using environments like CompilerGym. In such environments, researchers host the compiler and want to be able to observe the problem space (features) at each decision step of some optimization pass, at which point the compiler is stopped, waiting for the host makes a decision and provide an advice back to the compiler, which then continues its normal operation, and so on. The InteractiveModelRunner supports this scenario for the feature set exposed by the compiler at a given time. It uses 2 files - ideally FIFO pipes - one to pass data to the host, the other to get advices back from the host. This means this scenario is supported with no special dependencies. The file creation and deletion is the responsibility of the host. Hooking up this model evaluator to a MLGO-ed pass is the responsibilty of the pass author, and subsequent patches will do so for the current set of mlgo passes, and offer an API to easily "just opt in" by default when mlgo-ing a new pass. The data protocol is that of the training logger: the host sees a training log doled out observation by observation by reading from one of the files, and passes back its advice as a serialized tensor (i.e. tensor value memory dump) via the other file. There are some differences wrt the log seen during training: the interactive model doesn't currently include the outcome (because it should be identical to the decision, and it's also not present in the "release" mode); and partial rewards aren't currently communicated back. The assumption - just like with the training logger - is that the host is co-located, thus avoiding any endianness concerns. In a distributed environment, it is up to the hosting infrastructure to intermediate that. Differential Revision: https://reviews.llvm.org/D142642
-
Peter Klausler authored
The standard's specification for the ASSOCIATED() intrinsic function describes its optional second argument (TARGET=) as being required to be a valid target for a pointer assignment statement in which the first argument (POINTER=) was the left-hand side. Some Fortran compilers apparently interpret this text as a requirement that the POINTER= argument actually be a valid left-hand side to a pointer assignment statement, and emit an error if it is not so. This particularly affects the use of an explicit NULL pointer as the first argument. Such usage is well-defined, benign, useful, and supported by at least two other compilers, so we should continue to accept it. This patch adds a portability warning and some documentation. In order to implement the portability warning in the best way, the special checks on calls to the ASSOCIATED() intrinsic function have been moved from intrinsic processing to Semantics/check-calls.cpp, whence they have access to semantics' toolchest. Special checks for other intrinsic functions might also migrate in the future in order to keep them all in one place. Differential Revision: https://reviews.llvm.org/D142768
-
Kirill Stoimenov authored
-
Noah Goldstein authored
This reverts commit edd80bef. Caused test failures in Clangd: https://lab.llvm.org/buildbot/#/builders/183/builds/10447 reverting while investigating.
-
Noah Goldstein authored
This reverts commit aa250ceb. Caused test failures in Clangd: https://lab.llvm.org/buildbot/#/builders/183/builds/10447 reverting while investigating.
-
Craig Topper authored
Resolves a FIXME. We could do even better taking into account SEW/LMUL.
-
Craig Topper authored
These are like the intrinsic without opt, but don't have side effects. Add missing test cases for riscv.vsetvlimax.
-
Matt Arsenault authored
If this wasn't bitcode this was opening a second MemoryBuffer.
-
Matt Arsenault authored
Use more consistently capitalized/colorized/punctuated error messages.
-