- May 23, 2024
-
-
csstormq authored
Patch co-authored by AtariDreams (gfunni234@gmail.com). Fixes #38037. [AMDGPU] Update test results to fix build (#92982)
-
Pavel Labath authored
We currently cannot represent abbreviation codes with more than 16 bits, and we were lldb-asserting if we ever ran into one. While I haven't seen any real DWARF with these kinds of abbreviations, it is possible to hit this with handcrafted evil dwarf, due some sort of corruptions, or just bugs (the addition of PeekDIEName makes these bugs more likely, as the function blindly dereferences offsets within the debug info section) . Missing abbreviations were already reporting an error. This patch turns sure that large abbreviations into an error as well, and adds a test for both cases.
-
Alexandros Lamprineas authored
Fixes the following bug: namespace Name { int __attribute((target_version("default"))) foo() { return 0; } } namespace Name { int __attribute((target_version("sve"))) foo() { return 1; } } int bar() { return Name::foo(); } error: redefinition of 'foo' int __attribute((target_version("sve"))) foo() { return 1; } note: previous definition is here int __attribute((target_version("default"))) foo() { return 0; } While fixing this I also found that in the absence of default version declaration, the one we implicitly create has incorrect mangling if we are in a namespace: namespace OtherName { int __attribute((target_version("sve"))) foo() { return 2; } } int baz() { return OtherName::foo(); } In this example instead of creating a declaration for the symbol @_ZN9OtherName3fooEv.default we are creating one for the symbol @_Z3foov.default (the namespace mangling prefix is omitted). This has now been fixed. -
Mubashar Ahmad authored
The deinterleave operation constructs two vectors from a single input vector. The first result vector contains the elements from even indexes of the input, and the second contains elements from odd indexes. This is the inverse of a `vector.interleave` operation. Each output's trailing dimension is half of the size of the input vector's trailing dimension. This operation requires the input vector to have a rank > 0 and an even number of elements in its trailing dimension. The operation supports scalable vectors. Example: ```mlir %0, %1 = vector.deinterleave %a : vector<8xi8> -> vector<4xi8> %2, %3 = vector.deinterleave %b : vector<2x8xi8> -> vector<2x4xi8> %4, %5 = vector.deinterleave %c : vector<2x8x4xi8> -> vector<2x8x2xi8> %6, %7 = vector.deinterleave %d : vector<[8]xf32> -> vector<[4]xf32> %8, %9 = vector.deinterleave %e : vector<2x[6]xf64> -> vector<2x[3]xf64> %10, %11 = vector.deinterleave %f : vector<2x4x[6]xf64> -> vector<2x4x[3]xf64> ``` -
Med Ismail Bennani authored
Revert "[lldb] Make use of Scripted{Python,}Interface for ScriptedThreadPlan (Reland #70392)" (#93153) Reverts llvm/llvm-project#93149 since it breaks https://lab.llvm.org/buildbot/#/builders/68/builds/74799 -
LLVM GN Syncbot authored
-
Med Ismail Bennani authored
This patch makes ScriptedThreadPlan conforming to the ScriptedInterface & ScriptedPythonInterface facilities by introducing 2 ScriptedThreadPlanInterface & ScriptedThreadPlanPythonInterface classes. This allows us to get rid of every ScriptedThreadPlan-specific SWIG method and re-use the same affordances as other scripting offordances, like Scripted{Process,Thread,Platform} & OperatingSystem. To do so, this adds new transformer methods for `ThreadPlan`, `Stream` & `Event`, to allow the bijection between C++ objects and their python counterparts. This just re-lands #70392 after fixing test failures. Signed-off-by:Med Ismail Bennani <ismail@bennani.ma>
-
Timm Bäder authored
-
Timm Bäder authored
Now that we call this more often, try to keep pointer chasing to a minimum.
-
Anchu Rajendran S authored
Named location attribute added to `tgt_offload_entry` shall be used by runtime calls like `ompx_dump_mapping_tables` to print the information of variables that are mapped to the device. `ompx_dump_mapping_tables` was printing the wrong location information and this change fixes it. A sample execution of example before the change: ``` omptarget device 0 info: OpenMP Host-Device pointer mappings after block at libomptarget:0:0: omptarget device 0 info: Host Ptr Target Ptr Size (B) DynRefCount HoldRefCount Declaration omptarget device 0 info: 0x0000000000206df0 0x00007f02cdc00000 20000000 1 0 <program-file-loc> at unknown:18:35 ``` The change replaces unknown to the mapped symbol and location to the declaration location.
-
Dhruv Chawla authored
This combine matches the existing fold in InstCombine, i.e. InstCombinerImpl::pushFreezeToPreventPoisonFromPropagating. It tries to push freeze through an operand if the operand has only one maybe-poison operand and all other operands are guaranteed non-poison, and if the operation itself cannot generate poison (eg. add with nsw can generate poison, even with non-poison operands). This is beneficial because it can potentially enable other optimizations to occur that would otherwise be blocked because of the freeze.
-
Vlad Serebrennikov authored
This patch moves `Sema` functions that are specific for x86 into the new `SemaX86` class. This continues previous efforts to split `Sema` up. Additional context can be found in #84184 and #92682.
-
Matt Arsenault authored
This will be important for AMDGPU in a future patch.
-
Yeting Kuo authored
The Zicfilp extension depends on the Zicsr extension. Ref: https://github.com/riscv/riscv-cfi/blob/main/src/cfi_forward.adoc
-
Timm Bäder authored
We can't just count the field to initialize but need to consult the InitListExpr to give us the right field.
-
Guray Ozen authored
-
Nikita Popov authored
-
Nikita Popov authored
If we have an exit condition of the form IV <= Limit, we will first try to convert it into IV < Limit+1 or IV-1 < Limit based on range info (in icmp simplification). If that fails, we try to convert it to IV < Limit + 1 based on controlling exits in non-infinite loops. However, if all else fails, we can still determine the exit count by rewriting to ext(IV) < ext(Limit) + 1, where the zero/sign extension ensures that the addition does not overflow. Proof: https://alive2.llvm.org/ce/z/iR-iYd
-
Johannes Doerfert authored
-
Matt Arsenault authored
-
NAKAMURA Takumi authored
`emitSourceRegions()` has bugs to emit malformed MC/DC coverage mappings. They were detected in `llvm-cov` as the crash. Detect inconsistencies earlier in `clang` with assertions. * mcdc-scratch-space.c covers #87000.
-
Mingming Liu authored
- This way `InstrProfWriter::writeImpl` itself is simpler.
-
Kazu Hirata authored
This patch uses default member initializations for all the fields in Header. The intent is to prevent accidental uninitialized fields and reduce the number of times we need to mention each member variable.
-
Freddy Ye authored
Cont. patch after https://github.com/llvm/llvm-project/pull/75580
-
Ayke authored
Fix incorrect range check of R_AVR_7_PCREL. R_AVR_7_PCREL has 7 bits available, but it works in instruction words and the actual range is [-128, 126]. Disable range check of R_AVR_13_PCREL. This matches the behavior of avr-ld, and is needed for devices like the ATtiny85 which only have rjmp/rcall but have 8KiB flash memory.
-
Charlie Barto authored
This is needed because there will be an extra layer of wrapper when linking to the static-CRT after the static asan runtime is removed by #81677.
-
yronglin authored
Reapply "[Clang][CWG1815] Support lifetime extension of temporary created by aggregate initialization using a default member initializer" (#92527) This PR reapply https://github.com/llvm/llvm-project/pull/87933 Signed-off-by:
yronglin <yronglin777@gmail.com>
-
Kazu Hirata authored
This patch fixes: mlir/lib/Dialect/Mesh/Transforms/ShardingPropagation.cpp:73:27: error: unused function 'operator<<' [-Werror,-Wunused-function] mlir/lib/Dialect/Mesh/Transforms/ShardingPropagation.cpp:97:27: error: unused function 'operator<<' [-Werror,-Wunused-function]
-
Amir Ayupov authored
-
Jessica Clarke authored
There is the expectation throughout CodeGen that, for types representing "real" values, the MVT or EVT is self-contained. However, MVT::iPTR is challenging, because it has no address space, and even if it did, there often is no DataLayout immediately accessible to determine what actually is the underlying type. Historically it was documented as being TableGen-only, but that was lost in 631bfdbe's conversion to using the generated defines. Let's preserve that intent by not allowing it to originate through accidental calls to get(E)VT with a PointerType. If you need to support that, be sure to use something like TargetLowering's getValueType, which takes a DataLayout and can map pointers to their concrete MVTs. Whilst here, reintroduce documentation about these value types being TableGen-only.
-
Fangrui Song authored
--compress-debug-sections in GNU ld, gas, and LLVM integrated assembler retain the uncompressed content if the compressed content is larger. This patch also updates the manpage (-O2 does not enable zlib level 6) and fixes a crash of --compress-sections when the uncompressed section is empty.
-
Fangrui Song authored
Make sections larger so that compressed content will be smaller than uncompressed content. Add a few dedicated tests where compressed content is larger.
-
David Blaikie authored
When a type unit is emitted, the CU referencing the type unit ends up with a little DW_TAG_*_type with the DW_AT_signature and DW_AT_declaration sometimes referred to (by me? maybe other people?) as a skeleton type. We shouldn't produce .debug_names reference to these - only to the actual type definition in the type unit. So this patch does that. But, inversely, the .debug_gnu_pubtypes /does/ need to reference the skeleton type (& gcc does this too, when it produces a skeleton type (gcc doesn't always produce these - if the type is only referenced once via DW_AT_type, gcc uses a direct DW_FORM_ref_sig8 on the DW_AT_type without the intermediate skeleton type)) - so there's a little special case added in to preserve that behavior which is covered by existing tests.
-
Jeremy Kun authored
Co-authored-by:Jeremy Kun <j2kun@users.noreply.github.com>
-
Valentin Clement (バレンタイン クレメン) authored
Runtime support has been added in https://github.com/llvm/llvm-project/pull/89691. This patch adds lowering in a similar way than `selected_int_kind`, `selected_real_kind` and `selected_logical_kind` added in #93091. Some gfortran tests can be enabled after this patch is landed. - `Fortran/gfortran/regression/selected_char_kind_1.f90` - `Fortran/gfortran/regression/selected_char_kind_4.f90`
-
Valentin Clement (バレンタイン クレメン) authored
Runtime support has been added in #89691. This patch adds lowering in a similar way than `selected_int_kind` and `selected_real_kind`.
-
David Blaikie authored
-
Kiran Chandramohan authored
Enables copying, copyprivate, critical, and a few other tests
-
Amir Ayupov authored
Make EntryTy a thin wrapper struct.
-