- Aug 05, 2021
-
-
Andrzej Warzynski authored
This patch removes `f18`, a.k.a. the old driver. It is being replaced with the new driver, `flang-new`, which has reached feature parity with `f18` a while ago. This was discussed in [1] and also in [2]. With this change, `FLANG_BUILD_NEW_DRIVER` is no longer needed and is also deleted. This means that we are making the dependency on Clang permanent (i.e. it cannot be disabled with a CMake flag). LIT set-up is updated accordingly. All references to `f18` or `f18.cpp` are either updated or removed. The `F18_FC` variable from the `flang` bash script is replaced with `FLANG_FC`. The former is still supported for backwards compatibility. [1] https://lists.llvm.org/pipermail/flang-dev/2021-June/000742.html [2] https://reviews.llvm.org/D103177 Differential Revision: https://reviews.llvm.org/D105811
-
Jay Foad authored
-
Simon Pilgrim authored
As suggested on D107370, this patch renames the tuning feature flags to start with 'Tuning' instead of 'Feature'. Differential Revision: https://reviews.llvm.org/D107459
-
Dominik Montada authored
Reviewed By: foad Differential Revision: https://reviews.llvm.org/D107330
-
Dmitry Vyukov authored
Currently we hardcode u64 type for shadow everywhere and do lots of uptr<->u64* casts. It makes it hard to change u64 to another type (e.g. u32) and makes it easy to introduce bugs. Introduce RawShadow type and use it in MemToShadow, ShadowToMem, IsShadowMem and throughout the code base as u64 replacement. This makes it possible to change u64 to something else in future and generally improves static typing. Depends on D107481. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D107482
-
Dmitry Vyukov authored
MemToMeta returns u32*, so it's reasonable for IsMetaMem to accept u32* as well. Changing the argument type just removes few type casts. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D107481
-
Aaron Ballman authored
Clang diagnostics should not start with a capital letter or use trailing punctuation (https://clang.llvm.org/docs/InternalsManual.html#the-format-string), but quite a few driver diagnostics were not following this advice. This corrects the grammar and punctuation to improve consistency, but does not change the circumstances under which the diagnostics are produced.
-
Andrzej Warzynski authored
For boolean options, e.g. `-fxor-operator`/`-fno-xor-operator`, we ought to be using TableGen multi-classes. This way, we only have to write one definition to have both forms auto-generated. This patch refactors all of Flang's boolean options to use two new multi-classes: `OptInFC1FFOption` and `OptOutFC1FFOption`. These multi-classes are based on `OptInFFOption`/`OptOutFFOption`, respectively. I've also simplified the processing of the updated options in CompilerInvocation.cpp. With the new approach, "empty" help text (i.e. no `HelpText`) is now replaced with an empty string (i.e. HelpText<"">). When running flang-new --help, that's considered as non-empty help messages, which is then printed (that's controlled by `printHelp` from llvm/lib/Option/OptTable.cpp). This means that with this patch, flang-new --help will start printing e.g. -fno-backslash, even though there is no actual help text to print for this option (apart from the empty string ""). Tests are updated accordingly. Note that with this patch, both `-fxor-operator` and `-fno-xor-operator` (and other boolean options refactored here) remain available in `flang-new` and `flang-new -fc1`. In this respect, nothing changes. In a forthcoming patch, I will refine this so that `flang-new -fc1` only accepts `-ffoo` (`OptInFC1FFOption`) or `-fno-foo` (`OptOutCC1FFOption`). For clarity, `OptInFFOption`/`OptOutFFOption` are renamed as `OptInCC1FFOption`/`OptOutCC1FFOption`, respectively. Otherwise, this is an NFC from Clang's perspective. Differential Revision: https://reviews.llvm.org/D105881
-
Sven van Haastregt authored
Builtin definitions with pointer arguments were duplicated to provide overloads differing in the pointer argument's address space. Reduce this duplication by capturing the definitions in multiclasses. This still results in the same number of builtins in the generated tables, but the description is more concise now. Differential Revision: https://reviews.llvm.org/D107151
-
Neal Sidhwaney authored
This reverts commit 7529f0e3.
-
Jay Foad authored
-
Oliver Stannard authored
-
Fraser Cormack authored
The LegalizeAction for this node should follow the logic for `VECREDUCE_SEQ_FADD` and be determined using the vector operand's type. here isn't an in-tree target that makes use of this, but I think it's safe to say this is how it should behave, should a target want to customize the action for this node. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D107478
-
Lang Hames authored
ORC-runtime regression tests will now explicitly specify the runtime path.
-
Jay Foad authored
-
Anshil Gandhi authored
Implement target builtins for gfx90a including fadd64, fadd32, add2h, max and min on various global, flat and ds address spaces for which intrinsics are implemented. Differential Revision: https://reviews.llvm.org/D106909
-
Neal Sidhwaney authored
This change moves to using narrow character types and libedit APIs in Editline, because those are the same types that the rest of LLVM/LLDB uses, and it's generally considered better practice to use UTF-8 encoded in char than it is to use wider characters. However, for character input, the change leaves in using a wchar to enable input of multi-byte characters. Differential Revision: https://reviews.llvm.org/D106035
-
Martin Storsjö authored
This option is always interpreted strictly as a hexadecimal string, even if it has no prefix that indicates the number format, hence the existing call to StringRef::getAsInteger(16, ...). StringRef::getAsInteger(0, ...) consumes a leading "0x" prefix is present, but when the radix is specified, the radix shouldn't be included. Both MS rc.exe and GNU windres accept the language with that prefix. Also allow specifying the codepage to llvm-windres with a different radix, as GNU windres allows that (but MS rc.exe doesn't). This fixes https://llvm.org/PR51295. Differential Revision: https://reviews.llvm.org/D107263
-
Michał Górny authored
Remove test times when running shtest-keyword-parse-errors test, in order to prevent the previous executions from impacting subtest order and therefore causing FileCheck to fail. Differential Revision: https://reviews.llvm.org/D107427
-
Igor Kudrin authored
This extends D105979 and adds support for VLDR instructions. Differential Revision: https://reviews.llvm.org/D105980
-
Igor Kudrin authored
This implements `MCInstrAnalysis::evaluateMemoryOperandAddress()` for Arm so that the disassembler can print the target address of memory operands that use PC+immediate addressing. Differential Revision: https://reviews.llvm.org/D105979
-
Fangrui Song authored
Currently version script patterns are ignored for .symver produced non-default version (single @) symbols. This makes such symbols not localizable by `local:`, e.g. ``` .symver foo3_v1,foo3@v1 .globl foo_v1 foo3_v1: ld.lld --version-script=a.ver -shared a.o ``` This patch adds the support: * Move `config->versionDefinitions[VER_NDX_LOCAL].patterns` to `config->versionDefinitions[versionId].localPatterns` * Rename `config->versionDefinitions[versionId].patterns` to `config->versionDefinitions[versionId].nonLocalPatterns` * Allow `findAllByVersion` to find non-default version symbols when `includeNonDefault` is true. (Note: `symtab` keys do not have `@@`) * Make each pattern check both the unversioned `pat.name` and the versioned `${pat.name}@${v.name}` * `localPatterns` can localize `${pat.name}@${v.name}`. `nonLocalPatterns` can prevent localization by assigning `verdefIndex` (before `parseSymbolVersion`). --- If a user notices new `undefined symbol` errors with a version script containing `local: *;`, the issue is likely due to a missing `global:` pattern. Reviewed By: peter.smith Differential Revision: https://reviews.llvm.org/D107234 -
Fangrui Song authored
This reverts commit 7ed22a6f. buf is not cleared so the commit misses some cases.
-
eopXD authored
Letting it take SCEV allows further modification on the function to optimize if the StoreSize / Stride is runtime determined. This is a preceeding of D107353. The big picture is to let LoopIdiom deal with runtime-determined sizes. Reviewed By: Whitney, lebedev.ri Differential Revision: https://reviews.llvm.org/D104595
-
Heejin Ahn authored
- Remove a redundant test: there were `longjmp_only` and `only_longjmp`, which do the same thing - Add `CHECK-LABEL` lines for function names Reviewed By: tlively Differential Revision: https://reviews.llvm.org/D107511
-
Heejin Ahn authored
Reviewed By: tlively Differential Revision: https://reviews.llvm.org/D107499
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D107520
-
Nathan Lanza authored
These functions don't exist in android API levels < 21. A change in llvm-12 (rG6dbf0cfc) caused Oz builds to emit this symbol assuming it's available and thus is causing link errors. Simply disable it here. Differential Revision: https://reviews.llvm.org/D107509
-
Dan Liew authored
Previously the build used `-gline-tables-only` when `COMPILER_RT_DEBUG` was off (default) and `-g` when `COMPILER_RT_DEBUG` was on. The end result of this meant that the release build of the Sanitizer runtimes were difficult to debug (e.g. information about variables and function arguments were missing). Presumably the reason for preferring `-gline-tables-only` for release builds was to save space. However, for Apple platforms this doesn't matter because debug info lives in separate `.dSYM` files (which aren't shipped) rather than in the shipped `.dylib` files. Now on Apple platforms we always emit full debug info if the compiler supports it and we emit a fatal error if `-g` isn't supported. rdar://79223184 Differential Revision: https://reviews.llvm.org/D107501
-
Matt Jacobson authored
Emit references to '__do_global_ctors' and '__do_global_dtors' to allow constructor/destructor routines to run. Reviewed by: MaskRay Differential Revision: https://reviews.llvm.org/D107133
-
Matthias Springer authored
The file in which `Region::viewGraph` is defined has changed. This should have been updated with D106342. Differential Revision: https://reviews.llvm.org/D107517
-
Fangrui Song authored
Now that D95204 switched default to new Darwin backend, rename some CMake targets to match. Reviewed By: #lld-macho, smeenai, int3 Differential Revision: https://reviews.llvm.org/D107516
-
Geoffrey Martin-Noble authored
This patch adds a Bazel configuration to build lld. That includes a BUILD.bazel file to export the libunwind headers for use by lld. Since the lld target itself requires libxml2 (through WindowsManifest) it's currently disabled on Buildkite and marked manual, but all the libraries build. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D107414
-
Kostya Serebryany authored
[libFuzzer] tests/examples for using libFuzzer for out-of-process targets Reviewed By: kostik Differential Revision: https://reviews.llvm.org/D107498
-
modimo authored
D106861 added usage of PseudoProbeAttributes::Reserved as TailCall however this usage hasn't been committed/reviewed. Removing this usage. Testing ninja check-all Reviewed By: wenlei Differential Revision: https://reviews.llvm.org/D107514
-
Yonghong Song authored
Kuniyuki Iwashima reported in [1] that llvm compiler may convert a loop exit condition with "i < bound" to "i != bound", where "i" is the loop index variable and "bound" is the upper bound. In case that "bound" is not a constant, verifier will always have "i != bound" true, which will cause verifier failure since to verifier this is an infinite loop. The fix is to avoid transforming "i < bound" to "i != bound". In llvm, the transformation is done by IndVarSimplify pass. The compiler checks loop condition cost (i = i + 1) and if the cost is lower, it may transform "i < bound" to "i != bound". This patch implemented getArithmeticInstrCost() in BPF TargetTransformInfo class to return a higher cost for such an operation, which will prevent the transformation for the test case added in this patch. [1] https://lore.kernel.org/netdev/1994df05-8f01-371f-3c3b-d33d7836878c@fb.com/ Differential Revision: https://reviews.llvm.org/D107483
-
Catherine Payne authored
There is a case in EmitDiagnostics where the filter check is bypassed (when locationStack is empty). Filter might also be bypassed when loc instead of showableLoc is added to the locationStack. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D106522
-
Jessica Paquette authored
Clamp the max number of elements when legalizing G_PHI. This allows us to legalize some common fallbacks like 4 x s64. Here's an example: https://godbolt.org/z/6YocsEYTd Had to add -global-isel-abort=0 to legalize-phi.mir to account for the G_EXTRACT_VECTOR_ELT from the 32 x s8 G_PHI. Differential Revision: https://reviews.llvm.org/D107508
-
Pavel Asyutchenko authored
This matches the behavior of GCC. Patch does not change remapping logic itself, so adding one simple smoke test should be enough. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D107393
-
Michael Jones authored
This change reverts a small cmake change that was causing buildbot failures. Differential Revision: https://reviews.llvm.org/D107510
-