- Jun 05, 2023
-
-
Matthias Springer authored
Also support replacing payload ops with ConstantLike ops in the TrackingListener, even if the replacement op does not have the same name. (Not supported for ops with multiple results, as this would require splitting the handle.) Differential Revision: https://reviews.llvm.org/D152127
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D152125
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D152124
-
Jay Foad authored
-
David Green authored
To go with D149267 and D149967, this adds predicated mla/mls patterns, selected from select(mask, add(a, mul(b, c)), a) -> mla(a, mask, b, c). The existing patterns are eventually removed by D149967. Differential Revision: https://reviews.llvm.org/D149969
-
Chen Zheng authored
-
Mehdi Amini authored
This was missed when the other dialects adopted it. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D151410
-
Qiu Chaofan authored
Reviewed By: shchenz Differential Revision: https://reviews.llvm.org/D141249
-
Adrian Kuegel authored
-
Nathan Ridge authored
This carries over the fix previously made for semantic highlighting https://reviews.llvm.org/D92148, to the new inactiveRegions protocol as well. In addition, the directives at the beginning and end of an inactive region are now excluded from the region. Fixes https://github.com/clangd/clangd/issues/1631 Fixes https://github.com/clangd/clangd/issues/773 Differential Revision: https://reviews.llvm.org/D151190
-
LLVM GN Syncbot authored
-
LLVM GN Syncbot authored
-
pvanhout authored
This patch splits the GlobalISelEmitter.cpp file, which imports DAG ISel patterns for GISel, into separate "GISelMatchTable.h/cpp" files. The main motive is readability & maintainability. GlobalISelEmitter.cpp was about 6400 lines of mixed code, some bits implementing the match table codegen, some others dedicated to importing DAG patterns. Now it's down to 2700 + a 2150 header + 2000 impl. It's a tiny bit more lines overall but that's to be expected - moving inline definitions to out-of-line, adding comments in the .cpp, etc. all of that takes additional space, but I think the tradeoff is worth it. I did as little unrelated code changes as possible, I would say the biggest change is the introduction of the `gi` namespace used to prevent name conflicts/ODR violations with type common names such as `Matcher`. It was previously not an issue because all of the code was in an anonymous namespace. This moves all of the "match table" code out of the file, so predicates, rules, and actions are all separated now. I believe this helps separating concerns, now `GlobalISelEmitter.cpp` is more focused on importing DAG patterns into GI, instead of also containing the whole match table internals as well. Note: the new files have a "GISel" prefix to make them distinct from the other "GI" files in the same folder, which are for the combiner. Reviewed By: aemerson Differential Revision: https://reviews.llvm.org/D151432
-
Mikhail Goncharov authored
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D151998
-
Qiu Chaofan authored
-
Serge Pavlov authored
The change implements intrinsics 'get_fpenv', 'set_fpenv' and 'reset_fpenv'. They are used to read floating-point environment, set it or reset to some default state. They do the same actions as C library functions 'fegetenv' and 'fesetenv'. By default these intrinsics are lowered to calls to these functions. The new intrinsics specify FP environment as a value of integer type, it is convenient of most targets where the FP state is a content of some register. Some targets however use long representations. On X86 the size of FP environment is 256 bits, and even half of this size is not a legal ibteger type. To facilitate legalization in such cases, two sets of DAG nodes is used. Nodes GET_FPENV and SET_FPENV are used when FP environment may be represented by a legal integer type. Nodes GET_FPENV_MEM and SET_FPENV_MEM consider FP environment as a region in memory, much like `fesetenv` and `fegetenv` do. They are used when target has long representation for floationg-point state. Differential Revision: https://reviews.llvm.org/D71742
-
Qiu Chaofan authored
The build failure should be fixed by de681d53. Follow-up refactor will be done in future patches. This reverts commit e7c5ced0.
-
Haohai Wen authored
Reviewed By: skan Differential Revision: https://reviews.llvm.org/D152119
-
Vinayaka Bandishti authored
Fix a bug in detecting unknown ids as mods of known ids that was preventing certain fusions. While at this, fix the function signature of `detectAsMod` function to have output as the last argument. Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D152055
-
Vinayaka Bandishti authored
Before serializing, optimizations on llvm were only called on path to hsaco, and not cubin. Define opt-level for `gpu-to-cubin` pass as well, and move call to optimize llvm to a common place. Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D151554
-
Alex Voicu authored
Correctly account for the fact that certain targets do not use the generic address space for the implicit VTT argument. This entails adjusting `ItaniumCXXABI::buildStructorSignature`, `ItaniumCXXABI::addImplicitStructorParams` and `ItaniumCXXABI::getImplicitConstructorArgs` to use the target's global variable address space. The associated test is temporarily marked `XFAIL` as additional fixes are needed. Reviewed By: rjmccall Differential Revision: https://reviews.llvm.org/D150746
-
Haohai Wen authored
Each COFFSection bind MCSection when created. No need to iterate throught MCAssembler when writeSection. Reviewed By: skan Differential Revision: https://reviews.llvm.org/D151793
-
Chen Zheng authored
Change to system assembler to compile assembly files even -fintegrated-as is specified. We don't have a good Clang as for now for assembly files on AIX. Reviewed By: qiucf Differential Revision: https://reviews.llvm.org/D148490
-
Jacques Pienaar authored
Previously the SignedVarInt was incorrectly defined. Follow up work needed for improving Array printing/parsing, but correcting the definitions for now.
-
Alexey Lapshin authored
This addresses the issue found by: https://lab.llvm.org/buildbot/#/builders/192/builds/2309
-
Jacques Pienaar authored
Enables reserving or marking dead in enum list, resulting in skipping in dispatches.
-
Jacques Pienaar authored
Fix missed review comment from https://reviews.llvm.org/D144820
-
Aiden Grossman authored
The comment moved is referring to the --output-asm-syntax flag rather than the --print-imm-hex flag, but seems to have mistakenly been put under the definition of that flag due to some misplaced line numbers on phabricator.
-
Benjamin Kramer authored
-
Florian Hahn authored
If the value was already known to not be uniform for the previous (smaller VF), it cannot be uniform for the larger VF. This slightly reduces compile-time, once uniformity checks are becoming a bit more expensive due to using SCEV rewriting (D148841). Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D151658
-
Alexey Lapshin authored
-
LLVM GN Syncbot authored
-
Alexey Lapshin authored
This patch creates skeleton implementation for the DWARFLinkerParallel. It also integrates DWARFLinkerParallel into dsymutil and llvm-dwarfutil, so that empty DWARFLinker::link() can be called. To do this new command line option is added "--linker apple/llvm". Additionally it changes existing DWARFLinker interfaces/implementations to be compatible: use Error for error reporting for the DWARFStreamer, make DWARFFile to owner of referenced resources, other small refactorings. Differential Revision: https://reviews.llvm.org/D147952
-
LLVM GN Syncbot authored
-
Danila Kutenin authored
This is the implementation of the first proposal of strict weak ordering checks described in https://discourse.llvm.org/t/rfc-strict-weak-ordering-checks-in-the-debug-libc/70217 This targets the most vulnerable algorithms like std::sort Reviewed By: philnik, #libc Differential Revision: https://reviews.llvm.org/D150264
-
Manna, Soumi authored
This patch uses castAs instead of getAs which will assert if the type doesn't match in ConvertQualTypeToKind(clang::ASTContext const &, clang::QualType). Reviewed By: erichkeane Differential Revision: https://reviews.llvm.org/D151928
-