| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The previously introduced new operand type for br_table didn't have
a disassembler implementation, causing an assert.
Reviewers: dschuff, aheejin
Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits
Differential Revision: https://reviews.llvm.org/D56227
llvm-svn: 350366
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Instead of asserting on certain kinds of malformed instructions, it
now still print, but instead adds an annotation indicating the
problem, and/or indicates invalid_type etc.
We're using the InstPrinter from many contexts that can't always
guarantee values are within range (e.g. the disassembler), where having
output is more valueable than asserting.
Reviewers: dschuff, aheejin
Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits
Differential Revision: https://reviews.llvm.org/D56223
llvm-svn: 350365
|
|
|
|
| |
llvm-svn: 350364
|
|
|
|
|
|
| |
Add a forwarding target for check-hwasan in clang.
llvm-svn: 350363
|
|
|
|
| |
llvm-svn: 350362
|
|
|
|
|
|
|
|
|
| |
In cmake 3.10.2, if (${VARIABLE_NAME}) seems to always be false no
matter what documentation says (or maybe I just failed at reading).
Anyway, if (VARIABLE_NAME) seems to do what this code intended.
llvm-svn: 350361
|
|
|
|
|
|
| |
Thanks to Pavel Labath for the suggestion!
llvm-svn: 350360
|
|
|
|
|
|
| |
This tests a case where we need to be able to compute sign bits for two insert_subvectors that is a liveout of a basic block. The result is then used as a boolean vector in another basic block.
llvm-svn: 350359
|
|
|
|
| |
llvm-svn: 350358
|
|
|
|
|
|
|
|
|
|
|
|
| |
These are similar patterns, but when you throw AVX512 onto the pile,
the number of variations explodes. For FP, we really don't care about
AVX1 vs. AVX2 for FP ops. There may be some superficial shuffle diffs,
but that's not what we're testing for here, so I removed those RUNs.
Separating by type also lets us specify 'sse3' for the FP file vs. 'ssse3'
for the integer file...because x86.
llvm-svn: 350357
|
|
|
|
| |
llvm-svn: 350356
|
|
|
|
|
|
|
| |
Fold hack special casing of (%dx) operand parsing into the related
hack for out*/in* instruction parsing.
llvm-svn: 350355
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As noted in PR39973 and D55558:
https://bugs.llvm.org/show_bug.cgi?id=39973
...this is a partial implementation of a fold that we do as an IR canonicalization in instcombine:
// extelt (binop X, Y), Index --> binop (extelt X, Index), (extelt Y, Index)
We want to have this in the DAG too because as we can see in some of the test diffs (reductions),
the pattern may not be visible in IR.
Given that this is already an IR canonicalization, any backend that would prefer a vector op over
a scalar op is expected to already have the reverse transform in DAG lowering (not sure if that's
a realistic expectation though). The transform is limited with a TLI hook because there's an
existing transform in CodeGenPrepare that tries to do the opposite transform.
Differential Revision: https://reviews.llvm.org/D55722
llvm-svn: 350354
|
|
|
|
|
|
| |
Silence long standing test failure.
llvm-svn: 350353
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add omp_get_device_num() function for 5.0 which returns the number of the
device the current thread is running on. Currently, we are leaving it to the
compiler to handle this properly if it is called inside target.
Also, did some cleanup and updating of duplicate device API functions (in both
libomp and libomptarget) to make them into weak functions that check for the
symbol from libomptarget, and will call the version in libomptarget if it is
present. If any additional device API functions are implemented also in
libomptarget in the future, we should add the dlsym calls to the host functions.
Also, if the omp_target_* functions are to be implemented for the host (this has
been requested), they should attempt to call the libomptarget versions as well.
Patch by Terry Wilmarth
Differential Revision: https://reviews.llvm.org/D55578
llvm-svn: 350352
|
|
|
|
| |
llvm-svn: 350351
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Detailed description: SIFoldOperands::foldInstOperand iterates over the
operand uses calling the function that changes def-use iteratorson the
way. As a result loop exits immediately when def-use iterator is
changed. Hence, the operand is folded to the very first use instruction
only. This makes VGPR live along the whole basic block and increases
register pressure significantly. The performance drop observed in SHOC
DeviceMemory test is caused by this bug.
Proposed fix: collect uses to separate container for further processing
in another loop.
Testing: make check-llvm
SHOC performance test.
Reviewers: rampitec, ronlieb
Differential Revision: https://reviews.llvm.org/D56161
llvm-svn: 350350
|
|
|
|
|
|
| |
Suggested by Hal as done in r349871.
llvm-svn: 350349
|
|
|
|
|
|
|
|
|
| |
It was added in r257236 but then the one use was removed in r309517. Since no
test should call %host_cc, remove the pattern.
Differential Revision: https://reviews.llvm.org/D56200
llvm-svn: 350348
|
|
|
|
| |
llvm-svn: 350347
|
|
|
|
| |
llvm-svn: 350346
|
|
|
|
|
|
|
|
| |
files""
This reverts commit r350290.
llvm-svn: 350345
|
|
|
|
|
|
| |
This reverts commit r350296.
llvm-svn: 350344
|
|
|
|
| |
llvm-svn: 350343
|
|
|
|
|
|
|
|
|
|
| |
Use report_fatal_error in MCStreamer::EmitRawTextImpl instead of
using errs() and explain the rationale behind it not being
llvm_unreachable() to save confusion for any future maintainers.
Differential Revision: https://reviews.llvm.org/D56245
llvm-svn: 350342
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Follow up for D53051
This patch introduces the tool associated with the ELF implementation of
TextAPI (previously llvm-tapi, renamed for better distinction). This
tool will house a number of features related to enalysis and
manipulation of shared object's exposed interfaces. The first major
feature for this tool is support for producing binary stubs that are
useful for compile-time linking of shared objects. This patch introduces
beginnings of support for reading binary ELF objects to work towards
that goal.
Added:
- elfabi tool.
- support for reading architecture from a binary ELF file into an
ELFStub.
- Support for writing .tbe files.
Differential Revision: https://reviews.llvm.org/D55352
llvm-svn: 350341
|
|
|
|
|
|
|
|
|
| |
-plugin already prints an error if the name of an unknown plugin is passed.
-add-plugin used to silently ignore that, now it errors too.
Differential Revision: https://reviews.llvm.org/D56273
llvm-svn: 350340
|
|
|
|
|
|
|
|
|
| |
This makes the target name consistent with how all the other unit tests are
named.
Differential Revision: https://reviews.llvm.org/D56216
llvm-svn: 350339
|
|
|
|
| |
llvm-svn: 350338
|
|
|
|
| |
llvm-svn: 350337
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
size-related fields (Size, EntrySize, Align) before layout.
Summary:
Fix EntrySize, Size, and Align before doing layout calculation.
As a side cleanup, this removes a dependence on sizeof(Elf_Sym) within BinaryReader, so we can untemplatize that.
This unblocks a cleaner implementation of handling the -O<format> flag. See D53667 for a previous attempt. Actual implementation of the -O<format> flag will come in an upcoming commit, this is largely a NFC (although not _totally_ one, because alignment on binary input was actually wrong before).
Reviewers: jakehehrlich, jhenderson, alexshap, espindola
Reviewed By: jhenderson
Subscribers: emaste, arichardson, llvm-commits
Differential Revision: https://reviews.llvm.org/D56211
llvm-svn: 350336
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Patch by Arnaud Bienner
Reviewers: sylvestre.ledru, thakis, serge-sans-paille
Reviewed By: thakis
Subscribers: arphaman, dyung, anemet, llvm-commits, cfe-commits
Differential Revision: https://reviews.llvm.org/D55382
llvm-svn: 350335
|
|
|
|
|
|
|
|
|
|
|
|
| |
NFC: This adds the dom tree verification under debug mode at a point
just before we start unrolling the loop. This allows us to verify dom
tree at a state where it is much smaller and before the unrolling
actually happens.
This also implies we do not need to run -verify-dom-info everytime to
see if the DT is in a valid state when we transform the loop for runtime
unrolling.
llvm-svn: 350334
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
One of the LLVM optimizations, split critical edges, also clones tail
instructions. This is a dangerous operation for __syncthreads()
functions and this transformation leads to undefined behavior or
incorrect results. Patch fixes this problem by replacing __syncthreads()
function with the assembler instruction, which cost is too high and
wich cannot be copied.
Reviewers: grokos, gtbercea, kkwli0
Subscribers: guansong, openmp-commits, caomhin
Differential Revision: https://reviews.llvm.org/D56274
llvm-svn: 350333
|
|
|
|
|
|
| |
Add new scheduling predicates to identify the ASIMD loads and stores using the post indexed addressing mode.
llvm-svn: 350332
|
|
|
|
|
|
| |
macOS versions don't have the /etc/fstab file any more so we cannot test getfsent/setfsent APIs on Darwin.
llvm-svn: 350331
|
|
|
|
| |
llvm-svn: 350330
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Include CheckAtomic CMake module from LLVM in order to detect support
for atomics when building stand-alone. Otherwise,
the HAVE_CXX_ATOMICS64_WITHOUT_LIB variable is undefined and clangd
wrongly attempts to link -latomic on systems not using the library.
Original bug report: https://bugs.gentoo.org/667016
Differential Revision: https://reviews.llvm.org/D56061
llvm-svn: 350329
|
|
|
|
|
|
|
|
|
|
| |
nvvm_barrier0.
Use runtime functions instead of the direct call to the nvvm intrinsics.
It allows to prevent some dangerous LLVM optimizations, that breaks the
code for the NVPTX target.
llvm-svn: 350328
|
|
|
|
|
|
|
|
| |
Update documentation and shebang.
Differential Revision: https://reviews.llvm.org/D56252
llvm-svn: 350327
|
|
|
|
|
|
|
|
| |
In Python2 next() is used wile it's __next__ in Python3.
Differential Revision: https://reviews.llvm.org/D56250
llvm-svn: 350326
|
|
|
|
| |
llvm-svn: 350325
|
|
|
|
| |
llvm-svn: 350324
|
|
|
|
|
|
| |
We were only testing costs for legal source vector element counts
llvm-svn: 350323
|
|
|
|
| |
llvm-svn: 350322
|
|
|
|
|
|
| |
This matches GNU assembler behaviour.
llvm-svn: 350321
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D56258
llvm-svn: 350320
|
|
|
|
|
|
|
|
| |
Get rid of Python version specific shebang.
Differential Revision: https://reviews.llvm.org/D55207
llvm-svn: 350319
|
|
|
|
|
|
|
|
| |
StringIO is obsoleted in Python3, replaced by io.BytesIO or io.StringIO depending on the use.
Differential Revision: https://reviews.llvm.org/D55196
llvm-svn: 350318
|
|
|
|
|
|
|
|
|
|
| |
return type is marked [[nodiscard]].
When a function returns a type and that type was declared [[nodiscard]], we diagnose any unused results from that call as though the function were marked nodiscard. The same behavior should apply to calls through a function pointer.
This addresses PR31526.
llvm-svn: 350317
|