- Feb 26, 2021
-
-
Nicolas Guillemot authored
This patch adds each pass' pass argument in the header for IR dumps. For example: Before: ``` *** IR Dump Before InstructionSelect *** ``` After: ``` *** IR Dump Before InstructionSelect (instruction-select) *** ``` The goal is to make it easier to know what argument to pass to command line options like `debug-only` or `run-pass` to further investigate a given pass. -
AndreyChurbanov authored
Cleanup changes: - check value read from file; - remove dead code; - make unsigned variable to read hexadecimal number to; - add debug assertion to check ref count. Differential Revision: https://reviews.llvm.org/D96893
-
Med Ismail Bennani authored
This patch replaces the static large function threshold variable with a global debugger setting (`stop-disassembly-max-size`). The default threshold is now set to 32KB (instead of 8KB) and can be modified. rdar://74726362 Differential Revision: https://reviews.llvm.org/D97486 Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Dan Liew authored
This change simplifies `clang/lib/Frontend/CompilerInvocation.cpp` because we no longer need to manually parse the flag and set codegen options in the frontend. However, we still need to manually parse the flag in the driver because: * The marshalling infrastructure doesn't operate there. * We need to do some platform specific checks in the driver that will likely never be supported by any kind of marshalling infrastructure. rdar://71609176 Differential Revision: https://reviews.llvm.org/D97327
-
AndreyChurbanov authored
Stitching id could be overridden causing reference of destroyed object when number of teams is 1. The patch separates stitching id store location for teams and parallel nested in teams. Differential Revision: https://reviews.llvm.org/D96562
-
Arthur Eubanks authored
This fixes an issue where the toolchain discovery doesn't respect the VFS's current working directory, specifically clangd not respecting a relative /winsysroot. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D97437
-
Vitaly Buka authored
-
Kostya Kortchinsky authored
This CL introduces configuration options to allow pointers to be compacted in the thread-specific caches and transfer batches. This offers the possibility to have them use 32-bit of space instead of 64-bit for the 64-bit Primary, thus cutting the size of the caches and batches by nearly half (and as such the memory used in size class 0). The cost is an additional read from the region information in the fast path. This is not a new idea, as it's being used in the sanitizer_common 64-bit primary. The difference here is that it is configurable via the allocator config, with the possibility of not compacting at all. This CL enables compacting pointers in the Android and Fuchsia default configurations. Differential Revision: https://reviews.llvm.org/D96435
-
Akira Hatanaka authored
This fixes a crash that occurs when the type passed to the method is `_Bool`. rdar://74493389
-
Dan Liew authored
[Clang][ASan] Teach Clang to not emit ASan module destructors when compiling with `-mkernel` or `-fapple-kext`. rdar://71609176 Differential Revision: https://reviews.llvm.org/D96573
-
Dan Liew authored
The new `-fsanitize-address-destructor-kind=` option allows control over how module destructors are emitted by ASan. The new option is consumed by both the driver and the frontend and is propagated into codegen options by the frontend. Both the legacy and new pass manager code have been updated to consume the new option from the codegen options. It would be nice if the new utility functions (`AsanDtorKindToString` and `AsanDtorKindFromString`) could live in LLVM instead of Clang so they could be consumed by other language frontends. Unfortunately that doesn't work because the clang driver doesn't link against the LLVM instrumentation library. rdar://71609176 Differential Revision: https://reviews.llvm.org/D96572
-
Adrian Prantl authored
This doesn't actually reproduce with a dbg.declare(i8* null, ...) which produces a non-null null Value, but I have seen this show up in crash logs. I'm suspecting that there may be another pass forcibly setting the operand to a nullptr.
-
Fangrui Song authored
In SanitizerCoverage, the metadata sections (`__sancov_guards`, `__sancov_cntrs`, `__sancov_bools`) are referenced by functions. After inlining, such a `__sancov_*` section can be referenced by more than one functions, but its sh_link still refers to the original function's section. (Note: a SHF_LINK_ORDER section referenced by a section other than its linked-to section violates the invariant.) If the original function's section is discarded (e.g. LTO internalization + `ld.lld --gc-sections`), ld.lld may report a `sh_link points to discarded section` error. This above reasoning means that `!associated` is not appropriate to be called by an inlinable function. Non-interposable functions are inline candidates, so we have to drop `!associated`. A `__sancov_pcs` is not referenced by other sections but is expected to parallel a metadata section, so we have to make sure the two sections are retained or discarded at the same time. A section group does the trick. (Note: we have a module ctor, so `getUniqueModuleId` guarantees to return a non-empty string, and `GetOrCreateFunctionComdat` guarantees to return non-null.) For interposable functions, we could keep using `!associated`, but LTO can change the linkage to `internal` and allow such functions to be inlinable, so we have to drop `!associated`, too. To not interfere with section group resolution, we need to use the `noduplicates` variant (section group flag 0). (This allows us to get rid of the ModuleID parameter.) In -fno-pie and -fpie code (mostly dso_local), instrumented interposable functions have WeakAny/LinkOnceAny linkages, which are rare. So the section group header overload should be low. This patch does not change the object file output for COFF (where `!associated` is ignored). Reviewed By: morehouse, rnk, vitalybuka Differential Revision: https://reviews.llvm.org/D97430
-
Louis Dionne authored
Also, add a bunch of tests for tuple and pair's assignment operators involving reference types. Differential Revision: https://reviews.llvm.org/D97419
-
Christian Sigg authored
Fix call sites. The method will be removed 2 weeks later. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D97464
-
Christopher Di Bella authored
This commit adds checks for the following: * labels * block expressions * random integers cast to `void*` * function pointers cast to `void*` Differential Revision: https://reviews.llvm.org/D94640
-
Fangrui Song authored
-
Peyton, Jonathan L authored
Fortran header accidentally had use omp_lib_kinds added inside a subroutine and function. This patch removes the lines.
-
Jez Ng authored
When parsing bitcode, convert LTO Symbols to LLD Symbols in order to perform resolution. The "winning" symbol will then be marked as Prevailing at LTO compilation time. This is similar to what the other LLD ports do. This change allows us to handle `linkonce` symbols correctly, and to deal with duplicate bitcode symbols gracefully. Previously, both scenarios would result in an assertion failure inside the LTO code, complaining that multiple Prevailing definitions are not allowed. While at it, I also added basic logic around visibility. We don't do anything useful with it yet, but we do check that its value is valid. LLD-ELF appears to use it only to set FinalDefinitionInLinkageUnit for LTO, which I think is just a performance optimization. From my local experimentation, the linker itself doesn't seem to do anything differently when encountering linkonce / linkonce_odr / weak / weak_odr. So I've only written a test for one of them. LLD-ELF has more, but they seem to mostly be testing the intermediate bitcode output of their LTO backend...? I'm far from an expert here though, so I might very well be missing things. Reviewed By: #lld-macho, MaskRay, smeenai Differential Revision: https://reviews.llvm.org/D94342
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D96087
-
Simon Pilgrim authored
As discussed on D97276 we should be able to always do this in node creation, we don't need a combine.
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D96081
-
Jon Roelofs authored
rdar://59560986 Differential Revision: https://reviews.llvm.org/D97233
-
Craig Topper authored
Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D97478
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D97420
-
Rong Xu authored
This patch makes SampleProfileLoaderBaseImpl a template class so it can be used in CodeGen transformation. Noticeable changes: * use one template parameter and use IRTraits to get other used types an type specific functions. * remove the temporary "inline" keywords in previous refactor patch. * change the template function findEquivalencesFor to a regular function. This function has a single caller with type of PostDominatorTree. It's simpler to use the type directly because MachinePostDominatorTree is not a derived type of template DominatorTreeBase. Differential Revision: https://reviews.llvm.org/D96981
-
Diego Caballero authored
Fix 'isLoopParallel' utility so that 'iter_args' is taken into account and loops with loop-carried dependences are not classified as parallel. Reviewed By: tungld, vinayaka-polymage Differential Revision: https://reviews.llvm.org/D97347
-
Tung D. Le authored
This patch handles defining ops between the source and dest loop nests, and prevents loop nests with `iter_args` from being fused. If there is any SSA value in the dest loop nest whose defining op has dependence from the source loop nest, we cannot fuse the loop nests. If there is a `affine.for` with `iter_args`, prevent it from being fused. Reviewed By: dcaballe, bondhugula Differential Revision: https://reviews.llvm.org/D97030
-
- Feb 25, 2021
-
-
Fraser Cormack authored
-
Florian Hahn authored
-
Craig Topper authored
[RISCV] Teach CleanupVSETVLI to remove 'vsetvli zero, zero, vtype' when the vtype matches the previous vsetvli or vsetivli Reviewed By: frasercrmck, arcbbb Differential Revision: https://reviews.llvm.org/D97408
-
Nico Weber authored
Reported by artok on irc, thanks!
-
Nico Weber authored
-
Craig Topper authored
Reviewed By: asb Differential Revision: https://reviews.llvm.org/D97262
-
Albion Fung authored
This test case was causing a PowerPC buildbot to fail as it happened to be named lld-multistage, which matches with the original regex and therefore fails the check-not. This should better represent the desired check. Differential Revision: https://reviews.llvm.org/D97423
-
Timm Bäder authored
This happens in codebases a lot, which use xor where both sides are macros. Using xor in that case is not the common error-prone 2^6 code that the warning was introduced for. Don't diagnose such a use of xor. Differential Revision: https://reviews.llvm.org/D97445
-
Vladislav Vinogradov authored
Use `::mlir::Region` inside array ref for `VariadicRegion`. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D97376
-
Fraser Cormack authored
Some of the section headers had become stale with the transition from RVV specification version 0.9 to 0.10. This patch brings them up to date.
-
Fraser Cormack authored
This patch extends the support for scalable-vector int->fp and fp->int conversions by additionally handling fixed-length vectors. The existing scalable-vector lowering re-expresses widening/narrowing by x4+ conversions as standard nodes. The fixed-length vector support slots in at "the end" of this process by lowering the now equally-sized and widening/narrowing by x2 nodes to our custom VL versions. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D97374
-
Shao-Ce Sun authored
In clang: Replace argc_ with Argc Replace argv_ with Argv Replace argv with Args In flang: Replace argc_ with argc Replace argv_ with argv Replace argv with args Reviewed By: awarzynski, aganea Differential Revision: https://reviews.llvm.org/D97138
-