- Jun 07, 2024
-
-
Fangrui Song authored
Created using spr 1.3.5-bogner
-
Stanislav Mekhanoshin authored
-
Kazu Hirata authored
Changing the type of Frame::SymbolName from std::optional<std::string> to std::unique<std::string> reduces sizeof(Frame) from 64 to 32. The smaller type reduces the cycle and instruction counts by 23% and 4.4%, respectively, with "llvm-profdata show" modified to deserialize all MemProfRecords in a MemProf V2 profile. The peak memory usage is cut down nearly by half.
-
Yuxuan Chen authored
This code uses namespaces `llvm` and `llvm::json`. However, we have both `llvm::Value` and `llvm::json::Value`. Whenever any of the headers declare or include `llvm::Value`, the lookup becomes ambiguous. Fixing this by qualifying the `Value` type.
-
PiJoules authored
This adds: - A ctor accepting a start and end iterator - A ctor accepting a count and const T& - size() - subscript operators - begin() and end() iterators
-
khaki3 authored
Derived from #92480. This PR introduces reduction semantics into loops for DO CONCURRENT REDUCE. The `fir.do_loop` operation now invisibly has the `operandSegmentsizes` attribute and takes variable-length reduction operands with their operations given as `fir.reduce_attr`. For the sake of compatibility, `fir.do_loop`'s builder has additional arguments at the end. The `iter_args` operand should be placed in front of the declaration of result types, so the new operand for reduction variables (`reduce`) is put in the middle of arguments.
-
Teresa Johnson authored
The ContextIds set on the ContextNode struct is not technically needed as we can compute it from either the callee or caller edge context ids. Remove it and add a helper to recompute from the edges on demand. Also add helpers to compute the node allocation type and whether the context ids are empty from the edges without needing to first compute the node's context id set, to minimize the runtime cost increase. This yielded a 20% reduction in peak memory for a large thin link, for about a 2% time increase (which is more than offset by some other recent time efficiency improvements).
-
Brandon Wu authored
We named the intrinsics by replacing "." by "_" in the instruction conventionally, so the `vcpopv_v` where the corresponding instruction is `vcpop.v` should be named `vcpop_v`.
-
Noah Goldstein authored
The fold will replace 2 uses of `Y` we should also do fold if `Y` has 2 uses (not only oneuse). Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D159062
-
Noah Goldstein authored
-
Timm Bäder authored
We only get a "reached end of constexpr function" diagnostic otherwise.
-
Abhina Sree authored
This patch implements the following change to enable zos for death test support. https://github.com/google/googletest/pull/4527
-
Florian Mayer authored
-
Shilei Tian authored
-
aaryanshukla authored
- added at_quick_exit function - used helper file exit_handler which reuses code from atexit - atexit now calls helper functions from exit_handler - test cases and dependencies are added --------- Co-authored-by:Aaryan Shukla <aaryanshukla@google.com>
-
Alex MacLean authored
-
Piotr Zegar authored
Fixed crash caused by call to getCookedLiteral on template user defined literal. Fix base on assert in getCookedLiteral method. Closes #94454
-
Matt Arsenault authored
First, expandFMINIMUM_FMAXIMUM should be a never-fail API. The client wanted it expanded, and it can always be expanded. This logic was tied up with what the VectorLegalizer wanted. Prefer using the min/max opcodes, and unrolling if we don't have a vselect. This seems to produce better code in all the changed tests. -
Jordan Rupprecht authored
After 63cda2d1. See also a97871e0.
-
Shilei Tian authored
-
Pavel Labath authored
-
Pavel Labath authored
and two follow-up commits. The reason is the crash we've discovered when processing -gsimple-template-names binaries. I'm committing a minimal reproducer as a separate patch. This reverts the following commits: - 51dd4eaa (#92328) - 3d9d4852 (#93839) - afe6ab75 (#94400)
-
- Jun 06, 2024
-
-
Jonas Devlieghere authored
-
Jonas Devlieghere authored
-
Chaitanya authored
This PR updates removeFnAttrFromReachable in AMDGPUMemoryUtils to accept array of function attributes as argument. Helps to remove multiple attributes in one CallGraph walk.
-
Chen Zheng authored
LD_LIBRARY_PATH will become invalid when LIBPATH is also set on AIX. See below example on AIX: ``` $ldd a.out a.out needs: /usr/lib/libc.a(shr.o) Cannot find libtest.a /unix /usr/lib/libcrypt.a(shr.o) $./a.out Could not load program ./a.out: Dependent module libtest.a could not be loaded. Could not load module libtest.a. System error: No such file or directory $export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/tmp $./a.out ; echo $? 10 $export LIBPATH=./ $./a.out ; echo $? >>>>>> Now LD_LIBRARY_PATH is not used by system loader Could not load program ./a.out: Dependent module libtest.a could not be loaded. Could not load module libtest.a. System error: No such file or directory ``` This breaks many AIX LIT cases on our downstream buildbots which sets LIBPATH. --------- Co-authored-by:
Anh Tuyen Tran <34661776+anhtuyenibm@users.noreply.github.com> Co-authored-by:
David Tenty <daltenty.dev@gmail.com>
-
Timm Bäder authored
This is similar to what the current interpreter does.
-
jensmassberg authored
When trying to add a file to clang's VFS via `addFile` and a directory of the same name already exists, we run into a [out-of-bound access](https://github.com/llvm/llvm-project/blob/145815c180fc82c5a55bf568d01d98d250490a55/llvm/lib/Support/Path.cpp#L244). The problem is that the file name is [recognised as existing path]( https://github.com/llvm/llvm-project/blob/145815c180fc82c5a55bf568d01d98d250490a55/llvm/lib/Support/VirtualFileSystem.cpp#L896) and thus continues to process the next part of the path which doesn't exist. This patch adds a check if we have reached the last part of the filename and return false in that case. This we reject to add a file if a directory of the same name already exists. This is in sync with [this check](https://github.com/llvm/llvm-project/blob/145815c180fc82c5a55bf568d01d98d250490a55/llvm/lib/Support/VirtualFileSystem.cpp#L903) that rejects adding a path if a file ...
-
David Tenty authored
058e4454 added an XFAIL for this test on AIX because of a backend limitation. That backend limitation has been resolved by 0295c2ad and will be available for clang 19, so we should update the test to limit the XFAIL to clang versions before that.
-
Jon Roelofs authored
This trims off 8 bytes from llvm::SUnit: ``` --- before 2024-06-05 12:13:00 +++ after 2024-06-05 12:12:58 @@ -1,65 +1,65 @@ *** Dumping AST Record Layout 0 | class llvm::SUnit 0 | SDNode * Node 8 | MachineInstr * Instr 16 | SUnit * OrigNode 24 | const MCSchedClassDesc * SchedClass 32 | class llvm::SmallVector<class llvm::SDep, 4> Preds 32 | class llvm::SmallVectorImpl<class llvm::SDep> (base) 32 | class llvm::SmallVectorTemplateBase<class llvm::SDep> (base) 32 | class llvm::SmallVectorTemplateCommon<class llvm::SDep> (base) 32 | class llvm::SmallVectorBase<uint32_t> (base) 32 | void * BeginX 40 | unsigned int Size 44 | unsigned int Capacity 48 | struct llvm::SmallVectorStorage<class llvm::SDep, 4> (base) 4... -
OverMighty authored
#93566
-
OverMighty authored
-
Matt Arsenault authored
2214026e didn't fix an unused variable warning correctly.
-
aengelke authored
The pass iterates over the IR multiple times, but most code doesn't use AMX. Therefore, do a single iteration in advance to check whether a function uses AMX at all, and exit early if it doesn't. This makes the function-has-AMX path slightly more expensive, but AMX users probably care a lot less about compile time than JIT users (which tend to not use AMX). For us, it reduces the time spent in this pass from 0.62% to 0.12%. Ideally, we wouldn't even need to iterate over the function to determine that it doesn't use AMX.
-
aengelke authored
The size of the properties is fixed, so no need for a BitVector. Assigning small, fixed-size bitsets is faster. It's a minor performance improvement.
-
Adam Paszke authored
Otherwise code that depends on those targets being enabled might not get compiled correctly even if the targets are explicitly included in the configuration (in my case NVVM target for MLIR).
-
LLVM GN Syncbot authored
-
Max191 authored
This PR adds transpose + pack/unpack folding support for transpose ops in the form of `linalg.generic` ops. There were also some bugs with the permutation composing in the previous patterns, so this PR fixes these bugs and adds tests for them as well.
-
Mehdi Amini authored
When a float attribute is printed with Hex, we should not elide the type because it is parsed back as i64 otherwise.
-
Sam Clegg authored
Followup to #94487
-