- Dec 10, 2021
-
-
Florian Hahn authored
This allows easier access to the induction descriptor from VPlan, without needing to go through Legal. VPReductionPHIRecipe already contains a RecurrenceDescriptor in a similar fashion. Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D115111
-
Ties Stuij authored
This change consists of just adding 'BTI' to the prologue of Arm assembly functions, which is just the one: __cxa_end_cleanup This patch is part of a series that adds support for the PACBTI-M extension of the Armv8.1-M architecture, as detailed here: https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/armv8-1-m-pointer-authentication-and-branch-target-identification-extension The PACBTI-M specification can be found in the Armv8-M Architecture Reference Manual: https://developer.arm.com/documentation/ddi0553/latest The following people contributed to this patch: - Mikhail Maltsev Reviewed By: lenary, danielkiss Differential Revision: https://reviews.llvm.org/D112432
-
Alexander Potapenko authored
To ease the deployment of KMSAN, we need a way to apply __attribute__((no_sanitize("kernel-memory"))) to the whole source file. Passing -msan-disable-checks=1 to the compiler will make it treat every function in the file as if it was lacking the sanitize_memory attribute. Differential Revision: https://reviews.llvm.org/D115236
-
LLVM GN Syncbot authored
-
Sameer Sahasrabuddhe authored
Reverts 02940d6d. Fixes breakage in the modules build. LLVM loops cannot represent irreducible structures in the CFG. This change introduce the concept of cycles as a generalization of loops, along with a CycleInfo analysis that discovers a nested hierarchy of such cycles. This is based on Havlak (1997), Nesting of Reducible and Irreducible Loops. The cycle analysis is implemented as a generic template and then instatiated for LLVM IR and Machine IR. The template relies on a new GenericSSAContext template which must be specialized when used for each IR. This review is a restart of an older review request: https://reviews.llvm.org/D83094 Original implementation by Nicolai Hähnle <nicolai.haehnle@amd.com>, with recent refactoring by Sameer Sahasrabuddhe <sameer.sahasrabuddhe@amd.com> Differential Revision: https://reviews.llvm.org/D112696
-
https://reviews.llvm.org/D115431Jason Molenda authored
The change to ArchSpec::SetArchitecture that was setting the ObjectFile of a mach-o binary to llvm::Triple::MachO. It's not necessary for my patch, and it changes the output of image list -t causing TestUniversal.py to fail on x86_64 systems. The bots turned up the failure, I was developing and testing this on an Apple Silicon mac.
-
Andrzej Warzynski authored
-
Andrzej Warzynski authored
This patch extends the `FIRToLLVMLowering` pass in Flang by adding a hook to transform `!fir.coordinate_of` into a sequence of LLVM MLIR instructions. The following cases are currently supported: 1. the input object is a `!fir.complex` (wrapped in e.g. `!fir.ref` or `!fir.box`) 2. the input object is wrapped in a `!fir.box` (including e.g. `!fir.array`). Note that `!fir.complex` inside a `!fir.box` falls under case 1. above (i.e. it's a special case regardless of the wrapping type). This is part of the upstreaming effort from the `!fir-dev` branch in [1]. Differential Revision: https://reviews.llvm.org/D114159 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
V Donaldson <vdonaldson@nvidia.com>
-
Christudasan Devadasan authored
While enabling vector superclasses with D109301, the AV spills are converted into VGPR spills by introducing appropriate copies. The whole thing ended up adding two instructions per spill (a copy + vgpr spill pseudo) and caused an incorrect liverange update during inline spiller. This patch adds the pseudo instructions for all AV spills from 32b to 1024b and handles them in the way all other spills are lowered. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D115439
-
Qiu Chaofan authored
Reviewed By: jsji Differential Revision: https://reviews.llvm.org/D114569
-
Nikita Popov authored
This shows a case where deferred inlining produces an exponential result. The test case demonstrates the basic exponential behavior, but is nowhere close to the worst case. For example, the file at https://gist.github.com/nikic/1262b5f7d27278e1b34a190ae10947f5 currently gets expanded from <100 lines to nearly 500000 lines of IR by opt -inline.
-
Konstantin Schwarz authored
The existing code assumed fcmp to always be an Instruction, but it can also be a ConstExpr. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D115450
-
Chuanqi Xu authored
The intention should be formatted in two lines instead of one.
-
Jason Molenda authored
With arm64e ARMv8.3 pointer authentication, lldb needs to know how many bits are used for addressing and how many are used for pointer auth signing. This should be determined dynamically from the inferior system / corefile, but there are some workflows where it still isn't recorded and we fall back on a default value that is correct on some Darwin environments. This patch also explicitly sets the vendor of mach-o binaries to Apple, so we select an Apple ABI instead of a random other ABI. It adds a function pointer formatter for systems where pointer authentication is in use, and we can strip the ptrauth bits off of the function pointer address and get a different value that points to an actual symbol. Differential Revision: https://reviews.llvm.org/D115431 rdar://84644661
-
Siva Chandra Reddy authored
These annotations are intended to be temporary while we understand why clang-tidy is not able to treat them as builtin exceptions.
-
Vitaly Buka authored
-
eopXD authored
Originially there are two places that does parsing - `parseArchString` and `parseFeatures`, each with its code on dependency check and implication. This patch extracts common parts of the two as functions of `RISCVISAInfo` and let them 2 use it. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D112359
-
eopXD authored
Current implementation can't parse extension names that contains digits correctly (e.g. `zvl128b`). This patch fixes it. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D109215
-
Mehdi Amini authored
Introduced in D110448 and broke some bots (reported by ASAN). Differential Revision: https://reviews.llvm.org/D110448
-
Kazu Hirata authored
-
Amara Emerson authored
This results in a very minor improvement in most cases, generating stores of xzr instead of moving zero to a vector register. Differential Revision: https://reviews.llvm.org/D115479
-
Taewook Oh authored
A test for the new pass manager was missed from the original diff D115317. Reviewed By: browneee Differential Revision: https://reviews.llvm.org/D115477
-
Duncan P. N. Exon Smith authored
Update getMemoryBufferForStream() to use `resize_for_overwrite()` and `truncate()` instead of `reserve()` and `set_size()`. Differential Revision: https://reviews.llvm.org/D115384
-
Phoebe Wang authored
Revert "[X86][clang] Emit diagnostic for float and double when we have features -x87 and -sse on 64-bits" This reverts commit 4a2c827b. Need to fix the problem when using `-mno-sse` together with "x86intrin.h"
-
Kirill Stoimenov authored
This reverts commit 428ed61a. Build bot failure: https://lab.llvm.org/buildbot/#/builders/37 https://lab.llvm.org/buildbot/#/builders/37/builds/9041 Reviewed By: kstoimenov Differential Revision: https://reviews.llvm.org/D115489
-
Chia-hung Duan authored
Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D115487
-
Peter Klausler authored
Array constructors with implied DO loops that oversee structure constructors were being prematurely folded into invalid constants containing symbolic references to the ac-implied-do indices, because they are indeed "constant expressions" as that term is used in the Fortran standard and implemented as IsConstantExpr(). What's actually needed in structure constructor folding is a test for actual constant values, which is what results from folding them later with repetition in the context of folding an ac-implied-do. Differential Revision: https://reviews.llvm.org/D115470
-
Noah Shutty authored
Adds a fallback to use the debuginfod client library (386655) in `findDebugBinary`. Fixed a cast of Erorr::success() to Expected<> in debuginfod library. Added Debuginfod to Symbolize deps in gn. Updates compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh to include Debuginfod library to fix sanitizer-x86_64-linux breakage. Reviewed By: jhenderson, vitalybuka Differential Revision: https://reviews.llvm.org/D113717
-
Phoebe Wang authored
D113096 solved the "undefined reference to xxx" issue by adding constraint *m for the global var. But it has strong side effect due to the symbol in the assembly being replaced with constraint variable. This leads to some lowering fails. https://godbolt.org/z/h3nWoerPe This patch fix the problem by use the constraint *m as place holder rather than real constraint. It has negligible effect for the existing code generation. Reviewed By: skan Differential Revision: https://reviews.llvm.org/D115225
-
Noah Shutty authored
This reverts commit e2ad4f17 because it does not correctly fix the sanitizer buildbot breakage.
-
Jon Chesterfield authored
-
Noah Shutty authored
Adds a fallback to use the debuginfod client library (386655) in `findDebugBinary`. Fixed a cast of Erorr::success() to Expected<> in debuginfod library. Added Debuginfod to Symbolize deps in gn. Adds new symbolizer symbols to `global_symbols.txt`. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D113717
-
Logan Smith authored
This avoids an unnecessary copy required by 'return OS.str()', allowing instead for NRVO or implicit move. The .str() call (which flushes the stream) is no longer required since 65b13610, which made raw_string_ostream unbuffered by default. Differential Revision: https://reviews.llvm.org/D115374
-
Logan Smith authored
This avoids an unnecessary copy required by 'return OS.str()', allowing instead for NRVO or implicit move. The .str() call (which flushes the stream) is no longer required since 65b13610, which made raw_string_ostream unbuffered by default. Differential Revision: https://reviews.llvm.org/D115374
-
Logan Smith authored
This avoids an unnecessary copy required by 'return OS.str()', allowing instead for NRVO or implicit move. The .str() call (which flushes the stream) is no longer required since 65b13610, which made raw_string_ostream unbuffered by default. Differential Revision: https://reviews.llvm.org/D115374
-
Logan Smith authored
This avoids an unnecessary copy required by 'return OS.str()', allowing instead for NRVO or implicit move. The .str() call (which flushes the stream) is no longer required since 65b13610, which made raw_string_ostream unbuffered by default. Differential Revision: https://reviews.llvm.org/D115374
-
Logan Smith authored
This avoids an unnecessary copy required by 'return OS.str()', allowing instead for NRVO or implicit move. The .str() call (which flushes the stream) is no longer required since 65b13610, which made raw_string_ostream unbuffered by default. Differential Revision: https://reviews.llvm.org/D115374
-
Logan Smith authored
This avoids an unnecessary copy required by 'return OS.str()', allowing instead for NRVO or implicit move. The .str() call (which flushes the stream) is no longer required since 65b13610, which made raw_string_ostream unbuffered by default. Differential Revision: https://reviews.llvm.org/D115374
-
Kirill Stoimenov authored
Reviewed By: kstoimenov Differential Revision: https://reviews.llvm.org/D115478
-
Kirill Stoimenov authored
Reviewed By: kstoimenov Differential Revision: https://reviews.llvm.org/D115475
-