- Oct 30, 2020
-
-
Andrzej Warzynski authored
Some changes introduced in https://reviews.llvm.org/D88655 cause compiler warnings. Since in Flang warnings are treated as errors (`-Werror` is on by default), these are in practice compiler errors (verified with clang-10 and clang-11, gcc-10). This patches fixes these warning/failures. Warning/error 1: ``` llvm-project/flang/lib/Semantics/check-omp-structure.cpp:107:3: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough] ``` Warning/error 2: ``` llvm-project/flang/lib/Semantics/check-directive-structure.h:39:9: error: field 'currentDirective_' will be initialized after field 'upperCaseDirName_' [-Werror,-Wreorder-ctor] ``` Failing buildbot: * http://lab.llvm.org:8011/#/builders/33/builds/386
-
alex-t authored
[AMDGPU] SILowerControlFlow::removeMBBifRedundant. Refactoring plus fix for the null MBB pointer in MF->splice Detailed description: This change addresses the refactoring adviced by foad. It also contain the fix for the case when getNextNode is null if the successor block is the last in MachineFunction. Reviewed By: foad Differential Revision: https://reviews.llvm.org/D90314
-
Simon Pilgrim authored
MSVC builds were failing because the constexpr wasn't couldn't be captured by the lamdba. Fix an implicit double to float truncation warning as well.
-
Simon Pilgrim authored
Fixes clang-tidy warnings.
-
Nathan James authored
-
Max Kazantsev authored
-
David Green authored
-
Nathan James authored
A common pattern when using SmallString is to repeatedly call append to build a larger string. The issue here is the optimizer can't see through this and often has to check there is enough space in the storage for each string you try to append. This results in lots of conditional branches and potentially multiple calls to grow needing to be emitted if the buffer wasn't large enough. By taking an initializer_list of StringRefs, SmallString can preallocate the storage it needs for all of the StringRefs which only need to grow one time at most, then use a fast path of copying all the strings into its storage knowing there is guaranteed to be enough capacity. By using StringRefs, this also means you can append different string like types in one go as they will all be implicitly converted to a StringRef. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D90386
-
Tres Popp authored
Differential Revision: https://reviews.llvm.org/D90407
-
Florian Hahn authored
Currently we fail to eliminate some noop stores if there is a kill-able store between the starting def and the load. This is because we eliminate noop stores first. In practice it seems like eliminating noop stores after the main elimination for a def covers slightly more cases. This patch improves the number of stores slightly in 2 cases for X86 -O3 -flto Same hash: 235 (filtered out) Remaining: 2 Metric: dse.NumRedundantStores Program base patch diff test-suite...ce/Benchmarks/PAQ8p/paq8p.test 2.00 3.00 50.0% test-suite...006/453.povray/453.povray.test 18.00 21.00 16.7% There might be other phase ordering issues, but it appears that they do not show up in the test-suite/SPEC2000/SPEC2006. We can always tune the ordering later. Partly fixes PR47887. Reviewed By: asbirlea, zoecarver Differential Revision: https://reviews.llvm.org/D89650
-
Louis Dionne authored
We shouldn't be including the libc++ headers from the source tree directly, since those headers are not configured (i.e. they don't use the __config_site) header like they should, which could mean up to ABI differences Reviewed By: vitalybuka, phosek, ldionne Differential Revision: https://reviews.llvm.org/D89915
-
Tres Popp authored
This op returns a boolean value indicating whether 2 ops are broadcastable or not. This follows the same logic as the other ops with broadcast in their names in the shape dialect. Concretely, shape.is_broadcastable returning true implies that shape.broadcast will not give an error, and shape.cstr_broadcastable will not result in an assertion failure. Similarly, false implies an error or assertion failure.
-
Dmitry Vyukov authored
Simplifies the code and fixes the build on SPARC. See discussion in: http://lists.llvm.org/pipermail/llvm-dev/2020-October/145937.html Author: glaubitz (John Paul Adrian Glaubitz) Reviewed-in: https://reviews.llvm.org/D89940
-
Roman Lebedev authored
If we've got an SCEVPtrToIntExpr(op), where op is not an SCEVUnknown, we want to sink the SCEVPtrToIntExpr into an operand, so that the operation is performed on integers, and eventually we end up with just an `SCEVPtrToIntExpr(SCEVUnknown)`. Reviewed By: mkazantsev Differential Revision: https://reviews.llvm.org/D89692
-
Roman Lebedev authored
And use it to model LLVM IR's `ptrtoint` cast. This is essentially an alternative to D88806, but with no chance for all the problems it caused due to having the cast as implicit there. (see rG7ee6c402) As we've established by now, there are at least two reasons why we want this: * It will allow SCEV to actually model the `ptrtoint` casts and their operands, instead of treating them as `SCEVUnknown` * It should help with initial problem of PR46786 - this should eventually allow us to not loose pointer-ness of an expression in more cases As discussed in [[ https://bugs.llvm.org/show_bug.cgi?id=46786 | PR46786 ]], in principle, we could just extend `SCEVUnknown` with a `is ptrtoint` cast, because `ScalarEvolution::getPtrToIntExpr()` should sink the cast as far down into the expression as possible, so in the end we should always end up with `SCEVPtrToIntExpr` of `SCEVUnknown`. But i think that it isn't the best solution, because it doesn't really matter from memory consumption side - there probably won't be *that* many `SCEVPtrToIntExpr`s for it to matter, and it allows for much better discoverability. Reviewed By: mkazantsev Differential Revision: https://reviews.llvm.org/D89456
-
Michael Roe authored
Differential revision: https://reviews.llvm.org/D90321
-
Vitaly Buka authored
From D89768
-
River Riddle authored
Previously they were separated into "instance" and "kind" aliases, and also required that the dialect know ahead of time all of the instances that would have a corresponding alias. This approach was very clunky and not ergonomic to interact with. The new approach is to provide the dialect with an instance of an attribute/type to provide an alias for, fully replacing the original split approach. Differential Revision: https://reviews.llvm.org/D89354
-
Vitaly Buka authored
-
Xun Li authored
The existing logic in determining whether an alloca should live on the frame only looks explicit def-use relationships. However a value defined by an alloca may be implicitly needed across suspension points, either because an alias has across-suspension-point def-use relationship, or escaped by store/call/memory intrinsics. To properly handle all these cases, we have to properly visit the alloca pointer up-front. Thie patch extends the exisiting alloca use visitor to determine whether an alloca should live on the frame. Differential Revision: https://reviews.llvm.org/D89768
-
Georgii Rymar authored
We have the `--check-prefixes` invocation for a single suffix. It is cleaner to use `--check-prefix` in this case.
-
Vitaly Buka authored
Almost any sanitizer can try to install interceptors.
-
Johannes Doerfert authored
This adds some initial content as well as structure to the new OpenMP Sphinx documentation hosted at http://openmp.llvm.org/docs/ . The content contains some useful links but most pages are still empty. This uses a "custom" theme which is a copy of the default "agogo" one with minor modifications to get a nicer table of content in the sidebar. This way we can also adjust the theme as we go. Reviewed By: jhuber6, JonChesterfield Differential Revision: https://reviews.llvm.org/D90256
-
Johannes Doerfert authored
ParseOpenMP.cpp was pretty much clang-formatted except a few minor locations. Let's make it a clang formatted file. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D90440
-
Fangrui Song authored
If MCContext has an error, MCAssembler::layout may stop early and some MCFragment's may not finalize. In the Linux kernel, arch/x86/lib/memcpy_64.S could trigger the assert before "x86_64: Change .weak to SYM_FUNC_START_WEAK for arch/x86/lib/mem*_64.S"
-
sameeran joshi authored
From below mentioned standard references OpenACC 3.0 Standards document 840 • A program may not branch into or out of an OpenACC parallel construct OpenMP 5.0 Standards document A program that branches into or out of a parallel region is non-conforming. This patch Resolves the issue of exit out of a parallel region, other branching out issues like goto statements are not handled with this patch. Moves code from D87906 to be reused by other OpenMP/OpenACC to check-directive-structure.h. Adds support in OpenMP parallel construct and a test case to verify. Reviewed By: clementval Differential Revision: https://reviews.llvm.org/D88655
-
Vitaly Buka authored
Fixes check-all with LLVM_USE_SANITIZER=Memory
-
Mehdi Amini authored
It is semantically equivalent, but the intent was really lost there. This fixes a warning/error from MSVC as well, see PR48013
-
Fangrui Song authored
-
Michael Liao authored
-
Fangrui Song authored
-
Jonas Devlieghere authored
Allow standalone builds to inherit the LLVM_LIT_ARGS.
-
Fangrui Song authored
[MC] Add SMLoc to MCStreamer::emitSymbolAttribute and report changed binding warnings/errors for ELF
-
LLVM GN Syncbot authored
-
Liu, Chen3 authored
This patch is mainly doing two things: 1. Adding support for parentheses, making the combination of target features more diverse; 2. Making the priority of ’,‘ is higher than that of '|' by default. So I need to make some change with PTX Builtin function. Differential Revision: https://reviews.llvm.org/D89184
-
Jonas Devlieghere authored
Temporarily XFAIL'ing TestTypeGetModule.py while the DWO failure is being investigated.
-
Ilya Bukonkin authored
Differential revision: https://reviews.llvm.org/D88483
-
Arthur Eubanks authored
prune-eh will not be ported to the NPM. Instead, a combination of function-attrs and simplifycfg should be used (as described in https://reviews.llvm.org/D44415). This pins most tests using -prune-eh to the legacy PM. Some of these were testing legacy PM infra (mostly the CGPassManager). Some of these can be tested in the NPM using function-attrs and simplifycfg. One interesting case is simplenoreturntest.ll. function-attrs + simplifycfg does not yet make a caller of a caller of a noreturn function end with unreachable like prune-eh does. That can be added in the future. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D90012
-
Alina Sbirlea authored
Pass AAQI in places where it was missed. Part of D89991. Author: haoranxu510 (Haoran Xu)
-
Jonas Devlieghere authored
Recognize the __apple_ sections as debug info sections and make sure they're included in the --show-sections-sizes output. Differential revision: https://reviews.llvm.org/D90433
-