- May 15, 2024
-
-
Mehdi Amini authored
This reverts commit 11b05914. The premerge bot is broken.
-
Freddy Ye authored
Spec reference: https://cdrdv2.intel.com/v1/dl/getContent/678938
-
Chuanqi Xu authored
Close https://github.com/llvm/llvm-project/issues/91418 Since we load the variable's initializers lazily, it'd be problematic if the initializers dependent on each other. So here we try to load the initializers of static variables to make sure they are passed to code generator by order. If we read any thing interesting, we would consume that before emitting the current declaration.
-
Nikita Popov authored
-
Nikita Popov authored
Avoid including MD5.h in a core IR header.
-
AtariDreams authored
When flattening the loop, if the GEP was inbound, it should stay inbound, because the only thing that changed is how the pointers are calculated, not the elements being accessed. Proof: https://alive2.llvm.org/ce/z/dApMpQ
-
Mircea Trofin authored
Reverts llvm/llvm-project#91859 Buildbot failures.
-
Mircea Trofin authored
Utility converting a profile coming from `compiler_rt` to bitstream, and a reader. `PGOCtxProfileWriter::write` would be used as the `Writer` parameter for `__llvm_ctx_profile_fetch` API. This is expected to happen in user code, for example in the RPC hanler tasked with collecting a profile, and would look like this: ``` // set up an output stream "Out", which could contain other stuff { // constructing the Writer will start the section, in Out, containing // the collected contextual profiles. PGOCtxProfWriter Writer(Out); __llvm_ctx_profile_fetch(&Writer, +[](void* W, const ContextNode &N) { reinterpret_cast<PGOCtxProfWriter*>(W)->write(N); }); // Writer going out of scope will finish up the section. } ``` The reader produces a data structure suitable for maintenance during IPO transformations. -
Joseph Huber authored
-
Joseph Huber authored
Summary: One of the downsides of the linker wrapper is that it made debugging more difficult. It is very powerful in that it can resolve a lot of input matching and library handling that could not be done before. However, the old method allowed users to simply copy-paste the script files to modify the output and test it. This patch attempts to make it easier to debug changes by letting the user override all the linker inputs. That is, we provide a user-created binary that is treated like the final output of the device link step. The intended use-case is for using `-save-temps` to get some IR, then modifying the IR and sticking it back in to see if it exhibits the old failures.
-
Craig Topper authored
There's a special path when the promoted type has an element size more than twice the size of the original type.
-
Joe Nash authored
NFC. Makes the VOP1Inst_t16 interface more generic to support future instructions cleanly.
-
VincentWu authored
After patch https://github.com/llvm/llvm-project/pull/88805 `I` Ext will be added automatically when we running the command like `./build/bin/llc -mtriple=riscv32 -mattr=+e -target-abi ilp32e -verify-machineinstrs llvm/test/CodeGen/RISCV/zcmp-additional-stack.ll` it will generate ``` .text .attribute 4, 16 .attribute 5, "rv32i2p1_e2pe" .file "zcmp-additional-stack.ll" .globl func # -- Begin function func .p2align 1 .type func,@function ``` This patch reset the I ext in FeatureBit when `+e` has been specify
-
Alexander Yermolovich authored
Type unit DIE generated by clang contains DW_AT_comp_dir/DW_AT_dwo_name. This was added to clang to help LLDB to figure out where type unit come from when accessing an entry in a .debug_names accelerator table and type units in .dwp file. When BOLT writes out .dwo files it changes the name of them. User can also specify directory of where they can be written out. Added support to BOLT to update those attributes.
-
GeorgeHuyubo authored
Reverts llvm/llvm-project#92078
-
GeorgeHuyubo authored
As we have debuginfod as symbol locator available in lldb now, we want to make full use of it. In case of post mortem debugging, we don't always have the main executable available. However, the .note.gnu.build-id of the main executable(some other modules too), should be available in the core file, as those binaries are loaded in memory and dumped in the core file. We try to iterate through the NT_FILE entries, read and store the gnu build id if possible. This will be very useful as this id is the unique key which is needed for querying the debuginfod server. Test: Build and run lldb. Breakpoint set to https://github.com/llvm/llvm-project/blob/main/lldb/source/Plugins/SymbolLocator/Debuginfod/SymbolLocatorDebuginfod.cpp#L147 Verified after this commit, module_uuid is the correct gnu build id of the main executable which caused the crash(first in the NT_FILE entry)
-
Michael Maitland authored
SubtargetEmitter::GenSchedClassTables takes a CodeGenProcModel, but calls hasReadOfWrite which loops over all ProcModels. We move hasReadOfWrite to CodeGenProcModel and remove the loop over all ProcModels. This leads to a 144% speedup on the RISC-V backend of our downstream.
-
Keith Smiley authored
This mirrors the LLDB_DEBUGSERVER_PATH environment variable and allows you to have lldb-argdumper in a non-standard location and still use it at runtime.
-
Florian Mayer authored
-
Philip Reames authored
-
Peiming Liu authored
…ducer.
-
Krystian Stasiowski authored
Reapply "[Clang] Unify interface for accessing template arguments as written for class/variable template specializations (#81642)" (#91393) Reapplies #81642, fixing the crash which occurs when running the lldb test suite.
-
Amara Emerson authored
The existing code is checking for the presence of the +sve subtarget feature when deciding to use a base pointer for the function, but this check doesn't work when only +sme is used. rdar://126878490
-
Fangrui Song authored
-
Florian Hahn authored
Add test cases for https://github.com/llvm/llvm-project/issues/89958.
-
Keith Smiley authored
I'm interested in being CC'd on these changes
-
Keith Smiley authored
-
Joseph Huber authored
Summary: The offload library supports basic JIT functionality, however we currently link against every single target even though only AMDGPU and NVPTX are supported. This somewhat bloats the dynamic library list, so we should constrain it to what's actually used.
-
Florian Hahn authored
Applying the loop guards to the distance may prevent isSafeDependenceDistance from determining NoDep, unless loop guards are also applied to the backedge-taken-count. Instead of applying the guards to both Dist and the backedge-taken-count, just apply them after handling isSafeDependenceDistance and constant distances; there is no benefit to applying the guards before then. This fixes a regression flagged by @bjope due to ecae3ed9.
-
Zequan Wu authored
This change allows us to pass creduce options to creduce-clang-crash.py script. With this, `--n` is no longer needed to specify the number of cores, so removed the flag. The motivation is https://github.com/llvm/llvm-project/pull/87933#issuecomment-2109463497 suggests that disabling creduce renaming passes helps people to further reduce crash manually.
-
Florian Mayer authored
-
Felix Schneider authored
This PR is in preparation to some extensions to the `InferIntRangeInterface` around the `nsw` and `nuw` flags supported in the `arith` dialect and LLVM. We provide some common inference logic for `index` and `arith` in `InferIntRangeCommon.h` but our Test Ops are currently fixed to `Index` Types. As we test the range inference for arith Ops, especially around the overflow behaviour, it's handy to have native support for the typical integer types in the test Ops. This patch 1. Changes the Attributes of `test.with_bounds` ops from `Index` to `APInt` which matches the internal representation in `ConstantIntRanges`. 2. Allows the use of `AnyInteger` in addition to `Index` for the operands and results of the test Ops. This now requires explicit specification of the type in the IR, where before `Index` was implicit. 3. Requires bounds Attrs to be specified in the precision of the SSA value, eliminating any implicit truncation or extension. (*Could this lead to problems?*)
-
PiJoules authored
Prior to this, fixed point multiplication would lead to this assertion error on AArhc64, armv8, and armv7. ``` _Accum f(_Accum x, _Accum y) { return x * y; } // ./bin/clang++ -ffixed-point /tmp/test2.cc -c -S -o - -target aarch64 -O3 clang++: llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:10245: void llvm::TargetLowering::forceExpandWideMUL(SelectionDAG &, const SDLoc &, bool, EVT, const SDValue, const SDValue, const SDValue, const SDValue, SDValue &, SDValue &) const: Assertion `Ret.getOpcode() == ISD::MERGE_VALUES && "Ret value is a collection of constituent nodes holding result."' failed. ``` This path into forceExpandWideMUL should only be taken if we don't support [US]MUL_LOHI or MULH[US] for the operand size (32 in this case). But we should also check if we can just leverage regular wide multiplication. That is, extend the operands from 32 to 64, do a regular 64-bit mul, then trunc and shift. These ops are certainly available on aarch64 but for wider types. -
Oleg Shyshkov authored
-
Florian Hahn authored
There are cases where a vector value has some users that demand the the single scalar value only (NeedsScalar), while other users demand the vector value (see attached test cases). In those cases, the NeedsScalar users should only demand the first lane. Fixes https://github.com/llvm/llvm-project/issues/91883.
-
Alex Bradbury authored
This follows the same pattern as 20e62658. Although we can't reduce the number of instructions used, if we are able to use a sign-extended 6-bit immediate then the 16-bit c.li instruction can be selected (thus saving code size). Although this _could_ be gated so it only happens if C is enabled, I've opted not to because at worst it's neutral and it doesn't seem helpful to add unnecessary divergence between the RVC and non-RVC paths.
-
Alex Bradbury authored
Although we can't reduce the number of instructions, if we selected `li rd, -1` instead then this could be encoded in a 16-bit instruction.
-
Mircea Trofin authored
-
Florian Hahn authored
Test courtesy to @bjope showing a regression due to ecae3ed9.
-
Krystian Stasiowski authored
This reverts commit 8019cbbb.
-