- Aug 12, 2021
-
-
Mehdi Amini authored
This reverts commit a1ef81de. Broke the MLIR buildbot.
-
Anton Afanasyev authored
-
Dmitry Vyukov authored
We currently memorize u64 id + epoch for each mutex. The new tsan runtime will memorize address + stack_id instead. But switching to address + stack_id requires new trace, which in turn requires new MutexSet and some other changes. Extend MutexSet to support both new and old info to break the dependency cycles. The plan is to remove the old info/methods after switching to the new runtime. Reviewed By: vitalybuka, melver Differential Revision: https://reviews.llvm.org/D107910
-
Stuart Ellis authored
Introducing a plugin API and a simple HelloWorld Plugin example. This patch adds the `-load` and `-plugin` flags to frontend driver and the code around using custom frontend actions from within a plugin shared library object. It also adds to the Driver-help test to check the help option with the updated driver flags. Additionally, the patch creates a plugin-example test to check the HelloWorld plugin example runs correctly. As part of this, a new CMake flag (`FLANG_BUILD_EXAMPLES`) is added to allow the example to be built and for the test to run. This Plugin API has only been tested on Linux. Reviewed By: awarzynski Differential Revision: https://reviews.llvm.org/D106137
-
David Truby authored
-
Martin Storsjö authored
The existing logic for per-target libc++ include directories only seem to exist for the Gnu and Fuchsia drivers, added in ea12d779 / D89013. This is less generic than the corresponding case in the Gnu driver, but matches the existing level of genericity in the MinGW driver (and others too). Differential Revision: https://reviews.llvm.org/D107893
-
Martin Storsjö authored
Consistently use 'w64' as vendor string; it was 'pc' for the original i686 triple added in 91bd6c92, but the later x86_64 triple used 'w64' as vendor, added in d6c1f37f. When the arm triples were added in c84ad73a, the differing vendors were copied over accidentally to the arm targets too. When using per-target runtime directories, having inconsistent vendor parts of the target triples is fatal. Differential Revision: https://reviews.llvm.org/D107894
-
Martin Storsjö authored
In e72403f9, we added the flag "--no-dynamicbase" for disabling the dynamicbase flag which we set by default. At the time, ld.bfd didn't have any corresponding option (as ld.bfd defaulted to not setting the flag). Almost at the same time, corresponding options were added to ld.bfd for disabling it (while it was being enabled by default), with a different name, "--disable-dynamicbase". Thus add the "--disable-dynamicbase" option. Make this default one advertised in the help listing, but keep the "--no-dynamicbase" form as an alias. Also improve checking for the last option set if there are multiple ones on the same command line. Also add corresponding disable options for a lot of other flags that we set by default, also added in ld.bfd in the same commit: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=514b4e191d5f46de8e142fe216e677a35fa9c4bb Differential Revision: https://reviews.llvm.org/D107930
-
Florian Hahn authored
a1ef81de adjusted the definition of the intrinsic, but did not update a PowerPC test. Fix the test by updating the call & declaration of @llvm.matrix.column.major.load.
-
Igor Kudrin authored
As for now, llvm-objcopy sorts section headers according to the offsets of the sections in the input file. That can corrupt section references in the dynamic symbol table because it is a loadable section and as such is not updated by the tool. Even though the section references are not required for loading the binary correctly, they are still handy for a user who analyzes the file. While the patch removes global reordering of section headers, it layouts the sections in the same way as before, i.e. according to their original offsets. All that helps the output file to resemble the input better. Note that the patch removes sorting SHT_GROUP sections to the start of the list, which was introduced in D62620 in order to ensure that they come before the group members, along with the corresponding test. The original issue was caused by the sorting of section headers, so dropping the sorting also resolves the issue. Differential Revision: https://reviews.llvm.org/D107653
-
Florian Hahn authored
This patch adjusts the intrinsics definition of llvm.matrix.column.major.load and llvm.matrix.column.major.store to allow overloading the type of the stride. The bitwidth of the stride is used to perform the offset computation. This fixes a crash when using __builtin_matrix_column_major_load or __builtin_matrix_column_major_store on 32 bit platforms. The stride argument of the builtins are defined as `size_t`, which is 32 bits wide on 32 bit platforms. Note that we still perform offset computations with 64 bit width on 32 bit platforms for accesses that do not take a user-specified stride. This can be fixed separately. Fixes PR51304. Reviewed By: erichkeane Differential Revision: https://reviews.llvm.org/D107349
-
David Truby authored
This patch enables extending loads for fixed length SVE code generation. There is a slight regression here in the mulh tests; since these tests load the parameter and then extend it these are treated as extending loads which are merged, preventing the mulh instruction from being generated. As this affects scalable SVE codegen as well this should be addressed in a separate patch. Reviewed By: bsmith Differential Revision: https://reviews.llvm.org/D107057
-
Whisperity authored
The patch in http://reviews.llvm.org/D106431 landed in commit 4a097efe to the main branch. However, this patch was also backported to upcoming release 13.0.0 in commit 8dcdfc0de84f60b5b4af97ac5b357881af55bc6e, which makes this entry in the release notes **NOT** a new thing for the purposes of 14.0.0.
-
Krasimir Georgiev authored
After https://github.com/llvm/llvm-project/commit/9da70ab3d43c79116f80fc06aa7cf517374ce42c we saw a few regressions around trailing attribute definitions and in typedefs (examples in the added test cases). There's some tension distinguishing K&R definitions from attributes at the parser level, where we have to decide if we need to put the type of the K&R definition on a new unwrapped line before we have access to the rest of the line, so we're scanning backwards and looking for a pattern like f(a, b). But this type of pattern could also be an attribute macro, or the whole declaration could be a typedef itself. I updated the code to check for a typedef at the beginning of the line and to not consider raw identifiers as possible first K&R declaration (but treated as an attribute macro instead). This is not 100% correct heuristic, but I think it should be reasonably good in practice, where we'll: * likely be in some very C-ish code when using K&R style (e.g., stuff that uses `struct name a;` instead of `name a;` * likely be in some very C++-ish code when using attributes * unlikely mix up the two in the same declaration. Ideally, we should only decide to add the unwrapped line before the K&R declaration after we've scanned the rest of the line an noticed the variable declarations and the semicolon, but the way the parser is organized I don't see a good way to do this in the current parser, which only has good context for the previously visited tokens. I also tried not emitting an unwrapped line there and trying to resolve the situation later in the token annotator and the continuation indenter, and that approach seems promising, but I couldn't make it to work without messing up a bunch of other cases in unit tests. Reviewed By: MyDeveloperDay Differential Revision: https://reviews.llvm.org/D107950
-
Freddy Ye authored
Reviewed By: pengfei Differential Revision: https://reviews.llvm.org/D107946
-
David Spickett authored
Previously I xfailed this but it's only failing in stage 2 so we get xpasses for stage 1. Disable it completely.
-
Cullen Rhodes authored
The register classes are generated by TableGen, use them instead of handwritten tables. Reviewed By: david-arm Differential Revision: https://reviews.llvm.org/D107763
-
Fangrui Song authored
-
Krasimir Georgiev authored
A follow-up to https://github.com/llvm/llvm-project/commit/f6bc614546e169bb1b17a29c422ebace038e6c62 where we handle the case where the semicolon is followed by a trailing comment. Reviewed By: MyDeveloperDay Differential Revision: https://reviews.llvm.org/D107907
-
Dmitry Vyukov authored
AppMemBeg was renamed to LoAppMemBeg in 3830c934 ("tsan: rename kAppMemBeg to kLoAppMemBeg"). Rename remaining uses of the old name in tsan_platform_mac.cpp. Differential Revision: https://reviews.llvm.org/D107948
-
Fangrui Song authored
Alpine enables PIE by default.
-
Walter Erquinigo authored
Follow up on https://reviews.llvm.org/D105741 - Add new test that exhaustively checks the output file's content - Fix typos in documentation and other minor fixes Reviewed By: wallace Original Author: jj10306 Differential Revision: https://reviews.llvm.org/D107674
-
Christudasan Devadasan authored
Originally committed as ffc3fb66 Reverted in fcf2d5f4 due to an assertion failure. Original commit message: Allow the folding even if there is an intervening bitcast. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D106667
-
Daniel Kolesa authored
-
Jason Molenda authored
-
Jason Molenda authored
These two tests, TestSkinnyCorefile.py and TestStackCorefile.py, require a new debugserver on darwin systems to run correctly; for now, skip them if the system debugserver is in use. There's no easy way to test if the debugserver being used supports either of these memory region info features. For end users, the fallback will be a full corefile and that's not the worst thing, but for the tests it is a problem.
-
Amara Emerson authored
These rules were originally written when the new predicate based legalizer was introduced in an attempt to preserve existing behaviour. It wasn't properly kept up to date as things like vector support was split out into G_CONCAT_VECTORS, and frankly, even if it was, it was too complex. It's much easier to start from scratch with what we can actually support, which is just a few type combinations. Anything illegal we should either legalize, or should be eliminated as a side effect of artifact combination. Differential Revision: https://reviews.llvm.org/D107937
-
Michael Jones authored
This change adds the stroll function, but most of the implementation is in the new file str_conv_utils.h since many of the other integer conversion functions are implemented through what are effectively calls to strtoll. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D107792
-
Tyler Augustine authored
This can be useful when one needs to know which unrolled iteration an Op belongs to, for example, conveying noalias information among memory-affecting ops in parallel-access loops. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D107789
-
wlei authored
Currently we use a centralized string map(StringMap<FunctionSamples> ProfileMap) to store the profile while populating the sample, which might cause the memory usage bottleneck. I saw in an extreme case, there are thousands of samples whose context stack depth is >= 100. The memory consumption can be greater than 100GB. As here the context is used for inlining, we can assume we won't have so many of inlinees keeping inlined at the same root function, so this change tried to cap the context stack and merge the samples for peak memory reduction and this is done after recursion compression. The default value is -1 meaning no depth limit, in the future we can tune to a smaller one. Reviewed By: hoy, wenlei Differential Revision: https://reviews.llvm.org/D107800
-
Benjamin Kramer authored
No longer needed after c1ebefdf
-
Mehdi Amini authored
-
- Aug 11, 2021
-
-
Jonas Devlieghere authored
BOOL is bool instead of signed char on ARM. See https://reviews.llvm.org/D93421#inline-874116 for details.
-
Usman Nadeem authored
The assertion can fail in some cases when an i16 constant is promoted to i32. e.g. in the added test case the value `i16 -32768` is within the range of i16 but the assert fails when the constant is promoted to positive `i32 32768` by an earlier call to DAG.getConstant(). Differential Revision: https://reviews.llvm.org/D107880 Change-Id: I2f6179783cbc9630e6acab149a762b43c65664de
-
Jonas Devlieghere authored
The benefit of using assertIn is an improved error message when the assertion fails: AssertionError: False is not True becomes AssertionError: 'have ints 5 20 20 5' not found in '""'
-
Jonas Devlieghere authored
All TestConcurrent.* tests that involve watchpoints are broken on ARM-based Darwin platforms, including Apple Silicon. rdar://81811539
-
Jonas Devlieghere authored
-
Louis Dionne authored
This is a workaround until https://reviews.llvm.org/D81892 is merged and the internal Lit shell stops conflating error output with normal output. Without this, any program that writes to stderr will trip up the programOutput function, because it will pick up the '# command stderr:' string and think it's part of the command's stdout. rdar://81056048 Differential Revision: https://reviews.llvm.org/D107912
-
Louis Dionne authored
All supported compilers implement __builtin_addressof. Even MSVC implements addressof as a simple call to __builtin_addressof, so it would work if we were to port libc++ to that compiler. Differential Revision: https://reviews.llvm.org/D107905
-
Amara Emerson authored
-