- Dec 10, 2021
-
-
Florian Hahn authored
This allows easier access to the induction descriptor from VPlan, without needing to go through Legal. VPReductionPHIRecipe already contains a RecurrenceDescriptor in a similar fashion. Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D115111
-
- Dec 09, 2021
-
-
Jan Svoboda authored
Most of `MemoryBuffer` interfaces expose a `RequiresNullTerminator` parameter that's being used to: * determine how to open a file (`mmap` vs `open`), * assert newly initialized buffer indeed has an implicit null terminator. This patch adds the paramater to the `SmallVectorMemoryBuffer` constructors, meaning: * null terminator can now be added to `SmallVector`s that didn't have one before, * `SmallVectors` that had a null terminator before keep it even after the move. In line with existing code, the new parameter is defaulted to `true`. This patch makes sure all calls to the `SmallVectorMemoryBuffer` constructor set it to `false` to preserve the current semantics. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D115331
-
Mircea Trofin authored
This prepares it for the regalloc work. Part of it is making model evaluation accross 'development' and 'release' scenarios more reusable. This patch: - extends support to tensors of any shape (not just scalars, like we had in the inliner -Oz case). While the tensor shape can be anything, we assume row-major layout and expose the tensor as a buffer. - exposes the NoInferenceModelRunner, which we use in the 'development' mode to keep the evaluation code path consistent and simplify logging, as we'll want to reuse it in the regalloc case. Differential Revision: https://reviews.llvm.org/D115306
-
Duncan P. N. Exon Smith authored
This unblocks using `StringLiteral::size()` for a SmallVector size in another patch. Differential Revision: https://reviews.llvm.org/D115395
-
- Dec 08, 2021
-
-
Duncan P. N. Exon Smith authored
Add `SmallVectorImpl::truncate()`, a variant of `resize()` that cannot increase the size. - Compared to `resize()`, this has no code path for growing the allocation and can be better optimized. - Compared to `set_size()`, this formally calls destructors, and does not skip any constructors. - Compared to `pop_back_n()`, this takes the new desired size, which in many contexts is more intuitive than the number of elements to remove. The immediate motivation is to pair this with `resize_for_overwrite()` to remove uses of `set_size()`, which can then be made private. Differential Revision: https://reviews.llvm.org/D115383
-
Lang Hames authored
MaterializationUnit::Interface holds the values that make up the interface (for ORC's purposes) of a materialization unit: the symbol flags map and initializer symbol. Having a type for this will make functions that build materializer interfaces more readable and maintainable.
-
James Farrell authored
Revert "Revert "Use VersionTuple for parsing versions in Triple, fixing issues that caused the original change to be reverted. This makes it possible to distinguish between "16" and "16.0" after parsing, which previously was not possible."" This reverts commit 63a6348c. Differential Revision: https://reviews.llvm.org/D115254
-
- Dec 07, 2021
-
-
Simon Pilgrim authored
-
Mircea Trofin authored
Add the calculation of a score, which will be used during ML training. The score qualifies the quality of a regalloc policy, and is independent of what we train (currently, just eviction), or the regalloc algo itself. We can then use scores to guide training (which happens offline), by formulating a reward based on score variation - the goal being lowering scores (currently, that reward is percentage reduction relative to Greedy's heuristic) Currently, we compute the score by factoring different instruction counts (loads, stores, etc) with the machine basic block frequency, regardless of the instructions' provenance - i.e. they could be due to the regalloc policy or be introduced previously. This is different from RAGreedy::reportStats, which accummulates the effects of the allocator alone. We explored this alternative but found (at least currently) that the more naive alternative introduced here produces better policies. We do intend to consolidate the two, however, as we are actively investigating improvements to our reward function, and will likely want to re-explore scoring just the effects of the allocator. In either case, we want to decouple score calculation from allocation algorighm, as we currently evaluate it after a few more passes after allocation (also, because score calculation should be reusable regardless of allocation algorithm). We intentionally accummulate counts independently because it facilitates per-block reporting, which we found useful for debugging - for instance, we can easily report the counts indepdently, and then cross-reference with perf counter measurements. Differential Revision: https://reviews.llvm.org/D115195
-
Kai Luo authored
This patch is to address post-commit comment https://reviews.llvm.org/D80538#anchor-inline-1091625, which make the constraint stronger based on what https://reviews.llvm.org/D80538 does, i.e., "TiedOpsRewritten is set iff leave-ssa and all tied operands share the same register". Reviewed By: MatzeB Differential Revision: https://reviews.llvm.org/D114573
-
Luís Ferreira authored
Internally `__Sddd` function-local parent symbols are used to solve ambiguities on symbols in the same scope with the same mangled name. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D114309
-
Luís Ferreira authored
Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D114308
-
Noah Shutty authored
Following the discussion in D112753, this moves the HTTPClient from Support to Debuginfod library so that tools depending on Support do not automatically depend on Curl as well. This also removes `HTTPClient::initialize()` and `HTTPClient::cleanup()` from `InitLLVM` so these steps should be implemented by user tools instead. Reviewed By: phosek Differential Revision: https://reviews.llvm.org/D115131
-
- Dec 06, 2021
-
-
Noah Shutty authored
This adds a Debuginfod client library which queries servers specified by the `DEBUGINFOD_URLS` environment variable for the debuginfo, executable, or a specified source file associated with a given build id. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D112758
-
Noah Shutty authored
This reverts commit 4a16fe13 because it caused failures on Windows builds.
-
Noah Shutty authored
This adds a Debuginfod client library which queries servers specified by the `DEBUGINFOD_URLS` environment variable for the debuginfo, executable, or a specified source file associated with a given build id. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D112758
-
James Farrell authored
Revert "Use VersionTuple for parsing versions in Triple, fixing issues that caused the original change to be reverted. This makes it possible to distinguish between "16" and "16.0" after parsing, which previously was not possible." This reverts commit 50324670.
-
Nikita Popov authored
As pointed out in https://reviews.llvm.org/D114936#3173327, unit tests were still using deprecated C APIs.
-
James Farrell authored
Use VersionTuple for parsing versions in Triple, fixing issues that caused the original change to be reverted. This makes it possible to distinguish between "16" and "16.0" after parsing, which previously was not possible. This reverts commit 40d5eeac. Differential Revision: https://reviews.llvm.org/D114885
-
Noah Shutty authored
This reverts commit af69947e because it caused buildbot failures.
-
Noah Shutty authored
This adds a Debuginfod library containing the `fetchDebuginfo` function which queries servers specified by the `DEBUGINFOD_URLS` environment variable for the debuginfo, executable, or a specified source file associated with a given build id. This diff was split out from D111252. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D112758
-
- Dec 03, 2021
-
-
Arthur Eubanks authored
As mentioned in D106585, this causes non-determinism, which can also be shown by this test case being flaky without this patch. We were using the APSInt's bit width for hashing, but not for checking for equality. APInt::isSameValue() does not check bit width. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D115054
-
- Dec 02, 2021
-
-
Noah Shutty authored
Provides an implementation of `HTTPClient` that wraps libcurl. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D112753
-
Sanjay Patel authored
We needed a stricter version of m_Not for D114462, but I wasn't sure if that was going to be required anywhere else, so I didn't bother to make that reusable. It turns out we have one more existing simplification that needs this (currently miscompiles): https://alive2.llvm.org/ce/z/9-nTKi And there's at least one more fold in that family that we could add. Differential Revision: https://reviews.llvm.org/D114882
-
Lang Hames authored
This should fix the build failure at https://lab.llvm.org/buildbot#builders/110/builds/8359
-
Nikita Popov authored
Deprecate LLVMAddAlias in favor of LLVMAddAlias2, which accepts a value type and an address space. Previously these were extracted from the pointer type. Differential Revision: https://reviews.llvm.org/D114860
-
Lang Hames authored
This allows JITDylibs to be removed from the ExecutionSession. Calling ExecutionSession::removeJITDylib will disconnect the JITDylib from the ExecutionSession and clear it (removing all trackers associated with it). The JITDylib object will then be destroyed as soon as the last JITDylibSP pointing at it is destroyed.
-
Noah Shutty authored
This patch implements a small HTTP client library consisting primarily of the `HTTPRequest`, `HTTPResponseHandler`, and `BufferedHTTPResponseHandler` classes. Unit tests of the `HTTPResponseHandler` and `BufferedHTTPResponseHandler` are included. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D112751
-
Arthur Eubanks authored
Previously we missed cloning metadata on function declarations because we don't call CloneFunctionInto() on declarations in CloneModule(). Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D113812
-
- Dec 01, 2021
-
-
Florian Hahn authored
Similar to memset_pattern16, memset_pattern4, memset_pattern8 are available on Darwin platforms. https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/memset_pattern4.3.html Reviewed By: ab Differential Revision: https://reviews.llvm.org/D114881
-
Shraiysh Vaishay authored
Fix for the case when there are no instructions in the entry basic block before the call to `createSections` Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D114143
-
- Nov 30, 2021
-
-
Schuyler Eldridge authored
Remove assertion that disallows getting a zero-extended value from a zero-width APInt. This check is too restrictive and makes it difficult to use APInt to model zero-width things, e.g., zero-width wires in the CIRCT project. Signed-off-by:
Schuyler Eldridge <schuyler.eldridge@sifive.com> Reviewed By: lattner, darthscsi, nikic Differential Revision: https://reviews.llvm.org/D114768
-
Nikita Popov authored
Revert "Use VersionTuple for parsing versions in Triple. This makes it possible to distinguish between "16" and "16.0" after parsing, which previously was not possible." This reverts commit 1e828646. llvm/test/Transforms/LoopStrengthReduce/X86/2009-11-10-LSRCrash.ll fails with assertion failure: llc: /home/nikic/llvm-project/llvm/include/llvm/ADT/Optional.h:196: T& llvm::optional_detail::OptionalStorage<T, true>::getValue() & [with T = unsigned int]: Assertion `hasVal' failed. ... #8 0x00005633843af5cb llvm::MCStreamer::emitVersionForTarget(llvm::Triple const&, llvm::VersionTuple const&) #9 0x0000563383b47f14 llvm::AsmPrinter::doInitialization(llvm::Module&)
-
James Farrell authored
Use VersionTuple for parsing versions in Triple. This makes it possible to distinguish between "16" and "16.0" after parsing, which previously was not possible. See also https://github.com/android/ndk/issues/1455. Differential Revision: https://reviews.llvm.org/D114163
-
Jeremy Morse authored
InstrRefBasedLDV used to crash on the added test -- the exit block is not in scope for the variable being propagated, but is still considered because it contains an assignment. The failure-mode was vlocJoin ignoring assign-only blocks and not updating DIExpressions, but pickVPHILoc would still find a variable location for it. That led to DBG_VALUEs created with the wrong fragment information. Fix this by removing a filter inherited from VarLocBasedLDV: vlocJoin will now consider assign-only blocks and will update their expressions. Differential Revision: https://reviews.llvm.org/D114727
-
Abinav Puthan Purayil authored
This change exposes isBuildVectorConstantSplat() to the llvm namespace and uses it to implement the constant splat versions of m_SpecificICst(). CombinerHelper::matchOrShiftToFunnelShift() can now work with vector types and CombinerHelper::matchMulOBy2()'s match for a constant splat is simplified. Differential Revision: https://reviews.llvm.org/D114625
-
Ellis Hoag authored
When creating a new DIBuilder with an existing DICompileUnit, load the DINodes from the current DICompileUnit so they don't get overwritten. This is done in the MachineOutliner pass, but it didn't change the CU so the bug never appeared. We need this if we ever want to add DINodes to the CU after it has been created, e.g., DIGlobalVariables. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D114556
-
Luís Ferreira authored
Anonymous symbols are represented by 0 in the mangled symbol. We should skip them in order to represent the demangled name correctly, otherwise demangled names like `demangle..anon` can happen. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D114307
-
David Blaikie authored
Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D114305
-
David Blaikie authored
This patch adds support for simple single qualified names that includes internal mangled names and normal symbol names. Differential Revision: https://reviews.llvm.org/D111415
-