- Jan 18, 2023
-
-
Arthur Eubanks authored
This reverts commit f1f0a0d8. Causes crashes on $ echo 'typedef int a; void c() { __builtin_offsetof(struct {a b}, b); }' | bin/clang -cc1 -emit-llvm -o /dev/null - -x c
-
Arthur Eubanks authored
This reverts commit 3925fbc8. Dependent commit to be reverted.
-
wangpc authored
As the TODO said, we can just use generated uncompressInst to relax instructions. Reviewed By: craig.topper, kito-cheng Differential Revision: https://reviews.llvm.org/D141834
-
wangpc authored
We have several usages of compressInst/uncompressInst in different files, which results in duplicated code. We move their implementations to RISCVBaseInfo under namespace RISCVRVC to remove these duplications. Reviewed By: craig.topper, asb Differential Revision: https://reviews.llvm.org/D141897
-
wangpc authored
So that we won't get redefinition errors if we use compressInst and uncompressInst in the same file. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D141896
-
wanglei authored
This implementation supports basic relocation types and adds EHFrame, Got/Plt handling passes. This patch also enables JIT support for LoongArch64. With this patch, I successfully run hello.ll and simple_throw.ll (which is generated from test-suite/SingleSource/Regression/C++/EH/simple_throw.cpp) using the `lli` command with options `--jit-kind=orc --jit-linker=jitlink`. Note: `hasJIT` property of LoongArch32 remains false as there is no validation environment. Reviewed By: lhames Differential Revision: https://reviews.llvm.org/D141036
-
Chuanqi Xu authored
Close https://github.com/llvm/llvm-project/issues/59719. The root cause of the problem is that we forgot to serialize a new introduced bit to FunctionDeclBits. Maybe we need to find some methods to work for detecting this.
-
Arthur Eubanks authored
-
Amir Ayupov authored
`findFilesWithExtension` helper checks for `endswith(extension)` instead of exactly matching the file extension. This causes it to match unrelated files, for example, `.profdata` files while matching `.fdata` files: http://157.230.108.44:8011/#/builders/56/builds/247 ``` Merging data from /worker/worker/bolt-x86_64-ubuntu-clang-bolt-gcc/build/tools/clang/prof.fdata.1124569.fdata... Merging data from /worker/worker/bolt-x86_64-ubuntu-clang-bolt-gcc/build/tools/clang/test/Frontend/Output/optimization-remark-with-hotness-new-pm.c.tmp.profdata... ``` Reviewed By: phosek Differential Revision: https://reviews.llvm.org/D141342
-
Slava Zakharin authored
Reported in https://lab.llvm.org/buildbot/#/builders/5/builds/30788 Differential Revision: https://reviews.llvm.org/D141985
-
Matt Arsenault authored
Reduce by calling the resolver function at the use site, and inserting an indirect call. Try to delete if there are no uses left over. We should also probably try to do something about constantexpr uses; perhaps treat them like aliases.
-
Matt Arsenault authored
Create a global constructor which will initialize a global table of function pointers. For now, this is only used as a reduction technique for llvm-reduce. In the future this may be useful to support ifunc on systems where the program loader doesn't natively support it.
-
Matt Arsenault authored
Use the variadic template form to avoid naming all the parameters twice.
-
Matt Arsenault authored
-
Matt Arsenault authored
-
Vitaly Buka authored
-
Nadeem, Usman authored
Fixes: https://github.com/llvm/llvm-project/issues/58731 Fixes: https://github.com/llvm/llvm-project/issues/56678 Only handles this form which was reported: `!DIR$ LOOP COUNT (n1[, n2]...)` Differential Revision: https://reviews.llvm.org/D141976 Change-Id: I768c8cb9f289c5fc4adee1ef8262c6d827574f27
-
chendewen authored
The REINTERPRET_CAST operation generates redundant and and ptrue instructions. For some instructions, this is redundant, because its inactive lanes are zeroed by construction. For example. Codegen before: ``` facgt p2.d, p0/z, z4.d, z1.d ptrue p1.d and p1.b, p2/z, p2.b, p1.b ``` After: ``` facgt p1.d, p0/z, z4.d, z1.d ``` ref: https://reviews.llvm.org/D129851 Reviewed By:sdesmalen,paulwalker-arm Differential Revision:https://reviews.llvm.org/D141469
-
Manish Gupta authored
-
Chuanqi Xu authored
Close https://github.com/llvm/llvm-project/issues/60060 Reviewed By: aaron.ballman, erichkeane Differential Revision: https://reviews.llvm.org/p/erichkeane/
-
Craig Topper authored
RISCVSubtarget should be a superclass of MCSubtargetInfo so should have all the same information. Now we pass RISCVSubtarget by reference and name it STI. Confusingly, we seem to have been using an MCSubtargetInfo from the TargetMachine rather than the one associated with the function we are operating. I'm going to assume that was a mistake and not intentional. Reviewed By: kito-cheng Differential Revision: https://reviews.llvm.org/D141966
-
Chuanqi Xu authored
According to https://github.com/llvm/llvm-project/issues/59110, the `-fcoroutines-ts` flag should be deprecated. Reviewed By: aaron.ballman, philnik Differential Revision: https://reviews.llvm.org/D141572
-
Jan Korous authored
Differential Revision: https://reviews.llvm.org/D141333
-
Kirill Stoimenov authored
Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D141642
-
Jordan Rupprecht authored
-
Nikolas Klauser authored
`ranges.transform.pass.cpp` takes ~42s to run on my machine, `ranges.transform.binary.pass.cpp` takes ~26s and `ranges.transform.unary.pass.cpp` takes ~2s. Reviewed By: ldionne, #libc Spies: libcxx-commits Differential Revision: https://reviews.llvm.org/D141965
-
Florian Mayer authored
This is a widespread technique, used in at least: * ABSL: https://github.com/abseil/abseil-cpp/blob/master/absl/log/internal/check_op.h#L52 * Chromium: https://source.chromium.org/chromium/chromium/src/+/main:base/check.h;l=185?q=DCHECK%20f:base&ss=chromium * Android: https://cs.android.com/android/platform/superproject/+/master:system/libbase/include/android-base/logging.h;drc=bda7f0a0cc945c860713a1dc497919f17fad1651;l=321 Reviewed By: Chia-hungDuan, vitalybuka Differential Revision: https://reviews.llvm.org/D141713
-
Rashmi Mudduluru authored
Differential Revision: https://reviews.llvm.org/D141725/new/
-
Florian Mayer authored
Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D141973
-
Giorgis Georgakoudis authored
This patch adds functionality for recording and replaying the execution of OpenMP offload kernels, based on an original implementation by Steve Rangel. The patch extends libomptarget to extract a json description of the kernel, the device image binary, and a device memory snapshot before and after the execution of a recorded kernel. Kernel recording/replaying in libomptarget is controlled through env vars (LIBOMPTARGET_RECORD, LIBOMPTARGET_REPLAY). It provides a tool, llvm-omp-kernel-replay, for replaying a kernel using the extracted information with the ability to verify replayed execution using the post-execution device memory snapshot, also supporting changing the number of teams/threads for replaying. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D138931
-
Mircea Trofin authored
This follows from D141720 Differential Revision: https://reviews.llvm.org/D141967
-
Anshil Gandhi authored
Introduce a parameter in getFallThrough() to optionally allow returning the fall through basic block in spite of an explicit branch instruction to it. This parameter is set to false by default. Introduce getLogicalFallThrough() which calls getFallThrough(false) to obtain the block while avoiding insertion of a jump instruction to its immediate successor. This patch also reverts the changes made by D134557 and solves the case where a jump is inserted after another jump (branch-relax-no-terminators.mir). Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D140790
-
Arthur Eubanks authored
This reverts commit 6e5cbc09. Causes link errors, see http://go/crb/1408161.
-
Mircea Trofin authored
-
Rahman Lavaee authored
Let Propeller use specialized IDs for basic blocks, instead of MBB number. This allows optimizations not just prior to asm-printer, but throughout the entire codegen. This patch only implements the functionality under the new `LLVM_BB_ADDR_MAP` version, but the old version is still being used. A later patch will change the used version. ####Background Today Propeller uses machine basic block (MBB) numbers, which already exist, to map native assembly to machine IR. This is done as follows. - Basic block addresses are captured and dumped into the `LLVM_BB_ADDR_MAP` section just before the AsmPrinter pass which writes out object files. This ensures that we have a mapping that is close to assembly. - Profiling mapping works by taking a virtual address of an instruction and looking up the `LLVM_BB_ADDR_MAP` section to find the MBB number it corresponds to. - While this works well today, we need to do better when we scale... -
Craig Topper authored
This is more consistent with ABI and how bools on RISC-V are represented. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D141963
-
Nikolas Klauser authored
Fixes #59464 Reviewed By: ldionne, Mordante, #libc Spies: libcxx-commits Differential Revision: https://reviews.llvm.org/D141885
-
Zibi Sarbinowski authored
This will fix __murmur2_or_cityhash.pass.cpp in EBCDIC mode. The reason it fails is because of string literals are being used as input to CityHash algorithm so we need to adjust the EBCDIC expected results. Reviewed By: #libc, philnik Differential Revision: https://reviews.llvm.org/D141623
-
usama hameed authored
Summary: This patch removes building sanitizers for i386 iossim. This is to reduce the toolchain size. Reviewers: Subscribers:
-