| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 285066
|
| |
|
|
|
|
|
|
| |
Patch by Sam McCall, test case by me.
Differential Revision: https://reviews.llvm.org/D25936
llvm-svn: 285065
|
| |
|
|
| |
llvm-svn: 285064
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Do *not* perform combines such as:
vector_shuffle<4,1,2,3>(build_vector(Ud, C0, C1 C2), scalar_to_vector(X))
->
build_vector(X, C0, C1, C2)
Keeping the shuffle allows lowering the constant build_vector to a materialized
constant vector (such as a vector-load from the constant-pool or some other idiom).
Reviewers: delena, igorb, spatel, mkuper, andreadb, RKSimon
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D25524
llvm-svn: 285063
|
| |
|
|
| |
llvm-svn: 285062
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In an IR symbol table I would expect the comdats to be represented as:
- A table of strings, one for each comdat name.
- Each symbol has an optional index into that table.
The natural api for accessing that would be
InputFile:
ArrayRef<StringRef> getComdatTable() const;
Symbol:
int getComdatIndex() const;
This patch implements an API as close to that as possible. The
implementation on top of the current IRObjectFile is a bit hackish,
but should map just fine over a symbol table and is very convenient to
use.
llvm-svn: 285061
|
| |
|
|
|
|
|
|
|
| |
Raise a signal if the buffer has been modified before replacing it, to
avoid overwriting users' changes.
Patch by Philipp Stephani.
llvm-svn: 285060
|
| |
|
|
|
|
|
|
| |
can run in batch mode.
Patch by Philipp Stephani.
llvm-svn: 285059
|
| |
|
|
|
|
| |
For the purpose of highlighting in an IDE.
llvm-svn: 285057
|
| |
|
|
|
|
|
|
|
| |
Warnings generated by -Wdocumentation-unknown-command did only have a
start location, not a full source range. This resulted in only the
"carret" being show in messages, and IDEs highlighting only the single
initial character.
llvm-svn: 285056
|
| |
|
|
|
|
|
|
| |
Patch by Sam McCall!
Differential Revision: https://reviews.llvm.org/D25934
llvm-svn: 285055
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
+,*,&&,||) intrinsics to Clang
Committed after LGTM and check-all
Vector-reduction arithmetic accepts vectors as inputs and produces scalars as outputs.
This class of vector operation forms the basis of many scientific computations.
In vector-reduction arithmetic, the evaluation off is independent of the order of the input elements of V.
Used bisection method. At each step, we partition the vector with previous
step in half, and the operation is performed on its two halves.
This takes log2(n) steps where n is the number of elements in the vector.
Reviwer: 1. igorb
2. craig.topper
Differential Revision: https://reviews.llvm.org/D25527
llvm-svn: 285054
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
ZERO_EXTEND_VECTOR_INREG for 512-bit vectors to support vpmovzxbq and vpmovsxbq.
Summary: The one tricky thing about this is that the sign/zero_extend_inreg uses v64i8 as an input type which isn't legal without BWI support. Though the vpmovsxbq and vpmovzxbq instructions themselves don't require BWI. To support this we need to add custom lowering for ZERO_EXTEND_VECTOR_INREG with v64i8 input. This can mostly reuse the existing sign extend code with a couple checks for sign extend vs zero extend added.
Reviewers: delena, RKSimon
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D25594
llvm-svn: 285053
|
| |
|
|
| |
llvm-svn: 285052
|
| |
|
|
|
|
|
|
| |
This is a function to go backwards in a block to find the first
instruction in a bundle, so iterator is a more natural choice for
parameter/return rather than a reference to a MachineInstruction.
llvm-svn: 285051
|
| |
|
|
|
|
| |
the base class. NFCI.
llvm-svn: 285050
|
| |
|
|
|
|
| |
available, add a test
llvm-svn: 285049
|
| |
|
|
| |
llvm-svn: 285048
|
| |
|
|
|
|
|
| |
Returning `false` was stopping the parsing of further arguments,
which wasn't intended.
llvm-svn: 285047
|
| |
|
|
| |
llvm-svn: 285046
|
| |
|
|
| |
llvm-svn: 285045
|
| |
|
|
|
|
|
| |
The p2align operand of a load/store is encoded before the offset
operand; reorder the MachineInstr operands accordingly.
llvm-svn: 285044
|
| |
|
|
|
|
|
|
|
| |
When we load coverage data from multiple objects, we don't have a way to
attribute a source object to a function record. Printing out the object
filename next to the source filename is already not very useful: soon,
it'll actually become misleading. Stop printing out the filename now.
llvm-svn: 285043
|
| |
|
|
|
|
| |
This is unbreaking the build with shared library after r285019.
llvm-svn: 285042
|
| |
|
|
|
|
| |
Unadvertently removed in r285019
llvm-svn: 285041
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This changes locals from being declared by the emitLocal hook in
WebAssemblyTargetStreamer, rather than with an instruction. After exploring
the infastructure in LLVM more, this seems to make more sense since
declaring locals doesn't use an encoded opcode.
This also adds more 0xd opcodes, type encodings, and miscellaneous
binary encoding bits.
llvm-svn: 285040
|
| |
|
|
|
|
|
|
| |
Passing a MachineFunction as argument is more natural and avoids an
unnecessary round-trip through the logic determining the correct
Subtarget because MachineFunction already has a reference anyway.
llvm-svn: 285039
|
| |
|
|
|
|
|
|
|
| |
Fuchsia has experimental support for 32-bit x86 and ARM targets, add
them to the list of supported targets.
Differential Revision: https://reviews.llvm.org/D25838
llvm-svn: 285038
|
| |
|
|
|
|
| |
Fixes build break for configurations that use shared libraries.
llvm-svn: 285037
|
| |
|
|
| |
llvm-svn: 285036
|
| |
|
|
|
|
|
|
|
|
| |
The installhdrs target was inconsistently named and would behave
differently depending on whether or not you ran a build first. This
renames it to install-llvm-headers to match other target names and
adds a dependency on intrinsics_gen so that it will always install the
same set of things.
llvm-svn: 285035
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
There are two fixes here: one, AnalyzeUsesOfPointer can't return
false until it has checked all the uses of the pointer. Two, if a
global uses another global, we have to assume the address of the
first global escapes.
Fixes https://llvm.org/bugs/show_bug.cgi?id=30707 .
Differential Revision: https://reviews.llvm.org/D25798
llvm-svn: 285034
|
| |
|
|
|
|
|
|
|
|
| |
or vector splats
Use isConstOrConstSplat helper.
Also use APInt instead of getZExtValue directly to avoid out of range issues.
llvm-svn: 285033
|
| |
|
|
|
|
|
| |
Fixes:
rdar://27792848
llvm-svn: 285032
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
by blocks.
Add a new warning "-Wblock-capture-autoreleasing". The warning warns
about implicitly autoreleasing out-parameters captured by blocks which
can introduce use-after-free bugs that are hard to debug.
rdar://problem/15377548
Differential Revision: https://reviews.llvm.org/D25844
llvm-svn: 285031
|
| |
|
|
|
|
|
| |
Add a cmake-exports install component and appropriate targets for
LLVM_DISTRIBUTION_COMPONENTS to work with.
llvm-svn: 285030
|
| |
|
|
|
|
|
|
| |
(Const)?MIOperands is equivalent to the C++ style
MachineInstr::mop_iterator. Use the latter for consistency except for a
few callers of MIOperands::analyzePhysReg().
llvm-svn: 285029
|
| |
|
|
|
|
| |
Twines should not be stack allocated. This somehow managed to get past me.
llvm-svn: 285028
|
| |
|
|
|
|
|
| |
This is a fixup for r285019, adding an `#ifdef __x86_64__` since
the os_log builtin is platform specific.
llvm-svn: 285027
|
| |
|
|
|
|
|
| |
when contained in a Mach-O universal file and the
cputypes in both headers don’t match.
llvm-svn: 285026
|
| |
|
|
| |
llvm-svn: 285025
|
| |
|
|
|
|
| |
Suggested by David Blaikie.
llvm-svn: 285024
|
| |
|
|
|
|
|
|
|
|
|
| |
Move all the label construction for the various method list emission into
EmitMethodList. Rather than have all the names be constructed in pieces in all
of the callers of EmitMethodList, have this occur in one site. This also makes
the calls much easier to understand as we simplify identify the type of the
method list being emitted and the interface name for which it is being emitted.
NFC.
llvm-svn: 285023
|
| |
|
|
|
|
|
|
| |
to emit the <template-args> portion. Refactor so that mangleUnresolvedName
actually emits the entire <unresolved-name>, so this mistake is harder to make
again.
llvm-svn: 285022
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were previously using the (static) addSynthetic function to create
*_start/*_end symbols. This function was doing almost the same thing as
addOptionalSynthetic, except that it would also create the symbol in the
case where it is unreferenced. Because the symbol has hidden visibility,
creating it in that case would have no effect other than adding another
entry to the static symbol table. Remove addSynthetic and change callers to
use addOptionalSynthetic instead.
Differential Revision: https://reviews.llvm.org/D25545
llvm-svn: 285021
|
| |
|
|
| |
llvm-svn: 285020
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit r285007 and reapply r284990, with a fix for the
opencl test that I broke. Original commit message follows:
These new builtins support a mechanism for logging OS events, using a
printf-like format string to specify the layout of data in a buffer.
The _buffer_size version of the builtin can be used to determine the size
of the buffer to allocate to hold the data, and then __builtin_os_log_format
can write data into that buffer. This implements format checking to report
mismatches between the format string and the data arguments. Most of this
code was written by Chris Willmore.
Differential Revision: https://reviews.llvm.org/D25888
llvm-svn: 285019
|
| |
|
|
|
|
|
|
|
|
|
|
| |
I took the opportunity to replace some copy|move constructors|assignment
operators with default implementations.
As a follow-up, I plan on threading unique_ptr<T []> through a few areas
per David Blaikie's advice.
Differential Revision: https://reviews.llvm.org/D24424
llvm-svn: 285018
|
| |
|
|
| |
llvm-svn: 285017
|
| |
|
|
|
|
|
| |
CFGStackify differentiates between END_LOOP and END_BLOCK, but wasm
itself doesn't. For now, just use the same opcode for both.
llvm-svn: 285016
|