- Sep 06, 2020
-
-
Jessica Clarke authored
Currently we treat SHT_RISCV_ATTRIBUTES like a normal section and concatenate all such input sections, yielding invalid output unless only a single attributes section is present in the input. Instead, pick the first as with SHT_ARM_ATTRIBUTES. We do not currently need to condition our behaviour on the contents, unlike Arm. In future, we should both do stricter validation of the input and merge all sections together to ensure we have, for example, the full arch string requirement, but this rudimentary implementation is good enough for most common cases. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D86309
-
Aaron Puchert authored
A code block wasn't properly introduced.
-
Aaron Puchert authored
After adding a field of one bit, the bitfield members would take 30+1+1+1 = 33 bits, causing the size of TemplateParameterList to increase from 16 to 24 bytes on 64-bit systems. With 29 bits for NumParams we can encode up to half a billion template parameters, which is almost certainly still enough for anybody.
-
- Sep 05, 2020
-
-
Nikita Popov authored
And duplicate tests for known non-negative from InstSimplify.
-
Aaron Puchert authored
The constructor asserts that, use it in the ThreadSafetyAnalyzer. Also note that the result of a cast<> cannot be null.
-
Aaron Puchert authored
Instead of just mutex members we also consider mutex globals. Unsurprisingly they are always in scope. Now the paper [1] says that > The scope of a class member is assumed to be its enclosing class, > while the scope of a global variable is the translation unit in > which it is defined. But I don't think we should limit this to TUs where a definition is available - a declaration is enough to acquire the mutex, and if a mutex is really limited in scope to a translation unit, it should probably be only declared there. [1] https://static.googleusercontent.com/media/research.google.com/en/us/pubs/archive/42958.pdf Fixes PR46354. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D84604
-
Nikita Popov authored
Recognize umin/umax/smin/smax intrinsics and convert them to the already existing SCEV nodes of the same name. In the future we'll want SCEVExpander to also produce the intrinsics, but we're not ready for that yet. Differential Revision: https://reviews.llvm.org/D87160
-
Nikita Popov authored
Similar to D87168, but for abs. If we have a dominating x >= 0 condition, then we know that abs(x) is x. This fold is in InstCombine, because we need to create a sub instruction for the x < 0 case. Differential Revision: https://reviews.llvm.org/D87184
-
Nikita Popov authored
If we have a dominating condition that x >= y, then umax(x, y) is x, etc. I'm doing this in InstSimplify as the corresponding transform for the select form is also done there. Differential Revision: https://reviews.llvm.org/D87168
-
Nikita Popov authored
Following the same transform for the select version of abs.
-
Nikita Popov authored
-
Uday Bondhugula authored
Drop unused function arg from affine loop tiling validity check.
-
Aaron Puchert authored
When parsing a C++17 binding declaration, we first create the BindingDecls in Sema::ActOnDecompositionDeclarator, and then build the DecompositionDecl in Sema::ActOnVariableDeclarator, so the contained BindingDecls are never null. But when deserializing, we read the DecompositionDecl with all properties before filling in the Bindings. Among other things, reading a declaration reads whether it's invalid, then calling setInvalidDecl which assumes that all bindings of the DecompositionDecl are available, but that isn't the case. Deserialization should just set all properties directly without invoking subsequent functions, so we just set the flag without using the setter. Fixes PR34960. Reviewed By: rsmith Differential Revision: https://reviews.llvm.org/D86207
-
Aaron Puchert authored
I don't think this is obvious, since try-acquire seemingly contradicts our usual requirements of "no conditional locking". Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D87065
-
Nikita Popov authored
Same as the existing SPF_ABS fold. We don't need to explicitly handle NABS, as the negs will get folded away first.
-
Nikita Popov authored
-
Nikita Popov authored
Same as the existing fold for SPF_ABS. We don't need to explicitly handle the NABS variant, as we'll first fold away the neg in that case.
-
Nikita Popov authored
-
Nikita Popov authored
-
Jonas Paulsson authored
Previously SDNodeFlags::instersectWith(Flags) would do nothing if Flags was in an undefined state, which is very bad given that this is the default when getNode() is called without passing an explicit SDNodeFlags argument. This meant that if an already existing and reused node had a flag which the second caller to getNode() did not set, that flag would remain uncleared. This was exposed by https://bugs.llvm.org/show_bug.cgi?id=47092, where an NSW flag was incorrectly set on an add instruction (which did in fact overflow in one of the two original contexts), so when SystemZElimCompare removed the compare with 0 trusting that flag, wrong-code resulted. There is more that needs to be done in this area as discussed here: Differential Revision: https://reviews.llvm.org/D86871 Review: Ulrich Weigand, Sanjay Patel
-
Nikita Popov authored
-
serge-sans-paille authored
When a switch case is folded into default's case, that's an IR change that should be reported, update ConstantFoldTerminator accordingly. Differential Revision: https://reviews.llvm.org/D87142
-
Qiu Chaofan authored
Libcall __gcc_qtou is not available, which breaks some tests needing it. On PowerPC, we have code to manually expand the operation, this patch applies it to constrained conversion. To keep it strict-safe, it's using the algorithm similar to expandFP_TO_UINT. For constrained operations marking FP exception behavior as 'ignore', we should set the NoFPExcept flag. However, in some custom lowering the flag is missed. This should be fixed by future patches. Reviewed By: uweigand Differential Revision: https://reviews.llvm.org/D86605
-
Nemanja Ivanovic authored
These overloads are listed in appendix A of the ELFv2 ABI specification without a requirement for ISA 3.0. So these need to be available on all Altivec-capable architectures. The implementation in altivec.h erroneously had them guarded for Power9 due to the availability of the VCMPNE[BHW] instructions. However these need to be implemented in terms of the VCMPEQ[BHW] instructions on older architectures. Fixes: https://bugs.llvm.org/show_bug.cgi?id=47423
-
Fangrui Song authored
Copied from lldb/.clang-tidy (D75810). Most compiler-rt code actually uses variableName or variable_name but not VariableName. Lots of functions use `__function_name` and FunctionName instead of functionName. Just exclude readability-identifier-naming.
-
Daniel Sanders authored
One check was missed on the previous attempt
-
Krzysztof Parzyszek authored
Just a shift, no other formatting changes.
-
Pengxuan Zheng authored
With 6a754968, these two options are no longer forwarded to GCC. This patch restores the original behavior. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D87162
-
Jan Korous authored
Differential Revision: https://reviews.llvm.org/D86992
-
Nikita Popov authored
-
LLVM GN Syncbot authored
-
Jan Korous authored
Differential Revision: https://reviews.llvm.org/D86992
-
Craig Topper authored
This can cause an infinite loop if SimplifiedDemandedElts asks for the node to replace itself. A similar protection exists in other places in shuffle combining. Fixes ISPC https://github.com/ispc/ispc/issues/1864
-
Sanjay Patel authored
-
Sanjay Patel authored
-
Nikita Popov authored
-
Jan Korous authored
Differential Revision: https://reviews.llvm.org/D86991
-
Fangrui Song authored
-
Lang Hames authored
TPCDynamicLibrarySearchGenerator was generating errors on missing symbols, but that doesn't fit the DefinitionGenerator contract: A symbol that isn't generated by a particular generator should not cause an error. This commit fixes the error by using SymbolLookupFlags::WeaklyReferencedSymbol for all elements of the lookup, and switches llvm-jitlink to use TPCDynamicLibrarySearchGenerator.
-
Nikita Popov authored
-