- Jan 28, 2023
-
-
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.
-
Matt Arsenault authored
Don't use the hackier barrier I wrote using the task queue.
-
Matt Arsenault authored
-
Kirill Stoimenov authored
A lot of tests are disabled by using UNSUPPORTED. The plan is to remove UNSUPPORTED for tests that are fixed. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D142676
-
Adrian Prantl authored
This fixes a regression introduced by https://reviews.llvm.org/D131437. The intention of the patch was to avoid indexing DWO skeleton units, but it also skipped over full DWARF compile units linked via a -gmodules DW_AT_dwo_name attribute. This patch restores the functionality and adds a test for it. Differential Revision: https://reviews.llvm.org/D142683
-
Peter Klausler authored
A recent patch introduced a dependency upon Semantics from Evaluate; fixing immediately.
-
Alexander Yermolovich authored
Added logging when bolt is processing binary with split dwarf. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D142576
-
Noah Goldstein authored
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
Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D141874
-
Noah Goldstein authored
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
-
Noah Goldstein authored
Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D140849
-
River Riddle authored
This commit restructures the sub element infrastructure to be a core part of attributes and types, instead of being relegated to an interface. This establishes sub element walking/replacement as something "always there", which makes it easier to rely on for correctness/etc (which various bits of infrastructure want, such as Symbols). Attribute/Type now have `walk` and `replace` methods directly accessible, which provide power API for interacting with sub elements. As part of this, a new AttrTypeWalker class is introduced that supports caching walked attributes/types, and a friendlier API (see the simplification of symbol walking in SymbolTable.cpp). Differential Revision: https://reviews.llvm.org/D142272
-
Michael Buch authored
Fixes build failures following https://reviews.llvm.org/D141828
-
Aart Bik authored
Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D142784
-
Peter Klausler authored
In free form, don't silently skip over an invalid space between an underscore and a kind parameter. Differential Revision: https://reviews.llvm.org/D142760
-
Peter Klausler authored
Fix a subtle bug in procedure compatibility checking with base derived types vs. their extensions to ensure that a procedure expecting an extended type cannot be associated with a pointer (or dummy procedure) to a procedure expecting a base type. subroutine s1(base); ... subroutine s2(extended) procedure(s1), pointer :: p p => s2 ! <- must be caught as an error Differential Revision: https://reviews.llvm.org/D142753
-
Michael Buch authored
**Summary** This patch makes LLDB understand the `DW_AT_default_value` on template argument DIEs. As a result, type summaries will no longer contain the defaulted template arguments, reducing noise substantially. E.g., Before: ``` (lldb) v nested (std::vector<std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::allocator<std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator <char> > > > > >) nested = size=0 {} ``` After: ``` (lldb) v nested (std::vector<std::vector<std::basic_string<char> > >) nested = size=0 {} ``` See discussion in https://reviews.llvm.org/D140423 **Testing** * Adjust API tests * Added unit-test Differential Revision: https://reviews.llvm.org/D141828 -
Peter Klausler authored
Ensure that non-BIND(C) separate module procedures are not defined more than once. Differential Revision: https://reviews.llvm.org/D142750
-
Peter Klausler authored
A semantic constraint on assignments in PURE subprograms (C1594) applies only to an intrinsic assignment and should not be checked in the case of a defined assignment. Differential Revision: https://reviews.llvm.org/D142748
-
Dave Lee authored
Set compiler_versions on these tests, as they fail if tested on lower compiler versions versions. Differential Revision: https://reviews.llvm.org/D142513
-
Peter Klausler authored
A subroutine that implements a defined assignment cannot have a dummy argument for its second operand (the RHS of the assignment) with the POINTER or ALLOCATABLE attributes, since the RHS of an assignment is always an expression. This problem is flagged as a fatal error in other compilers, so let's make it fatal here as well. Differential Revision: https://reviews.llvm.org/D142752
-
Artem Belevich authored
When pointers are passed within aggregates, we sometimes end up with IR that loads them as integers and the converts them back to pointers. Typically it's due to a memcpy or SROA. E.g. https://godbolt.org/z/xM3n5daaa Normally we treat all pointers passed to a CUDA kernel as global pointers and the same treatment should be applied to the pointers we load/store as integers. Differential Revision: https://reviews.llvm.org/D142664
-
Krzysztof Drewniak authored
The HIP CMake files expect to find their own dependencies and don't use or respect PATHS or HINTS, relying on CMAKE_PREFIX_PATH to contain /opt/rocm and /opt/rocm/hip . This is not great for the rest of the build. Therefore, copy the CMake prefix path, add the ROCm directories, find HIP, and reset the path to its old value. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D142391
-