- Aug 31, 2021
-
-
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
-
Kim-Anh Tran authored
Previously, if no column was specified, ResolveSymbolContext would take the first match returned by FindLineEntryIndexByFileIndex, and reuse it to find subsequent exact matches. With the introduction of columns, columns are now considered when matching the line entries. This leads to a problem if one wants to get all existing line entries that match that line, since now the column is also used for the exact match. This way, all line entries are filtered out that have a different column number, but the same line number. This patch changes that by ignoring the column information of the first match if the original request of ResolveSymbolContext was also ignoring it. Reviewed By: mib Differential Revision: https://reviews.llvm.org/D108816
-
Djordje Todorovic authored
If we encounter a new debug value, describing the same parameter, we should stop tracking the parameter's Entry Value. At that point, in some cases, the Transfer which uses the parameter's Entry Value, is already emitted. Thanks to the RemoveRedundantDebugValues pass, many problems with incorrect instruction order and number of DBG_VALUEs are fixed. However, we still cannot rely on the rule that each new debug value is set by the previous non-debug instruction in Machine Basic Block. When new parameter debug value triggers removal of Backup Entry Value for the same parameter, do the cleanup of Transfers emitted from Backup Entry Values. Get the Transfer Instruction which created the new debug value and search for debug values already emitted from the to-be-deleted Backup Entry Value and attached to the Transfer Instruction. If found, delete the Transfer and remove "primary" Entry Value Var Loc from OpenRanges. This patch fixes PR47628. Patch by Nikola Tesic. Differential revision: https://reviews.llvm.org/D106856
-
Jean Perier authored
After 41d4aa7d, some builder.getStringAttr calls in FIR were wrong.
-
Simon Moll authored
Clang only adds GCC paths for RHEL <= 7 'devtoolset-<N>' Software Collections (SCL). This generalizes this support to also include the 'gcc-toolset-10' SCL in RHEL/CentOS 8. Reviewed By: stephan.dollberg Differential Revision: https://reviews.llvm.org/D108908
-
Simon Pilgrim authored
[TTI][X86] getArithmeticInstrCost - move opcode canonicalization before all target-specific costs. NFCI. The GLM/SLM special cases still get tested first but after the the MUL/DIV/REM pattern detection - this will be necessary for when we make the SLM vXi32 MUL canonicalization generic to improve PMULLW/PMULHW/PMADDDW cost support etc.
-
Simon Pilgrim authored
-
Raphael Isemann authored
This can just be a default argument.
-
Anton Afanasyev authored
Follow-up of https://reviews.llvm.org/D108776
-
Dmitry Vyukov authored
Reviewed By: melver Differential Revision: https://reviews.llvm.org/D108907
-
Roman Lebedev authored
Previously, we'd expand *ALL* the SCEV's eagerly, because we needed to check with `isValidRewrite()`, and discard bad rewrite candidates, but now that we do not do that, we also don't need to always expand. In particular, this avoids expanding potentially-huge SCEV's that we would discard anyways because they are high-cost and we aren't rewriting aggressively.
-
Anton Afanasyev authored
The option `--gdb-index` should be passed to linker if compiler is invoked with `-gsplit-dwarf` option. This allows debugger to locate the appropriate units quickly. See "Invocation" section here: https://gcc.gnu.org/wiki/DebugFission Suggested by @dblaikie here: https://reviews.llvm.org/D68556#1698442 Differential Revision: https://reviews.llvm.org/D108776
-
Alex Zinenko authored
41d4aa7d introduced incorrect code in extraTraitClassDeclaration: `this` refers to the trait class and not the operation class so `->getContext()` is not valid. Use `$_op` instead.
-
Roman Lebedev authored
`isValidRewrite()` checks that the both the original SCEV, and the rewrite SCEV have the same base pointer. I //believe//, after all the recent SCEV improvements, this invariant is already enforced by SCEV itself. I originally tried changing it into an assert in D108043, but that showed that it triggers on e.g. https://reviews.llvm.org/D108043#2946621, where SCEV manages to forward the store to load, test added. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D108655
-
Roman Lebedev authored
We currently don't simplify anything here, but we can.
-
Michał Górny authored
Add a support for handling fork/vfork stops in LLGS client. At this point, it only sends a detach packet for the newly forked child (and implicitly resumes the parent). Differential Revision: https://reviews.llvm.org/D100206
-
“bhkumarn” authored
This patch emits DW_TAG_namelist and DW_TAG_namelist_item for fortran namelist variables. DICompositeType is extended to support this fortran feature. Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D108553
-
Diana Picus authored
GET_COMMAND_ARGUMENT takes a lot of optional arguments: VALUE, LENGTH, STATUS and ERRMSG. This patch breaks up the interface into 2 different functions: * One for getting the LENGTH of an argument. * One for getting the VALUE and the ERRMSG of an argument. This returns the STATUS, which can be easily ignored by lowering if it is missing in the invocation. Differential Revision: https://reviews.llvm.org/D108688
-
Diana Picus authored
Differential Revision: https://reviews.llvm.org/D108687
-
Florian Hahn authored
After applying VPlan-to-VPlan transformations, using IR references to query VPlan values may be incorrect, as the IR is not in sync with the VPlan any longer. To better detect such mis-matches, this patch introduces a new flag to VPlans to indicate whether it is safe to query VPValues using IR values. getVPValue is updated to assert if it is called when the flag indicates it is not safe any longer. There is an escape hatch via an extra argument, because there are 3 places that need to be fixed first. Those are 1. truncateToMinimalBitwidths 2. clearReductionWrapFlags 3. fixLCSSAPHIs As a first step, this flag will help preventing new code from violating this property. Any suggestions with respect to naming very welcome! Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D108573
-
Shivam Gupta authored
This tutorial will guide you through the process of making a change to LLVM, and contributing it back to the LLVM project. We'll be making a change to Clang, but the steps for other parts of LLVM are the same. Even though the change we'll be making is simple, we're going to cover steps like building LLVM, running the tests, and code review. This is good practice, and you'll be prepared for making larger changes. Authors: @meikeb , @gribozavr Commit: Zhiqian Xia PS - This is a duplicate revision of https://reviews.llvm.org/D100714 which was actually used for patch review. Reviewed By: kuhnel Differential Revision: https://reviews.llvm.org/D108267
-
Jean Perier authored
The double precision KindCode was ignored when building the interface of specific intrinsic procedures leading to bad semantics checks. Differential Revision: https://reviews.llvm.org/D108828
-
Wang, Pengfei authored
Enable FP16 complex FMA instructions. Ref.: https://software.intel.com/content/www/us/en/develop/download/intel-avx512-fp16-architecture-specification.html Reviewed By: LuoYuanke Differential Revision: https://reviews.llvm.org/D105269
-
Chris Lattner authored
SymbolRefAttr is fundamentally a base string plus a sequence of nested references. Instead of storing the string data as a copies StringRef, store it as an already-uniqued StringAttr. This makes a lot of things simpler and more efficient because: 1) references to the symbol are already stored as StringAttr's: there is no need to copy the string data into MLIRContext multiple times. 2) This allows pointer comparisons instead of string comparisons (or redundant uniquing) within SymbolTable.cpp. 3) This allows SymbolTable to hold a DenseMap instead of a StringMap (which again copies the string data and slows lookup). This is a moderately invasive patch, so I kept a lot of compatibility APIs around. It would be nice to explore changing getName() to return a StringAttr for example (right now you have to use getNameAttr()), and eliminate things like the StringRef version of getSymbol. Differential Revision: https://reviews.llvm.org/D108899
-
Siva Chandra Reddy authored
Also, added a call to munmap on error in thrd_create.
-