- Mar 30, 2021
-
-
Vitaly Buka authored
-
Alok Kumar Sharma authored
This is needed for Fortran assumed shape arrays whose dimensions are defined as, - 'count' is taken from array descriptor passed as parameter by caller, access from descriptor is defined by type DIExpression. - 'lowerBound' is defined by callee. The current alternate way represents using upperBound in place of count, where upperBound is calculated in callee in a temp variable using lowerBound and count Representation with count (DIExpression) is not only clearer as compared to upperBound (DIVariable) but it has another advantage that variable count is accessed by being parameter has better chance of survival at higher optimization level than upperBound being local variable. Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D99335 -
Rahman Lavaee authored
Empty functions (functions with no real code) are irrelevant for propeller optimizations and their addresses sometimes conflict with other functions which obfuscates the analysis. This simple change skips the BB address map emission for such functions. Reviewed By: tmsriram Differential Revision: https://reviews.llvm.org/D99395
-
Stella Stamenova authored
This breaks the windows bots because the dependency does not exist on Windows. Per the cmake file: if(CMAKE_HOST_UNIX) add_subdirectory(LLJITWithRemoteDebugging) endif() This reverts commit bd56e91f.
-
Jun Ma authored
-
Jun Ma authored
Differential Revision: https://reviews.llvm.org/D99324
-
Jun Ma authored
Differential Revision: https://reviews.llvm.org/D99412
-
Louis Dionne authored
Download older roots from Dropbox instead of Green Dragon, which is too unreliable. Also XFAIL tests that were broken for back-deployment configurations by D98097. Differential Revision: https://reviews.llvm.org/D99359
-
Hsiangkai Wang authored
Add asm constraint 'vr' for vector registers. Add asm constraint 'vm' for vector mask registers. Differential Revision: https://reviews.llvm.org/D98616
-
Evandro Menezes authored
Differential Revision: https://reviews.llvm.org/D99557
-
Adrian Prantl authored
This commit adds debugging support for set types defined in languages such as Pascal and Modula-2. Patch by Peter McKinna! Differential Revision: https://reviews.llvm.org/D76115
-
Dave Lee authored
-
David Blaikie authored
-
Thomas Lively authored
When I updated the SIMD opcodes in f5764a86, I accidentally missed updating i8x16.popcnt. This patch fixes the omission. Differential Revision: https://reviews.llvm.org/D99536
-
Jonas Devlieghere authored
-
Huihui Zhang authored
Use SmallVector instead of SmallSet to track the context profiles mapped. Doing this can help avoid non-determinism caused by iterating over unordered containers. This bug was found with reverse iteration turning on, --extra-llvm-cmake-variables="-DLLVM_REVERSE_ITERATION=ON". Failing LLVM test profile-context-tracker-debug.ll . Reviewed By: MaskRay, wenlei Differential Revision: https://reviews.llvm.org/D99547
-
Jessica Paquette authored
regbank-ceil.ll -> regbank-ceil.mir The IR test was intended to only check register banks. This makes it brittle, especially as we improve load/store combines in GlobalISel. Rewriting this as a MIR test also makes it more consistent with the rest of the testcases in GlobalISel.
-
Jonas Devlieghere authored
dsymutil is not relocating the DW_AT_low_pc for a DW_TAG_label. This patch fixes that and adds a test. Differential revision: https://reviews.llvm.org/D99534
-
Jonas Devlieghere authored
-
Greg Clayton authored
When LLVM error handling was introduced to the parsing of the .debug_aranges it would cause major issues if any DWARFDebugArangeSet::extract() calls returned any errors. The code in DWARFDebugInfo::GetCompileUnitAranges() would end up calling DWARFDebugAranges::extract() which would return an error if _any_ DWARFDebugArangeSet had any errors, but it default constructed a DWARFDebugAranges object into DWARFDebugInfo::m_cu_aranges_up and populated it partially, and returned an error prior to finishing much needed functionality in the DWARFDebugInfo::GetCompileUnitAranges() function. Subsequent callers to this function would see that the DWARFDebugInfo::m_cu_aranges_up was actually valid and return this partially populated DWARFDebugAranges reference _and_ it would not be sorted or minimized. This above bugs would cause an incomplete .debug_aranges parsing, it would skip manually parsing any compile units for ranges, and would not sort the DWARFDebugAranges in m_cu_aranges_up. This bug would also cause breakpoints set by file and line to fail to set correctly if a symbol context for an address could not be resolved properly, which the incomplete and unsorted DWARFDebugAranges object that DWARFDebugInfo::GetCompileUnitAranges() returned would cause symbol context lookups resolved by address (breakpoint address) to fail to find any DWARF debug info for a given address. This patch fixes all of the issues that I found: - DWARFDebugInfo::GetCompileUnitAranges() no longer returns a "llvm::Expected<DWARFDebugAranges &>", but just returns a "const DWARFDebugAranges &". Why? Because this code contained a fallback that would parse all of the valid DWARFDebugArangeSet objects, and would check which compile units had valid .debug_aranges set entries, and manually build an address ranges table using DWARFUnit::BuildAddressRangeTable(). If we return an error because any DWARFDebugArangeSet has any errors, then we don't do any of this code. Now we parse all DWARFDebugArangeSet objects that have no errors, if any calls to DWARFDebugArangeSet::extract() return errors, we skip that DWARFDebugArangeSet so that we can use the fallback call to DWARFUnit::BuildAddressRangeTable(). Since DWARFDebugInfo::GetCompileUnitAranges() needs to parse what it can from the .debug_aranges and build address ranges tables for any compile units that don't have any .debug_aranges sets, everything now works as expected. - Fix an issue where a DWARFDebugArangeSet contains multiple terminator entries. The LLVM parser and llvm-dwarfdump properly warn about this because it happens with linux compilers and linkers and was the original cause of the bug I am fixing here. We now correctly warn about this issue if "log enable dwarf info" is enabled, but we continue to parse the DWARFDebugArangeSet correctly so we don't lose data that is contained in the .debug_aranges section. - DWARFDebugAranges::extract() no longer returns a llvm::Error because we need to be able to parse all of the valid DWARFDebugArangeSet objects. It also will correctly skip a DWARFDebugArangeSet object that has errors in the middle of the stream by setting the start offsets of each DWARFDebugArangeSet to be calculated by the previous DWARFDebugArangeSet::extract() calculated offset that uses the header which contains the length of the DWARFDebugArangeSet. This means if do we run into real errors while parsing individual DWARFDebugArangeSet objects, we can continue to parse the rest of the validly encoded DWARFDebugArangeSet objects in the .debug_aranges section. This will allow LLDB to parse DWARF that contains a possibly newer .debug_aranges set format than LLDB currently supports because we will error out for the parsing of the DWARFDebugArangeSet, but be able to skip to the next DWARFDebugArangeSet object using the "DWARFDebugArangeSet.m_header.length" field to calculate the next starting offset. Tests were added to cover all new functionality. Differential Revision: https://reviews.llvm.org/D99401
-
LLVM GN Syncbot authored
-
Gulfem Savrun Yeniceri authored
Lookup tables generate non PIC-friendly code, which requires dynamic relocation as described in: https://bugs.llvm.org/show_bug.cgi?id=45244 This patch adds a new pass that converts lookup tables to relative lookup tables to make them PIC-friendly. Differential Revision: https://reviews.llvm.org/D94355
-
Florian Hahn authored
Currently performExtendCombine assumes that the src-element bitwidth * 2 is a valid MVT. But this is not the case for i1 and it causes a crash on the v64i1 test cases added in this patch. It turns out that this code appears to not be needed; the same patterns are handled by other code and we end up with the same results, even without the custom lowering. I also added additional test cases in a50037aa. Let's just remove the unneeded code. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D99437
-
Jonas Devlieghere authored
Print LLVM's pretty stack trace when lldb-vscode crashes. Also removes the unnecessary call to PrintStackTraceOnErrorSignal in lldb-server as it's already part of InitLLVM. Differential revision: https://reviews.llvm.org/D99535
-
Nikita Popov authored
If the successor block has a phi node, then additional moves may be inserted into predecessors, which may clobber eflags. Don't try to fold the with.overflow result into the branch in that case. This is done by explicitly checking for any phis in successor blocks, not sure if there's some more principled way to address this. Other fused compare and branch patterns avoid the issue by emitting the comparison when handling the branch, so that no instructions may be inserted in between. In this case, the with.overflow call is emitted separately (and I don't think this is avoidable, as it will generally have at least two users). Fixes https://bugs.llvm.org/show_bug.cgi?id=49587. Differential Revision: https://reviews.llvm.org/D98600
-
Fanbo Meng authored
Reviewed By: abhina.sreeskantharajan Differential Revision: https://reviews.llvm.org/D99514
-
Fangrui Song authored
This is the behavior required by the standards. Differential Revision: https://reviews.llvm.org/D99480
-
Petr Hosek authored
This reverts commit 3001d080 which seems to have introduced a race condition that's failing the build in some cases.
-
MaheshRavishankar authored
Differential Revision: https://reviews.llvm.org/D99533
-
Nico Weber authored
-
Stanislav Mekhanoshin authored
-
Samuel authored
Add a new delta pass to llvm-reduce that removes dso_local when possible Reviewed By: aeubanks Differential Revision: https://reviews.llvm.org/D98673
-
Petr Hosek authored
In Python 3, math.floor returns int when both arguments are ints. In Python 2, math.floor returns float. This leads to a failure because the result of math.floor is used as an array index. While Python 2 is on its way out, it's still used in some places so use an integer division instead. Differential Revision: https://reviews.llvm.org/D99520
-
Nico Weber authored
-
Fangrui Song authored
-
MaheshRavishankar authored
A new `InterfaceMethod` is added to `InferShapedTypeOpInterface` that allows an operation to return the `Value`s for each dim of its results. It is intended for the case where the `Value` returned for each dim is computed using the operands and operation attributes. This interface method is for cases where the result dim of an operation can be computed independently, and it avoids the need to aggregate all dims of a result into a single shape value. This also implies that this is not suitable for cases where the result type is unranked (for which the existing interface methods is to be used). Also added is a canonicalization pattern that uses this interface and resolves the shapes of the output in terms of the shapes of the inputs. Moving Linalg ops to use this interface, so that many canonicalization patterns implemented for individual linalg ops to achieve the same result can be removed in favor of the added canonicalization pattern. Differential Revision: https://reviews.llvm.org/D97887
-
Nico Weber authored
-
Stella Laurenzo authored
* Also adds some verbiage about upgrading `pip` itself, since this is a common source of issues. Differential Revision: https://reviews.llvm.org/D99522
-