- Aug 13, 2021
-
-
zoecarver authored
Differential Revision: https://reviews.llvm.org/D107920
-
Craig Topper authored
[RISCV] Teach vsetvli insertion pass that it doesn't need to insert vsetvli for unit-stride or strided loads/stores in some cases. For unit-stride and strided load/stores we set the SEW operand of the pseudo instruction equal the EEW in the opcode. The LMUL of the pseudo instruction is the LMUL we want. These instructions calculate EMUL=(EEW/SEW) * LMUL. We can use this to avoid changing vtype if the SEW/LMUL of the previous vtype matches the EEW/EMUL ratio we need for the instruction. Due to how the global analysis works, we can only do this optimization when the previous vsetvli was produced in the block containing the store. We need to know in the first phase if the vsetvli will be inserted so we can propagate information to the successors in the second phase correctly. This means we can't depend on predecessors. Reviewed By: rogfer01 Differential Revision: https://reviews.llvm.org/D106601
-
Craig Topper authored
-
Craig Topper authored
Instead of using scalar size divided by 8 for segment loads, get the alignment from clang's type system. Make vleff match for consistency. Also replace uses of getPointerElementType() which will be removed as part of the OpaquePtr changes. Reviewed By: HsiangKai Differential Revision: https://reviews.llvm.org/D106738
-
Roman Lebedev authored
We really shouldn't deal with a conditional branch that can be trivially constant-folded into an unconditional branch. Indeed, barring failure to trigger BB reprocessing, that should be true, so let's assert as much, and hope the assertion never fires. If it does, we have a bug to fix.
-
Roman Lebedev authored
Mainly, i want to add an assertion that `SimplifyCFGOpt::simplifyCondBranch()` doesn't get asked to deal with non-unconditional branches, and if i do that, then said assertion fires on existing tests, and this is what prevents it from firing.
-
Kazu Hirata authored
The function was introduced without a use on Sep 16, 2011 in commit 5acab501.
-
Jon Chesterfield authored
This reverts commit b6113548.
-
Sanjay Patel authored
This is a direct translation of the select folds added with D53033 / D53036 and another step towards canonicalization using the intrinsics (see D98152).
-
Sanjay Patel authored
-
peter klausler authored
Recent work in runtime assignments failed an assertion in fir-dev while running tests (flang/test/Semantics/defined-ops.f90). This test didn't fail in llvm-project/main because only the "new" Arm driver is used now, and that only builds runtime derived type information tables when some debug dumping options are enabled. So add a reproducing test case to another test that is run with -fdebug-dump-symbols, and fix the crash by emitting special procedure binding information only for type-bound generic ASSIGNMENT(=) bindings that are relevant to the runtime support library for use in intrinsic assignment of derived types. Differential Revision: https://reviews.llvm.org/D107918
-
Fangrui Song authored
New ports in glibc typically don't define ELF_INITFINI, so DT_INIT/DT_FINI support is disabled. (rhel ppc64le likely patches their glibc this way as well.) musl can disable DT_INIT/DT_FINI via -DNO_LEGACY_INITFINI. So we cannot guarantee ctor()/dtor() will be printed.
-
Jon Chesterfield authored
Fixes miscompile of calls into ocml. Bug 51445. The stack variable `double __tmp` is moved to dynamically allocated shared memory by CGOpenMPRuntimeGPU. This is usually fine, but when the variable is passed to a function that is explicitly annotated address_space(5) then allocating the variable off-stack leads to a miscompile in the back end, which cannot decide to move the variable back to the stack from shared. This could be fixed by removing the AS(5) annotation from the math library or by explicitly marking the variables as thread_mem_alloc. The cast to AS(5) is still a no-op once IR is reached. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D107971
-
- Aug 12, 2021
-
-
maekawatoshiki authored
Currently, LNICM pass does not support sinking instructions out of loop nest. This patch enables LNICM to sink down as many instructions to the exit block of outermost loop as possible. Reviewed By: Whitney Differential Revision: https://reviews.llvm.org/D107219
-
Aaron Ballman authored
This is a fix for commit d2c5cbc3
-
Hongtao Yu authored
Previoulsy debug-info-for-profiling and pseudo-probe-for-profiling are mutual exclusive because they compete the dwarf discrimnator for callsites on the IR. This changes allows to use the two switches together. The side effect is that callsite discriminators will be taken by pseudo probe, while discriminators for other instructions are still available for AutoFDO use. This is less than ideal, however, it still allows us a chance to smoothly transition from AutoFDO to CSSPGO, by collecting both profiles from a CSSPGO binary. Reviewed By: wenlei, wmi Differential Revision: https://reviews.llvm.org/D107876
-
Sanjay Patel authored
This was just added with 6de1dbbd , and I missed pulling the extra arg from the final revision.
-
Johannes Doerfert authored
If we cast a function at the call site it is hard(er) to get the rewrite correct, let's not attempt it for now. Fixes PR51448.
-
Johannes Doerfert authored
-
Johannes Doerfert authored
See D106309. Differential Revision: https://reviews.llvm.org/D107906
-
David Green authored
Given a constant operand, the MVE and DAGCombine combines could fight, each redistributing in the opposite order. Add a guard to the MVE vecreduce distribution to prevent that.
-
LLVM GN Syncbot authored
-
Florin Iucha authored
Add a check for enforcing minimum length for variable names. A default minimum length of three characters is applied to regular variables (including function parameters). Loop counters and exception variables have a minimum of two characters. Additionally, the 'i', 'j' and 'k' are accepted as legacy values. All three sizes, as well as the list of accepted legacy loop counter names are configurable.
-
Sanjay Patel authored
This diff was accidentally committed with: 1b5a1958
-
Sanjay Patel authored
This is an adaptation of D41603 and another step on the way to canonicalizing to the intrinsic forms of min/max. See D98152 for status.
-
Sanjay Patel authored
-
Victor Huang authored
When depth > 0, callee frame address is used to compute the return address of callee producing improper return address. This patch adds the fix to use caller frame address to compute the return address of callee. Reviewed By: nemanjai, #powerpc Differential revision: https://reviews.llvm.org/D107646
-
Liqiang Tao authored
Move InlineOrder to separated file. Reviewed By: kazu Differential Revision: https://reviews.llvm.org/D107831
-
Sven van Haastregt authored
Add CHECK-LABELs and fix string substitution to actually match the previous definition.
-
Michael Kruse authored
The compilation of the file 526.blender_r/src/blender/source/blender/editors/space_logic/logic_ops.c from the SPEC CPU 2017 benchmarks took excessive time to compute InvalidDomain.gist_params(Ctx) Simplifying beforehand, specifically using isl_set_detect_equalities, reduces the computation time to a negible level again. -
Dmitry Vyukov authored
The default compiler-generated MutexSet::Desc::operator=() now contains memcpy() call since Desc become bigger. This fails in debug mode since we call interceptor from within the runtime. Define own operator=() using internal_memcpy(). This also makes copy ctor necessary, otherwise: tsan_mutexset.h:33:11: warning: definition of implicit copy constructor for 'Desc' is deprecated because it has a user-declared copy assignment operator And if we add copy ctor, we also need the default ctor since it's called by MutexSet ctor. Depends on D107911. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D107959
-
Florian Hahn authored
Dependent commit a1ef81de has been reverted in a1ef81de.
-
Mehdi Amini authored
This reverts commit a1ef81de. Broke the MLIR buildbot.
-
Anton Afanasyev authored
-
Dmitry Vyukov authored
We currently memorize u64 id + epoch for each mutex. The new tsan runtime will memorize address + stack_id instead. But switching to address + stack_id requires new trace, which in turn requires new MutexSet and some other changes. Extend MutexSet to support both new and old info to break the dependency cycles. The plan is to remove the old info/methods after switching to the new runtime. Reviewed By: vitalybuka, melver Differential Revision: https://reviews.llvm.org/D107910
-
Stuart Ellis authored
Introducing a plugin API and a simple HelloWorld Plugin example. This patch adds the `-load` and `-plugin` flags to frontend driver and the code around using custom frontend actions from within a plugin shared library object. It also adds to the Driver-help test to check the help option with the updated driver flags. Additionally, the patch creates a plugin-example test to check the HelloWorld plugin example runs correctly. As part of this, a new CMake flag (`FLANG_BUILD_EXAMPLES`) is added to allow the example to be built and for the test to run. This Plugin API has only been tested on Linux. Reviewed By: awarzynski Differential Revision: https://reviews.llvm.org/D106137
-
David Truby authored
-
Martin Storsjö authored
The existing logic for per-target libc++ include directories only seem to exist for the Gnu and Fuchsia drivers, added in ea12d779 / D89013. This is less generic than the corresponding case in the Gnu driver, but matches the existing level of genericity in the MinGW driver (and others too). Differential Revision: https://reviews.llvm.org/D107893
-
Martin Storsjö authored
Consistently use 'w64' as vendor string; it was 'pc' for the original i686 triple added in 91bd6c92, but the later x86_64 triple used 'w64' as vendor, added in d6c1f37f. When the arm triples were added in c84ad73a, the differing vendors were copied over accidentally to the arm targets too. When using per-target runtime directories, having inconsistent vendor parts of the target triples is fatal. Differential Revision: https://reviews.llvm.org/D107894
-
Martin Storsjö authored
In e72403f9, we added the flag "--no-dynamicbase" for disabling the dynamicbase flag which we set by default. At the time, ld.bfd didn't have any corresponding option (as ld.bfd defaulted to not setting the flag). Almost at the same time, corresponding options were added to ld.bfd for disabling it (while it was being enabled by default), with a different name, "--disable-dynamicbase". Thus add the "--disable-dynamicbase" option. Make this default one advertised in the help listing, but keep the "--no-dynamicbase" form as an alias. Also improve checking for the last option set if there are multiple ones on the same command line. Also add corresponding disable options for a lot of other flags that we set by default, also added in ld.bfd in the same commit: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=514b4e191d5f46de8e142fe216e677a35fa9c4bb Differential Revision: https://reviews.llvm.org/...
-