- Dec 16, 2023
-
-
Augusto Noronha authored
This reverts commit 9cdb825a.
-
Augusto Noronha authored
This reverts commit e55bda06.
-
Lei Huang authored
On Linux PPC call lib func ``frexpl`` for calls to ``frexp()`` for input of type PPCDoubleDouble. Fixes bug: https://github.com/llvm/llvm-project/issues/64426
-
quic-akaryaki authored
The tests added in PR #65815 fail on Apple buildbot because the `od` printed addresses have a different number of leading zeroes. Mask leading zeroes with a regex. To support the `od` output format on z/OS, add `--ignore-case` to FileCheck.
-
Peiming Liu authored
Note that at the current moment, the newly-introduced `SparseTensorLevel` classes are far from complete, we plan to migrate code generation related to accessing sparse tensor levels to these classes in the near future to simplify `LoopEmitter`.
-
Paul Kirth authored
This reverts commit 08b306dc. it causes the following assertion failure: llvm/include/llvm/CodeGen/MachineFrameInfo.h:530: int64_t llvm::MachineFrameInfo::getObjectOffset(int) const: Assertion `!isDeadObjectIndex(ObjectIdx) && "Getting frame offset for a dead object?"' failed.
-
Aiden Grossman authored
The llvm-exegesis unit tests currently fail on PPC after ceb196d9 landed as the default page size on most common linux distributions for PPC is 64kb rather than 4kb. This patch changes the memory mappings to have addresses as multiples of 64kb rather than multiples of 4kb to fix this issue.
-
Louis Dionne authored
This patch fixes constexpr default initialization of empty arrays and improves the tests accordingly. Fixes #74375
-
Valentin Clement (バレンタイン クレメン) authored
Make sure we only load box and read its bounds when it is present. - Add `AddrAndBoundInfo` struct to be able to carry around the `addr` and `isPresent` values. This is likely to grow so we can make all the access in a single `fir.if` operation.
-
Arthur Eubanks authored
Use update_llc_test_checks.py. Split out jump table tests into separate file since we don't want to check the exact instruction sequence for it.
-
Florian Hahn authored
As suggested post-commit for a0022719, unswitch the condition in replaceUsesWithIf to simplify the check.
-
Shilei Tian authored
Use of VLA can cause compile warning that was introduced in D156565. This patch implements a simple stack/heap-based VLA that can miminc the behavior of an actual VLA and prevent the warning. By default the stack accomodates the elements. If the number of emelements is greater than N, which by default is 8, a heap buffer will be allocated and used to acccomodate the elements.
-
dhruvachak authored
With this change, TargetRegionOpId is no more used and hence deleted.
-
Jon Roelofs authored
Apparently some BOLT bots build with a pre-installed system clang, and others use the just-built one. These two clangs now behave slightly differently when it comes to ifunc codegen after https://github.com/llvm/llvm-project/pull/74902 Change the test to accept both patterns.
-
Joseph Huber authored
Summary: Nvidia uses ELF as its file format for cubin files. This patch adds support to allow detecting the architecture using the ELF flags only. This will be used in the offloading runtime in the future. These values are completely undocumented. They were determined by manually modifying the ELF header of the cubin and checking the output of the `nvisasm` tool.
-
Teresa Johnson authored
The on-disk hash table for the memprof writer holds copies of all the memprof records to be written. These hold a lot of memory in aggregate, due to the lists of alloc sites (which each have a list of context frames) and call sites. Clear each one after emitting it. This drops the peak memory when writing a very large indexed memprof profile by about 2.5G.
-
Teresa Johnson authored
The MemProf InstrProfWriter uses a couple of MapVector for building the lists of records it needs to write. Once its entries are all added to the associated OnDiskChainedHashTableGenerator, it is no longer used. Clearing these MapVectors, which grow quite large for large profiles, saved 4G for a large memory profile.
-
Rob Suderman authored
Includes end-to-end tests for the cpu running, folders using `libm` and lowerings to the corresponding `libm` operations.
-
vdonaldson authored
Branching to an endif statement from outside of the if is nonconformant: subroutine jump(n) goto 6 if (n == 3) then goto 7 6 end if print *, 'pass' return 7 print *, 'fail' end However, this branch was permitted up to f90. Account for this usage when rewriting if constructs and if statements by suppressing rewriting if the end statement is labeled. -
Philip Reames authored
Just reducing a bit of code duplication.
-
Jon Roelofs authored
The codegen change broke one of the BOLT tests.
-
Philip Reames authored
This reverts commit 71bbfabd. Breaks check-flang on x86_64 host.
-
Ulrich Weigand authored
Support passing and returning values of single-element vector types (i.e. <1 x i128> and <1 x fp128>). Now that i128 is a legal type, supporting these types can be done simply by providing a getRegisterTypeForCallingConv implementation that handles them. Fixes https://github.com/llvm/llvm-project/issues/61291
-
Alex Langford authored
These appear to be unused.
-
SingleAccretion authored
It is beneficial to preallocate a certain number of pages in the linear memory (i. e. use the "minimum" field of WASM memories) so that fewer "memory.grow"s are needed at startup. So far, the way to do that has been to pass the "--initial-memory" option to the linker. It works, but has the very significant downside of requiring the user to know the size of static data beforehand, as it must not exceed the number of bytes passed-in as "--initial-memory". The new "--initial-heap" option avoids this downside by simply appending the specified number of pages to static data (and stack), regardless of how large they already are. Ref: https://github.com/emscripten-core/emscripten/issues/20888.
-
Martin Storsjö authored
The llvm::sys::ExecuteAndWait function doesn't resolve the file to be executed from $PATH - i.e. it is similar to execv(), not execvp(). Due to this, specifying a --preprocessor argument to llvm-windres only worked if it specified an absolute path to the preprocessor executable. This was observed as one of the issues in https://github.com/msys2/MINGW-packages/pull/19157. Before d2fa6b69, this usage of --preprocessor seemed to work, because the first argument of Args[] was ignored and llvm-windres just executed the autodetected clang executable regardless. Also improve the error messages printed if preprocessing failed. (If the preprocessor executable was started but itself returned an error, we don't get any error string.)
-
Martin Storsjö authored
If passing the windres option --preprocessor, the default arguments "-E -xc -DRC_INVOKED" aren't passed. If these are passed explicitly by the user via --preprocessor-arg instead, we need to make sure that "-xc" is passed before the input filename, as this compiler/preprocessor option only has an effect on input files that follow it. This fixes one of the issues with llvm-windres observed in https://github.com/msys2/MINGW-packages/pull/19157.
-
Martin Storsjö authored
This allows avoiding including some stray DWARF sections (e.g. from toolchain provided files), when writing a PDB file. While that probably could be considered reasonable default behaviour, PDB writing and including DWARF sections are two entirely orthogonal concepts, and GNU ld (which can generate PDB files these days) does include DWARF unless -S/-s is passed, when creating a PDB.
-
Martin Storsjö authored
These allow tweaking what gets implied by /debug and /debug:dwarf.
-
Martin Storsjö authored
Most option handling is like it was before; the last /debug: option takes effect. However, the options /debug:dwarf or /debug:symtab don't reset all flags into the specific behaviour they chose before - e.g. if an earlier option enables writing a PDB, a later /debug:dwarf or /debug:symtab doesn't disable that. This allows combining these options with options for controlling PDB writing, for finetuning what is done.
-
Martin Storsjö authored
Don't treat the options as unique enum items, but more as flags that can be composed, like the /opt: options. This still only processes the last option on the command line though, so the behaviour should still remain exactly as it was, in all corner cases.
-
Martin Storsjö authored
This shouldn't have any user visible effect, but makes the logic within the linker implementation more explicit. Note how DWARF debug info sections were retained even if enabling a link with PDB info only; that behaviour is preserved.
-
Andrzej Warzyński authored
Updates the vectorisation of 1D depthwise convolution when flattening the channel dimension (introduced in #71918). In particular - how the convolution filter is "flattened". ATM, the vectoriser will use `vector.shape_cast`: ```mlir %b_filter = vector.broadcast %filter : vector<4xf32> to vector<3x2x4xf32> %sc_filter = vector.shape_cast %b_filter : vector<3x2x4xf32> to vector<3x8xf32> ``` This lowering is not ideal - `vector.shape_cast` can be convenient when it's folded away, but that's not happening in this case. Instead, this patch updates the vectoriser to use `vector.shuffle` (the overall result is identical): ```mlir %sh_filter = vector.shuffle %filter, %filter [0, 1, 2, 3, 0, 1, 2, 3] : vector<4xf32>, vector<4xf32> %b_filter = vector.broadcast %sh_filter : vector<8xf32> to vector<3x8xf32> ``` -
Arthur Eubanks authored
In #74514 and #74778 we marked various instrumentation-added sections as large. This causes an extra PT_LOAD segment if using the small code model. Since people using the small code model presumably aren't hitting relocation limits, disable this when using the small code model to avoid the extra segment. This uses Module::getCodeModel() which isn't necessarily reliable since it reads module metadata (which right now only the clang frontend sets), but it would be nice to get to a point where we reliably put this sort of information (e.g. PIC/code model/etc) in the IR. This requires duplicating the existing tests since opt/llc currently don't set these metadata. If we get to a point where they do set the code model metadata based on command line arguments then we can deduplicate these tests.
-
Valentin Clement (バレンタイン クレメン) authored
`baseAddr` is not used in `genBaseBoundsOps` just remove it.
-
Aiden Grossman authored
This patch adds in validation at two different levels that address annotations are page aligned. This is necessary as otherwise the mmap calls will fail as MAP_FIXED/MAP_FIXED_NOREPLACE require page aligned addresses. This happens silently in the subprocess. This patch adds validation at snippet parsing time to give feedback to the user and also adds asserts at code generation/address usage time to ensure that other users of the Exegesis APIs conform to the same requirements.
-
Florian Hahn authored
As suggested post-commit for a0022719, remove the stale comment, SetVector is no longer used here.
-
Reid Kleckner authored
Issue is covered by existing test llvm/test/Transforms/SLPVectorizer/RISCV/phi-const.ll See issue #75632 for ideas for how we could catch these more easily in the future.
-
Peiming Liu authored
-
Philip Reames authored
If we're lowering a fixed length vector load or store which happens to exactly VLEN in size (when VLEN is exactly known), we can use a whole register load or store instead of the unit strided variants. This doesn't require a vsetvli in some cases, allows additional flexibility of vsetvli cases in others, and doesn't have a runtime dependency on the value of VL.
-