- Oct 15, 2020
-
-
sunshaoce authored
A commit of VALUVVNoVm was wrong, fixed it. Reviewed By: HsiangKai Differential Revision: https://reviews.llvm.org/D88142
-
Simon Pilgrim authored
-
Simon Pilgrim authored
[InstCombine] SimplifyDemandedUseBits - xor - refactor cast<ConstantInt> usage to PatternMatch. NFCI. First step towards replacing these to add full vector support.
-
Simon Pilgrim authored
First step towards replacing these to add full vector support.
-
JonChesterfield authored
[openmp][libomptarget] Include header from LLVM source tree The change is to the amdgpu plugin so is unlikely to break anything. The point of contention is whether libomptarget can depend on LLVM. A community discussion was cautiously not opposed yesterday. This introduces a compile time dependency on the LLVM source tree, in this case expressed as skipping the building of the plugin if LLVM_MAIN_INCLUDE_DIR is not set. One the source files will #include llvm/Frontend/OpenMP/OMPGridValues.h, instead of copy&pasting the numbers across. For users that download the monorepo, the llvm tree is already on disk. This will inconvenience users who download only the openmp source as a tar, as they would now also have to download (at least a file or two) from the llvm source, if they want to build the parts of the openmp project that (post this patch) depend on llvm. There was interest expressed in going further - using llvm tools as part of building libomp, or linking against llvm libraries. That seems less clear cut an improvement and worthy of further discussion. This patch seeks only to change policy to support openmp depending on the llvm source tree. Including in the other direction, or using libraries / tools etc, are purposefully out of scope. Reviewers are a best guess at interested parties, please feel free to add others Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D87841
-
Stephan Herhut authored
Parsing of a scalar subview did not create the required static_offsets attribute. This also adds support for folding scalar subviews away. Differential Revision: https://reviews.llvm.org/D89467
-
JonChesterfield authored
-
Paul C. Anagnostopoulos authored
Update the TableGen Programmer's Reference.
-
Paul C. Anagnostopoulos authored
-
Jeremy Morse authored
In a7b209a6, llvm-symbolizer was adjusted to return a failure status code when it produced an error, to flag up DWARF parsing problems. The test for missing PDB file is analogous, and returns a failure status now too. This should fix the llvm-clang-win-x-armv7l buildbot croaking: http://lab.llvm.org:8011/#/builders/60/builds/77
-
Matt Arsenault authored
This does unfortunately end up with extra waitcnts getting inserted that were avoided before. Ideally we would avoid the spills of these undef components in the first place.
-
Simon Pilgrim authored
This is still ConstantInt-only (scalar) but is refactored to use PatternMatch to make adding vector support in the future relatively trivial.
-
Carl Ritson authored
Generate the minimal set of s_mov instructions required when expanding a SGPR copy operation in copyPhysReg. Reviewed By: foad Differential Revision: https://reviews.llvm.org/D89187
-
Caroline Concatto authored
Using TypeSize::getFixedSize() instead of relying upon the implicit TypeSize->uint64_cast as the type is always fixed width. Differential Revision: https://reviews.llvm.org/D89313
-
Denis Antrushin authored
After D87915 statepoint can have more than 15 tied operands. Remove this restriction from statepoint lowering code.
-
Andrew Ng authored
ICF was not able to merge equivalent sections because of relocations to sections ineligible for ICF that use alternative symbols, e.g. symbol aliases or section relative relocations. Merging in this scenario has been enabled by giving the sections that are ineligible for ICF a unique ID, i.e. an equivalence class of their own. This approach also provides another benefit as it improves the hashing that is used to perform the initial equivalance grouping for ICF. This is because the ICF ineligible sections can now contribute a unique value towards the hashes instead of the same value of zero. This has been seen to reduce link time with ICF by ~68% for objects compiled with -fprofile-instr-generate. In order to facilitate this use of a unique ID, the existing inconsistent approach to the setting of the InputSection eqClass in ICF has been changed so that there is a clear distinction between the eqClass values of ICF eligible sections and those of the ineligible sections that have a unique ID. This inconsistency could have caused incorrect equivalence class equality in the past, although it appears that no issues were encountered in actual use. Differential Revision: https://reviews.llvm.org/D88830
-
Serge Guelton authored
As usual, it's difficult to handle all different configuration in the first row, but this one has been extensively tested Differential Revision: https://reviews.llvm.org/D89452
-
Adrian Kuegel authored
Differential Revision: https://reviews.llvm.org/D89454
-
Jeremy Morse authored
Add a table recording "substitutions" between pairs of <instruction, operand> numbers, from old pairs to new pairs. Post-isel optimizations are able to record the outcome of an optimization in this way. For example, if there were a divide instruction that generated the quotient and remainder, and it were replaced by one that only generated the quotient: $rax, $rcx = DIV-AND-REMAINDER $rdx, $rsi, debug-instr-num 1 DBG_INSTR_REF 1, 0 DBG_INSTR_REF 1, 1 Became: $rax = DIV $rdx, $rsi, debug-instr-num 2 DBG_INSTR_REF 1, 0 DBG_INSTR_REF 1, 1 We could enter a substitution from <1, 0> to <2, 0>, and no substitution for <1, 1> as it's no longer generated. This approach means that if an instruction or value is deleted once we've left SSA form, all variables that used the value implicitly become "optimized out", something that isn't true of the current DBG_VALUE approach. Differential Revision: https://reviews.llvm.org/D85749
-
Simon Pilgrim authored
Replace m_ConstantInt with m_APInt to support uniform vectors (with no undef elements) Adding non-undef support would involve some refactoring of the MaskOps struct but this might still be worth it.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
Now that funnel shift handling is pretty good, we can use the intrinsics directly and avoid a lot of zext/trunc issues. https://godbolt.org/z/YqhnnM Differential Revision: https://reviews.llvm.org/D89405
-
Raphael Isemann authored
-
Sebastian Neubauer authored
Checks that metadata and invalid message are printed. Differential Revision: https://reviews.llvm.org/D89375
-
Denis Antrushin authored
Current limit on amount of tied operands (15) sometimes is too low for statepoint. We may get couple dozens of gc pointer operands on statepoint. Review D87154 changed format of statepoint to list every gc pointer only once, which makes it trivial to find tiedness relation between statepoint operands: defs are mapped 1-1 to gc pointer operands passed on registers. Reviewed By: skatkov Differential Revision: https://reviews.llvm.org/D87915
-
Tyker authored
Capitalize the profile function of APValue such that it can be used by FoldingSetNodeID Reviewed By: rsmith Differential Revision: https://reviews.llvm.org/D88643
-
Georgii Rymar authored
Currently we have a few sections that does not support specifying no keys for them. E.g. it is required that one of "Content", "Size" or "Entries" key is present. There is no reason to have this restriction. We can allow this and emit an empty section instead. This opens road for a simplification and generalization of the code in `validate()` that is discussed in the D89039 thread. Depends on D89039. Differential revision: https://reviews.llvm.org/D89391
-
Guillaume Chatelet authored
This patch adds memory function size distributions sampled from different applications running in production. This will be used to benchmark and compare memory functions implementations. Differential Revision: https://reviews.llvm.org/D89401
-
Georgii Rymar authored
Many sections either do not have a support of `Size`/`Content` or support just a one of them, e.g only `Content`. `Section` is the base class for sections. This patch adds `Content` and `Size` members to it and removes similar members from derived classes. This allows to cleanup and generalize the code and adds a support of these keys for all sections (`SHT_MIPS_ABIFLAGS` is a only exception, it requires unrelated specific changes to be done). I had to update/add many tests to test the new functionality properly. Differential revision: https://reviews.llvm.org/D89039
-
Craig Topper authored
This combine can look through (trunc (ctpop X)). When doing this it tries to make sure the trunc doesn't lose any information from the ctpop. It does this by checking that the truncated type has more bits that Log2_32_Ceil of the ctpop type. The Ceil is unnecessary and pessimizes non-power of 2 types. For example, ctpop of i256 requires 9 bits to represent the max value of 256. But ctpop of i255 only requires 8 bits to represent the max result of 255. Log2_32_Ceil of 256 and 255 both return 8 while Log2_32 returns 8 for 256 and 7 for 255 The code with popcnt enabled is a regression for this test case, but it does match what already happens with i256 truncated to i9. Since power of 2 is more likely, I don't think it should block this change. Differential Revision: https://reviews.llvm.org/D89412
-
David Sherwood authored
In most of lib/Target we know that we are not dealing with scalable types so it's perfectly fine to replace TypeSize comparison operators with their fixed width equivalents, making use of getFixedSize() and so on. Differential Revision: https://reviews.llvm.org/D89101
-
Jason Molenda authored
With a large dSYM over a slow home connection, the two minute timeout would sometimes be exceeded, and we haven't seen instances of a long timeout causing people any problems, so we're bumping it up. 640 seconds ought to be enough for anyone. <rdar://problem/67759526>
-
Luqman Aden authored
Fixes https://bugs.llvm.org/show_bug.cgi?id=46473 LLD wasn't previously specifying any specific alignment in the TLS table's Characteristics field so the loader would just assume the default value (16 bytes). This works most of the time except if you have thread locals that want specific higher alignments (e.g. 32 as in the bug) *even* if they specify an alignment on the thread local. This change updates LLD to take the max alignment from tls section. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D88637
-
Luqman Aden authored
Revert individual wip commits and will instead follow up with a single commit with all the changes. Makes cherry-picking easier and will contain all the right tags. This reverts commit 32a4ad3b. This reverts commit 7fe13af6. This reverts commit 51fbc1be. This reverts commit f80950a8. This reverts commit 0778cad9. This reverts commit 8b70d527.
-
David Blaikie authored
-
David Blaikie authored
-
Jason Molenda authored
<rdar://problem/70296751>
-
Carl Ritson authored
-
David Blaikie authored
(this doesn't cover all cases - libDebugInfoDWARF has a default error handler that prints errors without any exit code handling - I'll be following up with a patch for that after this)
-
MaheshRavishankar authored
Each hardware that supports SPV_C_CooperativeMatrixNV has a list of configurations that are supported natively. Add an attribute to specify the configurations supported to the `spv.target_env`. Reviewed By: antiagainst, ThomasRaoux Differential Revision: https://reviews.llvm.org/D89364
-