- Aug 27, 2021
-
-
Kazu Hirata authored
The function hasn't been used for at least 10 years.
-
Dmitry Preobrazhensky authored
Summary of changes: - Added f16 omod modifier (bug 51386). - Corrected names of data types (bug 48638). - Enabled a16 with most GFX10 MIMG opcodes (see https://reviews.llvm.org/D102231). - Corrected description of integer operands (bug 51130). - Corrected description of 8-bit DS offsets (bug 51536). - Improved PERMLANE op_sel description. - Corrected *SAD* opcode types.
-
Joe Loser authored
Differential Revision: https://reviews.llvm.org/D108802
-
Louis Dionne authored
This reverts commit abb95637, which broke the libc++ CI on Linux.
-
owenca authored
Add a new option PackConstructorInitializers and deprecate the related options ConstructorInitializerAllOnOneLineOrOnePerLine and AllowAllConstructorInitializersOnNextLine. Below is the mapping: PackConstructorInitializers ConstructorInitializer... AllowAll... Never - - BinPack false - CurrentLine true false NextLine true true The option value Never fixes PR50549 by always placing each constructor initializer on its own line. Differential Revision: https://reviews.llvm.org/D108752 -
Matt Arsenault authored
-
Nico Weber authored
We currently complain "could not open /LTCG: no such file or directory", which isn't very useful. We could emit a warning when we see this flag, but just ignoring it seems fine. Final missing part of PR38799. Differential Revision: https://reviews.llvm.org/D108799
-
Nico Weber authored
P_priv does the same as the old QF further down. Standardize on P_priv. No behavior change. Differential Revision: https://reviews.llvm.org/D108798
-
Balazs Benics authored
MallocOverflow works in two phases: 1) Collects suspicious malloc calls, whose argument is a multiplication 2) Filters the aggregated list of suspicious malloc calls by iterating over the BasicBlocks of the CFG looking for comparison binary operators over the variable constituting in any suspicious malloc. Consequently, it suppressed true-positive cases when the comparison check was after the malloc call. In this patch the checker will consider the relative position of the relation check to the malloc call. E.g.: ```lang=C++ void *check_after_malloc(int n, int x) { int *p = NULL; if (x == 42) p = malloc(n * sizeof(int)); // Previously **no** warning, now it // warns about this. // The check is after the allocation! if (n > 10) { // Do something conditionally. } return p; } ``` Reviewed By: martong Differential Revision: https://reviews.llvm.org/D107804 -
Sanjay Patel authored
We try to forward a stored-once-constant-value from one global access to another, but that's not safe if the constant value is an expression that can trap. The tests are reduced from the miscompile examples in: https://llvm.org/PR47578 Differential Revision: https://reviews.llvm.org/D108771
-
Jun Ma authored
For vectors that are exactly equal to getMaxSVEVectorSizeInBits, just use AArch64SVEPredPattern::all, which can enable the use of unpredicated ptrue when available. TestPlan: check-llvm Differential Revision: https://reviews.llvm.org/D108706
-
Jun Ma authored
This patch solely moves convert operation between SVE predicate pattern and element number into two small functions. It's pre-commit patch for optimize pture with known sve register width. Differential Revision: https://reviews.llvm.org/D108705
-
Jun Ma authored
-
Andrea Di Biagio authored
The coverity issue was reported agaist class MCAOperand due to the lack of proper initialization for field Index. No functional change intended.
-
Jon Chesterfield authored
Lets wavefront size be 32 for amdgpu openmp, as well as 64. Fixes up as little as possible to pass that through the libraries. This change is end to end, as opposed to updating clang/devicertl/plugin separately. It can be broken up for review/commit if preferred. Posting as-is so that others with a gfx10 can try it out. It works roughly as well as gfx9 for me, but there are probably bugs remaining as well as the todo: for letting grid values vary more. Reviewed By: ronlieb Differential Revision: https://reviews.llvm.org/D108708
-
Serge Pavlov authored
x86_fp80 format allows values that do not fit any of IEEE-754 category. Previously they were recognized by intrinsic __builtin_isnan as NaNs. Now this intrinsic is implemented using instruction FXAM, which distinguish between NaNs and unsupported values. It can make some programs behave differently. As a solution, this fix changes lowering of the intrinsic. If floating point exceptions are ignored, llvm.isnan is lowered into unordered comparison, as __buildtin_isnan was implemented earlier. In strictfp functions the intrinsic is lowered using FXAM, which does not raise exceptions even for signaling NaN, as required by IEEE-754 and C standards. Differential Revision: https://reviews.llvm.org/D108037
-
Nathan Sidwell authored
There are no paths into LowerFormalParms that have already specified the sret register. We always materialize a virtual and then assign it to the physical reg at the point of the return. Differential Revision: https://reviews.llvm.org/D108762
-
Carl Ritson authored
Without this change only the preferred fusion opcode is tested when attempting to combine FMA operations. If both FMA and FMAD are available then FMA ops formed prior to legalization will not be merged post legalization as FMAD becomes the preferred fusion opcode. Reviewed By: foad Differential Revision: https://reviews.llvm.org/D108619
-
Ricky Taylor authored
Fixes PR51626. The M68k requires that all instruction, word and long word reads are aligned to word boundaries. From the 68020 onwards, there is a performance benefit from aligning long words to long word boundaries. The M68k uses the same data layout for pointers and integers. In line with this, this commit updates the pointer data layout to match the layout already set for 32-bit integers: 32:16:32. Differential Revision: https://reviews.llvm.org/D108792
-
Roman Lebedev authored
Exegesis is faulty and sometimes when measuring throughput^-1 produces snippets that have loop-carried dependencies, which must be what caused me to incorrectly measure it originally. After looking much more carefully, the inverse throughput should match that of the MULX w/ reg op. As per llvm-exegesis measurements.
-
Roman Lebedev authored
As per llvm-exegesis measurements.
-
Roman Lebedev authored
Latency for MULX isn't right
-
Yaron Keren authored
Since Visual Studio 2017 the DIA libs are not registered by default, see: https://docs.microsoft.com/en-us/visualstudio/extensibility/breaking-changes-2017?view=vs-2019#change-reduce-registry-impact LLDB building instruction already specify registering these DLLs, required both the LLVM PDB tests and LLDB build. Differential Revision: https://reviews.llvm.org/D108811
-
Balazs Benics authored
Not only global variables can hold references to dead stack variables. Consider this example: void write_stack_address_to(char **q) { char local; *q = &local; } void test_stack() { char *p; write_stack_address_to(&p); } The address of 'local' is assigned to 'p', which becomes a dangling pointer after 'write_stack_address_to()' returns. The StackAddrEscapeChecker was looking for bindings in the store which referred to variables of the popped stack frame, but it only considered global variables in this regard. This patch relaxes this, catching stack variable bindings as well. --- This patch also works for temporary objects like: struct Bar { const int &ref; explicit Bar(int y) : ref(y) { // Okay. } // End of the constructor call, `ref` is dangling now. Warning! }; void test() { Bar{33}; // Temporary object, so the corresponding memregion is // *not* a VarRegion. } --- The return value optimization aka. copy-elision might kick in but that is modeled by passing an imaginary CXXThisRegion which refers to the parent stack frame which is supposed to be the 'return slot'. Objects residing in the 'return slot' outlive the scope of the inner call, thus we should expect no warning about them - except if we explicitly disable copy-elision. Reviewed By: NoQ, martong Differential Revision: https://reviews.llvm.org/D107078 -
Sylvestre Ledru authored
-
Sylvestre Ledru authored
Currently, it is a bit buried in the file even if this is pretty important for distro. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D108533
-
Chuanqi Xu authored
-
LLVM GN Syncbot authored
-
Lang Hames authored
This reapplies e256445b, which was reverted in 45ac5f54 due to bot errors (e.g. https://lab.llvm.org/buildbot/#/builders/112/builds/8599). The issue that caused the bot failure was fixed in 2e6a4fce.
-
Lang Hames authored
This should fix the bot error in https://lab.llvm.org/buildbot/#/builders/112/builds/8599 which forced reversion of the ELFNixPlatform in 45ac5f54. This should allow us to re-enable the ELFNixPlatform in a follow-up patch.
-
Matt Arsenault authored
-
Matt Arsenault authored
-
Matt Arsenault authored
In a future patch, a new set of amdgpu-no-* attributes will be introduced to indicate when a function does not need an implicitly passed input. This pass introduces new instances of these intrinsic calls, and should remove the attributes if they were present before.
-
Matt Arsenault authored
-
Chen Zheng authored
Reviewed By: jsji Differential Revision: https://reviews.llvm.org/D105271
-
Matt Arsenault authored
Switch to using BitIntegerState for each of the inputs, and invert their meanings. This now diverges more from the old AMDGPUAnnotateKernelFeatures, but this isn't used yet anyway.
-
Matt Arsenault authored
-
Matt Arsenault authored
The DAG version has this, and is necessary for call lowering to take advantage of any attributes at the call site.
-
Matt Arsenault authored
We only really want this to add the custom attributes. Theoretically the regular transforms were already run at this point. Touching undefined behavior breaks a lot of tests when this is enabled by default, many of which are expecting to test handling of undef operations.
-
George Rokos authored
[libomptarget][NFC] Replaced obsolete name "getOrAllocTgtPtr" with new "getTargetPointer" in debug messages.
-