- Aug 11, 2021
-
-
Petr Hosek authored
When none of the translation units in the binary have been instrumented we shouldn't need to link the profile runtime. However, because we pass -u__llvm_profile_runtime on Linux and Fuchsia, the runtime would still be pulled in and incur some overhead. On Fuchsia which uses runtime counter relocation, it also means that we cannot reference the bias variable unconditionally. This change modifies the InstrProfiling pass to pull in the profile runtime only when needed by declaring the __llvm_profile_runtime symbol in the translation unit only when needed. For now we restrict this only for Fuchsia, but this can be later expanded to other platforms. This approach was already used prior to 9a041a75, but we changed it to always generate the __llvm_profile_runtime due to a TAPI limitation, but that limitation may no longer apply, and it certainly doesn't apply on platforms like Fuchsia. Differential Revision: https://reviews.llvm.org/D98061
-
Petr Hosek authored
This reverts commit 6660cec5 since it was superseded by https://reviews.llvm.org/D98061.
-
Matthias Springer authored
This function overload is similar to the existing `FlatAffineConstraints::addLowerOrUpperBound`. It constrains a dimension based on an affine map. However, in contrast to the other overloading, it does not attempt to align dimensions/symbols of the affine map with the dimensions/symbols of the constraint set. Instead, dimensions/symbols are expected to already be aligned. Differential Revision: https://reviews.llvm.org/D107727
-
Johannes Doerfert authored
Failed for some reason, potentially because of the inner type declaration in combination with the `using`. This might help. Failure: https://lab.llvm.org/buildbot/#/builders/127/builds/15432
-
Matthias Springer authored
This function aligns an affine map (and operands) with given dims and syms SSA values. This is useful in conjunction with `FlatAffineConstraints::addLowerOrUpperBound`, which requires the `boundMap` to be aligned with the constraint set's dims and syms. Differential Revision: https://reviews.llvm.org/D107728
-
Johannes Doerfert authored
PHI nodes are not pass through but change their value, we have to account for that to avoid missing stores. Follow up for D107798 to fix PR51249 for good. Differential Revision: https://reviews.llvm.org/D107808
-
Johannes Doerfert authored
AAPointerInfoFloating needs to visit all uses and some multiple times if we go through PHI nodes. Attributor::checkForAllUses keeps a visited set so we don't recurs endlessly. We now allow recursion for non-phi uses so we track all pointer offsets via PHI nodes properly without endless recursion. This replaces the first attempt D107579. Differential Revision: https://reviews.llvm.org/D107798
-
Johannes Doerfert authored
The bulk of the changes come from attributes but only the @phi_store function is effectively added.
-
Johannes Doerfert authored
To avoid simplification with wrong constants we need to make sure we know that we won't perform specific optimizations based on the users request. The non-SPMDzation and non-CustomStateMachine flags did only prevent the final transformation but allowed to value simplification to go ahead. Differential Revision: https://reviews.llvm.org/D107862
-
Craig Topper authored
We were calling find and then using operator[]. Instead keep the iterator from find and use it to get the value. Just happened to notice while investigating how we decide what extends to use between basic blocks.
-
Mircea Trofin authored
-
Christopher Di Bella authored
Some files still contained the old University of Illinois Open Source Licence header. This patch replaces that with the Apache 2 with LLVM Exception licence. Differential Revision: https://reviews.llvm.org/D107528
-
LLVM GN Syncbot authored
-
Hongtao Yu authored
-
Arthur O'Dwyer authored
And now we can use granular concepts headers!
-
Arthur O'Dwyer authored
This is the complete split of <concepts>, with nothing left in the main header. Differential Revision: https://reviews.llvm.org/D107584
-
Ben Shi authored
Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D107817
-
Hongtao Yu authored
Pseudo probe descriptors are created very early in the pipeline where function names just come from the front end and are not yet decorated. So calling getCanonicalFnName on the function names in probe desc is basically a no-op, which also addes a depenency from MC to ProfileData unnessesarily. Reviewed By: wenlei, wlei Differential Revision: https://reviews.llvm.org/D107838
-
LLVM GN Syncbot authored
-
zoecarver authored
Differential Revision: https://reviews.llvm.org/D106923
-
Amara Emerson authored
[AArch64][GlobalISel] Relax oneuse restriction for PTR_ADD chain combining to check addressing legality. With contributions by Sebastian Neubauer Differential Revision: https://reviews.llvm.org/D105676
-
Sushma Unnibhavi authored
Implementation of RegBankSelect for the M68k backend. Differential Revision: https://reviews.llvm.org/D107542
-
Adrian Prantl authored
This patch removes the hand-rolled implementation of salvageDebugInfo for cast and GEPs and replaces it with a call into llvm::salvageDebugInfoImpl(). A side-effect of this is that additional redundant convert operations are introduced, but those don't have any negative effect on the resulting DWARF expression. rdar://80227769 Differential Revision: https://reviews.llvm.org/D107384
-
Adrian Prantl authored
This patch refactors / simplifies salvageDebugInfoImpl(). The goal here is to simplify the implementation of coro::salvageDebugInfo() in a followup patch. 1. Change the return value to I.getOperand(0). Currently users of salvageDebugInfoImpl() assume that the first operand is I.getOperand(0). This patch makes this information explicit. A nice side-effect of this change is that it allows us to salvage expressions such as add i8 1, %a in the future. 2. Factor out the creation of a DIExpression and return an array of DIExpression operations instead. This change allows users that call salvageDebugInfoImpl() in a loop to avoid the costly creation of temporary DIExpressions and to defer the creation of a DIExpression until the end. This patch does not change any functionality. rdar://80227769 Differential Revision: https://reviews.llvm.org/D107383
-
Sam Clegg authored
Now that we have https://reviews.llvm.org/D105539 we can use objdump -d to actually check for instruction sequences rather than binary blobs. This is just an example of how to do that we should followup with a wider ranging conversion of existing tests. Differential Revision: https://reviews.llvm.org/D106897
-
- Aug 10, 2021
-
-
Rob Suderman authored
Some folding cases are trivial to fold away, specifically no-op cases where an operation's input and output are the same. Canonicalizing these away removes unneeded operations. The current version includes tensor cast operations to resolve shape discreprencies that occur when an operation's result type differs from the input type. These are resolved during a tosa shape propagation pass. Reviewed By: NatashaKnk Differential Revision: https://reviews.llvm.org/D107321
-
Rob Suderman authored
Dilation only requires increasing the padding on the left/right side of the input, and including dilation in the convolution. This implementation still lacks support for strided convolutions. Reviewed By: NatashaKnk Differential Revision: https://reviews.llvm.org/D107680
-
natashaknk authored
Reviewed By: rsuderman Differential Revision: https://reviews.llvm.org/D107855
-
Vince Bridgers authored
This change follows up on a FIXME submitted with D105974. This change simply let's the reference case fall through to return a concrete 'true' instead of a nonloc pointer of appropriate length set to NULL. Reviewed By: NoQ Differential Revision: https://reviews.llvm.org/D107720
-
Sam McCall authored
-
Craig Topper authored
-
Jacques Pienaar authored
When using an attribute where a value is expected previously this would fail complaining about unbound symbol. Instead make error clear and mention common failure reason.
-
Volodymyr Sapsai authored
Show that the bit chunks are placed starting at the least significant bit. Select a different number, so the bit chunks have different values and it is more obvious where they are in the encoded result. Differential Revision: https://reviews.llvm.org/D107796
-
Haruki Imai authored
This patch enables normalizing memrefs with MemRef_ReinterpretCastOp by adding MemRefsNormalizable trait in the Op definition. Signed-off-by:
Haruki Imai <imaihal@jp.ibm.com> Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D107425
-
Nikita Popov authored
When converting a store into a memset, we currently insert the new MemoryDef after the store MemoryDef, which requires all uses to be renamed to the new def using a whole block scan. Instead, we can insert the new MemoryDef before the store and not rename uses, because we know that the location is immediately overwritten, so all uses should still refer to the old MemoryDef. Those uses will get renamed when the old MemoryDef is actually dropped, which is efficient. I expect something similar can be done for some of the other MSSA updates in MemCpyOpt. This is an alternative to D107513, at least for this particular case. Differential Revision: https://reviews.llvm.org/D107702
-
Alexander Belyaev authored
This version is does not affect the patterns for Extract/InsertSliceOp and LinalgOps. Differential Revision: https://reviews.llvm.org/D107858
-
Thomas Johnson authored
Differential Revision: https://reviews.llvm.org/D107828
-
Fangrui Song authored
Clang diagnostics refer to identifier names in quotes. This patch makes inline remarks conform to the convention. New behavior: ``` % clang -O2 -Rpass=inline -Rpass-missed=inline -S a.c a.c:4:25: remark: 'foo' inlined into 'bar' with (cost=-30, threshold=337) at callsite bar:0:25; [-Rpass=inline] int bar(int a) { return foo(a); } ^ ``` Reviewed By: hoy Differential Revision: https://reviews.llvm.org/D107791
-
Jacques Pienaar authored
This enables querying shapes/values as shapes without mutating the IR directly (e.g., towards enabling doing inference in analysis & application steps, inferring function shape with constant from callsite, ...). Add a new ShapeAdaptor that abstracts over whether shape is from Type or ShapedTypeComponents or DenseIntElementsAttribute. This adds new accessors to ValueShapeRange to get Shape and value as shape, but doesn't restrict or remove the previous way of accessing Type via the Value for now, that does mean a less refined shape could be accidentally queried and will be restricted in follow up. Currently restricted Value query to what can be represented as Shape. So only supports cases where constant subgraph evaluation's output is a shape. I had considered making it more general, but without TBD extern attribute concept or some such a user cannot today uniformly avoid overhead. Update TOSA ops and also the shape inference pass. Differential Revision: https://reviews.llvm.org/D107768
-
Jan Kratochvil authored
Skeleton vs. DWO units mismatch has been fixed in D106270. As they both have type DWARFUnit it is a bit difficult to debug. So it is better to make it safe against future changes. Reviewed By: kimanh, clayborg Differential Revision: https://reviews.llvm.org/D107659
-