This project is mirrored from https://github.com/llvm/llvm-project.git.
Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
- Feb 18, 2022
-
-
Alexander Potapenko authored
For ASan this will effectively serve as a synonym for __attribute__((no_sanitize("address"))). Adding the disable_sanitizer_instrumentation to functions will drop the sanitize_XXX attributes on the IR level. This is the third reland of https://reviews.llvm.org/D114421. Now that TSan test is fixed (https://reviews.llvm.org/D120050) there should be no deadlocks. Differential Revision: https://reviews.llvm.org/D120055
-
hyeongyukim authored
-
Tres Popp authored
Previously, NaNs would be dropped in favor of bounded values which was strictly incorrect. Now the min/max operation propagate this information. Not all uses of min/max need this, but the given change will help protect future additions, and this prevents the need for an additional cmpf and select operation to handle NaNs. Differential Revision: https://reviews.llvm.org/D120020
-
hyeongyukim authored
This flag was previously renamed `enable_noundef_analysis` to `disable-noundef-analysis,` which is not a conventional name. (Driver and CC1's boolean options are using [no-] prefix) As discussed at https://reviews.llvm.org/D105169, this patch reverts its name to `[no-]enable_noundef_analysis` and enables noundef-analysis as default. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D119998
-
https://reviews.llvm.org/D119797Greg Clayton authored
This value error is no longer needed with the new version of the patch
-
Valentin Clement authored
Handle negation on scalar expression. ``` res = -a ``` This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D120071 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
LLVM GN Syncbot authored
-
Snehasish Kumar authored
This patch adds support for optional memory profile information to be included with and indexed profile. The indexed profile header adds a new field which points to the offset of the memory profile section (if present) in the indexed profile. For users who do not utilize this feature the only overhead is a 64-bit offset in the header. The memory profile section contains (1) profile metadata describing the information recorded for each entry (2) an on-disk hashtable containing the profile records indexed via llvm::md5(function_name). We chose to introduce a separate hash table instead of the existing one since the indexing for the instrumented fdo hash table is based on a CFG hash which itself is perturbed by memprof instrumentation. This commit also includes the changes reviewed separately in D120093. Differential Revision: https://reviews.llvm.org/D120103
-
fourdim authored
This patch supports the R_RISCV_JAL relocation. Moreover, it will fix the extractBits function's behavior as it extracts Size + 1 bits. In the test ELF_jal.s: Before: ``` Hi: 4294836480 extractBits(Hi, 12, 8): 480 ``` After: ``` Hi: 4294836480 extractBits(Hi, 12, 8): 224 ``` Reviewed By: StephenFan Differential Revision: https://reviews.llvm.org/D117975
-
Serguei Katkov authored
Make the reading of condition for restricting re-ordering simpler. Reviewers: reames Reviewed By: reames Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D120005
-
esmeyi authored
the same address by symbol types. Summary: In XCOFF, each section comes with a default symbol with the same name as the section. It doesn't bind to code locations and it may cause incorrect display of symbol names under `llvm-objdump -d`. This patch changes the priority of symbols with the same address by symbol type. Reviewed By: jhenderson, shchenz Differential Revision: https://reviews.llvm.org/D117642
-
LLVM GN Syncbot authored
-
Konstantin Varlamov authored
Differential Revision: https://reviews.llvm.org/D119619
-
LLVM GN Syncbot authored
-
Konstantin Varlamov authored
Differential Revision: https://reviews.llvm.org/D119489
-
Kuba Mracek authored
When we scan vtables for a particular vload in ScanVTableLoad and an entry in one possible vtable is invalid (null or non-fptr), we bail in a wrong way -- we completely stop the scanning of vtables and this results in dropped dependencies and incorrectly removed vfuncs from vtables. Let's fix that by correcting the bailing logic to keep iterating and only skip the invalid entries. Differential Revision: https://reviews.llvm.org/D120006
-
Weining Lu authored
-
Jessica Paquette authored
I forgot to attach the testcase for 12389e37!
-
Jessica Paquette authored
Useful for debugging + evaluating improvements to the outliner. Stats are the number of illegal, legal, and invisible instructions in the unsigned vector, and it's total length.
-
Vitaly Buka authored
Reviewed By: kstoimenov Differential Revision: https://reviews.llvm.org/D120082
-
Weining Lu authored
This patch corrects some instruction definitions that I incorrectly wrote in initial patches including bstr{ins/pick}.{w/d}, ll.{w/d} and sc.{w/d}. Reviewed By: xen0n Differential Revision: https://reviews.llvm.org/D119817
-
Weining Lu authored
This patch adds a '$' prefix to register name in InstPrinter that I missed in initial patches. Reviewed By: xen0n Differential Revision: https://reviews.llvm.org/D119813
-
William S. Moses authored
LICM will speculatively hoist code outside of loops. This requires removing information, like alias analysis (https://github.com/llvm/llvm-project/issues/53794), range information (https://bugs.llvm.org/show_bug.cgi?id=50550), among others. Prior to https://reviews.llvm.org/D99249 , LICM would only be run after LoopRotate. Running Loop Rotate prior to LICM prevents a instruction hoist from being speculative, if it was conditionally executed by the iteration (as is commonly emitted by clang and other frontends). Adding the additional LICM pass first, however, forces all of these instructions to be considered speculative, even if they are not speculative after LoopRotate. This destroys information, resulting in performance losses for discarding this additional information. This PR modifies LICM to accept a ``speculative'' parameter which allows LICM to be set to perform information-loss speculative hoists or not. Phase ordering is then modified to not perform the information-losing speculative hoists until after loop rotate is performed, preserving this additional information. Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D119965
-
Benjamin Kramer authored
This also requires implementing return type deduction.
-
Benjamin Kramer authored
-
Zakk Chen authored
Improve test coverage for tail agnostic nomask vslidedown/up, vmv.s.x vfmv.s.f and vcompress. Reviewed By: rogfer01 Differential Revision: https://reviews.llvm.org/D120008
-
Zakk Chen authored
Improve test coverage for tail agnostic nomask Vector Reduction IR. Reviewed By: monkchiang Differential Revision: https://reviews.llvm.org/D119920
-
Heejin Ahn authored
This makes three thread local variables (`__THREW__`, `__threwValue`, and `__wasm_lpad_context`) unconditionally thread local. If the target doesn't support TLS, they will be downgraded to normal variables in `stripThreadLocals`. This makes the object not linkable with other objects using shared memory, which is what we intend here; these variables should be thread local when used with shared memory. This is what we initially tried in D88262. But D88323 changed this: It only created these variables when threads were supported, because `__THREW__` and `__threwValue` were always generated even if Emscripten EH/SjLj was not used, making all objects built without threads not linkable with shared memory, which was too restrictive. But sometimes this is not safe. If we build an object using variables such as `__THREW__` without threads, it can be linked to other objects using shared memory, because the original object's `__THREW__` was not created thread local to begin with. So this CL basically reverts D88323 with some additional improvements: - This checks each of the functions and global variables created within `LowerEmscriptenEHSjLj` pass and removes it if it's not used at the end of the pass. So only modules using those variables will be affected. - Moves `CoalesceFeaturesAndStripAtomics` and `AtomicExpand` passes after all other IR pasess that can create thread local variables. It is not sufficient to move them to the end of `addIRPasses`, because `__wasm_lpad_context` is created in `WasmEHPrepare`, which runs inside `addPassesToHandleExceptions`, which runs before `addISelPrepare`. So we override `addISelPrepare` and move atomic/TLS stripping and expanding passes there. This also removes merges `TLS` and `NO-TLS` FileCheck lines into one `CHECK` line, because in the bitcode level we always create them as thread local. Also some function declarations are deleted `CHECK` lines because they are unused. Reviewed By: tlively, sbc100 Differential Revision: https://reviews.llvm.org/D120013
-
LLVM GN Syncbot authored
-
Snehasish Kumar authored
This reverts commit 807ba7aa.
-
Snehasish Kumar authored
This reverts commit c74389b4. This broke the ml-opt-x86-64 build. https://lab.llvm.org/buildbot#builders/9/builds/4127
-
Matt Arsenault authored
-
Snehasish Kumar authored
We write the memprof internal call frame data in little endian format. However when reading the frame information we were casting it directly to a MemProfRecord::Frame pointer. In this change we add a separate deserialization method which uses an endian reader to read the bytes as little endian. This fixes https://lab.llvm.org/buildbot/#/builders/100/builds/12940 Differential Revision: https://reviews.llvm.org/D120093
-
Matt Arsenault authored
This example is not compilable without handling eviction of specific subregisters. Last chance recoloring was deciding it could try evicting an overlapping superregister, which doesn't help make any progress. The LiveIntervalUnion would then assert due to an overlapping / identical range when trying the new assignment. Unfortunately this is also producing a verifier error after the allocation fails. I've seen a number of these, and not sure if we should just start deleting the function on error rather than trying to figure out how to put together valid MIR. I'm not super confident this is the right place to fix this. I also have a number of failing testcases I need to fix by handling partial evictions of superregisters.
-
Shubham Sandeep Rastogi authored
-
Arthur Eubanks authored
-
Aart Bik authored
Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D120069
-
Matthew Voss authored
This reverts commit 9de4fc0f. Reverting due to test failure: https://lab.llvm.org/buildbot/#/builders/139/builds/17199
-
Shafik Yaghmour authored
-
Arthur Eubanks authored
-