- May 20, 2023
-
-
Slava Zakharin authored
With this change, the lowering provides full slice triples for designators like ...%array_comp%im/re, so that the codegen does not have to figure it out for the array_comp. Basically, ...%array_comp%im/re is lowered the same way as ...%array_comp(:,:,...)%im/re. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D150842
-
- May 19, 2023
-
-
Ivan Kosarev authored
Eliminates the need for the custom code in parseCustomOperand(). The remaining uses of NamedOperandU32 are to be addressed separately. Part of <https://github.com/llvm/llvm-project/issues/62629>. Reviewed By: dp Differential Revision: https://reviews.llvm.org/D150204
-
Jay Foad authored
-
Vladislav Dzhidzhoev authored
This is to support some NEON intrinsics on GlobalISel. Differential Revision: https://reviews.llvm.org/D146780
-
Caroline Concatto authored
Submitting this patch in the name of: David Sherwood <david.sherwood@arm.com> Reviewed By: sdesmalen Differential Revision: https://reviews.llvm.org/D150863
-
Slava Zakharin authored
Without the TODO, MLIR verifier fails because of invalid hlfir.declare or fir.alloca that lowering produces. Reviewed By: clementval Differential Revision: https://reviews.llvm.org/D150911
-
Mark de Wever authored
The main change is to allow a UCS scalar value as fill character. Especially for char based formatting this increase the number of valid characters. Originally this was to be expected ABI breaking, however the current change does not seem to break the ABI. Implements - P2572 std::format() fill character allowances Depends on D144499 Reviewed By: ldionne, tahonermann, #libc Differential Revision: https://reviews.llvm.org/D144742
-
Alex Brachet authored
It shouldn't be assumed that libstdc++ is always available even on Linux. Just let the compiler pick the default Differential Revision: https://reviews.llvm.org/D150809
-
Jay Foad authored
Without "willreturn" this did not get as far as testing the convergent handling in GVN.
-
Fangrui Song authored
Functions instrumented with -fsanitize=function have two words before the function label: a signature and a RTTI proxy. Instrumented call sites check the signature first to skip checks for uninstrumented callees. The code is generic and works for all targets supporting C++ RTTI. Change clangDriver to allow all targets. Add tests for Armv8.5 Branch Target Identification and `-fpatchable-function-entry=`. Reviewed By: peter.smith Differential Revision: https://reviews.llvm.org/D148573
-
Fangrui Song authored
The current implementation of -fsanitize=function places two words (the prolog signature and the RTTI proxy) at the function entry, which makes the feature incompatible with Intel Indirect Branch Tracking (IBT) that needs an ENDBR instruction at the function entry. To allow the combination, move the two words before the function entry, similar to -fsanitize=kcfi. Armv8.5 Branch Target Identification (BTI) has a similar requirement. Note: for IBT and BTI, whether a function gets a marker instruction at the entry generally cannot be assumed (it can be disabled by a function attribute or stronger LTO optimizations). It is extremely unlikely for two words preceding a function entry to be inaccessible. One way to achieve this is by ensuring that a function is aligned at a page boundary and making the preceding page unmapped or unreadable. This is not reasonable for application or library code. (Think: the first text section has crt* code not instrumented by -fsanitize=function.) We use 0xc105cafe for all targets. .long 0xc105cafe disassembles to invalid instructions on all architectures I have tested, except Power where it is `lfs 8, -13570(5)` (Load Floating-Point with a weird offset, unlikely to be used in real code). --- For the removed function in AsmPrinter.cpp, remove an assert: `mdconst::extract` already asserts non-nullness. For compiler-rt/test/ubsan/TestCases/TypeCheck/Function/function.cpp, when the function doesn't have prolog/epilog (-O1 and above), after moving the two words, the address of the function equals the address of ret instruction, so symbolizing the function will additionally get a non-zero column number. Adjust the test to allow an optional column number. ``` .long 3238382334 .long .L__llvm_rtti_proxy-_Z1fv _Z1fv: // symbolizing here retrieves the line table entry from the second .loc .file 0 ... .loc 0 1 0 .cfi_startproc .loc 0 2 1 prologue_end retq ``` Reviewed By: peter.smith Differential Revision: https://reviews.llvm.org/D148665
-
Jay Foad authored
-
Alex Bradbury authored
Provides MC layer support for Zvfbfwma: vector BF16 widening mul-add. As currently specified, Zvfbfwma does not appear to have a dependency on Zvfbfmin or Zfbfmin. Differential Revision: https://reviews.llvm.org/D147612
-
Jacob Crawley authored
Comments in the recent patch https://reviews.llvm.org/D149964, mentioned that using hlfir_ExprType in cases where intrinsics return simple scalars adds unnecessary abstraction that isn't needed unless an array type is being used. This patch modifies the HLFIR operations for product, sum and any so that they only return a hlfir_ExprType when the result is an array, otherwise they will return just the simple scalar type. Differential Revision: https://reviews.llvm.org/D150877
-
Roy Jacobson authored
I checked if the member function declaration was a copy constructor, but it's not sufficient; We need to check the arguments against the instantiated class. Fixed https://github.com/llvm/llvm-project/issues/62555 Reviewed By: erichkeane Differential Revision: https://reviews.llvm.org/D149961
-
Alex Bradbury authored
Provides MC layer support for Zfbfmin: vector BF16 conversions. Zvfbfmin does not appear to have a dependency on Zfbfmin as currently specified. Differential Revision: https://reviews.llvm.org/D147611
-
Shengchen Kan authored
Revert "Revert "[X86] Remove patterns for ADC/SBB with immediate 8 and optimize during MC lowering, NFCI"" This reverts commit cb16b33a. In fact, the test https://bugs.chromium.org/p/chromium/issues/detail?id=1446973#c2 already passed after 5586bc53
-
Alex Bradbury authored
Provides MC layer support for Zfbfmin: scalar BF16 conversions. As documented, this extension includes FLH, FSH, FMV.H.X, and FMH.X.H as defined in Zfh/Zfhmin, but doesn't require either extension. No Zfbfinxmin has been defined (though you would expect one in the future, for symmetry with Zfhinxmin). See issue https://github.com/riscv/riscv-bfloat16/issues/27. Differential Revision: https://reviews.llvm.org/D147610
-
Jay Foad authored
-
Jean Perier authored
The patch applies the schedule built with the utility added in the previous D150455 patch to generate the code for an ordered assignment tree. For now, it only supports forall that do not contain user defined assignments or assignments to vector subscripted entities, and for which the scheduling analysis does not require temporary storages. Support for temporary, WHERE, and user-defined/vector subscript assignment will be added in later patches. This enables end-to-end support with HLFIR for forall where the schedule analysis can prove there is no need to create temporary storage. Differential Revision: https://reviews.llvm.org/D150564
-
Luke Lau authored
Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D149653
-
Luke Lau authored
Reviewed By: reames Differential Revision: https://reviews.llvm.org/D150770
-
Nico Weber authored
Revert "[RFC][MC][MachO]Only emits compact-unwind format for "canonical" personality symbols. For the rest, use DWARFs." This reverts commit 09aaf53a. Causes toolchain asserts building libc++ for x86_64, see https://reviews.llvm.org/D144999#4356215
-
LLVM GN Syncbot authored
-
Thomas Preud'homme authored
This will be used in implementing arbitrary precision support to FileCheck's numeric variables and expressions. Reviewed By: foad, RKSimon Differential Revision: https://reviews.llvm.org/D150879
-
Jun Zhang authored
This reverts commit d71a4e02. See http://45.33.8.238/macm1/61024/step_7.txt
-
Zequan Wu authored
Use windows baskslash on anonymous tag locations if using MSVCFormatting and it's not absolute path. This fixes a nondeterminism on debug info when building on windows natively vs cross building to windows. [1] https://github.com/llvm/llvm-project/blob/llvmorg-17-init/clang/lib/Lex/HeaderSearch.cpp#L465 Differential Revision: https://reviews.llvm.org/D150817
-
Hans Wennborg authored
This caused compiler assertions, see comment on https://reviews.llvm.org/D150107. This also reverts the dependent follow-up change: > [X86] Remove patterns for ADD/AND/OR/SUB/XOR/CMP with immediate 8 and optimize during MC lowering, NFCI > > This is follow-up of D150107. > > In addition, the function `X86::optimizeToFixedRegisterOrShortImmediateForm` can be > shared with project bolt and eliminates the code in X86InstrRelaxTables.cpp. > > Differential Revision: https://reviews.llvm.org/D150949 This reverts commit 2ef8ae13 and 5586bc53.
-
Kiran Chandramohan authored
This is a valid usage. We do not handle it as of now. Gfortran/Ifx produces an error, possibly because `do concurrent` was not allowed in previous versions of the OpenMP standard. Fixes #62649 Reviewed By: Leporacanthicus Differential Revision: https://reviews.llvm.org/D150869
-
Goran Flegar authored
-
Dominik Adamski authored
MLIR version attribute should be lowered to LLVM IR module metadata. The lowering is done by OpenMPIRBuilder. Differential Revision: https://reviews.llvm.org/D150574 Reviewed By: kiranchandramohan
-
Kiran Chandramohan authored
Reverting due to failure in spec cam4 benchmark. See github issue https://github.com/llvm/llvm-project/issues/62802 for details. This reverts commit 095e6ac9.
-
Dominik Adamski authored
This patch adds flag -fopenmp-version to the Flang frontend and bbc tool. This flag is lowered to MLIR OpenMP flag attribute. Differential Revision: https://reviews.llvm.org/D150354 Reviewed By: kiranchandramohan
-
Benjamin Kramer authored
-
Enna1 authored
This patch adds a new method setNoSanitizeMetadata() for Instruction, and use it in SanitizerMetadata and SanitizerCoverage. Reviewed By: nickdesaulniers, MaskRay Differential Revision: https://reviews.llvm.org/D150632
-
Dominik Adamski authored
The intent of OpenMP version attribute is to be applied to a module and then hold information on OpenMP version flag. Information about OpenMP version can be specified in Clang by flag -fopenmp-version and it is stored in LLVM-IR module metadata: !llvm.module.flags = !{!0, !1} !0 = !{i32 7, !"openmp", i32 51} !1 = !{i32 7, !"openmp-device", i32 51} OpenMP MLIR version attributes will allow to lower Flang frontend flag to OpenMP MLIR code and then to LLVM IR. There are two OpenMP MLIR version attributes. The first one "omp.version" MLIR attribute corresponds to host OpenMP version. The second one corresponds to "openmp-device" LLVM-IR metadata. "openmp-device" LLVM-IR metadata is attached only for offloaded code. Differential Revision: https://reviews.llvm.org/D150351 Reviewed By: kiranchandramohan -
Stephen Tozer authored
Fixes: https://github.com/llvm/llvm-project/issues/62725 This patch fixes an error in which a DBG_INSTR_REF referring to a DBG_PHI in a block that is not directly reachable from the entry block results in a crash during LiveDebugValues. Note that this fix prevents a crash from occurring, but will give undef locations to users of these PHIs even if a valid location exists. Reviewed By: jmorse Differential Revision: https://reviews.llvm.org/D150707
-
Shengchen Kan authored
[X86] Remove patterns for ADD/AND/OR/SUB/XOR/CMP with immediate 8 and optimize during MC lowering, NFCI This is follow-up of D150107. In addition, the function `X86::optimizeToFixedRegisterOrShortImmediateForm` can be shared with project bolt and eliminates the code in X86InstrRelaxTables.cpp. Differential Revision: https://reviews.llvm.org/D150949
-
Thomas Symalla authored
If a call to the llvm.fabs intrinsic has users in another reachable BB, SelectionDAG will not apply the abs modifier to these users and instead generate a v_and ..., 0x7fffffff instruction. For fneg instructions, the issue is similar. This patch implements `AMDGPUIselLowering::shouldSinkOperands`, which allows CodegenPrepare to call `tryToSinkFreeOperands`. Reviewed By: foad Differential Revision: https://reviews.llvm.org/D150347
-
Simon Pilgrim authored
-