- Jun 19, 2021
-
-
Walter Erquinigo authored
There are many tests failing intermittently for lldb-vscode after https://reviews.llvm.org/rGaa4685c0fb3aab5acb90be5fd3eb5ba8bf1e3211. I'm unsure if this actually the culprit, so I'm softly removing that feature to see if that fixes the issue.
-
Nico Weber authored
These are on by default, but there's also an explicit flag for them. Differential Revision: https://reviews.llvm.org/D104543
-
Greg McGary authored
The `icf` command-line option is not present in ld64, so it should use the LLD option syntax, which begins with double dashes and separates primary option from any suboption with the equal sign. Differential Revision: https://reviews.llvm.org/D104548
-
Jingu Kang authored
uaddv(uaddlp(x)) ==> uaddlv(x) addp(uaddlp(x)) ==> uaddlv(x) Differential Revision: https://reviews.llvm.org/D104236
-
Vyacheslav Zakharin authored
Differential Revision: https://reviews.llvm.org/D104545
-
Vyacheslav Zakharin authored
Differential Revision: https://reviews.llvm.org/D104535
-
- Jun 18, 2021
-
-
Muhammad Omair Javaid authored
This patch fixes build failure caused by commit f27e4548 on 32 bit arm. Differential Revision: https://reviews.llvm.org/D103292
-
Saleem Abdulrasool authored
The output of the object file is unimportant and entirely discarded. Simply redirect the output to `/dev/null` or `NUL` as the case may be. Additionally, the space between the labels is unimportant. There is no need to add space between the labels. Two labels at the same address are sufficient to generate the difference expression and should still test the same behaviour.
-
Matt Morehouse authored
The default callback instrumentation in x86 LAM mode uses ASLR bits to randomly choose a tag, and thus has a 1/64 chance of choosing a stack tag of 0, causing stack tests to fail intermittently. By using __hwasan_generate_tag to pick tags, we guarantee non-zero tags and eliminate the test flakiness. aarch64 doesn't seem to have this problem using thread-local addresses to pick tags, so perhaps we can remove this workaround once we implement a similar mechanism for LAM. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D104470
-
Matheus Izvekov authored
This Implements [[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2266r1.html|P2266 Simpler implicit move]]. Signed-off-by:
Matheus Izvekov <mizvekov@gmail.com> Reviewed By: Quuxplusone Differential Revision: https://reviews.llvm.org/D99005
-
Sean Silva authored
Differential Revision: https://reviews.llvm.org/D104489
-
Simon Pilgrim authored
As noticed on D104472 we can use APInt::insertBits which will avoid a lot of temporary APInt creations
-
Tomasz Kamiński authored
This fixes a crash in MallocChecker for the situation when operator new (delete) is invoked via NTTP and makes the behavior of CallContext.getCalleeDecl(Expr) identical to CallEvent.getDecl(). Reviewed By: vsavchenko Differential Revision: https://reviews.llvm.org/D103025
-
Simon Tatham authored
Given an invalid SourceLocation, translateSourceLocation will call clang_getNullLocation, and then do nothing with the result. But clang_getNullLocation has no side effects: it just constructs and returns a null CXSourceLocation value. Surely the intention was to //return// that null CXSourceLocation to the caller, instead of throwing it away and pressing on anyway. Reviewed By: miyuki Differential Revision: https://reviews.llvm.org/D104442
-
Lang Hames authored
ObjInOut is an in-out parameter not a return value argument, so by convention it should come after the context value (Ctx).
-
Lang Hames authored
This partially reverts 838490de, which broke some Solaris bots. Apparently Solaris defines int8_t as char rather than signed char, which made the SerializationTypeName<char> specialization a redefinition. This partial revert isolates use of uint8_t buffers to ORC-RPC handling of wrapper functions only. The TargetProcessControl::runWrapper method will continue to use char buffers.
-
Matheus Izvekov authored
This implements a more comprehensive fix than was done at D95409. Instead of excluding just function pointer subobjects, we also exclude any user-defined function pointer conversion operators. Signed-off-by:
Matheus Izvekov <mizvekov@gmail.com> Reviewed By: rsmith Differential Revision: https://reviews.llvm.org/D103855
-
Lang Hames authored
Provides ObjectTransformLayer APIs, a getter to access the ObjectTransformLayer member of LLJIT, and the DumpObjects utility to make construction of a dump-to-disk transform easy. An example showing how the new APIs can be used has been added in llvm/examples/OrcV2Examples/OrcV2CBindingsDumpObjects.
-
Liqiang Tao authored
-
Max Kazantsev authored
This patch handles one particular case of one-iteration loops for which SCEV cannot straightforwardly prove BECount = 1. The idea of the optimization is to symbolically execute conditional branches on the 1st iteration, moving in topoligical order, and only visiting blocks that may be reached on the first iteration. If we find out that we never reach header via the latch, then the backedge can be broken. This implementation uses InstSimplify. SCEV version was rejected due to high compile time impact. Differential Revision: https://reviews.llvm.org/D102615 Reviewed By: nikic
-
Uday Bondhugula authored
Introduce the execute_region op that is able to hold a region which it executes exactly once. The op encapsulates a CFG within itself while isolating it from the surrounding control flow. Proposal discussed here: https://llvm.discourse.group/t/introduce-std-inlined-call-op-proposal/282 execute_region enables one to inline a function without lowering out all other higher level control flow constructs (affine.for/if, scf.for/if) to the flat list of blocks / CFG form. It thus allows the benefit of transforms on higher level control flow ops available in the presence of the inlined calls. The inlined calls continue to benefit from propagation of SSA values across their top boundary. Functions won’t have to remain outlined until later than desired. Abstractions like affine execute_regions, lambdas with implicit captures could be lowered to this without first lowering out structured loops/ifs or outlining. But two potential early use cases are of: (1) an early inliner ...
-
Haojian Wu authored
Found by ASAN.
-
Jay Foad authored
-
Daniil Seredkin authored
InstCombine didn't perform (sext bool X) * (sext bool X) --> zext (and X, X) which can result in just (zext X). The patch adds regression tests to check this transformation and adds a check for equality of mul's operands for that case. Differential Revision: https://reviews.llvm.org/D104193
-
Max Kazantsev authored
-
Diana Picus authored
Don't rely on volatile writes to keep the CPU busy - it seems MSVC optimizes them out, so we don't get different values for 'start' and 'end' on Windows. Rewrite the test to loop until we get a different value for 'end'. Fix suggested by Michael Kruse in https://reviews.llvm.org/rG57e85622bbdb2eb18cc03df2ea457019c58f6912#inline-6002 Committing to fix the Windows buildbot, post-commit comments welcome!
-
Liqiang Tao authored
This patch adds an optional PriorityInlineOrder, which uses the heap to order inlining. The callsite which size is smaller would have a higher priority. Reviewed By: mtrofin Differential Revision: https://reviews.llvm.org/D104028
-
Max Kazantsev authored
This is to ensure that zero denominator leads to controlled assertion failure rather than UB.
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D104510
-
patacca authored
[Polly][Isl] Refactoring IslAstInfo::getBuild() and IslAstInfo::IslAstUserPayload::Build to use isl++. NFC Polly uses algorithms from the Integer Set Library (isl), which is a library written in C and which is incompatible with the rest of the LLVM as it is written in C++. Changes made: - Refactoring the method `IslAstInfo::getBuild()` - `IslAstInfo::IslAstUserPayload.Build` now uses C++ types instead of C types - Removing destructor of `IslAstInfo::IslAstUserPayload` Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D104370
-
Haojian Wu authored
This looks like not a practical pattern in our codebase (it could fail in some sandbox environement). Instead we print it via standard output, and it is controled by the -attributor-print-call-graph, this follows a similiar pattern of attributor-print-dep.
-
Siva Chandra Reddy authored
-
Tomasz Miąsko authored
Allow mangled names to include an arbitrary dot suffix, akin to vendor specific suffix in Itanium mangling. Primary motivation is a support for symbols renamed during ThinLTO import / promotion (ThinLTO is the default configuration for optimized builds in rustc). Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D104358
-
Daniil Seredkin authored
This reverts commit 31053338.
-
Siva Chandra Reddy authored
The new macro definitions have been used to add Windows specific specializations.
-
Daniil Seredkin authored
InstCombine didn't perform (sext bool X) * (sext bool X) --> zext (and X, X) which can result in just (zext X). The patch adds regression tests to check this transformation and adds a check for equality of mul's operands for that case. Differential Revision: https://reviews.llvm.org/D104193
-
Bjorn Pettersson authored
Commit 4c7f820b changed the llvm.powi intrinsic to support different 'int' sizes for the exponent. That happened to break the IntrinsicToLibdeviceFunc mapping in PPCGCodeGeneration, which obviously should have been updated as part of commit 4c7f820b (https://reviews.llvm.org/D99439). The shortcoming was found by buildbots that use -DPOLLY_ENABLE_GPGPU_CODEGEN=ON This patch should fixup the problem.
-
Fangrui Song authored
This reverts commit 76d0747e. If a group has `__llvm_prf_vals` due to static value profiler counters (`NS!=0`), we cannot make `__llvm_prf_data` private, because a prevailing text section may reference `__llvm_prf_data` and will cause a `relocation refers to a discarded section` linker error. Note: while a `__profc_` group is non-prevailing, it may be referenced by a prevailing text section due to inlining. ``` group section [ 66] `.group' [__profc__ZN5clang20EmitClangDeclContextERN4llvm12RecordKeeperERNS0_11raw_ostreamE] contains 4 sections: [Index] Name [ 67] __llvm_prf_cnts [ 68] __llvm_prf_vals [ 69] __llvm_prf_data [ 70] .rela__llvm_prf_data ```
-
Johannes Doerfert authored
This should fix PR50683. The wrong assumption was that we could always know what the callee is when we replace a call site argument with undef. We wanted to know that to remove the `noundef` that might be attached to the argument. Since no callee means we did the propagation on the caller site, there is no need to remove an attribute. It is only needed if we replace all uses and therefore pass `undef` instead of the value that was passed in otherwise.
-
Johannes Doerfert authored
Users might want to run initialize for a set of AAs without an intermediate update step. Running update eagerly is not a requirement anyway so we make it optional.
-