- Dec 04, 2021
-
-
Uday Bondhugula authored
Test case files at most places in MLIR uses hyphens and not underscores. A counter-pattern was somehow started to use underscores in some places. Rename test cases in test/mlir-cpu-runner to use hyphens so that it's consistent at least within its directory. Differential Revision: https://reviews.llvm.org/D114672
-
Philip Reames authored
This reverts change 2c391a5a/D87551. As noted in the llvm-dev thread "LICM as canonical form" sent earlier today, introducing this was a major design change made without sufficient cause. A profile driven LICM is not an unreasonable design, it simply is not what we have. Switching to such a model requires a lot more work than just this patch, and broad aggeement that is the right direction for the optimizer as a whole. Worth noting is that all the tests included in the reverted changed are probably handled if we allow running unconstrained LICM, and later run LoopSink. As such, we have no public examples which motivate a profit based hoisting approach.
-
Matthias Springer authored
Also set insertion point right before calling `bufferize`. No need to put an InsertionGuard anymore. Differential Revision: https://reviews.llvm.org/D114928
-
Mehdi Amini authored
Differential Revision: https://reviews.llvm.org/D115085
-
Kevin Athey authored
A simple unit test to demonstrate the flags working correctly. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D114485
-
wren romano authored
Addresses https://bugs.llvm.org/show_bug.cgi?id=52410 Depends on D114192 Reviewed By: aartbik, mehdi_amini Differential Revision: https://reviews.llvm.org/D114118
-
Jordan Rupprecht authored
-
Nico Weber authored
-
Fangrui Song authored
-
natashaknk authored
This reverts commit 13bdb7ab. The commit introduced/uncovered an unintended bug in models containing Conv2D. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D115079
-
Nick Desaulniers authored
Building -march=armv6k Linux kernels with -mtp=cp15 fails to compile: error: hardware TLS register is not supported for the arm sub-architecture @ardb found docs for ARM1176JZF-S (ARMv6K) that reference hard thread pointer. Relax our ARMv6 check for cases where we're targeting ARM via -marm (vs Thumb1 via -mthumb). This more closely matches the KConfig requirements for where we plan to use these (ie. ARMv6K, ARMv7 (arm or thumb2)). As @peter.smith mentions: on armv5 we can write the instruction to read/write to CP15 C13 with the ThreadID opcode. However on no armv5 implementation will the CP15 C13 have a Thread ID register. The GCC intent seems to be whether the instruction is encodable rather than check what the CPU supports. Link: https://github.com/ClangBuiltLinux/linux/issues/1502 Link: https://developer.arm.com/documentation/ddi0301/h/system-control-coprocessor/system-control-processor-registers/c13--thread-and-process-id-registers Reviewed By: ardb, peter.smith Differential Revision: https://reviews.llvm.org/D114116
-
Benoit Jacob authored
On my 96-core cloudtop 'machine', it seems unnecessary to always start 96 threads upfront... particularly as the ThreadPool is created even with -mlir-disable-threading. Things like the resuling spew in GDB and the obfuscated output of `(gdb) info threads` are my motivation here, but it probably also doesn't hurt for at least some efficiency metrics to avoid creating many threads upfront. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D115019
-
Arthur Eubanks authored
As mentioned in D106585, this causes non-determinism, which can also be shown by this test case being flaky without this patch. We were using the APSInt's bit width for hashing, but not for checking for equality. APInt::isSameValue() does not check bit width. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D115054
-
Amy Kwan authored
Upon testing the use of test-release.sh on AIX, the script initially fails because chrpath is not present on AIX. This patch adds checks for AIX and allows the script to continue running to completion. Differential Revision: https://reviews.llvm.org/D115046
-
Vitaly Buka authored
It's very simple, fast and efficient for the stack depot compression if used on entire pointers. Reviewed By: morehouse, kstoimenov Differential Revision: https://reviews.llvm.org/D114918
-
Vitaly Buka authored
It's similar to back_insert_iterator Needed for D114924 Reviewed By: morehouse, kstoimenov Differential Revision: https://reviews.llvm.org/D114980
-
Vitaly Buka authored
Reviewed By: kstoimenov Differential Revision: https://reviews.llvm.org/D115000
-
Choongwoo Han authored
Using `_mkdir` of CRT in Asan Init leads to launch failure and hanging in Windows. You can trigger it by calling: > set ASAN_OPTIONS=log_path=a/a/a > .\asan_program.exe And their crash dump shows the following stack trace: ``` _guard_dispatch_icall_nop() __acrt_get_utf8_acp_compatibility_codepage() _mkdir(const char * path) ``` I guess there could be a cfg guard in CRT, which may lead to calling uninitialized cfg guard function address. Also, `_mkdir` supports UTF-8 encoding of the path and calls _wmkdir, but that's not necessary for this case since other file apis in sanitizer_win.cpp assumes only ANSI code case, so it makes sense to use CreateDirectoryA matching other file api calls in the same file. Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D114760
-
Florian Hahn authored
SLPVectorizer runs *after* the extra vector passes.
-
Florian Hahn authored
Add -NOT lines to ensure that no extra passes are run if -extra-vectorizer-passes is not specified. Also add a loop that actually gets vectorized in preparation for D115052.
-
Peter Collingbourne authored
With C++17 the exception specification has been made part of the function type, and therefore part of mangled type names. However, it's valid to convert function pointers with an exception specification to function pointers with the same argument and return types but without an exception specification, which means that e.g. a function of type "void () noexcept" can be called through a pointer of type "void ()". We must therefore consider the two types to be compatible for CFI purposes. We can do this by stripping the exception specification before mangling the type name, which is what this patch does. Differential Revision: https://reviews.llvm.org/D115015
-
Hans Wennborg authored
Seccomp-BPF-sandboxed processes rely on being able to process SIGSYS signals. Differential revision: https://reviews.llvm.org/D115057
-
Leonard Chan authored
It's possible for this test not to pass if the libc used does not provide unwind info for raise. We can replace it with __builtin_cast, which can lead to a SIGTRAP on x86_64 and a SIGILL on aarch64. Using this alternative, a nop is needed before the __builtin_cast. This is because libunwind incorrectly decrements pc, which can cause pc to jump into the previous function and use the incorrect FDE. Differential Revision: https://reviews.llvm.org/D114818
-
Choongwoo Han authored
When Control Flow Guard Check is inserted, funclet bundle was not checked. Therefore, it didn't generate code correctly when a target function has "funclet" bundle. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D114914
-
Mitch Phillips authored
Google-signed apexes appear on Android build servers' symbol files as being under /apex/com.google.android.<foo>/. In reality, the apexes are always installed as /apex/com.android.<foo>/ (note the lack of 'google'). In order for local symbolization under hwasan_symbolize to work correctly, we also try the 'google' directory. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D114919
-
Stanislav Mekhanoshin authored
-
Stanislav Mekhanoshin authored
Two-address pass works right before RA and if an immediate was folded into an instruction there is nothing to remove the dead def. We end up with something like: v_mov_b32_e32 v14, 0xc1700000 v_mov_b32_e32 v14, 0x41200000 v_fmaak_f32 v51, s67, v19, 0xc1700000 v_fmaak_f32 v38, v51, v19, 0x4120000 The patch kills the dead move instruction right in the folding. Differential Revision: https://reviews.llvm.org/D114999
-
Simon Pilgrim authored
[DAG] PromoteIntRes_FunnelShift - rename shift Amount variable to Amt to prevent line overflow. NFC.
-
Philip Reames authored
This fixes a bug in 740057d1. There's two ways to describe the issue: * One caller hasn't yet proven nocapture on the argument. Given that, the inference routine is responsible for bailing out on a potential capture. * Even if we know the argument is nocapture, the access inference needs to traverse the exact set of users the capture tracking would (or exit conservatively). Even if capture tracking can prove a store is non-capturing (e.g. to a local alloc which doesn't escape), we still need to track the copy of the pointer to see if it's later reloaded and accessed again. Note that all the test changes except the newly added ones appear to be false negatives. That is, cases where we could prove writeonly, but the current code isn't strong enough. That's why I didn't spot this originally.
-
Simon Pilgrim authored
Helps appease MSVC which is complaining about "fatal error C1061: compiler limit: blocks nested too deeply" - we already do the same thing for avx512.mask.store intrinsics. This is only a stopgap solution until another else-if case needs adding - we really need to refactor this chain of ifs properly.
-
Muhammad Omair Javaid authored
minidebuginfo-set-and-hit-breakpoint.test is failing on Arm/Linux most probably due to an ill formed binary after removal of certain sections from executable. I am marking it as XFAIL for further investigation.
-
David Green authored
Try to appease the microsoft compiler which is apparently running out of if statements. Separate the new ARM code into a separate function to keep it simpler.
-
David Green authored
I'm not having a lot of luck with the microosft compiler recently. Maybe this will help it with its errors: llvm\lib\IR\AutoUpgrade.cpp(3726): fatal error C1061: compiler limit: blocks nested too deeply If not, it's a good code cleanup anyway.
-
Guillaume Chatelet authored
-
Nico Weber authored
In release+sym builds (-O2 -g), reduces time to link `clang` from 2.3s to 1.3s (-42%). In debug builds (-g), reduces time to link `clang` from 5.4s to 4.5s (-17.4%). See the phab review for full `ministat` numbers. In the CMake build this is opt-in via LLVM_USE_SPLIT_DWARF. Since the GN build is targeted at developers, enabling it by default seems like a better default setting here. (If it turns out to cause problems, we can add an opt-out.) Time to load the binary into gdb and to set a breakpoint is unchanged. Time from `run` to hitting a breakpoint in `main` feel a bit faster (~4s -> ~2s), but I dind't do a careful statistical anlysis for this. Differential Revision: https://reviews.llvm.org/D115040
-
Florian Hahn authored
Suggested in D114872.
-
- Dec 03, 2021
-
-
Guillaume Chatelet authored
We want to simplify the build system and rely on code to do the implementation selection. This is in preparation of adding a Bazel configuration (D114712). Differential Revision: https://reviews.llvm.org/D115034
-
Balázs Kéri authored
Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D114602
-
Stephen Tozer authored
Prior to this patch, tail duplication handled debug info poorly - specifically, debug instructions would be dropped instead of being set undef, potentially extending the lifetimes of prior debug values that should be killed. The pass was also very aggressive with dropping debug info, dropping debug info even when the SSA value it referred to was still present. This patch attempts to handle debug info more carefully, checking to see whether each affected debug value can still be live, setting it undef if not. Reviewed By: jmorse Differential Revision: https://reviews.llvm.org/D106875
-
David Green authored
This adjusts all the MVE and CDE intrinsics now that v2i1 is a legal type, to use a <2 x i1> as opposed to emulating the predicate with a <4 x i1>. The v4i1 workarounds have been removed leaving the natural v2i1 types, notably in vctp64 which now generates a v2i1 type. AutoUpgrade code has been added to upgrade old IR, which needs to convert the old v4i1 to a v2i1 be converting it back and forth to an integer with arm.mve.v2i and arm.mve.i2v intrinsics. These should be optimized away in the final assembly. Differential Revision: https://reviews.llvm.org/D114455
-