- Jun 02, 2021
-
-
Daniel Sanders authored
It's still in use in a few places so we can't delete it yet but there's not many at this point. Differential Revision: https://reviews.llvm.org/D103352
-
Stephen Neuendorffer authored
This gives a nice message about the location of errors in a large tablegen file, which is much more useful for users Differential Revision: https://reviews.llvm.org/D102740
-
Arthur Eubanks authored
-
Nico Weber authored
This omits load commands for unreferenced dylibs if: - the dylib was loaded implicitly, - it is marked MH_DEAD_STRIPPABLE_DYLIB - or -dead_strip_dylibs is passed This matches ld64. Currently, the "is dylib referenced" state is computed before dead code stripping and is not updated after dead code stripping. This too matches ld64. We should do better here. With this, clang-format linked with lld (like with ld64) no longer has libobjc.A.dylib in `otool -L` output. (It was implicitly loaded as a reexport of CoreFoundation.framework, but it's not needed.) Differential Revision: https://reviews.llvm.org/D103430
-
Andrew Kelley authored
WindowsSupport.h is a public header, however if it gets included, will cause a compile error indicating that llvm/Config/config.h cannot be found, because config.h is a private header. However there is no actual dependency on the private things in this header, so it can be changed to the public config header. Reviewed By: amccarth Differential Revision: https://reviews.llvm.org/D103370
-
Sanjay Patel authored
https://llvm.org/PR49543
-
Anirudh Prasad authored
- A lot of lit tests simply specify the arch minus the triple. On z/OS, this could result in a scenario of some-other-triple-unknown-ibm-zos. This points to an incorrect triple + arch combo. - To prevent this, isOSzOS change is switched in favour of isOSBinFormatGOFF. - This is because, the GOFF format is set only if the triple is systemz and if the operating system is GOFF. And currently, there are no other architectures/os's using the GOFF file format. - An argument could be made that the problematic tests be fixed to explicitly specify the arch-vendor-triple string, but there's a large number of these tests, and adding this stricter scope ensures that we aren't instantiating the incorrect instance of the AsmParser for other platforms when run on z/OS. Reviewed By: uweigand Differential Revision: https://reviews.llvm.org/D103343
-
Nathan Sidwell authored
This addresses pr50497. The argument of a typeid expression is unevaluated, *except* when it's a polymorphic type. We handle this by parsing as unevaluated and then transforming to evaluated if we discover it should have been an evaluated context. We do the same in TreeTransform<Derived>::TransformCXXTypeidExpr, entering unevaluated context before transforming and rebuilding the typeid. But that's incorrect and can lead us to converting to evaluated context twice -- and hitting an assert. During normal template instantiation we're always cloning the expression, but during generic lambda processing we do not necessarily AlwaysRebuild, and end up with TransformDeclRefExpr unconditionally calling MarkDeclRefReferenced around line 10226. That triggers the assert. // Mark it referenced in the new context regardless. // FIXME: this is a bit instantiation-specific. SemaRef.MarkDeclRefReferenced(E); This patch makes 2 changes. a) TreeTransform<Derived>::TransformCXXTypeidExpr only enters unevaluated context if the typeid's operand is not a polymorphic glvalue. If it is, it keeps the same evaluation context. b) Sema::BuildCXXTypeId is altered to only transform to evaluated, if the current context is unevaluated. Differential Revision: https://reviews.llvm.org/D103258
-
LLVM GN Syncbot authored
-
zoecarver authored
This will unblock work on ranges::view. Based on D101396. Refs http://eel.is/c++draft/view.interface. Differential Revision: https://reviews.llvm.org/D101737
-
Nico Weber authored
loadDylib() keeps a name->DylibFile cache, but it only writes to the cache once the DylibFile constructor has completed. So dylib loads done recursively from the DylibFile constructor wouldn't use the cache. Now, we load additional dylibs after writing to the cache, which means the cache now gets used for dylibs loaded because they're referenced from other dylibs. Related to PR49514 and PR50101, but no dramatic behavior change in itself. (Technically we no longer crash when a tbd file reexports itself, but that doesn't happen in practice. We now accept it silently instead of crashing; ld64 has a diag for the reexport cycle.) Differential Revision: https://reviews.llvm.org/D103423
-
Nico Weber authored
This is important for build determinism. This matches ld64. Differential Revision: https://reviews.llvm.org/D103446
-
madhur13490 authored
This must have made to code by accident. Differential Revision: https://reviews.llvm.org/D103484
-
Harald van Dijk authored
As the existing test unreachable.ll shows, we should be doing more work to avoid entering unreachable blocks: we should not stop vectorization just because a PHI incoming value from an unreachable block cannot be vectorized. We know that particular value will never be used so we can just replace it with poison.
-
Peyton, Jonathan L authored
When on KNL and L2 or Tile layer is detected, manually add the corresponding layer which is equivalent. Differential Revision: https://reviews.llvm.org/D102865
-
David Goldman authored
We now make up a TypeLoc for the class receiver to simplify visiting, notably for indexing, availability, and clangd. Differential Revision: https://reviews.llvm.org/D101645
-
Valentin Clement authored
Each var argument to an attach or detach clause must be a Fortran variable or array with the pointer or allocatable attribute. This patch enforce this restruction. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D103279
-
Lang Hames authored
WrapperFunctionResult is a C++ wrapper for __orc_rt_CWrapperFunctionResult that automatically manages the underlying struct. The Simple Packed Serialization (SPS) utilities support a simple serialization scheme for wrapper function argument and result buffers: Primitive typess (bool, char, int8_t, and uint8_t, int16_t, uint16_t, int32_t, uint32_t, int64_t, uint64_t) are serialized in little-endian form. SPSTuples are serialized by serializing each of the tuple members in order without padding. SPSSequences are serialized by serializing a sequence length (as a uint64_t) followed by each of the elements of the sequence in order without padding. Serialization/deserialization always involves a pair of SPS type tag (a tag representing the serialized format to use, e.g. uint32_t, or SPSTuple<bool, SPSString>) and a concrete type to be serialized from or deserialized to (uint32_t, std::pair<bool, std::string>). Serialization for new types can be implemented by specializing the SPSSerializationTraits type.
-
Lang Hames authored
This matches the C++ namespace name, and is consistent with other C linkage functions (e.g. __orc_rt_jit_dispatch).
-
Lang Hames authored
-
Hansang Bae authored
Also added missing Fortran definitions for interop support. Differential Revision: https://reviews.llvm.org/D102883
-
Aaron Ballman authored
When applying the changes in 8edd3464, it seems that this bit got merged incorrectly and no test coverage caught the issue. This fixes the diagnostic and adds a test.
-
Jessica Paquette authored
Also add a target hook which allows us to get around custom legalization on AArch64. Differential Revision: https://reviews.llvm.org/D99283
-
Louis Dionne authored
Until I figure out what the issue is with this test on AppleClang (and in particular which change caused it), I want to avoid all CI being broken.
-
David Goldman authored
When completing an Objective-C method declaration by name, we need to preserve the leading text as a `qualifier` so we insert it properly before the first typed text chunk. Differential Revision: https://reviews.llvm.org/D100798
-
Guozhi Wei authored
This patch transforms the sequence lea (reg1, reg2), reg3 sub reg3, reg4 to two sub instructions sub reg1, reg4 sub reg2, reg4 Similar optimization can also be applied to LEA/ADD sequence. The modifications to TwoAddressInstructionPass is to ensure the operands of ADD instruction has expected order (the dest register of LEA should be src register of ADD). Differential Revision: https://reviews.llvm.org/D101970 -
Nikita Popov authored
Since fd7e309e this is no longer pulled in indirectly through DenseMapInfo.h.
-
Jonas Paulsson authored
This is currently NFC on benchmarks and tests. Review: Ulrich Weigand
-
Eli Friedman authored
When we're remapping an AddRec, the AddRec constructed by a partial rewrite might not make sense. This triggers an assertion complaining it's not loop-invariant. Instead of constructing the partially rewritten AddRec, just skip straight to calling evaluateAtIteration. Testcase was automatically reduced using llvm-reduce, so it's a little messy, but hopefully makes sense. Differential Revision: https://reviews.llvm.org/D102959
-
Nikita Popov authored
As suggested in https://bugs.llvm.org/show_bug.cgi?id=50527, this moves the DenseMapInfo for APInt and APSInt into the respective headers, removing the need to include APInt.h and APSInt.h from DenseMapInfo.h. We could probably do the same from StringRef and ArrayRef as well. Differential Revision: https://reviews.llvm.org/D103422
-
Craig Topper authored
[RISCV] Remove earlyclobber from vnsrl/vnsra/vnclip(u) when the source and dest are a single vector register. This guarantees they meet this overlap exception: "The destination EEW is smaller than the source EEW and the overlap is in the lowest-numbered part of the source register group" Being a single register guarantees the overlap is always in the lowerst-number part of the group. Reviewed By: frasercrmck, khchen Differential Revision: https://reviews.llvm.org/D103351
-
Craig Topper authored
Compares are considered a narrowing operation for register overlap. I believe for LMUL<=1 they meet this exception to allow overlap "The destination EEW is smaller than the source EEW and the overlap is in the lowest-numbered part of the source register group" Both the result and the sources will occupy a single register for LMUL<=1 so the overlap would always be in the "lowest-numbered part". Reviewed By: frasercrmck, HsiangKai Differential Revision: https://reviews.llvm.org/D103336
-
Raphael Isemann authored
This removes the direct dependency to the ObjC and C++ plugins. Reviewed By: bulbazord Differential Revision: https://reviews.llvm.org/D103158
-
- Jun 01, 2021
-
-
Raphael Isemann authored
This function was added in D67589 and returns an internal CommandReturnObject which isn't allowed in the SB API. This patch just makes it private as all uses of this function are inside SBCommandReturnObject. Reviewed By: jankratochvil Differential Revision: https://reviews.llvm.org/D103390
-
Sanjay Patel authored
-
Xun Li authored
D101841 added this test. It appears to generate different outcome on different platforms. Make it to only call -coro-split instead of entire O2 pipeline to simplify the test flow. Hope this will make the test more robust. Reviewed By: djtodoro Differential Revision: https://reviews.llvm.org/D103418
-
Alexey Bataev authored
Implemented better scheme for perfect/shuffled matches of the gather nodes which allows to fix the performance regressions introduced by earlier patches. Starting detecting matches for broadcast nodes and extractelement gathering. Differential Revision: https://reviews.llvm.org/D102920
-
gbreynoo authored
This change adds tests specifically for --parent-recurse-depth, --quiet and -o. The test for -o found a typo in an error message which is also fixed in this change. Differential Revision: https://reviews.llvm.org/D103250
-
Louis Dionne authored
This is a re-application of dc672999 which was reverted in f63adf5b because it broke the build. The issue should now be fixed. Attribution note: The original author of this patch is Erik Pilkington. I'm only trying to land it after rebasing. Differential Revision: https://reviews.llvm.org/D91630
-
Ole Strohm authored
Because half is limited to the `cl_khr_fp16` extension being enabled, `DefaultLvalueConversion` can fail when it's not enabled. The original assumption that it will never fail is therefore wrong now. Fixes: PR47976 Reviewed By: Anastasia Differential Revision: https://reviews.llvm.org/D103175
-