- Jan 22, 2020
-
-
Daniil Suchkov authored
Summary: This is the first step towards complete removal of AST caching from LICM. Attempts to keep LICM's AST cache up to date across passes can lead to miscompiles like this one: https://bugs.llvm.org/show_bug.cgi?id=44320. LICM has already switched to using MemorySSA to do sinking and hoisting and only builds an AliasSetTracker on demand for the promoteToScalars step, without caching it from one LICM instance to the next. Given this, we don't have compile-time reasons to keep AST caching any more. The only scenario where the caching would be used currently is when using the LegacyPassManager and setting -enable-mssa-loop-dependency=false. This switch should help us to surface any possible issues that may arise along this way, also it turns subsequent removal of AST caching into NFC. Reviewers: asbirlea, fhahn, efriedma, reames Reviewed By: asbirlea Subscribers: hiraditya, george.burgess.iv, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73081
-
Lang Hames authored
-
Austin Kerbow authored
Summary: Enable the new diveregence analysis by default for AMDGPU. Reviewers: rampitec, nhaehnle, arsenm Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73049
-
Lang Hames authored
This should fix the builders that were failing due to broken JIT examples after ce2207ab.
-
LLVM GN Syncbot authored
-
Carl Ritson authored
Summary: Check that a s_cbranch_execz is not a loop exit before removing it. As the pass is generating infinite loops. Reviewers: cdevadas, arsenm, nhaehnle Reviewed By: nhaehnle Subscribers: kzhuravl, jvesely, wdng, yaxunl, tpr, t-tye, hiraditya, kerbowa, llvm-commits, dstuttard, foad Tags: #llvm Differential Revision: https://reviews.llvm.org/D72997
-
cdevadas authored
The current implementation of skip insertion (SIInsertSkip) makes it a mandatory pass required for correctness. Initially, the idea was to have an optional pass. This patch inserts the s_cbranch_execz upfront during SILowerControlFlow to skip over the sections of code when no lanes are active. Later, SIRemoveShortExecBranches removes the skips for short branches, unless there is a sideeffect and the skip branch is really necessary. This new pass will replace the handling of skip insertion in the existing SIInsertSkip Pass. Differential revision: https://reviews.llvm.org/D68092
-
Lang Hames authored
This should fix the build failure at http://lab.llvm.org:8011/builders/clang-cmake-x86_64-sde-avx512-linux/builds/32524 and others.
-
Puyan Lotfi authored
When using in-process cc1, the Clang Interface Stubs pipeline setup exposes an ASAN bug. I am still investigating this issue but want to green the bots for now. I don't think this is a huge issue since the Clang Interface Stubs Driver setup code is the only code path that sets up such a pipeline (ie N cc1's for N c files followed by another N cc1's for to generate stub files for the same N c files). This issue is being discussed in https://reviews.llvm.org/D69825. If a resolution is not found soon, a bugzilla filling will be in order.
-
Lang Hames authored
This commit adds a ManglingOptions struct to IRMaterializationUnit, and replaces IRCompileLayer::CompileFunction with a new IRCompileLayer::IRCompiler class. The ManglingOptions struct defines the emulated-TLS state (via a bool member, EmulatedTLS, which is true if emulated-TLS is enabled and false otherwise). The IRCompileLayer::IRCompiler class wraps an IRCompiler (the same way that the CompileFunction typedef used to), but adds a method to return the IRCompileLayer::ManglingOptions that the compiler will use. These changes allow us to correctly determine the symbols that will be produced when a thread local global variable defined at the IR level is compiled with or without emulated TLS. This is required for ORCv2, where MaterializationUnits must declare their interface up-front. Most ORCv2 clients should not require any changes. Clients writing custom IR compilers will need to wrap their compiler in an IRCompileLayer::IRCompiler, rather than an IRCompileLayer::CompileFunction, however this should be a straightforward change (see modifications to CompileUtils.* in this patch for an example).
-
Kazuaki Ishizaki authored
Reviewers: EricWF, mclow.lists, Jim Reviewed By: Jim Subscribers: mgorny, christof, ldionne, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D72151
-
Kazuaki Ishizaki authored
Reviewers: hans, Jim Reviewed By: Jim Subscribers: jvesely, nhaehnle, mgorny, arphaman, bmahjour, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73017
-
Jonas Devlieghere authored
This temporarily reverts commit e03ead67 because it breaks LLDB. http://lab.llvm.org:8011/builders/lldb-x86_64-debian/builds/3356 http://lab.llvm.org:8011/builders/lldb-x64-windows-ninja/builds/12872 http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/6407/
-
Saar Raz authored
Remove inappropriate Sema include in ASTConcept.cpp introduced by D72552 for the finer-grained includes actually needed.
-
Eli Friedman authored
I'm working on a patch, but not sure how long it'll take.
-
Fangrui Song authored
To improve consistency and avoid unneeded shell feature (output redirection). While here, make other changes to improve consistency --docnum 1 => --docnum=1 -docnum=x => --docnum=x
-
Louis Dionne authored
Summary: The compiler already treats them as scalar types, so the library should too. Furthermore, this allows blocks to be used in more places, for example in std::optional, which requires an object type. rdar://problem/57892832 Reviewers: dexonsmith, EricWF, mclow.lists Differential Revision: https://reviews.llvm.org/D72708
-
Saar Raz authored
Add a simple cache for constraint satisfaction results. Whether or not this simple caching would be permitted in final C++2a is currently being discussed but it is required for acceptable performance so we use it in the meantime, with the possibility of adding some cache invalidation mechanisms later. Differential Revision: https://reviews.llvm.org/D72552
-
Vedant Kumar authored
Do not export __llvm_profile_counter_bias when profiling is enabled because this symbol is hidden and cannot be exported. Should fix this bot error: ``` URL: http://green.lab.llvm.org/green/job/clang-stage1-RA/5678/consoleFull Problem: Command Output (stdout): -- ld: warning: cannot export hidden symbol ___llvm_profile_counter_bias from /Users/buildslave/jenkins/workspace/clang-stage1-RA/clang-build/lib/clang/11.0.0/lib/darwin/libclang_rt.profile_osx.a(InstrProfilingBiasVar.c.o) ld: warning: cannot export hidden symbol ___llvm_profile_counter_bias from /Users/buildslave/jenkins/workspace/clang-stage1-RA/clang-build/lib/clang/11.0.0/lib/darwin/libclang_rt.profile_osx.a(InstrProfilingBiasVar.c.o) ```
-
Amara Emerson authored
In GlobalISel we may in some unfortunate circumstances generate PHIs with operands that are on separate banks. If-conversion doesn't currently check for that case and ends up generating a CSEL on AArch64 with incorrect register operands. Differential Revision: https://reviews.llvm.org/D72961
-
Saar Raz authored
clang-tidy previously relied on there being no identifier for a TemplateTypeParmDecl for checking whether 'decltype(x)' should be inserted, instead of checking whether or not it is implicit. D65042 added new names for invented generic lambda template parameters, rendering that check incorrect.
-
Nicolas Vasilache authored
This reverts commit 89e19e8e. This committed a stale version of the diff https://reviews.llvm.org/D72863 .. I apologize, reverting.
-
Nicolas Vasilache authored
Summary: This diff extends the Linalg EDSC builders so we can easily create mixed tensor/buffer linalg.generic ops. This is expected to be useful for HLO -> Linalg lowering. The `StructuredIndexed` struct is made to derive from `ValueHandle` and can now capture a type + indexing expressions. This is used to represent return tensors. Pointwise unary and binary builders are extended to allow both output buffers and return tensors. This has implications on the number of region arguments. Reviewers: ftynse, herhut, hanchung, asaadaldien, stellaraccident Reviewed By: asaadaldien Subscribers: merge_guards_bot, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72863
-
Saar Raz authored
This patch implements P1141R2 "Yet another approach for constrained declarations". General strategy for this patch was: - Expand AutoType to include optional type-constraint, reflecting the wording and easing the integration of constraints. - Replace autos in parameter type specifiers with invented parameters in GetTypeSpecTypeForDeclarator, using the same logic previously used for generic lambdas, now unified with abbreviated templates, by: - Tracking the template parameter lists in the Declarator object - Tracking the template parameter depth before parsing function declarators (at which point we can match template parameters against scope specifiers to know if we have an explicit template parameter list to append invented parameters to or not). - When encountering an AutoType in a parameter context we check a stack of InventedTemplateParameterInfo structures that contain the info required to create and accumulate invented template parameters (fields that were already present in LambdaScopeInfo, which now inherits from this class and is looked up when an auto is encountered in a lambda context). Differential Revision: https://reviews.llvm.org/D65042 -
Richard Smith authored
Summary: We previously listed first declared members, then implicit operator=, then implicit operator==, then implicit destructors. Per discussion on https://github.com/itanium-cxx-abi/cxx-abi/issues/88, put the implicit equality comparison operators at the very end, after all special member functions. This reinstates add2b7e4, reverted in commit 89e43f04, with a fix for 32-bit targets. Reviewers: rjmccall Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D72897
-
Adrian Prantl authored
-
Andrei Elovikov authored
Summary: We don't have control/verify what will be the RHS of the division, so it might happen to be zero, causing UB. Reviewers: Vasilis, RKSimon, ABataev Reviewed By: ABataev Subscribers: vporpo, ABataev, hiraditya, llvm-commits, vdmitrie Tags: #llvm Differential Revision: https://reviews.llvm.org/D72740
-
Jonas Devlieghere authored
Rename the DisassemblerLLVMC directory from llvm to LLVMC to match the plugin name.
-
Jonas Devlieghere authored
Renames MainThreadCheckerRuntime to InstrumentationRuntimeMainThreadChecker to be consistent with the directory structure and plugin name.
-
Jonas Devlieghere authored
Renames UBSanRuntime to InstrumentationRuntimeUBSan to be consistent with the directory structure and plugin name.
-
Jonas Devlieghere authored
Renames TSanRuntime to InstrumentationRuntimeTSan to be consistent with the directory structure and plugin name.
-
Jonas Devlieghere authored
Renames AddressSanitizerRuntime to InstrumentationRuntimeASan to be consistent with the directory structure and plugin name.
-
Jason Molenda authored
When launching an inferior in a new terminal window via AppleScript and the darwin-debug helper program, we could often end up with the inferior process having a too-high suspend count, and it would never resume execution. lldb tries to wait until darwin-debug has finished its work and has launched the inferior (WaitForProcessToSIGSTOP) but this wasn't working correctly - and cannot be made to work. This patch removes WaitForProcessToSIGSTOP, adds a special tiny segment to the darwin-debug executable so it can be identified as that binary (ExecExtraSuspend), and adds code to debugserver to detect this segment. When debugserver sees this segment, it notes that the next exec will be done with a launch-suspended flag. When the next exec happens, debugserver forces an extra task_resume when we resume the inferior. An alternative approach would be if lldb could detect when the inferior has been launched by darwin-debug unambiguously; monitoring when the unix socket between darwin-debug and lldb was closed would have been a reasonable way to do this too. <rdar://problem/29760580> Differential Revision: https://reviews.llvm.org/D72963
-
Florian Hahn authored
Currently we fail to lower non-termporal stores for 256+ bit vectors to STNPQ, because type legalization will split them up to 128 bit stores and because there are no single non-temporal stores, creating STPNQ in the Load/Store optimizer would be quite tricky. This patch adds custom lowering for 256 bit non-temporal vector stores to improve the generated code. Reviewers: dmgreen, samparker, t.p.northover, ab Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D72919
-
Matt Arsenault authored
Also move constant-like rules together
-
Roman Lebedev authored
Summary: New `@test13` in `Attributor/align.ll` is the main motivation - `null` pointer really does not limit our alignment knowledge, in fact it is fully aligned since it has no bits set. Here we don't special-case `null` pointer because it is somewhat controversial to add one more place where we enforce that `null` pointer is zero, but instead we do the more general thing of trying to perform constant-fold of pointer constant to an integer, and perform alignment inferrment on that. Reviewers: jdoerfert, gchatelet, courbet, sstefan1 Reviewed By: jdoerfert Subscribers: hiraditya, arphaman, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73131
-
Florian Hahn authored
-
Andrei Elovikov authored
Reviewers: Vasilis, RKSimon, ABataev Reviewed By: RKSimon, ABataev Subscribers: ABataev, inglorion, dexonsmith, llvm-commits, vdmitrie Tags: #llvm Differential Revision: https://reviews.llvm.org/D72739
-
Alexandre Ganea authored
The issue was reported by @xazax.hun here: https://reviews.llvm.org/D69825#1827826 "This patch (D69825) breaks scan-build-py which parses the output of "-###" to get -cc1 command. There might be other tools with the same problems. Could we either remove (in-process) from CC1Command::Print or add a line break? Having the last line as a valid invocation is valuable and there might be tools relying on that." Differential Revision: https://reviews.llvm.org/D72982
-
Matt Arsenault authored
-