- Feb 17, 2021
-
-
Kazu Hirata authored
-
Cassie Jones authored
This adds highlighting for MIR instruction opcodes, physical registers, and MIR types. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D95553
-
Cassie Jones authored
This initial definition handles the yaml container and the embedding of the inner IRs. As a stopgap, this reuses the LLVM IR syntax highlighting for the MIR function bodies--even though it's not technically correct, it produces decent highlighting for a first pass. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D95552
-
Dmitry Vyukov authored
If an app mmaps lots of memory, a user mmap may end up in the tsan region for traces. Shadow for this range overlaps with shadow for other user regions. This causes havok: from false positives to crashes. Don't leave unmapped holes in the traces region. Reviewed-in: https://reviews.llvm.org/D96697
-
Yang Fan authored
MSVC warning: ``` SampleProfileLoaderBaseImpl.h(41): warning C4515: 'llvm': namespace uses itself ```
-
Kazu Hirata authored
-
Kazu Hirata authored
Identified with llvm-header-guard.
-
Kazu Hirata authored
-
Mikael Holmen authored
type is an uint8_t so type >= 0 is always true and type < 0 is always false.
-
Mircea Trofin authored
Allow custom location for pre-trained models used when AOT-compiling policies. Differential Revision: https://reviews.llvm.org/D96796
-
Hsiangkai Wang authored
Differential Revision: https://reviews.llvm.org/D95148
-
Hsiangkai Wang authored
This patch proposes how to deal with RISC-V vector frame objects. The layout of RISC-V vector frame will look like |---------------------------------| | scalar callee-saved registers | |---------------------------------| | scalar local variables | |---------------------------------| | scalar outgoing arguments | |---------------------------------| | RVV local variables && | | RVV outgoing arguments | |---------------------------------| <- end of frame (sp) If there is realignment or variable length array in the stack, we will use frame pointer to access fixed objects and stack pointer to access non-fixed objects. |---------------------------------| <- frame pointer (fp) | scalar callee-saved registers | |---------------------------------| | scalar local variables | |---------------------------------| | ///// realignment ///// | |---------------------------------| | scalar outgoing arguments | |---------------------------------| | RVV local variables && | | RVV outgoing arguments | |---------------------------------| <- end of frame (sp) If there are both realignment and variable length array in the stack, we will use frame pointer to access fixed objects and base pointer to access non-fixed objects. |---------------------------------| <- frame pointer (fp) | scalar callee-saved registers | |---------------------------------| | scalar local variables | |---------------------------------| | ///// realignment ///// | |---------------------------------| <- base pointer (bp) | RVV local variables && | | RVV outgoing arguments | |---------------------------------| | /////////////////////////////// | | variable length array | | /////////////////////////////// | |---------------------------------| <- end of frame (sp) | scalar outgoing arguments | |---------------------------------| In this version, we do not save the addresses of RVV objects in the stack. We access them directly through the polynomial expression (a x VLENB + b). We do not reserve frame pointer when there is any RVV object in the stack. So, we also access the scalar frame objects through the polynomial expression (a x VLENB + b) if the access across RVV stack area. Differential Revision: https://reviews.llvm.org/D94465
-
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92598Douglas Yung authored
This should fix gcc based builders such as http://lab.llvm.org:8011/#/builders/76/builds/1683
-
Valentin Clement authored
This patch is a follow up of D96422 and move ComplexType to TableGen. Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D96575
-
Valentin Clement authored
This patch is a follow up of D96422 and move BoxProcType to TableGen. Reviewed By: schweitz, mehdi_amini Differential Revision: https://reviews.llvm.org/D96514
-
Valentin Clement authored
This patch is a follow up of D96422 and move CharacterType and BoxCharType to TableGen. Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D96446
-
Alexander Shaposhnikov authored
1. Emit warnings for files without symbols. 2. Add -no_warning_for_no_symbols. Test plan: make check-all Differential revision: https://reviews.llvm.org/D95843
-
Tony Tye authored
The AMD GPU SIMemoryLegalizer was using the ordering address space rather than the instruction address space when determining the s_waitcnt to generate to ensure that a read-modify-write atomic has completed. This resulted in additional unnecessary counters being waited on. Differential Revision: https://reviews.llvm.org/D96743
-
LLVM GN Syncbot authored
-
Rong Xu authored
Reapply patch after fixing buildbot failure. Refactor SampleProfile.cpp to use the core code in CodeGen. The main changes are: (1) Move SampleProfileLoaderBaseImpl class to a header file. (2) Split SampleCoverageTracker to a head file and a cpp file. (3) Move the common codes (common options and callsiteIsHot()) to the common cpp file. Differential Revision: https://reviews.llvm.org/D96455
-
Sriraman Tallam authored
Basic block sections enables function sections implicitly, this is not needed and is inefficient with "=list" option. We had basic block sections enable function sections implicitly in clang. This is particularly inefficient with "=list" option as it places functions that do not have any basic block sections in separate sections. This causes unnecessary object file overhead for large applications. This patch disables this implicit behavior. It only creates function sections for those functions that require basic block sections. Further, there was an inconistent behavior with llc as llc was not turning on function sections by default. This patch makes llc and clang consistent and tests are added to check the new behavior. This is the first of two patches and this adds functionality in LLVM to create a new section for the entry block if function sections is not enabled. Differential Revision: https://reviews.llvm.org/D93876
-
Stella Laurenzo authored
Differential Revision: https://reviews.llvm.org/D96815
-
Alexey Bataev authored
OpenMP 5.0 removed a lot of restriction for overlapped mapped items comparing to OpenMP 4.5. Patch restricts the checks for overlapped data mappings only for OpenMP 4.5 and less and reorders mapping of the arguments so, that present and alloc mappings are processed first and then all others. Differential Revision: https://reviews.llvm.org/D86119
-
Peter Steinfeld authored
It's possible to define a procedure that has a procedure dummy argument which names the procedure that contains it. This was causing the compiler to fall into an infinite loop when characterizing a call to the procedure. Following a suggestion from Peter, I fixed this be maintaining a set of procedure symbols that had already been seen while characterizing a procedure. This required passing a new parameter to the functions that characterized a Procedure, a DummyArgument, and a DummyProcedure. I also added several tests that will crash the compiler without this change. Differential Revision: https://reviews.llvm.org/D96631
-
Petr Hosek authored
This change introduces support for zero flag ELF section groups to lld. lld already supports COMDAT sections, which in ELF are a special type of ELF section groups. These are generally useful to enable linker GC where you want a group of sections to always travel together, that is to be either retained or discarded as a whole, but without the COMDAT semantics. Other ELF linkers already support zero flag ELF section groups and this change helps us reach feature parity. Differential Revision: https://reviews.llvm.org/D96636
-
Yang Fan authored
Implement all of P1825R0: - implicitly movable entity can be an rvalue reference to non-volatile automatic object. - operand of throw-expression can be a function or catch-clause parameter (support for function parameter has already been implemented). - in the first overload resolution, the selected function no need to be a constructor. - in the first overload resolution, the first parameter of the selected function no need to be an rvalue reference to the object's type. This patch also removes the diagnostic `-Wreturn-std-move-in-c++11`. Differential Revision: https://reviews.llvm.org/D88220 -
Petr Hosek authored
This change introduces support for zero flag ELF section groups to LLVM. LLVM already supports COMDAT sections, which in ELF are a special type of ELF section groups. These are generally useful to enable linker GC where you want a group of sections to always travel together, that is to be either retained or discarded as a whole, but without the COMDAT semantics. Other ELF assemblers already support zero flag ELF section groups and this change helps us reach feature parity. Differential Revision: https://reviews.llvm.org/D95851
-
LLVM GN Syncbot authored
-
Mehdi Amini authored
This reverts commit 310b3530. The build is broken with -DBUILD_SHARED_LIBS=ON : lib/ProfileData/CMakeFiles/LLVMProfileData.dir/SampleProfileLoaderBaseUtil.cpp.o: In function `llvm::sampleprofutil::callsiteIsHot(llvm::sampleprof::FunctionSamples const*, llvm::ProfileSummaryInfo*, bool)': SampleProfileLoaderBaseUtil.cpp:(.text._ZN4llvm14sampleprofutil13callsiteIsHotEPKNS_10sampleprof15FunctionSamplesEPNS_18ProfileSummaryInfoEb+0x1a): undefined reference to `llvm::ProfileSummaryInfo::isColdCount(unsigned long) const' SampleProfileLoaderBaseUtil.cpp:(.text._ZN4llvm14sampleprofutil13callsiteIsHotEPKNS_10sampleprof15FunctionSamplesEPNS_18ProfileSummaryInfoEb+0x28): undefined reference to `llvm::ProfileSummaryInfo::isHotCount(unsigned long) const' ...
-
David Blaikie authored
-
MaheshRavishankar authored
Resolving the dim of outputs of a tensor_reshape op in terms of its input shape allows the op to be eliminated when its used only in its dims. The init_tensor -> tensor_reshape canonicalization can be simplified to use the dims of the output of the tensor_reshape which gets canonicalized away later making the tensor_reshape dead. Differential Revision: https://reviews.llvm.org/D96635
-
Simonas Kazlauskas authored
When the `DWOPath` is absolute, we want to use `DWOPath` as is, without prepending any other components to the path. The `sys::path::append` does not join, but rather unconditionally appends the paths, so something like `sys::path::append("/tmp", "/tmp/banana")` will result in `/tmp/tmp/banana` rather than the desired `/tmp/banana`. This then causes `llvm-dwp` to fail in a following situation: ``` $ clang -gsplit-dwarf /tmp/banana/test.c -c -o /tmp/outdir/foo.o $ clang outdir/foo.o -o outdir/hm $ llvm-dwarfdump outdir/hm | grep -C2 foo.dwo DW_AT_comp_dir ("/tmp") DW_AT_GNU_pubnames (true) DW_AT_GNU_dwo_name ("/tmp/outdir/foo.dwo") DW_AT_GNU_dwo_id (0xde4d396f3bf0e257) DW_AT_low_pc (0x0000000000401100) $ strace -o trace llvm-dwp -e outdir/hm -o outdir/hm.dwp error: No such file or directory $ cat trace | grep foo.dwo openat(AT_FDCWD, "/tmp/tmp/outdir/foo.dwo", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) ``` Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D96678 -
David Blaikie authored
-
Johannes Doerfert authored
As reported by Guilherme Valarini [0], we used to pass stack allocations to calls that can nowadays be asynchronous. This is arguably a problem and it will inevitably result in UB. To remedy the situation we allocate the locations as part of the AsyncInfoTy object. The lifetime of that object matches what we need for now. If the synchronization is not tied to the AsyncInfoTy object anymore we might need to have a different buffer construct in global space. This should be back-ported to LLVM 12 but needs slight modifications as it is based on refactoring patches we do not need to backport. [0] https://lists.llvm.org/pipermail/openmp-dev/2021-February/003867.html Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D96667
-
Johannes Doerfert authored
This patch unifies our libomptarget API in two ways: - always pass a `__tgt_async_info` object, the Queue member decides if it is in use or not. - (almost) always synchronize in the interface layer and not in the omptarget layer. A side effect is that we now put all constructor and static initializer kernels in a stream too, if the device utilizes `__tgt_async_info`. The patch contains a TODO which can be addressed as we add support for asynchronous malloc and free in the plugin API. This is the only `synchronizeAsyncInfo` left in the omptarget layer. Site note: On a V100 system the GridMini performance for small sizes more than doubled. Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D96379 -
Johannes Doerfert authored
The AsyncInfo should be passed everywhere and it should offer a way to ensure synchronization, given a libomptarget Device. This replaces D96431. Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D96438
-
Johannes Doerfert authored
Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D96430
-
Johannes Doerfert authored
This unifies the API of `target` relative to `targetUpdateData` and such. Reviewed By: tianshilei1992, grokos Differential Revision: https://reviews.llvm.org/D96429
-
Johannes Doerfert authored
Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D96445
-
Johannes Doerfert authored
Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D96812
-