- Feb 23, 2021
-
-
Fangrui Song authored
Differential Revision: https://reviews.llvm.org/D97161
-
Jez Ng authored
-
Jez Ng authored
dyld on iOS will complain if the LIB64 bit is set. Reviewed By: #lld-macho, thakis Differential Revision: https://reviews.llvm.org/D96565
-
Florian Hahn authored
-
Tim Keith authored
Add -J to the f18 driver for compatibility with gfortran. Add -module-dir for compatibility with the new flang driver. They both set the output directory for .mod files and add the directory to the search list. -module still only does the former. Clean up the new driver test to match. Differential Revision: https://reviews.llvm.org/D97164
-
Simon Pilgrim authored
Use APInt::uge() direct instead of getLimitedValue(). Use KnownBits::getMinValue() to make the bounds check more obvious.
-
Florian Hahn authored
VPBlendRecipes with single incoming (value, mask) pair are no-ops. Use the incoming value directly.
-
Shilei Tian authored
In current implementation of `deviceRTLs`, we're using some functions that are CUDA version dependent (if CUDA_VERSION < 9, it is one; otheriwse, it is another one). As a result, we have to compile one bitcode library for each CUDA version supported. A worse problem is forward compatibility. If a new CUDA version is released, we have to update CMake file as well. CUDA 9.2 has been released for three years. Instead of using various weird tricks to make `deviceRTLs` work with different CUDA versions and still have forward compatibility, we can simply drop support for CUDA 9.1 or lower version. It has at least two benifits: - We don't need to generate bitcode libraries for each CUDA version; - Clang driver doesn't need to search for the bitcode lib based on CUDA version. We can claim that starting from LLVM 12, OpenMP offloading on NVPTX target requires CUDA 9.2+. Reviewed By: jdoerfert, JonChesterfield Differential Revision: https://reviews.llvm.org/D97003
-
- Feb 22, 2021
-
-
Nathan James authored
Swapping the order of Init and MemberOrEllipsisLocation removes 8 bytes (20%) of padding on 64bit builds. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D97191
-
Sanjay Patel authored
-
Anastasia Stulova authored
After updating clang driver to include standard OpenCL headers implicitly, the output being checked in the test does not match because the implicit header contains other pragmas. The test does not aim to use the header and therefore it has to be updated passing '-cl-no-stdinc' command-line flag. This fixes failing bots.
-
Mikhail Goncharov authored
This reverts commit ba1d9546.
-
Mikhail Goncharov authored
This reverts commit 6984e0d4. While change by itself seems to be consistent with nullPointerConstant docs of not matching "int i = 0;" but it's not clear why it's wrong and 9148302a author just forgot to update the doc.
-
Anastasia Stulova authored
This change enables the builtin function declarations in clang driver by default using the Tablegen solution along with the implicit include of 'opencl-c-base.h' header. A new flag '-cl-no-stdinc' disabling all default declarations and header includes is added. If any other mechanisms were used to include the declarations (e.g. with -Xclang -finclude-default-header) and the new default approach is not sufficient the, `-cl-no-stdinc` flag has to be used with clang to activate the old behavior. Tags: #clang Differential Revision: https://reviews.llvm.org/D96515
-
Simon Pilgrim authored
-
Ryan Santhiraraja authored
This patch adds the following SHA3 Intrinsics: vsha512hq_u64, vsha512h2q_u64, vsha512su0q_u64, vsha512su1q_u64 veor3q_u8 veor3q_u16 veor3q_u32 veor3q_u64 veor3q_s8 veor3q_s16 veor3q_s32 veor3q_s64 vrax1q_u64 vxarq_u64 vbcaxq_u8 vbcaxq_u16 vbcaxq_u32 vbcaxq_u64 vbcaxq_s8 vbcaxq_s16 vbcaxq_s32 vbcaxq_s64 Note need to include +sha3 and +crypto when building from the front-end Reviewed By: DavidSpickett Differential Revision: https://reviews.llvm.org/D96381 -
Dmitry Preobrazhensky authored
Enabled "bound_ctrl:1" and disabled "bound_ctrl:-1" syntax. Corrected printer to output "bound_ctrl:1" instead of "bound_ctrl:0". See bug 35397 for detailed issue description. Differential Revision: https://reviews.llvm.org/D97048
-
LLVM GN Syncbot authored
-
Balázs Kéri authored
Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D96719
-
Nashe Mncube authored
Modified scalable vector types weren't correctly returned at link-time. The previous behaviour was a FixedVectorType was constructed when expecting a ScalableVectorType. This commit has added a regression test which re-creates the failure as well as a fix. Reviewed By: sdesmalen Differential Revision: https://reviews.llvm.org/D96953
-
Stephen Kelly authored
-
LLVM GN Syncbot authored
-
Florian Hahn authored
Update unit tests that did not expect VPWidenPHIRecipes after 15a74b64.
-
Simon Pilgrim authored
-
Andrzej Warzynski authored
This patch adds support for `-Xflang` in `flang-new`. The semantics are identical to `-Xclang`. With the addition of `-Xflang`, we can modify `-test-io` to be a compiler-frontend only flag. This makes more sense, this flag is: * very frontend specific * to be used for development and testing only * not to be exposed to the end user Originally we added it to the compiler driver, `flang-new`, in order to facilitate testing. With `-Xflang` this is no longer needed. Tests are updated accordingly. Differential Revision: https://reviews.llvm.org/D96864
-
David Green authored
Remove the unnecessary code from 21a4faab, left over from a different way of lowering.
-
Balazs Benics authored
Removes `CrossTranslationUnitContext::getImportedFromSourceLocation` Removes the corresponding unit-test segment. Introduces the `CrossTranslationUnitContext::getMacroExpansionContextForSourceLocation` which will return the macro expansion context for an imported TU. Also adds a few implementation FIXME notes where applicable, since this feature is not implemented yet. This fact is also noted as Doxygen comments. Uplifts a few CTU LIT test to match the current **incomplete** behavior. It is a regression to some extent since now we don't expand any macros in imported TUs. At least we don't crash anymore. Note that the introduced function is already covered by LIT tests. Eg.: Analysis/plist-macros-with-expansion-ctu.c Reviewed By: balazske, Szelethus Differential Revision: https://reviews.llvm.org/D94673
-
Balazs Benics authored
Removes the obsolete ad-hoc macro expansions during bugreport constructions. It will skip the macro expansion if the expansion happened in an imported TU. Also removes the expected plist file, while expanding matching context for the tests. Adds a previously crashing `plist-macros-with-expansion.c` testfile. Temporarily marks `plist-macros-with-expansion-ctu.c ` to `XFAIL`. Reviewed By: xazax.hun, Szelethus Differential Revision: https://reviews.llvm.org/D93224
-
Balazs Benics authored
Adds a `MacroExpansionContext` member to the `AnalysisConsumer` class. Tracks macro expansions only if the `ShouldDisplayMacroExpansions` is set. Passes a reference down the pipeline letting AnalysisConsumers query macro expansions during bugreport construction. Reviewed By: martong, Szelethus Differential Revision: https://reviews.llvm.org/D93223
-
Balazs Benics authored
Introduce `MacroExpansionContext` to track what and how macros in a translation unit expand. This is the first element of the patch-stack in this direction. The main goal is to substitute the current macro expansion generator in the `PlistsDiagnostics`, but all the other `DiagnosticsConsumer` could benefit from this. `getExpandedText` and `getOriginalText` are the primary functions of this class. The former can provide you the text that was the result of the macro expansion chain starting from a `SourceLocation`. While the latter will tell you **what text** was in the original source code replaced by the macro expansion chain from that location. Here is an example: void bar(); #define retArg(x) x #define retArgUnclosed retArg(bar() #define BB CC #define applyInt BB(int) #define CC(x) retArgUnclosed void unbalancedMacros() { applyInt ); //^~~~~~~~~~^ is the substituted range // Original text is "applyInt )" // Expanded text is "bar()" } #define expandArgUnclosedCommaExpr(x) (x, bar(), 1 #define f expandArgUnclosedCommaExpr void unbalancedMacros2() { int x = f(f(1)) )); // Look at the parenthesis! // ^~~~~~^ is the substituted range // Original text is "f(f(1))" // Expanded text is "((1,bar(),1,bar(),1" } Might worth investigating how to provide a reusable component, which could be used for example by a standalone tool eg. expanding all macros to their definitions. I borrowed the main idea from the `PrintPreprocessedOutput.cpp` Frontend component, providing a `PPCallbacks` instance hooking the preprocessor events. I'm using that for calculating the source range where tokens will be expanded to. I'm also using the `Preprocessor`'s `OnToken` callback, via the `Preprocessor::setTokenWatcher` to reconstruct the expanded text. Unfortunately, I concatenate the token's string representation without any whitespaces except if the token is an identifier when I emit an extra space to produce valid code for `int var` token sequences. This could be improved later if needed. Patch-stack: 1) D93222 (this one) Introduces the MacroExpansionContext class and unittests 2) D93223 Create MacroExpansionContext member in AnalysisConsumer and pass down to the diagnostics consumers 3) D93224 Use the MacroExpansionContext for macro expansions in plists It replaces the 'old' macro expansion mechanism. 4) D94673 API for CTU macro expansions You should be able to get a `MacroExpansionContext` for each imported TU. Right now it will just return `llvm::None` as this is not implemented yet. 5) FIXME: Implement macro expansion tracking for imported TUs as well. It would also relieve us from bugs like: - [fixed] D86135 - [confirmed] The `__VA_ARGS__` and other macro nitty-gritty, such as how to stringify macro parameters, where to put or swallow commas, etc. are not handled correctly. - [confirmed] Unbalanced parenthesis are not well handled - resulting in incorrect expansions or even crashes. - [confirmed][crashing] https://bugs.llvm.org/show_bug.cgi?id=48358 Reviewed By: martong, Szelethus Differential Revision: https://reviews.llvm.org/D93222 -
Florian Hahn authored
This patch extends VPWidenPHIRecipe to manage pairs of incoming (VPValue, VPBasicBlock) in the VPlan native path. This is made possible because we now directly manage defined VPValues for recipes. By keeping both the incoming value and block in the recipe directly, code-generation in the VPlan native path becomes independent of the predecessor ordering when fixing up non-induction phis, which currently can cause crashes in the VPlan native path. This fixes PR45958. Reviewed By: sguggill Differential Revision: https://reviews.llvm.org/D96773
-
David Green authored
This removes the existing patterns for inserting two lanes into an f16/i16 vector register using VINS, instead using a DAG combine to pattern match the same code sequences. The tablegen patterns were already on the large side (foreach LANE = [0, 2, 4, 6]) and were not handling all the cases they could. Moving that to a DAG combine, whilst not less code, allows us to better control and expand the selection of VINSs. Additionally this allows us to remove the AddedComplexity on VCVTT. The extra trick that this has learned in the process is to move two adjacent lanes using a single f32 vmov, allowing some extra inefficiencies to be removed. Differenial Revision: https://reviews.llvm.org/D96876
-
Andy Wingo authored
If the reference-types feature is enabled, call_indirect will explicitly reference its corresponding function table via `TABLE_NUMBER` relocations against a table symbol. Also, as before, address-taken functions can also cause the function table to be created, only with reference-types they additionally cause a symbol table entry to be emitted. We abuse the used-in-reloc flag on symbols to indicate which tables should end up in the symbol table. We do this because unfortunately older wasm-ld will carp if it see a table symbol. Differential Revision: https://reviews.llvm.org/D90948
-
Kadir Cetinkaya authored
Differential Revision: https://reviews.llvm.org/D96950
-
Jan Svoboda authored
This patch moves the creation of the '-Wspir-compat' argument from cc1 to the driver. Without this change, generating command line arguments from `CompilerInvocation` cannot be done reliably: there's no way to distinguish whether '-Wspir-compat' was passed to cc1 on the command line (should be generated), or if it was created within `CompilerInvocation::CreateFromArgs` (should not be generated). This is also in line with how other '-W' flags are handled. (This was introduced in D21567.) Reviewed By: Anastasia Differential Revision: https://reviews.llvm.org/D97041
-
Jan Svoboda authored
This patch stops creating the '-Wno-stdlibcxx-not-found' argument in `CompilerInvocation::CreateFromArgs`. The code was added in 2e7ab55e (a follow-up to D48297). However, D61963 removes relevant tests and starts explicitly passing '-Wno-stdlibcxx-not-found' to the driver. I think it's fair to assume this is a dead code. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D97042
-
Tres Popp authored
Differential Revision: https://reviews.llvm.org/D96951
-
Djordje Todorovic authored
Small optimization of the code -- No need to calculate any stats for NULL nodes, and also no need to call the collectStatsForDie() if it is the CU itself. Differential Revision: https://reviews.llvm.org/D96871
-
Petr Hosek authored
After D97110 __llvm_prof_cnts has the nobits type so it's empty.
-
Kern Handa authored
Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D97140
-