- Feb 15, 2020
-
-
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.
-
Diego Caballero authored
This patch extends affine data copy optimization utility with an optional memref filter argument. When the memref filter is used, data copy optimization will only generate copies for such a memref. Note: this patch is just porting the memref filter feature from Uday's 'hop' branch: https://github.com/bondhugula/llvm-project/tree/hop. Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D74342
-
Christopher Ferris authored
Summary: Add a method to set the release to OS value as the system runs, and allow this to be set differently in the primary and the secondary. Also, add a default value to use for primary and secondary. This allows Android to have a default that is different for primary/secondary. Update mallopt to support setting the release to OS value. Reviewers: pcc, cryptoad Reviewed By: cryptoad Subscribers: cryptoad, jfb, #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D74448
-
Sean Fertile authored
In https://reviews.llvm.org/rG8b737688c21a9755cae14cb9343930e0882164ab I switched the condition gating the creation of the descriptor symbol from checking the MCAsmInfo if we need to support descriptors, to if the OS was AIX. Technically the 2 should be interchangeable: if we are targeting AIX then we need to emit XCOFF object files, and the MCAsmInfo must return true for needing function descriptors. This doesn't account for lit test with runsteps that only set the arch. Eg: test/CodeGen/XCore/section-name.ll which when run natively on AIX we end up with a target xcore-ibm-aix and needFunctionDescriptors is false. This patch reverts to using the MCAsmInfo and adds an assert that the target OS must be AIX since that is the only target using the descriptor hook. Differential Revision: https://reviews.llvm.org/D74622
-
Nico Weber authored
-
Nico Weber authored
This is like -fdata-sections, and it's not part of /O2 by default for some reason. In the cmake build, reduces the size of clang.exe from 70,358,016 bytes to 69,982,720 bytes. clang-format.exe goes from 3,703,296 bytes to 3,331,072 bytes. Differential Revision: https://reviews.llvm.org/D74573
-
Austin Kerbow authored
Differential Revision: https://reviews.llvm.org/D74630
-
Evandro Menezes authored
Repeat the build instructions from the top level README in the Getting Started guide.
-
Matt Arsenault authored
The division expansions in AMDGPUCodeGenPrepare can't be relied on for correctness, since they punt to later optimization and possibly legalization in some cases. We still need a way to be able to write tests for the legalizer versions of the expansion. This is mostly for GlobalISel, since the expected optimzations is expecting aren't implemented. The interaction with the flag to expand 64-bit division in the IR is pretty confusing, but these flags have different purposes.
-
Sanjay Patel authored
I updated the prefix and forgot to manually remove the old names as part of rG6071fc57.f
-