- Aug 31, 2021
-
-
peter klausler authored
Implement constant folding for the transformational intrinsic function EOSHIFT. Differential Revision: https://reviews.llvm.org/D108941
-
Chris Lattner authored
The StringAttr version doesn't need a context, so we can just use the existing `SymbolRefAttr::get` form. The StringRef version isn't preferred so we want to encourage people to use StringAttr. There is an additional form of getSymbolRefAttr that takes a (SymbolTrait implementing) operation. This should also be moved, but I'll do that as a separate patch. Differential Revision: https://reviews.llvm.org/D108922
-
Michael Jones authored
Fix minor typos in FPUtil comments. Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D108952
-
Keno Fischer authored
In D87099, the mangler learned to quote export directives that contain special characters. Only alhpanumerical characters as well as '_', '$', '.' and '@' were exmpt from this quoting. However, at least binutils considers an unquoted '.' to be syntax and object files containing such symbols will cause errors during linking. Fix that by removing '.' from the list of allowed exemptions. Differential Revision: https://reviews.llvm.org/D100359
-
Artem Belevich authored
so we can override it via clang's CLI if necessary.
-
Siva Chandra Reddy authored
There is not cleanup to be done for the mutex type so mtx_destroy does nothing.
-
Andrew Litteken authored
Currently, the IROutliner uses a simple metric to outline the largest amount of IR possible to outline first if it fits the cost model. This is model loses out on smaller blocks of code that have higher reductions in cost that are contained within larger blocks of IR. This reverses the order, where we calculate all of the costs first, and then reorder and extract items based on the calculated results. Reviewers: paquette Differential Revision: https://reviews.llvm.org/D106440
-
Nikita Popov authored
Forward declare RecurrenceDescriptor and include IVDescritor.h only in implementation code that actually needs it.
-
natashaknk authored
[mlir][tosa] Small refactor to the functionality of Conv2D and Fully_connected to add the bias at the end of the convolution Made to adjust for a modification to the tiling algorithm Reviewed By: rsuderman Differential Revision: https://reviews.llvm.org/D108746
-
Craig Topper authored
[LegalizeTypes][X86] Improve ExpandIntRes_FP_TO_SINT/ExpandIntRes_FP_TO_UINT when input is SoftPromoteHalf. Instead of splitting off the fp16 to float conversion and generating a libcall, we should split the operation into fp16 to float and float to integer operations. This will allow the float to integer conversion to go through any custom handling the target has. If the target doesn't have custom handling then we should come back to ExpandIntRes_FP_TO_SINT/ ExpandIntRes_FP_TO_UINT automatically to create the libcall. This avoids generating libcalls on 32-bit X86. These library functions may not exist in 32-bit libgcc. At least for LLVM, we never generate them when hardware floating point instructions are available. Differential Revision: https://reviews.llvm.org/D108933
-
Bjorn Pettersson authored
When expanding a SMULFIXSAT ISD node (usually originating from a smul.fix.sat intrinsic) we've applied some optimizations for the special case when the scale is zero. The idea has been that it would be cheaper to use an SMULO instruction (if legal) to perform the multiplication and at the same time detect any overflow. And in case of overflow we could use some SELECT:s to replace the result with the saturated min/max value. The only tricky part is to know if we overflowed on the min or max value, i.e. if the product is positive or negative. Unfortunately the implementation has been incorrect as it has looked at the product returned by the SMULO to determine the sign of the product. In case of overflow that product is truncated and won't give us the correct sign bit. This patch is adding an extra XOR of the multiplication operands, which is used to determine the sign of the non truncated product. This patch fixes PR51677. Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D108938
-
peter klausler authored
Implement folding of the transformational intrinsic function CSHIFT for all types. Differential Revision: https://reviews.llvm.org/D108931
-
Owen Anderson authored
Adds patterns to match the EOR3 instruction. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D108793
-
Fangrui Song authored
This fixes -isystem/-L/-Wl,-rpath paths when -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=on is used (https://reviews.llvm.org/D107799#2969650). * `-isystem path/to/build/generic-cxx17/include/c++/v1`. `build/generic-cxx17/include/x86_64-unknown-linux-gnu/c++/v1 (__config_site)` is missing. * `-L path/to/build/generic-cxx17/lib`. Should be `build/generic-cxx17/lib/x86_64-unknown-linux-gnu` instead Reviewed By: ldionne, phosek, #libc Differential Revision: https://reviews.llvm.org/D108836
-
Chih-Ping Chen authored
in DebugHandlerBase::isUnsignedDIType. Differential Revision: https://reviews.llvm.org/D108559
-
Ellis Hoag authored
It looks like this array was missed in 4276d4a8 Fixed tests that expected `elements` to be empty or depeneded on the order of the empty DINode. Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D107024
-
pooja2299 authored
Added description of jump table and G_JUMP_TABLE opcode. Differential Revision: https://reviews.llvm.org/D107630
-
David Green authored
The min/max intrinsics are not yet canonical, but when they are the tail predications analysis will change from treating them like icmp to treating them like intrinsics. Unfortunately, they can currently produce better code by not being tail predicated thanks to the vectorizer picking higher VF's and the backend folding to better instructions (especially for saturate patterns). In the long run we will need to improve the vectorizers cost modelling, recognizing the instruction directly, but in the meantime this treats min/max as before to prevent performance regressions.
-
Nico Weber authored
- Move a few variables closer to their uses, remove some completely (no behavior change) - Add some comments - Make maxPotentialThunks include calls to stubs. It's possible that an earlier call to a stub late in the stub table will need a thunk, and that inserted thunk could push a stub earlier in the stub table out of range. This is unlikely to happen, but usually there are way fewer stub calls than non-stub calls, so if we're doing a conservative approximation here we might as well do it correctly. (For chromium's unit_tests target, 134421/242639 stub calls are direct calls without this change, compared to 134408/242639 with this change) No real, meaningful behavior difference. Differential Revision: https://reviews.llvm.org/D108924
-
Nikita Popov authored
The backend generally uses 64-bit immediates (e.g. what MachineOperand::getImm() returns), so use that for analyzeCompare() and optimizeCompareInst() as well. This avoids truncation for targets that support immediates larger 32-bit. In particular, we can avoid the bugprone value normalization hack in the AArch64 target. This is a followup to D108076. Differential Revision: https://reviews.llvm.org/D108875
-
Xiang Xiao authored
Differential Revision: https://reviews.llvm.org/D108896
-
David Blaikie authored
Empty packs in the non-final position would result in an extra ", ". Empty packs in the final position would result in missing the space between trailing >>.
-
Mikhail Goncharov authored
This reverts commit 84cbd71c. This commit breaks one of the internal tests. As agreed with Alexey I will provide the reproducer later.
-
Hongtao Yu authored
Md5 hashing is expansive. Using a hash map to look up already computed GUID for dwarf names. Saw a 2% build time improvement on an internal large application. Reviewed By: wenlei Differential Revision: https://reviews.llvm.org/D108722
-
Nikita Popov authored
Only enforce that ptr* is illegal if the base type is a simple type, not when it is something like %ty, where %ty may resolve to an opaque pointer in force-opaque-pointers mode. Differential Revision: https://reviews.llvm.org/D108876
-
Joe Loser authored
Mark LWG3348 as complete. The `__cpp_lib_unwrap_ref` feature test macro was placed in `<functional>` in 466df171 Differential Revision: https://reviews.llvm.org/D108920
-
Philip Reames authored
And add a test case to illustrate that we do in fact produce the right result for the multiple exit case. I have gotten myself confused at least three times when reading this code, so clarify to prevent future confusion.
-
Andrei Elovikov authored
...that is located under llvm/lib/Support/. Reviewed By: erichkeane Differential Revision: https://reviews.llvm.org/D108423
-
Louis Dionne authored
- Rename test files to follow conventions better - Split constructor tests that were in a single file - Add missing tests for take_view and transform_view's default constructors - Add missing tests for transform_view's view/function constructor - Fix include guards - Mark some tests as being specific to libc++ Differential Revision: https://reviews.llvm.org/D108829
-
Nico Weber authored
- Don't subtract thunkSize from branchRange. Most places care about the actual maximal branch range. Subtract thunkSize in the one place that wants to leave room for a thunk. - Set it to 0x800_0000 instead of 0xFF_FFFF - Subtract 4 for the positive branch direction since it's a two's complement 24bit number sign-extended mutiplied by 4, so its range is -0x800_0000..+0x7FF_FFFC - Make boundary checks include the boundary values This doesn't make a huge difference in practice. It's preparation for a "real" fix for PR51578 -- but it also lets the repro in comment 0 in that bug place one more thunk before hitting the TODO. Differential Revision: https://reviews.llvm.org/D108897
-
Andrew Litteken authored
Occasionally instructions are between the last instruction in a region, and the following instruction as identified by the Candidate. This adds an extra check right before splitting a candidate that excludes the region from being split/checked for outlining to remove errors. Tests Added: Tranforms/IROuutliner/outlining-extra-bitcasts.ll Reviewer: paquette, jroelofs Differential Revision: https://reviews.llvm.org/D104142
-
Daniil Fukalov authored
New tests ported over from test/Analysis/CostModel/AArch64/shuffle-other.ll.
-
Kazu Hirata authored
Identified with readability-redundant-string-cstr.
-
- Aug 30, 2021
-
-
Craig Topper authored
Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D108487
-
Craig Topper authored
[DAGCombiner][RISCV] Don't use vector types in DAGCombiner::tryStoreMergeOfLoads if we need a rotate. The check for whether a rotate is possible occurs before the memory legality checks for the integer type. So it's possible we decide we can use a rotate, but then fail the legality checks. If that happens we should not fall back to a vector type. This triggers an assertion in the rotate handling when it finds a vector type instead of an integer type. In theory we could use a shufflevector in place of the rotate, but right now I'd just like to fix the crash. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D108839
-
Danila Malyutin authored
-
Andrew Litteken authored
Adding missing comments to IRSimilarityIdentifier.cpp since they were not properly added in commit 063af63b.
-
Joachim Protze authored
In some build configurations, the target we depend on is not available for declaring the build dependency. We only need to declare the build dependency, if the build target is available in the same build. Fixes the issue raised in https://reviews.llvm.org/D107156#2969862 This patch should go into release/13 together with D108404 Differential Revision: https://reviews.llvm.org/D108868
-
Stella Laurenzo authored
* It is pretty clear that no one has tried this yet since it was both incomplete and broken. * Fixes a symbol hiding issues keeping even the generic builder from constructing an operation with successors. * Adds ODS support for successors. * Adds CAPI `mlirBlockGetParentRegion`, `mlirRegionEqual` + tests (and missing test for `mlirBlockGetParentOperation`). * Adds Python property: `Block.region`. * Adds Python methods: `Block.create_before` and `Block.create_after`. * Adds Python property: `InsertionPoint.block`. * Adds new blocks.py test to verify a plausible CFG construction case. Differential Revision: https://reviews.llvm.org/D108898
-
Jake Egan authored
When building LLVM with Open XL and -Werror is specified, the -Waix-compat warning becomes an error. This patch updates the SmallVector class to suppress the -Waix-compat warning/error on AIX. Reviewed By: daltenty Differential Revision: https://reviews.llvm.org/D108577
-