- Oct 13, 2022
-
-
Benjamin Kramer authored
-
Leon Clark authored
Add FileCheck directives to existing tests in preparation for new tests. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D135788
-
Martin Storsjö authored
This matches what was done for the ARM implementation (where getting the instruction sizes right is even more tricky, and hence needed tighter testing). This will allow catching any future cases where prologs and epilogs don't match the instructions within them. Differential Revision: https://reviews.llvm.org/D131394
-
Martin Storsjö authored
Differential Revision: https://reviews.llvm.org/D135817
-
Martin Storsjö authored
If the stack is realigned, we've emitted a frame pointer and already terminated the SEH prologue, making this dead code since a07787c9. The immediate to this SEH opcode was entirely bogus - we don't know how many bytes the AND operation adjusts the SP, and by doing "NumBytes & andMaskEncoded" (where andMaskEncoded was the immediate bitpattern for the AND instruction), the immediate to the opcode was total gibberish. This hasn't had any practical effect, since the original stack pointer always was restored from the frame pointer afterwards anyway. Differential Revision: https://reviews.llvm.org/D135815
-
Martin Storsjö authored
Whenever a call to __chkstk was made, the frame lowering previously omitted the aligning (as NumBytes was reset to zero before doing alignment). This fixes https://github.com/llvm/llvm-project/issues/56182. Differential Revision: https://reviews.llvm.org/D135687
-
Balazs Benics authored
The Clang Static Analyzer will crash on this code: ```lang=C++ struct Box { int value; }; template <Box V> int get() { return V.value; } template int get<Box{-1}>(); ``` https://godbolt.org/z/5Yb1sMMMb The problem is that we don't account for encountering `TemplateParamObjectDecl`s within the `DeclRefExpr` handler in the `ExprEngine`. IMO we should create a new memregion for representing such template param objects, to model their language semantics. Such as: - it should have global static storage - for two identical values, their addresses should be identical as well http://eel.is/c%2B%2Bdraft/temp.param#8 I was thinking of introducing a `TemplateParamObjectRegion` under `DeclRegion` for this purpose. It could have `TemplateParamObjectDecl` as a field. The `TemplateParamObjectDecl::getValue()` returns `APValue`, which might represent multiple levels of structures, unions and other goodies - making the transformation from `APValue` to `SVal` a bit complicated. That being said, for now, I think having `Unknowns` for such cases is definitely an improvement to crashing, hence I'm proposing this patch. Reviewed By: xazax.hun Differential Revision: https://reviews.llvm.org/D135763 -
Xiang Li authored
cbuffer A { float a; float b; } will be translated to a global variable. Something like struct CB_Ty { float a; float b; }; CB_Ty A; And all use of a and b will be replaced with A.a and A.b. Only support none-legacy cbuffer layout now. CodeGen for Resource binding will be in separate patch. In the separate patch, resource binding will map the resource information to the global variable. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D130131 -
Kai Luo authored
Fixed error ``` Command Output (stderr): -- fatal error: error in backend: Objective-C support is unimplemented for object file format ``` Source code in `clang/lib/CodeGen/CGObjCMac.cpp:5080` ``` case llvm::Triple::Wasm: case llvm::Triple::GOFF: case llvm::Triple::SPIRV: case llvm::Triple::XCOFF: case llvm::Triple::DXContainer: llvm::report_fatal_error( "Objective-C support is unimplemented for object file format"); } ``` Reviewed By: hubert.reinterpretcast Differential Revision: https://reviews.llvm.org/D135848 -
Jordan Rupprecht authored
The functionality is fine (we don't run the breakpoint command twice), but this test forgot to call `FileCheck` and isn't checking the same value isn't there twice..
-
Yaxun (Sam) Liu authored
HIP is installed at /usr or /usr/local on Debin/Fedora, and the version file is at {root}/share/hip/version. Reviewed by: Artem Belevich Differential Revision: https://reviews.llvm.org/D135796 -
Mehdi Amini authored
-
Mehdi Amini authored
-
Kazu Hirata authored
-
Jan Svoboda authored
The `-ivfsoverlay` flag was only being respected when the scanner was instructed to minimize the inputs. This patch respects that flag even in canonical preprocessing mode. Depends on D135414. Reviewed By: Bigcheese Differential Revision: https://reviews.llvm.org/D135416
-
Jan Svoboda authored
The dependency scanning worker may create an in-memory VFS and inject that into its `FileManager`. (Implemented in D109485.) This VFS currently persists between scans, which is not correct: in-memory files created in one scan could affect subsequent scans. This patch changes things so that the in-memory VFS is local to `DependencyScanningWorker::computeDependencies()`. To test this, one would first scan for dependencies of a named module and then run second scan (on the same worker) for something unrelated, which would pick up the in-memory file created in the first scan. This set up is impossible to achieve with `clang-scan-deps`. We could set this up in `ToolingTests`, but the scanner needs to access the physical filesystem to store `.pcm` files. AFAIK we don't have a good way to propagate something like `%t` into unit tests to make that feasible. (This could be achieved with something like the virtualized `OutputManager`.) Reviewed By: Bigcheese Differential Revision: https://reviews.llvm.org/D135414
-
Rafael Auler authored
This adds a round of checks to memory references, looking for incorrect references to jump table objects. Fix them by replacing the jump table reference with another object reference + offset. This solves bugs related to regular data references in code accidentally being bound to a jump table, and this reference being updated to a new (incorrect) location because we moved this jump table. Fixes #55004 Reviewed By: #bolt, maksfb Differential Revision: https://reviews.llvm.org/D134098
-
Rafael Auler authored
Put code that creates references to symbol+addend behind MCPlusBuilder. Will use this later in validate memory references pass. Reviewed By: #bolt, maksfb, yota9 Differential Revision: https://reviews.llvm.org/D134097
-
Matthias Springer authored
This change allows analyzing ops from different block, in particular when used in programs that have `cf` branches. Differential Revision: https://reviews.llvm.org/D135644
-
Jeff Niu authored
By matching `arith.constant` specifically, SCF canonicalizers/folders are incompatible with other kinds of constants. Use the generic matchers instead. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D135517
-
Matt Arsenault authored
When reducing llvm-reduce with llvm-reduce, it can be confusing to figure out what lines are printed by the child or parent. Not sure this is the most reliable way to set and restore this.
-
Jeff Niu authored
This patch makes ODS insert an assert when calling static `get*AttrName` methods with a `OperationName` that the name is the same as the op's. This prevents accidentally passing the wrong kind of name and getting an erroneous attribute name. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D135698
-
Jeff Niu authored
Attributes and types only (so far). Since `struct` and `params` are allowed, it makes sense to allow custom directives as long as their arguments contain at least one bound argument. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D135001
-
LLVM GN Syncbot authored
-
Matt Arsenault authored
Try some dumb strength reductions to "simpler" opcodes. Make some opcode substitutions I typically try to get smaller MIR out of codegen. This is a bit target specific and I have a lot of increasingly target specific modifications I try during manual reduction.
-
Sanjoy Das authored
These operations have undefined behavior if the index is not less than the rank of the source tensor / memref, so they cannot be freely speculated like they were before this patch. After this patch we speculate them only if we can prove that they don't have UB. Depends on D135505. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D135748
-
Henrique Bucher authored
Summary: This documentation patch adds information to allow remote users to also use the plugin as it will be invisible to them using the current instructions. It solves issue #58252. This documentation patch adds information to allow remote users to also use the plugin as it will be invisible to them using the current instructions. It solves issue #58252. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D135577
-
Matt Arsenault authored
Fixes issue 58331.
-
Matt Arsenault authored
If inline asm has a VGPR def, it must have come from a VGPR write somewhere inside the asm. This should be further extended to all read after write hazards.
-
Matt Arsenault authored
In a testcase I'm working on, the old write out and count IR lines was taking about 200-300ms per iteration. This drops it out of the profile. This doesn't account for everything, but it doesn't seem to matter. We should probably try to account for metadata and constantexpr tree depths.
-
Matt Arsenault authored
Verify all the requested passes exist before trying to run any. For long reductions, it was really annoying for it to get halfway through and then I come back later to an incomplete reduction. Also add a new skip-delta-passes flag. Most of the time I want to opt out of specific reductions, rather than run a select few.
-
Jonathon Penix authored
To accomplish this, this patch creates an optional list of environment variable default values to be set by the runtime to allow directly using the existing runtime implementation of FORT_CONVERT for I/O conversions.
-
Vitaly Buka authored
I see 2 reports time to time.
-
Wiktor Garbacz authored
As shown in https://github.com/llvm/llvm-project/issues/42932 dead pointers might be overlapped by a new stack frame inside CheckForLeaks, which does not use bytes with pointers. This leads to false negatives. It's not a full solution for the problem as it does not solve "overlapping" new/old frames for frames below the CheckForLeaks and in other threads. It should improve leaks found in direct callers of __lsan_do_leak_check. Differential Revision: https://reviews.llvm.org/D130237
-
Alex Lorenz authored
[clang][test] NFC, check in darwin-ld-platform-version-macos-requires-darwin.c should be more permissive some Darwin CI uses older SDK that reports different SDK version here https://green.lab.llvm.org/green/job/clang-stage1-RA/
-
Florian Mayer authored
-
Steven Wu authored
Take the library target out of `generate_protos` function so the caller can decide where to layer the library using the source generated from the function. Fixes: https://github.com/llvm/llvm-project/issues/58075 Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D135712
-
Katherine Rasmussen authored
Write a semantics test for the atomic intrinsic subroutine, atomic_cas. Reviewed By: rouson Differential Revision: https://reviews.llvm.org/D135412
-
Krzysztof Parzyszek authored
V6_vzb and V6_vshuffeb can use any 2 resources in a packet, while V6_vunpackub/V6_vpackeb both need a shift resource. Also, add patterns for shifting vectors of i8.
-
Kazu Hirata authored
This patch fixes: mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorRewriting.cpp:587:27: error: comparison of integers of different signs: 'int64_t' (aka 'long') and 'uint64_t' (aka 'unsigned long') [-Werror,-Wsign-compare]
-