- Aug 05, 2021
-
-
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
-
Gus Smith authored
Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D107484
-
Dave Airlie authored
This allows both sets of definitions to exist on CL 3.0 Reviewed By: Anastasia Differential Revision: https://reviews.llvm.org/D107318
-
Fangrui Song authored
-M was inappropriately added since -s is taken by Darwin nm. -M is deprecated. Tests should use --print-armap instead.
-
Heejin Ahn authored
`catch` instruction can have any number of result values depending on its tag, but so far we have only needed a single i32 return value for C++ exception so the instruction was specified that way. But using the instruction for SjLj handling requires multiple return values. This makes `catch` instruction's results variadic and moves selection of `throw` and `catch` instruction from ISelLowering to ISelDAGToDAG. Moving `catch` to ISelDAGToDAG is necessary because I am not aware of a good way to do instruction selection for variadic output instructions in TableGen. This also moves `throw` because 1. `throw` and `catch` share the same utility function and 2. there is really no reason we should do that in ISelLowering in the first place. What we do is mostly the same in both places, and moving them to ISelDAGToDAG allows us to remove unnecessary mid-level nodes for `throw` and `catch` in WebAssemblyISD.def and WebAssemblyInstrInfo.td. This also adds handling for new `catch` instruction to AsmTypeCheck. Reviewed By: dschuff, tlively Differential Revision: https://reviews.llvm.org/D107423
-
Fangrui Song authored
-
Geoffrey Martin-Noble authored
Includes can now be fully managed via td_library and specified locally to the tablegen files that require them. This has been deprecated for a while and is not used upstream. I'm not aware of any downstream users either. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D107389
-
River Riddle authored
A text file may be comprised of many different "chunks", when the input file contains the `// -----` split markers. We don't need to use a unique MLIRContext per chunk, as having separate contexts is intended to allow for easy unloading of unused data and all chunks have the same lifetime (tied to the input file). This commit uses one context for the entire file, greatly reducing memory consumption in certain situations (up to 70%). Differential Revision: https://reviews.llvm.org/D107488
-
Michael Jones authored
This change adds tests to make sure that SCUDO is being properly included with llvm libc. This change also adds the toggles to properly use SCUDO, as GWP-ASan is enabled by default and must be included for SCUDO to function. Reviewed By: sivachandra, hctim Differential Revision: https://reviews.llvm.org/D106919
-
Fangrui Song authored
Remnant after D72803. Distributions who want to customize the string can customize LLD_VERSION_STRING instead. Reviewed By: #lld-macho, mstorsjo, thakis Differential Revision: https://reviews.llvm.org/D107416
-
Fangrui Song authored
to `lib/CodeGen/CommandFlags.cpp`. It can replace -x86-experimental-pref-loop-alignment=. The loop alignment is only used by MachineBlockPlacement. The implementation uses a new `llvm::TargetOptions` for now, as an IR function attribute/module flags metadata may be overkill. This is the llvm part of D106701.
-