| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
go with when handling SDTCisSameAs. No functional change as they are always both 0 unless you try to define a multi result type profile that uses SDTCisSame on one of the other results.
llvm-svn: 231226
|
| |
|
|
|
|
|
| |
Using the implicit default copy assignment operator in the presence of a
user-declared copy ctor is deprecated in C++11.
llvm-svn: 231225
|
| |
|
|
|
|
|
|
| |
Asserting that the source and destination iterators are from the same
region is unnecessary - there's no reason to disallow reassignment from
any regions, so long as they aren't compared.
llvm-svn: 231224
|
| |
|
|
| |
llvm-svn: 231223
|
| |
|
|
|
|
|
|
|
| |
without relying on the implicit copy ctor
Use of the implicit copy ctor is deprecated in C++11 in the presence of
a user declared dtor.
llvm-svn: 231222
|
| |
|
|
|
|
|
|
|
| |
derived classes final
These objects are never owned/destroyed polymorphically, so there's no
need for a virtual dtor.
llvm-svn: 231221
|
| |
|
|
|
|
|
| |
Use of their copy members is deprecated since they have a user-declared
dtor.
llvm-svn: 231220
|
| |
|
|
|
|
|
|
|
|
| |
When trying to convert a BUILD_VECTOR into a shuffle, we try to split a single source vector that is twice as wide as the destination vector.
We can not do this when we also need the zero vector to create a blend.
This fixes PR22774.
Differential Revision: http://reviews.llvm.org/D8040
llvm-svn: 231219
|
| |
|
|
|
|
|
|
|
| |
Since OptionValue (& its base classes) have user-declared dtors, use of
the implicit copy ctor/assignment operator is deprecated in C++11.
Provide them explicitly (defaulted) to avoid depending on this
deprecated feature.
llvm-svn: 231218
|
| |
|
|
|
|
|
|
|
|
| |
with final derived classes
These objects are never polymorphically owned, so there's no need for
virtual dtors - just make the dtor protected in the base classes, and
make the derived classes final.
llvm-svn: 231217
|
| |
|
|
|
|
|
| |
Differential Revision: D7990
Reviewed by: rafael, majnemer
llvm-svn: 231216
|
| |
|
|
|
|
|
|
|
|
|
| |
This will now display enum definitions both at the global
scope as well as nested inside of classes. Additionally,
it will no longer display enums at the global scope if the
enum is nested. Instead, it will omit the definition of
the enum globally and instead emit it in the corresponding
class definition.
llvm-svn: 231215
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 4b7263d855006988854036b4a4891fcf19aebe65.
r231125 http://reviews.llvm.org/D7931
This was causing many LLDB tests to fail on OS X, Linux, and FreeBSD.
https://bpaste.net/show/6a23e1f53623
llvm-svn: 231214
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
(They are called emitDwarfDIE and emitDwarfAbbrevs in their new home)
llvm-dsymutil wants to reuse that code, but it doesn't have a DwarfUnit or
a DwarfDebug object to call those. It has access to an AsmPrinter though.
Having emitDIE in the AsmPrinter also removes the DwarfFile dependency
on DwarfDebug, and thus the patch drops that field.
Differential Revision: http://reviews.llvm.org/D8024
llvm-svn: 231210
|
| |
|
|
| |
llvm-svn: 231209
|
| |
|
|
| |
llvm-svn: 231207
|
| |
|
|
| |
llvm-svn: 231204
|
| |
|
|
|
|
| |
Also define operator* for symbol iterator just like Archive children iterator.
llvm-svn: 231203
|
| |
|
|
|
|
|
| |
Suggestion by Andrea Di Biagio
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 231201
|
| |
|
|
| |
llvm-svn: 231200
|
| |
|
|
|
|
| |
the presence of a user-declared dtor
llvm-svn: 231199
|
| |
|
|
|
|
| |
No need to create yet another temp symbol.
llvm-svn: 231198
|
| |
|
|
| |
llvm-svn: 231195
|
| |
|
|
| |
llvm-svn: 231194
|
| |
|
|
|
|
| |
necessary. NFC
llvm-svn: 231193
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GCC 4.7's libstdc++ doesn't have std::map::emplace, but it does have
std::unordered_map::emplace, and the use case here doesn't appear to
need ordering. The container has been changed in a separate/precursor
patch, and now this patch should hopefully build cleanly even with
GCC 4.7.
& then I realized the order of the container did matter, so extra
handling of ordering was added in r231189.
Original commit message:
This makes LiveRange non-copyable, and LiveInterval is already
non-movable (due to the explicit dtor), so now it's non-copyable and
non-movable.
Fix the one case where we were relying on the (deprecated in C++11)
implicit copy ctor of LiveInterval (which happened to work because the
ctor created an object with a null segmentSet, so double-deleting the
null pointer was fine).
llvm-svn: 231192
|
| |
|
|
|
|
|
| |
test - we only care that there are two moves in the loop and not
which part is relative to which register anyhow.
llvm-svn: 231191
|
| |
|
|
| |
llvm-svn: 231190
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
std::unordered_map
The order of this container was needed at one point - so, at that point
create a temporary array of pointers, sort those, then iterate them.
This keeps lookup efficient (& the lesser issue, of allowing the use of
emplace... ), object identity preserved, and ordered iteration in the
one place that requires it.
While this has no functional change, I realize it does mean allocating
an extra data structure and performing a sort - so if this looks suspect
to anyone regarding perf characteristics, I'm all ears.
llvm-svn: 231189
|
| |
|
|
| |
llvm-svn: 231187
|
| |
|
|
|
|
|
|
|
|
|
| |
There is a known bug where the register coalescer fails to merge
subranges when multiple ranges end up in the "overflow" bit 32 of the
lanemasks. A proper fix for this is complicated so for now this is a
workaround which lets the register coalescer drop the subregister
liveness information (we just loose some precision by that) and
continue.
llvm-svn: 231186
|
| |
|
|
|
|
| |
They will be used for more than eh tables.
llvm-svn: 231185
|
| |
|
|
|
|
|
|
| |
Apparently something does care about ordering of LiveIntervals... so
revert all that stuff (r231175, r231176, r231177) & take some time to
re-evaluate.
llvm-svn: 231184
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
invoke instructions
RewriteStatepointsForGC pass emits an alloca for each GC pointer which will be relocated. It then inserts stores after def and all relocations, and inserts loads before each use as well. In the end, mem2reg is used to update IR with relocations in SSA form.
However, there is a problem with inserting stores for values defined by invoke instructions. The code didn't expect a def was a terminator instruction, and inserting instructions after these terminators resulted in malformed IR.
This patch fixes this problem by handling invoke instructions as a special case. If the def is an invoke instruction, the store will be inserted at the beginning of the normal destination block. Since return value from invoke instruction does not dominate the unwind destination block, no action is needed there.
Patch by: Chen Li
Differential Revision: http://reviews.llvm.org/D7923
llvm-svn: 231183
|
| |
|
|
|
|
|
|
|
|
|
| |
The intrinsic is no longer generated by the front-end. Remove the intrinsic and
auto-upgrade it to a vector shuffle.
Reviewed by Nadav
This is related to rdar://problem/18742778.
llvm-svn: 231182
|
| |
|
|
| |
llvm-svn: 231181
|
| |
|
|
|
|
|
| |
a) Default relocation model differences,
b) Different numbers of # in comments
llvm-svn: 231178
|
| |
|
|
| |
llvm-svn: 231177
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GCC 4.7's libstdc++ doesn't have std::map::emplace, but it does have
std::unordered_map::emplace, and the use case here doesn't appear to
need ordering. The container has been changed in a separate/precursor
patch, and now this patch should hopefully build cleanly even with
GCC 4.7.
Original commit message:
This makes LiveRange non-copyable, and LiveInterval is already
non-movable (due to the explicit dtor), so now it's non-copyable and
non-movable.
Fix the one case where we were relying on the (deprecated in C++11)
implicit copy ctor of LiveInterval (which happened to work because the
ctor created an object with a null segmentSet, so double-deleting the
null pointer was fine).
llvm-svn: 231176
|
| |
|
|
|
|
|
|
|
| |
This use case doesn't appear to benefit from ordering, and
std::unordered_map has the advantage that it supports emplace (the
LiveInterval values really shouldn't be copyable or movable & they won't
be in a near-future patch).
llvm-svn: 231175
|
| |
|
|
|
|
|
|
| |
GCC 4.7 *shakes fist* (doesn't have std::map::emplace... )
This reverts commit r231168.
llvm-svn: 231173
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This makes it more obvious that the enum definition and the
"StandardName" array is in sync. Mechanically refactored w/ a
python script.
Test Plan: still compiles
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D7845
llvm-svn: 231172
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This makes LiveRange non-copyable, and LiveInterval is already
non-movable (due to the explicit dtor), so now it's non-copyable and
non-movable.
Fix the one case where we were relying on the (deprecated in C++11)
implicit copy ctor of LiveInterval (which happened to work because the
ctor created an object with a null segmentSet, so double-deleting the
null pointer was fine).
llvm-svn: 231168
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fuzzing).
Introduce -mllvm -sanitizer-coverage-8bit-counters=1
which adds imprecise thread-unfriendly 8-bit coverage counters.
The run-time library maps these 8-bit counters to 8-bit bitsets in the same way
AFL (http://lcamtuf.coredump.cx/afl/technical_details.txt) does:
counter values are divided into 8 ranges and based on the counter
value one of the bits in the bitset is set.
The AFL ranges are used here: 1, 2, 3, 4-7, 8-15, 16-31, 32-127, 128+.
These counters provide a search heuristic for single-threaded
coverage-guided fuzzers, we do not expect them to be useful for other purposes.
Depending on the value of -fsanitize-coverage=[123] flag,
these counters will be added to the function entry blocks (=1),
every basic block (=2), or every edge (=3).
Use these counters as an optional search heuristic in the Fuzzer library.
Add a test where this heuristic is critical.
llvm-svn: 231166
|
| |
|
|
| |
llvm-svn: 231165
|
| |
|
|
|
|
|
|
| |
Ultimately, we'll need to leave something behind to indicate which
alloca will hold the exception, but we can figure that out when it comes
time to emit the __CxxFrameHandler3 catch handler table.
llvm-svn: 231164
|
| |
|
|
| |
llvm-svn: 231158
|
| |
|
|
|
|
|
|
|
|
| |
Selection conditions may be vectors or scalars. Make sure InstCombine
doesn't indiscriminately assume that a select which is value dependent
on another select have identical select condition types.
This fixes PR22773.
llvm-svn: 231156
|
| |
|
|
| |
llvm-svn: 231155
|
| |
|
|
| |
llvm-svn: 231154
|