- Feb 15, 2020
-
-
Fangrui Song authored
-
Fangrui Song authored
https://bugs.llvm.org/show_bug.cgi?id=44775 This rule has been implemented by GNU as https://sourceware.org/ml/binutils/2020-02/msg00028.html (binutils >= 2.35) It allows us to simplify ``` .section .foo,"o",foo,unique,0 .section .foo,"o",bar,unique,1 # different section ``` to ``` .section .foo,"o",foo .section .foo,"o",bar # different section ``` We consider the two `.foo` different even if the linked-to symbols foo and bar are defined in the same section. This is a deliberate choice so that we don't need to know the section where foo and bar are defined beforehand. Differential Revision: https://reviews.llvm.org/D74006
-
Johannes Doerfert authored
While the function return updateImpl did only look at call sites the manifest method looked at return values. If we don't do this during the updateImpl we might create new abstract attributes during manifest. This is a problem when it comes to liveness information.
-
Johannes Doerfert authored
If we simplify a function return value we have to modify the return instructions.
-
Johannes Doerfert authored
If we see an undef we cannot assume it's the same as "no value". For now we just collapse it to 0.
-
Johannes Doerfert authored
If we know a call was not needed we might have ended up deleting it even if it was in a different SCC. This prevents us from doing so.
-
Johannes Doerfert authored
-
Johannes Doerfert authored
We can strip casts in AANoAlias but that might cause us to end up with a non-pointer type. We do properly handle that case now.
-
Johannes Doerfert authored
This caused an error when passes iterated over cached assumptions in the tracker and assumed them to be `null` or an instruction. I failed to create a test case so far.
-
Fangrui Song authored
-
Matt Arsenault authored
-
Fangrui Song authored
Emit{ValueTo,Code}Alignment Emit{DTP,TP,GP}* EmitSymbolValue etc -
Fangrui Song authored
-
Nico Weber authored
This follows http://blog.llvm.org/2019/11/deterministic-builds-with-clang-and-lld.html to make the GN build locally deterministic. With this, I've built lld at two different build paths on my Windows box and got identical binaries. (I'd expect the same to happen on Linux, and with other binaries.) This doesn't have the bits to get universal determinism yet. Differential Revision: https://reviews.llvm.org/D74519
-
Jason Molenda authored
SB API clients can describe the failure message in a more natural way for their UI, this doesn't add information for them. Differential Revision: https://reviews.llvm.org/D74585 <rdar://problem/49953304>
-
Shiva Chen authored
CallPreservedMask is used to describe the register liveness after a function call. The function call in an interrupt handler should use the same CallPreservedMask as normal functions. So that only callee save registers can live through the function call.
-
Johannes Doerfert authored
In addition to memory behavior attributes (readonly/writeonly) we now derive memory location attributes (argmemonly/inaccessiblememonly/...). The former is part of AAMemoryBehavior and the latter part of AAMemoryLocation. While they are similar in nature it got messy when they were put in a single AA. Location attributes for arguments and floating values will follow later. Note that both memory attributes kinds can derive readnone. If there are no accesses AAMemoryBehavior will derive readnone. If there are accesses but only to stack (=local) locations AAMemoryLocation will derive readnone. Reviewed By: uenoku Differential Revision: https://reviews.llvm.org/D73426
-
Matt Arsenault authored
The dominator tree needs to be updated, but that isn't handled now.
-
Amy Huang authored
-
Matt Arsenault authored
This would assert on an unhandled size in getRegSplitParts.
-
Matt Arsenault authored
-
Matt Arsenault authored
Match the new DAG behavior and use v_perm_b32 when available. Also does better on SI/CI by expanding 16-bit swaps. Also fix non-power-of-2 cases.
-
Matt Arsenault authored
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D74509
-
Derek Schuff authored
Summary: Addresses PR44728 but no tests because I've not yet made any attempt to verify correctness of the debug info. Reviewers: sbc100, aardappel Differential Revision: https://reviews.llvm.org/D74656
-
Reid Kleckner authored
-
Johannes Doerfert authored
-
Johannes Doerfert authored
Due to the genericValueTraversal we might visit values for which we did not create an AAValueConstantRange object, e.g., as they are behind a PHI or select or call with `returned` argument. As a consequence we need to validate the types as we are about to query AAValueConstantRange for operands.
-
Amy Huang authored
Summary: Fix change from 8404aeb5 to avoid calling computeHostNumPhysicalCores if LLVM_ENABLE_THREADS is off. Reviewers: rnk, aganea Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74654
-
Lang Hames authored
Passing '-dlopen <library-path>' to lli will cause the specified library to be loaded (via llvm::sys::DynamicLibrary::LoadLibraryPermanently) before JIT'd code is executed, making the library's symbols accessible to JIT'd code.
-
Johannes Doerfert authored
This patch implements an almost complete handling of OpenMP contexts/traits such that we can reuse most of the logic in Flang through the OMPContext.{h,cpp} in llvm/Frontend/OpenMP. All but construct SIMD specifiers, e.g., inbranch, and the device ISA selector are define in `llvm/lib/Frontend/OpenMP/OMPKinds.def`. From these definitions we generate the enum classes `TraitSet`, `TraitSelector`, and `TraitProperty` as well as conversion and helper functions in `llvm/lib/Frontend/OpenMP/OMPContext.{h,cpp}`. The above enum classes are used in the parser, sema, and the AST attribute. The latter is not a collection of multiple primitive variant arguments that contain encodings via numbers and strings but instead a tree that mirrors the `match` clause (see `struct OpenMPTraitInfo`). The changes to the parser make it more forgiving when wrong syntax is read and they also resulted in more specialized diagnostics. The tests are updated and the core issues are detected as before. Here and elsewhere this patch tries to be generic, thus we do not distinguish what selector set, selector, or property is parsed except if they do behave exceptionally, as for example `user={condition(EXPR)}` does. The sema logic changed in two ways: First, the OMPDeclareVariantAttr representation changed, as mentioned above, and the sema was adjusted to work with the new `OpenMPTraitInfo`. Second, the matching and scoring logic moved into `OMPContext.{h,cpp}`. It is implemented on a flat representation of the `match` clause that is not tied to clang. `OpenMPTraitInfo` provides a method to generate this flat structure (see `struct VariantMatchInfo`) by computing integer score values and boolean user conditions from the `clang::Expr` we keep for them. The OpenMP context is now an explicit object (see `struct OMPContext`). This is in anticipation of construct traits that need to be tracked. The OpenMP context, as well as the `VariantMatchInfo`, are basically made up of a set of active or respectively required traits, e.g., 'host', and an ordered container of constructs which allows duplication. Matching and scoring is kept as generic as possible to allow easy extension in the future. --- Test changes: The messages checked in `OpenMP/declare_variant_messages.{c,cpp}` have been auto generated to match the new warnings and notes of the parser. The "subset" checks were reversed causing the wrong version to be picked. The tests have been adjusted to correct this. We do not print scores if the user did not provide one. We print spaces to make lists in the `match` clause more legible. Reviewers: kiranchandramohan, ABataev, RaviNarayanaswamy, gtbercea, grokos, sdmitriev, JonChesterfield, hfinkel, fghanim Subscribers: merge_guards_bot, rampitec, mgorny, hiraditya, aheejin, fedor.sergeev, simoncook, bollu, guansong, dexonsmith, jfb, s.egerton, llvm-commits, cfe-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D71830 -
Jonas Devlieghere authored
In 0e9b0b6d I introduced the HistoryOperation enum to navigate the history. While this fixed the behavior of HistoryOperation::Older and HistoryOperation::Newer, it confused the mapping for HistoryOperation::Oldest and HistoryOperation::Newest. I tried to write a PExpect test to make sure this doesn't regress, but I'm unable to prime the history in such a way that it recalls a known element. I suspect this is an LLDB bug, but the most recent entry doesn't get update with entries from the current session. I considered spoofing the home directory but that needs to happen before libLLDB is loaded and you'll need to account for the widechar support. If anyone has another suggestion I'd love to hear it.
-
Roman Lebedev authored
[NFC][llvm-exegesis] CombinationGenerator::performGeneration(): pull put state increment into lambda This avoids questionable code such as taking address of current range-based for variable and comparing it with vector begin iterator. While this may not be a problem in itself, it can be written more consice. This was initially suggested by @aaronpuchert.
-
Dan Liew authored
This change makes the following lit substitutions expand to the correct thing for macOS, iOS, tvOS, and watchOS. %darwin_min_target_with_full_runtime_arc_support %macos_min_target_10_11 rdar://problem/59463146
-
Dan Liew authored
rdar://problem/59466685
-
Dan Liew authored
[compiler-rt] Provide a lit config variable that defines the minimum deployment OS version flag appropriate for the configured OS. This patch defines `config.apple_platform_min_deployment_target_flag` in the ASan, LibFuzzer, TSan, and UBSan lit test configs. rdar://problem/59463146
-
Dan Liew authored
rdar://problem/59463146
-
Dan Liew authored
platforms. For the simulators this changes the following compilation flags ( used both for building the runtime and lit tests). iOS simulator: `-miphoneos-version-min` -> `-mios-simulator-version-min` watchOS simulator: `-mwatchos-version-min` -> `-mwatchos-simulator-version-min` tvOS simulator: `-mtvos-version-min` -> `-mtvos-simulator-version-min` rdar://problem/59463146
-
Craig Topper authored
[llvm-exegesis] Rename range based for loop variable in a unit test so its different than the container being iterated over. NFC It seems like gcc 5.5 wants to iterate over the new variable instead of the container that lives outside the loop. But of course this new container is empty. Plus using a different variable names makes the code more readable.
-
Craig Topper authored
The array seemed to have decayed to a pointer before the ArrayRef constructor got called so there was no size information available.
-