- Jun 07, 2022
-
-
Yuki Okushi authored
The `Builder.defineMacro("__cpp_multidimensional_subscript", "202110L");` line has some `U+C2AD`s that shouldn't necessary here. So removed them. Differential Revision: https://reviews.llvm.org/D127066 -
David Sherwood authored
Pre-commit some tests as part of https://reviews.llvm.org/D126774
-
Kiran Chandramohan authored
Given the flag `--always-execute-loop-body` the compiler emits code to execute the body of the loop atleast once. Note: This is part of upstreaming from the fir-dev branch of https://github.com/flang-compiler/f18-llvm-project. Reviewed By: awarzynski, schweitz Differential Revision: https://reviews.llvm.org/D127128 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
V Donaldson <vdonaldson@nvidia.com> Co-authored-by:
Valentin Clement <clementval@gmail.com> Co-authored-by:
Sameeran Joshi <sameeranjayant.joshi@amd.com>
-
owenca authored
Change the signatures of parseBlock(), parseLevel(), and parseStructuralElement() to support combining else and if when removing braces. See #55663. Differential Revision: https://reviews.llvm.org/D127005
-
Simon Pilgrim authored
-
Kiran Chandramohan authored
A few OpenMP tests were retaining the FIR operands even after running the LLVM conversion pass. To fix these tests the legality checkes for OpenMP conversion are made stricter to include operands and results. The Flush, Single and Sections operations are added to conversions or legality checks. The RegionLessOpConversion is appropriately renamed to clarify that it works only for operations with Variable operands. The operands of the flush operation are changed to match those of Variable Operands. Fix for an OpenMP issue mentioned in https://github.com/llvm/llvm-project/issues/55210. Reviewed By: shraiysh, peixin, awarzynski Differential Revision: https://reviews.llvm.org/D127092
-
Alex Zinenko authored
Four leading spaces are interpreted as a code block in markdown. Unless used consistently in ODS op description, they cannot be stripped away by the tablegen backend, which results in malformed markdown being generated.
-
Guillaume Chatelet authored
-
David Sherwood authored
Based on reviewer comments on https://reviews.llvm.org/D126692 I've added FastMathFlags to the select instruction used when tail-folding with reductions. These flags can then be used by InstCombine to decide upon the most optimal floating point identity value for fadd/fsub. Doing so unlocks further optimisations, such as folding selects into masked loads. Differential Revision: https://reviews.llvm.org/D126778
-
Alexander Batashev authored
According to the SPIR-V specification[1], PhysicalStorageBuffer storage class can only be used iff addressing model is PhysicalStorageBuffer64. [1]: https://www.khronos.org/registry/SPIR-V/specs/unified1/SPIRV.html#_addressing_model Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D127067
-
Jay Foad authored
Differential Revision: https://reviews.llvm.org/D125559
-
Haojian Wu authored
Fix the review comment in https://reviews.llvm.org/D125479.
-
Haojian Wu authored
The parenthese body should be parameter-declaration-clause, rather than parameter-declaration-list. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D125479
-
Muhammad Omair Javaid authored
This patch removes use of -fno-builtin flag for building LLDB API tests. LLDB API tests are built using Makefile.rules where we were using -fno-builtin flag to avoid gcc intrinsic optimization conflicting with Android runtime in past. Now that we no longer use gcc for building testsuite and compiling LLDB API tests on AArch64/Windows require clang to optimize certain calls like _setjmp to setjmpex as former is not implemented by AArch64 windows runtime.
-
Haojian Wu authored
The IDENTIFIER should be optional. Differential Revision: https://reviews.llvm.org/D126998
-
Haojian Wu authored
The clang lexer lexes it as a dedicated token kind (rather than identifier), we extend the grammar to handle it. Differential Revision: https://reviews.llvm.org/D126996
-
lorenzo chelini authored
Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D126879
-
Haojian Wu authored
The const-expression in the [] can be empty. Differential Revision: https://reviews.llvm.org/D126992
-
Nikita Popov authored
Now that transforms introducing branch on poison have been removed, we can stop marking ranges that have been derived from branch conditions as containing undef. The existing comment explains why this is legal. I've checked that alive2 is happy with SCCP tests after this change. Differential Revision: https://reviews.llvm.org/D126647
-
Haojian Wu authored
The grammar rule is not right, doesn't match the standard one. Differential Revision: https://reviews.llvm.org/D126991
-
Andrzej Warzynski authored
Building Flang on Windows *is supported*. It's been tested there for quite a while now: * https://lab.llvm.org/buildbot/#/builders/172 Submitting this without a review as the current note in the readme file is clearly incorrect.
-
Nikita Popov authored
These assert that there are no "useless" assertzext/assertsext nodes (that assert a wider width than a following trunc), but I don't think there is anything preventing such nodes from reaching this code. I don't think the assertion is relevant for correctness of this transform either -- if such an assert is present, then the other one will always be to a smaller width, and we'll pick that one. The assertion dates back to D37017. Fixes https://github.com/llvm/llvm-project/issues/55846. Differential Revision: https://reviews.llvm.org/D126952
-
lewuathe authored
Add complex.conj op to calculate the complex conjugate which is widely used for the mathematical operation on the complex space. Reviewed By: pifon2a Differential Revision: https://reviews.llvm.org/D127181
-
Fangrui Song authored
Follow-up to c031378c . The class is mostly consistent now.
-
Peixin-Qiao authored
This supports lowering parse-tree to MLIR for threadprivate directive following the OpenMP 5.1 [2.21.2] standard. Take the following as an example: ``` program m integer, save :: i !$omp threadprivate(i) call sub(i) !$omp parallel call sub(i) !$omp end parallel end ``` ``` func.func @_QQmain() { %0 = fir.address_of(@_QFEi) : !fir.ref<i32> %1 = omp.threadprivate %0 : !fir.ref<i32> -> !fir.ref<i32> fir.call @_QPsub(%1) : (!fir.ref<i32>) -> () omp.parallel { %2 = omp.threadprivate %0 : !fir.ref<i32> -> !fir.ref<i32> fir.call @_QPsub(%2) : (!fir.ref<i32>) -> () omp.terminator } return } ``` A threadprivate operation (omp.threadprivate) is created for all references to a threadprivate variable. The runtime will appropriately return a threadprivate var (%1 as above) or its copy (%2 as above) depending on whether it is outside or inside a parallel region. For threadprivate access outside the parallel region, the threadprivate operation is created in instantiateVar. Inside the parallel region, it is created in createBodyOfOp. One new utility function collectSymbolSet is created for collecting all the variables with a property within a evaluation, which may be one Fortran, or OpenMP, or OpenACC construct. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D124226 -
Peixin-Qiao authored
The previous XArrayCoorOp conversion forgot to change getting the operands from OpAdaptor for upper bound and step of slice. This leads to the fail of incompatible of types of codegen when slices are index type. Reviewed By: kiranchandramohan, schweitz Differential Revision: https://reviews.llvm.org/D125967
-
Peixin-Qiao authored
The previous semantic analysis does not consider when the last part-ref is scalar or complex part. Refactor the previous code and bring all the checks into one place. The check starts from the designator by extracting the dataref wrapped including the substring and complex part and recursively check the base objects. Co-authored-by:
Peter Klausler <pklausler@nvidia.com> Reviewed By: klausler Differential Revision: https://reviews.llvm.org/D126595
-
Jeff Bailey authored
Rewrite the introduction of the page to state clearly the goals of LLVM's libc project. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D127174
-
lorenzo chelini authored
-
Gabor Marton authored
Assume functions might recurse (see `reAssume` or `tryRearrange`). During the recursion, the State might not change anymore, that means we reached a fixpoint. In this patch, we avoid infinite recursion of assume calls by checking already visited States on the stack of assume function calls. This patch renders the previous "workaround" solution (D47155) unnecessary. Note that this is not an NFC patch. If we were to limit the maximum stack depth of the assume calls to 1 then would it be equivalent with the previous solution in D47155. Additionally, in D113753, we simplify the symbols right at the beginning of evalBinOpNN. So, a call to `simplifySVal` in `getKnownValue` (added in D51252) is no longer needed. Fixes https://github.com/llvm/llvm-project/issues/55851 Differential Revision: https://reviews.llvm.org/D126560
-
luxufan authored
Fix https://github.com/llvm/llvm-project/issues/55816 Before this patch, MCConstantExpr were reused, but MCSymbolExpr were not. To reuse symbol value, this patch added a DenseMap to record the symbol value. Differential Revision: https://reviews.llvm.org/D127113
-
River Riddle authored
Since version 0.8 we've added: * Switched PDLL and TableGen to use incremental doc updates * Added support to PDLL for inlay hints
-
River Riddle authored
These allow for displaying additional inline information, such as the types of variables, names operands/results, constraint/rewrite arguments, etc. This requires a bump in the vscode extension to a newer version, as inlay hints are a new LSP feature. Differential Revision: https://reviews.llvm.org/D126033
-
River Riddle authored
This is much more efficient over the full mode, as it only requires sending smalls chunks of files. It also works around a weird command ordering issue (full document updates are being sent after other commands like code completion) in newer versions of vscode. Differential Revision: https://reviews.llvm.org/D126032
-
Enna1 authored
Currently, we only check !nosanitize metadata for instruction passed to function `getInterestingMemoryOperands()` or instruction which is a cannot return callable instruction. This patch add this check to any instruction. E.g. ASan shouldn't instrument the instruction inserted by UBSan/pointer-overflow. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D126269
-
Evgeny Shulgin authored
We should not mark a function as "referenced" if we call it within a ConstantExpr, because the expression will be folded to a value in LLVM IR. To prevent emitting consteval function declarations, we should not "jump over" a ConstantExpr when it is a top-level ParmVarDecl's subexpression. Fixes https://github.com/llvm/llvm-project/issues/48230 Reviewed By: erichkeane, aaron.ballman, ChuanqiXu Differenitial Revision: https://reviews.llvm.org/D119646
-
Arthur Eubanks authored
Casting to non-void causes expression result unused [-Wunused-value]
-
jacquesguan authored
Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D127085
-
Akira Hatanaka authored
DebugTypeVisitor This recommits d1346e2e. I've added a line to the test case to enable it only on assert builds. Differential Revision: https://reviews.llvm.org/D125839
-
Akira Hatanaka authored
This reverts commit d1346e2e. The commit broke a few bots.
-