- Aug 31, 2021
-
-
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
-
Victor Huang authored
This patch renames the vector clear left/right builtins vec_clrl, vec_clrr to vec_clr_first and vec_clr_last to avoid the ambiguities when dealing with endianness. Reviewed By: amyk, lei Differential revision: https://reviews.llvm.org/D108702
-
Raphael Isemann authored
This came up during the Windows bot failure discussing after D105471 . See also 3d9a9fa6 .
-
Hiroki authored
When I run a lldb command that uses filename completion, if I enter a string that is not only a filename but also a string with a non-file name string added, such as "./" that is relative path string , it will crash as soon as I press the [Tab] key. For example, debugging an executable file named "hello" that is compiled from a file named "hello.c" , and I’ll put a breakpoint on line 3 of hello.c. ``` $ lldb ./hello (lldb) breakpoint set --file hello.c --line 3 ``` This is not a problem, but if I set "--file ./hello." and then press [Tab] key to complete file name, lldb crashes. ``` $ lldb ./hello (lldb) breakpoint set --file ./hello.terminate called after throwing an instance of 'std::out_of_range' what(): basic_string::substr: __pos (which is 8) > this->size() (which is 7) ``` The crash was caused because substr() (in lldb/source/Host/common/Editline.cpp) cut out string which size is user's input string from the completion string. I modified the code that erase the user's intput string from current line and then add the completion string. Differential Revision: https://reviews.llvm.org/D108817
-
Aaron Ballman authored
-