- Jan 31, 2021
-
-
Kazu Hirata authored
AMDGPUTargetTransformInfo.h needs AMDGPUTargetMachine but relies on a forward declaration of AMDGPUTargetMachine in AMDGPU.h. This patch adds a forward declaration right in AMDGPUTargetTransformInfo.h. While we are at it, this patch removes the one in AMDGPU.h, where it is unnecessary.
-
Kazu Hirata authored
-
Stephen Kelly authored
-
- Jan 30, 2021
-
-
Fraser Cormack authored
This demonstrates a missed optimization: the `vmv.x.s` instruction is used to extract the element from the vector, and this instruction already sign-extends the value to XLEN.
-
Georgii Rymar authored
Fixes https://bugs.llvm.org/show_bug.cgi?id=48882. If the input file does not exist (or has a reading error), the following code will crash if there are two or more input addresses. ``` auto ResOrErr = Symbolizer.symbolizeInlinedCode( ModuleName, {Offset, object::SectionedAddress::UndefSection}); Printer << (error(ResOrErr) ? DILineInfo() : ResOrErr.get().getFrame(0)); ``` For the first address, `symbolizeInlinedCode` returns an error. For the second address, `symbolizeInlinedCode` returns an empty result (not an error) and `.getFrame(0)` will crash. Differential revision: https://reviews.llvm.org/D95609
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D95607
-
Florian Hahn authored
This patch fixes updating MemorySSA if the header contains memory defs that do not clobber a duplicated instruction. We need to find the first defining access outside the loop body and use that as defining access of the duplicated instruction. This fixes a crash caused by bee48685.
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D95562
-
Harald van Dijk authored
D36116 refactored the logic of tests and removed the definition of TARGET_FLAGS, but left one use of it. Restore its definition for that one use, so that an x86_64 test is compiled with -m64. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D93634
-
Florian Hahn authored
This patch adds an option to enable the new pass manager in LTOCodeGenerator. It also updates a few tests with legacy PM specific tests, which started failing after 6a59f056 when LLVM_ENABLE_NEW_PASS_MANAGER=true.
-
Florian Hahn authored
This patch updates LTOCodeGenerator to use the utilities provided by LTOBackend to run middle-end optimizations and backend code generation. This is a first step towards unifying the code used by libLTO's C API and the newer, C++ interface (see PR41541). The immediate motivation is to allow using the new pass manager when doing LTO using libLTO's C API, which is used on Darwin, among others. With the changes, there are no codegen/stats differences when building MultiSource/SPEC2000/SPEC2006 on Darwin X86 with LTO, compared to without the patch. Reviewed By: steven_wu Differential Revision: https://reviews.llvm.org/D94487
-
Fangrui Song authored
This has been fixed by D89841.
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Yang Fan authored
-
Greg McGary authored
Coalesce all version control options into a group Differential Revision: https://reviews.llvm.org/D94938
-
Greg McGary authored
Compact unwind entries have 8 bits for the encoding-table offset: * offsets 0..126 reference the global commmon-encodings table, while * offsets 127..255 reference a per-second-level-page table. This diff teaches `llvm-objdump` to print this per-page encodings table. Differential Revision: https://reviews.llvm.org/D93265
-
Wang, Pengfei authored
This is an optimized approach for D94155. Previous code build the model that tile config register is the user of each AMX instruction. There is a problem for the tile config register spill. When across function, the ldtilecfg instruction may be inserted on each AMX instruction which use tile config register. This cause all tile data register clobber. To fix this issue, we remove the model of tile config register. Instead, we analyze the AMX instructions between one call to another. We will insert ldtilecfg after the first call if we find any AMX instructions. Reviewed By: LuoYuanke Differential Revision: https://reviews.llvm.org/D95136
-
Sriraman Tallam authored
Source Drift happens when the sources are updated after profiling the binary but before building the final optimized binary. If the source has changed since the profiles were obtained, optimizing basic blocks might be sub-optimal. This only applies to BasicBlockSection::List as it creates clusters of basic blocks using basic block ids. Source drift can invalidate these groupings leading to sub-optimal code generation with regards to performance. PGO source drift for a particular function can be detected using function metadata added in D95495. When source drift is deected, disable basic block clusters by default which can be re-enabled with -mllvm option bbsections-detect-source-drift=false. Differential Revision: https://reviews.llvm.org/D95593
-
Jacques Pienaar authored
Tuples can occupy quite a lot of space, instead of printing out tuple type everywhere, just use the type alias if larger (arbitrarily chose a bound for now). Differential Revision: https://reviews.llvm.org/D95707
-
Craig Topper authored
[RISCV] Merge rv32 and rv64 vector fadd/fsub/fmul/fdiv sdnode tests into single tests files with 2 run lines. The IR and CHECK lines are identical so just keep one copy.
-
Nathan Hawes authored
As a fixme notes, both of these directory iterator implementations are conceptually similar and duplicate the functionality of returning and uniquing entries across two or more directories. This patch combines them into a single class 'CombiningDirIterImpl'. This also drops the 'Redirecting' prefix from RedirectingDirEntry and RedirectingFileEntry to save horizontal space. There's no loss of clarity as they already have to be prefixed with 'RedirectingFileSystem::' whenever they're referenced anyway. rdar://problem/72485443 Differential Revision: https://reviews.llvm.org/D94857
-
karimnosseir authored
Update ElementsAttr::isValidIndex to handle ElementsAttr with a scalar. Scalar will have rank 0. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D95663
-
Hsiangkai Wang authored
-
peter klausler authored
Legacy Fortran implementations support an alternative form of the PARAMETER statement; it differs syntactically from the standard's PARAMETER statement by lacking parentheses, and semantically by using the type and shape of the initialization expression to define the attributes of the named constant. (GNU Fortran gets that part wrong; Intel Fortran and nvfortran have full support.) This patch disables the old style PARAMETER statement by default, as it is syntactically ambiguous with conforming assignment statements; adds a new "-falternative-parameter-statement" option to enable it; and implements it correctly when enabled. Fixes https://bugs.llvm.org/show_bug.cgi?id=48774, in which a user tripped over the syntactic ambiguity. Differential Revision: https://reviews.llvm.org/D95697
-
Hsiangkai Wang authored
v0.10 is tagged in V specification. Update the version to v0.10. Differential Revision: https://reviews.llvm.org/D95680
-
Hsiangkai Wang authored
Not all combinations of SEW and LMUL we need to support. For example, we only need to support [M1, M2, M4, M8] for SEW = 64. There is no need to define pseudos for PseudoVLSE64MF8, PseudoVLSE64MF4, and PseudoVLSE64MF2. Differential Revision: https://reviews.llvm.org/D95667
-
Stanislav Mekhanoshin authored
A condition "mayLoadOrStore" is too broad for that function. Differential Revision: https://reviews.llvm.org/D95700
-
Roman Lebedev authored
This finishes getting rid of all the avoidable Dominator Tree recalculations in X86 optimized codegen pipeline.
-
Roman Lebedev authored
This doesn't help avoid any Dominator Tree recalculations just yet, there's one more pass to go..
-
Roman Lebedev authored
-
Christopher Tetreault authored
The previously agreed-upon deprecation period for VectorType::getNumElements() has passed. This patch removes this method and completes the refactor proposed in the RFC: https://lists.llvm.org/pipermail/llvm-dev/2020-March/139811.html Reviewed By: david-arm, rjmccall Differential Revision: https://reviews.llvm.org/D95570
-
Sriraman Tallam authored
This patch emits "instr_prof_hash_mismatch" function annotation metadata if there is a hash mismatch while applying instrumented profiles. During the PGO optimized build using instrumented profiles, if the CFG of the function has changed since generating the profile, a hash mismatch is encountered. This patch emits this information as annotation metadata. We plan to use this with Propeller which is done at the machine IR level. Propeller is usually applied on top of PGO and a hash mismatch during PGO could be used to detect source drift. Differential Revision: https://reviews.llvm.org/D95495
-
Michał Górny authored
LLVMTestingSupport is not part of libLLVM, and therefore can not be linked to via LLVM_LINK_COMPONENTS. Instead, it needs to be specified explicitly to ensure that it is linked explicitly even if LLVM_LINK_LLVM_DYLIB is used. This is consistent with handling in clangd. Fixes PR#48931 Differential Revision: https://reviews.llvm.org/D95653
-
Alexander Belyaev authored
Currently, for a scf.parallel (i,j,k) after the loop collapsing to 1D is done, the IVs would be traversed as for an scf.parallel(k,j,i). Differential Revision: https://reviews.llvm.org/D95693
-
Christopher Tetreault authored
There are builders that do not have python 3.6. Revert until this situation can be rectified This reverts commit 0703b075.
-
Christopher Tetreault authored
Previously, CMake would find any version of Python3. However, the project claims to require 3.6 or greater, and 3.6 features are being used. Reviewed By: yln Differential Revision: https://reviews.llvm.org/D95635
-
Jessica Paquette authored
I think every target will want to remove these in the same way. Rather than making them all implement the same code, let's just put this in InstructionSelect. Differential Revision: https://reviews.llvm.org/D95652
-
Fangrui Song authored
-