- Apr 30, 2022
-
-
Teresa Johnson authored
Correct comment referring incorrectly to address sanitizer (from which the memprof tests were originally forked).
-
AlexisPerry authored
Notes from the Flang Biweekly Sync calls have been merged into the same document as the notes from the Flang Technical calls. This patch updates the link in the GettingInvolved document to point to the new location. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D124689
-
Martin Storsjö authored
This silences a GCC warning after 1f7b58f2 / D122680: lldb/source/Commands/CommandObjectCommands.cpp:1650:22: warning: enum constant in boolean context [-Wint-in-bool-context] 1650 | bool m_overwrite = eLazyBoolCalculate; | ^~~~~~~~~~~~~~~~~~ Differential Revision: https://reviews.llvm.org/D123204
-
Greg Clayton authored
UniqueCStringMap<T> objects are a std::vector<UniqueCStringMap::Entry> objects where the Entry object contains a ConstString + T. The values in the vector are sorted first by ConstString and then by the T value. ConstString objects are simply uniqued "const char *" values and when we compare we use the actual string pointer as the value we sort by. This caused a problem when we saved the symbol table name indexes and debug info indexes to disk in one process when they were sorted, and then loaded them into another process when decoding them from the cache files. Why? Because the order in which the ConstString objects were created are now completely different and the string pointers will no longer be sorted in the new process the cache was loaded into. The unit tests created for the initial patch didn't catch the encoding and decoding issues of UniqueCStringMap<T> because they were happening in the same process and encoding and decoding would end up createing sorted UniqueCStringMap<T> objects due to the constant string pool being exactly the same. This patch does the sort and also reserves the right amount of entries in the UniqueCStringMap::m_map prior to adding them all to avoid doing multiple allocations. Added a unit test that loads an object file from yaml, and then I created a cache file for the original file and removed the cache file's signature mod time check since we will generate an object file from the YAML, and use that as the object file for the Symtab object. Then we load the cache data from the array of symtab cache bytes so that the ConstString "const char *" values will not match the current process, and verify we can lookup the 4 names from the object file in the symbol table. Differential Revision: https://reviews.llvm.org/D124572
-
Joe Nash authored
Contributors: Jay Foad <jay.foad@amd.com> Konstantin Zhuravlyov <kzhuravl_dev@outlook.com> Patch 2/N for upstreaming of AMDGPU gfx11 architecture Depends on D124536 Reviewed By: foad, kzhuravl, #amdgpu, arsenm Differential Revision: https://reviews.llvm.org/D124537
-
Stanislav Mekhanoshin authored
MUBUF and FLAT LDS DMA operations need a wait on vmcnt before LDS written can be accessed. A load from LDS to VMEM does not need a wait. Differential Revision: https://reviews.llvm.org/D124626
-
Peter Klausler authored
A recent change is eliciting a valid warning from the out-of-tree flang build bot; fix by using a reference in a range-based for(). Differential Revision: https://reviews.llvm.org/D124682
-
Jim Ingham authored
Differential Revision: https://reviews.llvm.org/D124028
-
Vitaly Buka authored
This fixes msan reports like https://reviews.llvm.org/P8285 Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D124576
-
Jim Ingham authored
We've seen very occasional crashes that we can only explain by simultaneous access to the ThreadPlanStackMap, so I'm adding a mutex to protect it. Differential Revision: https://reviews.llvm.org/D124029
-
Bill Wendling authored
Strutures of function pointers are a good surface area for attacks. We should therefore randomize them unless explicitly told not to. Reviewed By: aaron.ballman, MaskRay Differential Revision: https://reviews.llvm.org/D123544
-
David Penry authored
Fixed "private field is not used" warning when compiled with clang. original commit: 28d09bbb reverted in: fa49021c ------ This patch permits Swing Modulo Scheduling for ARM targets turns it on by default for the Cortex-M7. The t2Bcc instruction is recognized as a loop-ending branch. MachinePipeliner is extended by adding support for "unpipelineable" instructions. These instructions are those which contribute to the loop exit test; in the SMS papers they are removed before creating the dependence graph and then inserted into the final schedule of the kernel and prologues. Support for these instructions was not previously necessary because current targets supporting SMS have only supported it for hardware loop branches, which have no loop-exit-contributing instructions in the loop body. The current structure of the MachinePipeliner makes it difficult to remove/exclude these instructions from the dependence graph. Therefore, this patch leaves them in the graph, but adds a "normalization" method which moves them in the schedule to stage 0, which causes them to appear properly in kernel and prologues. It was also necessary to be more careful about boundary nodes when iterating across successors in the dependence graph because the loop exit branch is now a non-artificial successor to instructions in the graph. In additional, schedules with physical use/def pairs in the same cycle should be treated as creating an invalid schedule because the scheduling logic doesn't respect physical register dependence once scheduled to the same cycle. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D122672
-
Aaron Ballman authored
This also disables the diagnostic when the user passes -fno-knr-functions.
-
Dimitry Andric authored
In commit ccf1469a lldb got its own generated Version.inc file, with `LLDB_VERSION` macros. However, it used `LLDB_VERSION_PATCHLEVEL` instead of the actually correct `LLDB_VERSION_PATCH`. Correct this. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D124672
-
Joseph Huber authored
Summary: Some previous patches introduced the `--offload-new-driver` flag, which is a generic way to enable the new driver, and the `--offload-host-only` and `--offload-device-only` flags which allow users to compile for one side, making it easier to inspect intermediate code for offloading compilations. This patch just documents them in the command line reference.
-
Philip Reames authored
-
Joe Nash authored
This is the first patch of a series to upstream support for the new subtarget. Contributors: Jay Foad <jay.foad@amd.com> Konstantin Zhuravlyov <kzhuravl_dev@outlook.com> Patch 1/N for upstreaming AMDGPU gfx11 architectures. Reviewed By: foad, kzhuravl, #amdgpu Differential Revision: https://reviews.llvm.org/D124536
-
Paul Walker authored
This is essentially a refactoring patch but allows more cases to be caught, hence the output changes to some tests. Differential Revision: https://reviews.llvm.org/D122994
-
Philip Reames authored
-
Alexey Bataev authored
-
- Apr 29, 2022
-
-
Craig Topper authored
It's possible that we have a constant that isn't simm32 so we can't use LUI+ADDIW, but we can use LUI+ADDI. Because ADDI uses a sign extended constant, it's possible that after subtracting it out, we end up with a simm32 that maps to LUI. This patch detects this case after removing Lo12 and before shifting the value for SLLI. Reviewed By: luismarques Differential Revision: https://reviews.llvm.org/D124222
-
Joseph Huber authored
After basic support for embedding and handling CUDA files was added to the new driver, we should be able to call CUDA functions from OpenMP code. This patch makes the necessary changes to successfuly link in CUDA programs that were compiled using the new driver. With this patch it should be possible to compile device-only CUDA code (no kernels) and call it from OpenMP as follows: ``` $ clang++ cuda.cu -fopenmp-new-driver -offload-arch=sm_70 -c $ clang++ openmp.cpp cuda.o -fopenmp-new-driver -fopenmp -fopenmp-targets=nvptx64 -Xopenmp-target=nvptx64 -march=sm_70 ``` Currently this requires using a host variant to suppress the generation of a CPU-side fallback call. Depends on D120272 Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D120273
-
Nikita Popov authored
This test case doesn't show what it was intended to without require<loops>.
-
Joseph Huber authored
OpenMP recently moved to the new offloading driver, this had the effect of making it more difficult to inspect intermediate code for the device. This patch adds `-foffload-host-only` and `-foffload-device-only` to control which sides get compiled. This will allow users to more easily inspect output without needing the temp files. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D124220
-
Nikita Popov authored
-
Simon Pilgrim authored
[X86] lowerShuffleAsRepeatedMaskAndLanePermute - move the sublane split code into a lambda helper. NFC. This is a NFC cleanup as part of the work on #55066 - the idea being that we will be able to check for multiple sub lane scales.
-
Alexey Bataev authored
Need to normalizize the mask to avoid possible crashes during attempts to estimate cost of the very long shuffles with non-power-2 number of elements in masks.
-
Florian Hahn authored
TI->getBitWidth can be > 64 and in those cases the shift will be UB due to the exponent being too large. To fix this, cap the shift at 63. I think this should work out fine, because TableSize is itself a 64 bit type and the maximum table size must fit in the type. Also, if we would underestimate the size here, at most we get an extra ZExt. Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D124608
-
David Candler authored
When the denormal-fp-math option is used, this should set the denormal handling mode for all floating point types. However, currently 32-bit float types can ignore this setting as there is a variant of the option, denormal-fp-math-f32, specifically for that type which takes priority when checking the mode based on type and remains at the default of IEEE. From the description, denormal-fp-math would be expected to set the mode for floats unless overridden by the f32 variant, and code in the front end only emits the f32 option if it is different to the general one, so setting just denormal-fp-math should be valid. This patch changes the denormal-fp-math option to also set the f32 mode. If denormal-fp-math-f32 is also specified, this is then overridden as expected, but if it is absent floats will be set to the mode specified by the former option, rather than remain on the default. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D122589
-
Anna Thomas authored
Similar to c515b2f3, If there are no loops in the function as seen through LI, we should avoid computing the remaining expensive analyses (such as SCEV, BPI). Reordered the analyses requests and early return if there are no loops. The logic of avoiding expensive analyses is applied to LoopVectorizer, LoopLoadElimination and LoopUnrollPass, i.e. all function passes which operate on loops. This is an NFC with compile time improvement. Differential Revision: https://reviews.llvm.org/D124529
-
Stefan Pintilie authored
Add the isNoTOCCallInstr function to PPCInstrInfo to determine if a call opcode does not need a TOC restore after the call. All call opcodes should be listed in this function. A default unreachable in this function should force future call opcodes to also be added. This is a follow up patch to D122012 Reviewed By: jsji, shchenz Differential Revision: https://reviews.llvm.org/D124415
-
Martin Boehme authored
This flag is redundant -- it's true iff `savedAttrs` is empty. Querying `savedAttrs.empty()` should not take any more time than querying the `trivial` flag, so this should not have a performance impact either. I noticed this while working on https://reviews.llvm.org/D111548. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D123783
-
Paul Walker authored
When looking through extends of gather/scatter indices it's safe to convert a known positive signed index to unsigned, but unsigned indices must remain unsigned. Depends On D123318 Differential Revision: https://reviews.llvm.org/D123326
-
Paul Walker authored
getGatherScatterIndexIsExtended currently looks through all SIGN_EXTEND_INREG operations regardless of their input type. This patch restricts the code to only look through i32->i64 extensions, which are the ones supported implicitly by SVE addressing modes. Differential Revision: https://reviews.llvm.org/D123318
-
Joseph Huber authored
This patch adds the basic support for the clang driver to compile and link CUDA using the new offloading driver. This requires handling the CUDA offloading kind and embedding the generated files into the host. This will allow us to link OpenMP code with CUDA code in the linker wrapper. More support will be required to create functional CUDA / HIP binaries using this method. Depends on D120270 D120271 D120934 Reviewed By: tra Differential Revision: https://reviews.llvm.org/D120272
-
Joseph Huber authored
In preparation for allowing other offloading kinds to use the new driver a new opt-in flag `-foffload-new-driver` is added. This is distinct from the existing `-fopenmp-new-driver` because OpenMP will soon use the new driver by default while the others should not. Reviewed By: yaxunl, tra Differential Revision: https://reviews.llvm.org/D123325
-
Joseph Huber authored
In preparation for accepting other offloading kinds with the new driver, this patch makes the way we handle offloading actions more generic. A new field to get the associated device action's toolchain is used rather than manually iterating a list. This makes building the arguments easier and makes sure that we doin't rely on any implicit ordering. Reviewed By: yaxunl Differential Revision: https://reviews.llvm.org/D123313
-
Joseph Huber authored
This patch moves the logic for generating the offloading entries to the OpenMPIRBuilder. This makes it easier to re-use in other places, such as for OpenMP support in Flang or using the same method for generating offloading entires for other languages like Cuda. Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D123460
-
Nikita Popov authored
-