- May 06, 2022
-
-
Chengji Yao authored
A large DenseElementsAttr of i1could trigger a bug in printer/parser roundtrip. Ex. A DenseElementsAttr of i1 with 200 elements will print as Hex format of length 400 before the fix. However, when parsing the printed text, an error will be triggered. After fix, the printed length will be 50. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D122925
-
Florian Mayer authored
The globals are better expressed as members of the Symbolizer, and all functions operating on it should be methods instead. Also using the standard idiom of wrapping the main code in `if __name__ == '__main__'`. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D125032
-
Florian Mayer authored
Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D124950
-
Ben Shi authored
__udivmodhi4 : uint16 div and mod __udivmodqi4 : uint8 div and mod __divmodhi4 : sint16 div and mod __divmodqi4 : sint8 div and mod The above helper functions in libgcc have special ABI as described at https://gcc.gnu.org/wiki/avr-gcc#Exceptions_to_the_Calling_Convention . Reviewed By: aykevl Differential Revision: https://reviews.llvm.org/D124600
-
Ilia Diachkov authored
The patch adds SPIR-V specific intrinsics required to keep information critical to SPIR-V consistency (types, constants, etc.) during translation from IR to MIR. Two related passes (SPIRVEmitIntrinsics and SPIRVPreLegalizer) and several LIT tests (passed with this change) have also been added. It also fixes the issue with opaque pointers in SPIRVGlobalRegistry.cpp and the mismatch of the data layout between the SPIR-V backend and clang (Issue #55122). Differential Revision: https://reviews.llvm.org/D124416 Co-authored-by:
Aleksandr Bezzubikov <zuban32s@gmail.com> Co-authored-by:
Michal Paszkowski <michal.paszkowski@outlook.com> Co-authored-by:
Andrey Tretyakov <andrey1.tretyakov@intel.com> Co-authored-by:
Konrad Trifunovic <konrad.trifunovic@intel.com>
-
Richard Smith authored
-
Richard Smith authored
-
Aaron Ballman authored
This reverts commit f6dff936. This diagnostic is also in the -Wcomment group, which is in the -Wall group, so the diagnostic is enabled in a wider context than GCC does. That turns out to be disruptive for the Linux kernel builds still using -std=gnu89 because the kernel requires C source files to start with // comments: https://kernel.org/doc/html/v5.18-rc5/process/license-rules.html#license-identifier-syntax
-
Aart Bik authored
Although we now have semi-rings to deal with arbitrary ops, it is still good to convey zero-preserving semantics of ops to the sparse compiler. Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D125043
-
Peter Steinfeld authored
If a programmer is able to compile and link a program that contains types that are not yet supported by the runtime, it must be because they're not yet implemented. This change will make it easier to find unimplemented code in tests. Differential Revision: https://reviews.llvm.org/D125046
-
owenca authored
-
River Riddle authored
The fallback attribute parse path is parsing a Type attribute, but this results in a really unintuitive error message: `expected non-function type`, which doesn't really hint at tall that we were trying to parse an attribute. This commit fixes this by trying to optionally parse a type, and on failure emitting an error that we were expecting an attribute. Differential Revision: https://reviews.llvm.org/D124870
-
Alexander Yermolovich authored
Added support for DWARF5 Split Dwarf. Reviewed By: maksfb Differential Revision: https://reviews.llvm.org/D122988
-
Richard Smith authored
Compared to the old implementation: * In C++, we only recurse into aggregate classes. * Unnamed bit-fields are not printed. * Constant evaluation is supported. * Proper conversion is done when passing arguments through `...`. * Additional arguments are supported and are injected prior to the format string; this directly supports use with `fprintf`, for example. * An arbitrary callable can be passed rather than only a function pointer. In particular, in C++, a function template or overload set is acceptable. * All text generated by Clang is printed via `%s` rather than directly; this avoids issues where Clang's pretty-printing output might itself contain a `%` character. * Fields of types that we don't know how to print are printed with a `"*%p"` format and passed by address to the print function. * No return value is produced. Reviewed By: aaron.ballman, erichkeane, yihanaa Differential Revision: https://reviews.llvm.org/D124221
-
owenca authored
The ShouldShiftBeAdded lambda checks if extra space should be added before the wrapped part of a braced list. If the first element of the list is wrapped, no extra space should be added. Fixes #55161. Differential Revision: https://reviews.llvm.org/D124956
-
River Riddle authored
This was changed in 16dcbb53
-
Jason Molenda authored
When picking the UnwindPlan row to use to backtrace, off of the zeroth frame, decrement the return pc so we're in the address range of the call instruction. If this is a noretrun function call, the instruction at the "return address" is likely an entirely different basic block with possibly very different unwind rules, and this can cause the backtrace to be incorrect. Differential Revision: https://reviews.llvm.org/D124957 rdar://84651805
-
Amara Emerson authored
-
Lang Hames authored
Clients don't care about linkage, and ExecutorAddr is much more ergonomic.
-
H.J. Lu authored
Since x32 pointer size is 4 bytes, the self pointer offset in TCB: struct { void *tcb; dtv_t *dtv; void *self; ... should be 8, not 16. Fixes https://github.com/llvm/llvm-project/issues/55288 Differential Revision: https://reviews.llvm.org/D125025 -
Stella Stamenova authored
The names of the functions that are supposed to be exported do not match the implementations. This is due in part to https://github.com/llvm/llvm-project/commit/cac7aabbd8236bef2909bfc0dbba17644f7aaade. This change makes the implementations and declarations match and adds a couple missing declarations. The new names follow the pattern of the existing `verify` functions where the prefix is maintained as `_mlir_ciface_` but the suffix follows the new naming convention. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D124891
-
Eric Li authored
A follow-up to 62b2a47a to centralize the logic that skips expressions that the CFG does not emit. This allows client code to avoid sprinkling this logic everywhere. Add redirects in the transfer function to similarly skip such expressions by forwarding the visit to the sub-expression. Differential Revision: https://reviews.llvm.org/D124965
-
Martin Storsjö authored
This test only fails on x86_64 clang-cl, not for i386. (The root cause is still not explored, thus the FIXME is still relevant.) Differential Revision: https://reviews.llvm.org/D124994
-
Martin Storsjö authored
[libcxx] [test] Extend the UNSUPPORTED lines in strong_order_long_double.verify.cpp for non-x86_64 Windows Differential Revision: https://reviews.llvm.org/D124992
-
Martin Storsjö authored
On Windows on i386, C++ member functions use a different calling convention (`__thiscall`) than the default one for regular functions (`__cdecl`). (On Windows on architectures other than i386, both calling convention attributes are no-ops.) This matches how libstdc++ declares these types. This fixes the std/thread/futures/futures.{shared,unique}_future/dtor.pass.cpp tests on i386 mingw. Differential Revision: https://reviews.llvm.org/D124990 -
Martin Storsjö authored
All current Windows architectures (i386, x86_64, arm, arm64) get the full_size() behaviour here. x86_64 (the only one tested in CI currently) is handled by the first ifdef at the top, but handle Windows in general on all other architectures later. Differential Revision: https://reviews.llvm.org/D124989
-
Craig Topper authored
This comment used to exist, but was lost in a refactor over 10 years ago, but still seems relevant and improves readability.
-
Lang Hames authored
In the common case of converting an ExecutorAddr to a function pointer type, this eliminates the need for the '(*)' boilerplate to explicitly specify a function pointer. E.g.: auto *F = A.toPtr<int(*)()>(); can now be written as auto *F = A.toPtr<int()>();
-
Simon Pilgrim authored
We needed something that would delay the creation of the undef until after the rem-by-constant expansion, so I used a SSE shift of undef by zero which will expand to undef.
-
phyBrackets authored
Reviewed By: martong Differential Revision: https://reviews.llvm.org/D124774
-
Rahman Lavaee authored
This patch adds a new feature to bolt heatmap to print the hotness of each section in terms of the percentage of samples within that section. Sample output generated for the clang binary: Section Name, Begin Address, End Address, Percentage Hotness .text, 0x1a7b9b0, 0x20a2cc0, 1.4709 .init, 0x20a2cc0, 0x20a2ce1, 0.0001 .fini, 0x20a2ce4, 0x20a2cf2, 0.0000 .text.unlikely, 0x20a2d00, 0x431990c, 0.3061 .text.hot, 0x4319910, 0x4bc6927, 97.2197 .text.startup, 0x4bc6930, 0x4c10c89, 0.0058 .plt, 0x4c10c90, 0x4c12010, 0.9974 Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D124412
-
Aaron Ballman authored
GCC warns with a pedantic warning when -std=gnu89, but Clang would only diagnose in -std=c89 mode. Clang now matches the GCC behavior in both modes. Fixes #18427
-
Alexandre Perez authored
Currently, debugserver has a test to check if it was launched in translation. The intent was to cover the case where an x86_64 debugserver attempts to control an arm64/arm64e process, returning an error. However, this check also covers the case where users are attaching to an x86_64 process, exiting out before attempting to hand off control to the translated debugserver at `/Library/Apple/usr/libexec/oah/debugserver`. This diff delays the debugserver translation check until after determining whether to hand off control to `/Library/Apple/usr/libexec/oah/debugserver`. Only when the process is not translated and thus has not been handed off do we check if the debugserver is translated, erroring out in that case. Reviewed By: jasonmolenda Differential Revision: https://reviews.llvm.org/D124814
-
Florian Hahn authored
After introducing VPWidenPointerInductionRecipe, VPWidenPHIRecipes should not be created at this point. Turn check into an assert.
-
David Blaikie authored
Discovered in a large object that would need a 64 bit index (but the cu/tu index format doesn't include a 64 bit offset/length mode in DWARF64 - a spec bug) but instead binutils dwp overflowed the offsets causing overlapping regions.
-
Nick Desaulniers authored
To match the cost of other scheduling models. This is expected to schedule mov instructions around INLINEASM less frequently for the default machineschedule (pre-RA scheduling). Suggested by Craig Topper. Link: https://github.com/llvm/llvm-project/issues/41914 Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D122350
-
Serge Pavlov authored
This reverts commit 83914ee9. The change caused discussion: https://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20220502/1034841.html
-
Peter Kasting authored
Bug: https://github.com/llvm/llvm-project/issues/55195 Reviewed By: #libc, Mordante Differential Revision: https://reviews.llvm.org/D124695
-
Nick Desaulniers authored
Generated via: $ clang -fno-omit-frame-pointer -m32 -mregparm=3 -O2 crash.c -emit-llvm -S $ llc -print-before=machine-scheduler -mcpu=sandybridge crash.mir Reviewed By: pengfei Differential Revision: https://reviews.llvm.org/D122348 -
Andrzej Warzynski authored
The assert in https://reviews.llvm.org/D124665 was missing parentheses, which triggered a warning in GCC (verified with GCC 11). As `-Werror` is on by default in FLang, that triggered build errors, see e.g. [1]. The fix is rather straightforward, so I am sending this without a review. [1] https://lab.llvm.org/buildbot/#/builders/160/builds/7016 Differential Revision: https://reviews.llvm.org/D125027
-