| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 299310
|
| |
|
|
|
|
| |
Also, add a helper function so we don't have to repeat this code for each binop.
llvm-svn: 299309
|
| |
|
|
| |
llvm-svn: 299308
|
| |
|
|
| |
llvm-svn: 299307
|
| |
|
|
|
|
|
|
|
| |
Previously, it would just always use the ObjC DWARF personality, even with SjLj
or SEH exceptions.
Patch by Jonathan Schleifer, test case by me.
llvm-svn: 299306
|
| |
|
|
| |
llvm-svn: 299305
|
| |
|
|
|
|
|
|
| |
The code already allowed vector types in via "isInteger" (which might want
a more specific name), so use splat-friendly constant predicates to match
those types.
llvm-svn: 299304
|
| |
|
|
| |
llvm-svn: 299303
|
| |
|
|
|
|
| |
templating changes
llvm-svn: 299301
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
processing the congruence class of the store.
Because we use the stored value of a store as the def, it isn't dead
just because it appears as a def when it comes from a store.
Note: I have not hit any cases with the memory code as it is where
this breaks anything, just because of what memory congruences we
actually allow. In a followup that improves memory congruence,
this bug actually breaks real stuff (but the verifier catches it).
llvm-svn: 299300
|
| |
|
|
|
|
| |
computation a bit so we don't have to redefine it for loads, stores, and calls
llvm-svn: 299299
|
| |
|
|
| |
llvm-svn: 299298
|
| |
|
|
| |
llvm-svn: 299297
|
| |
|
|
| |
llvm-svn: 299296
|
| |
|
|
| |
llvm-svn: 299295
|
| |
|
|
| |
llvm-svn: 299294
|
| |
|
|
| |
llvm-svn: 299293
|
| |
|
|
|
|
| |
namespace. Replace the few usages with calls to the class methods. NFC
llvm-svn: 299292
|
| |
|
|
|
|
|
|
|
|
| |
B, Mask) to explicitly ensure that only one of the inputs of each shuffle is a zero vector.
This can only happen when we have a mix of zero and undef elements and the two vectors have a different arrangement of zeros/undefs. The shuffle should eventually be constant folded to all zeros.
Fixes PR32484.
llvm-svn: 299291
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is effectively a partial revert of r278356, which started inlining
basic_string::__init. Even if we want to help the compiler along with
an inlinehint, we shouldn't hamstring it by forcing it to inline all the
time.
Libc++ uses always_inline widely as a limit-the-ABI-hack, but since
__init is already on the dylib boundary, it makes no sense here and just
harms the debugging experience at -O0.
rdar://problem/31013102
llvm-svn: 299290
|
| |
|
|
| |
llvm-svn: 299289
|
| |
|
|
|
|
|
|
| |
This reverts commit r299282.
Didn't intend to commit this :(
llvm-svn: 299288
|
| |
|
|
|
|
|
|
| |
This reverts commit r299283.
Didn't intend to commit this :(
llvm-svn: 299287
|
| |
|
|
|
|
|
|
| |
This reverts commit r299284.
Didn't intend to commit this :(
llvm-svn: 299286
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
REG_SEQUENCE falls into the same category as COPY for operands mapping:
- They don't have MCInstrDesc with register constraints
- The input variable could use whatever register classes
- It is possible to have register class already assigned to the operands
In particular, given REG_SEQUENCE are always target specific because of
the subreg indices. Those indices must apply to the register class of
the definition of the REG_SEQUENCE and therefore, the target must set a
register class to that definition. As a result, the generic code can
always use that register class to derive a valid mapping for a
REG_SEQUENCE.
llvm-svn: 299285
|
| |
|
|
| |
llvm-svn: 299284
|
| |
|
|
|
|
| |
WIP
llvm-svn: 299283
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This patch refactors the code used in llc such that all the users of the
addPassesToEmitFile API have access to a homogeneous way of handling
start/stop-after/before options right out of the box.
Previously each user would have needed to duplicate this logic and set
up its own options.
NFC
llvm-svn: 299282
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
coroutine body
Summary:
* Use pushCleanup to emit freeing coroutine memory on normal and EH exits.
* Surround emitted code with CodeGenFunction::RunCleanupsScope.
Reviewers: rsmith, rnk, EricWF
Reviewed By: rnk
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D31460
llvm-svn: 299281
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch is intended to improve readability of "duplicate symbol"
error messages.
Without this patch:
/ssd/clang/bin/ld.lld: error: /ssd/llvm-project/lld/ELF/Relocations.cpp:1054: duplicate symbol 'lld::elf::demangle(llvm::StringRef)'
/ssd/clang/bin/ld.lld: error: /ssd/llvm-project/lld/ELF/Strings.cpp:93: previous definition was here
With this patch:
/ssd/clang/bin/ld.lld: error: duplicate symbol: lld::elf::demangle(llvm::StringRef)
>>> defined at Strings.cpp:93 (/ssd/llvm-project/lld/ELF/Strings.cpp:93)
>>> Strings.cpp.o:(lld::elf::demangle(llvm::StringRef)) in archive lib/liblldELF.a
>>> defined at Relocations.cpp:1054 (/ssd/llvm-project/lld/ELF/Relocations.cpp:1054)
>>> Relocations.cpp.o:(.text+0x4C30) in archive lib/liblldELF.a
Discussion thread:
http://lists.llvm.org/pipermail/llvm-dev/2017-March/111459.html
Differential Revision: https://reviews.llvm.org/D31507
llvm-svn: 299280
|
| |
|
|
| |
llvm-svn: 299279
|
| |
|
|
| |
llvm-svn: 299278
|
| |
|
|
| |
llvm-svn: 299277
|
| |
|
|
|
|
|
|
| |
check for it.
<rdar://problem/31379799>
llvm-svn: 299276
|
| |
|
|
|
|
| |
match the new metadata. NFC.
llvm-svn: 299275
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Use PreCodeGenModuleHook to invoke the correct writer when emitting LLVM
IR, returning false to skip codegen from within thinBackend.
Reviewers: pcc, mehdi_amini
Subscribers: Prazek, cfe-commits
Differential Revision: https://reviews.llvm.org/D31534
llvm-svn: 299274
|
| |
|
|
|
|
|
|
|
|
| |
in MathExtras.h
This removes a parameter from the routine that was responsible for a lot of the issue. It was a bit count that had to be set to the BitWidth of the APInt and would get passed to getLowBitsSet. This guaranteed the call to getLowBitsSet would create an all ones value. This was then compared to (V | (V-1)). So the only shifted masks we detected had to have the MSB set.
The one in tree user is a transform in InstCombine that never fires due to earlier transforms covering the case better. I've submitted a patch to remove it completely, but for now I've just adapted it to the new interface for isShiftedMask.
llvm-svn: 299273
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: This change adds tests for r299268.
Reviewers: pcc, rnk
Reviewed By: pcc
Subscribers: mehdi_amini, llvm-commits, Prazek
Differential Revision: https://reviews.llvm.org/D31549
llvm-svn: 299272
|
| |
|
|
| |
llvm-svn: 299271
|
| |
|
|
|
|
|
|
|
|
| |
Tested locally with -DLLVM_USE_SANITIZER=Address
Differential Revision: https://reviews.llvm.org/D31551
Patch by Sam Clegg
llvm-svn: 299270
|
| |
|
|
| |
llvm-svn: 299269
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: GlobalValue has two getGUID methods: an instance method and a static method. The static method takes a string, which is expected to be what GlobalValue::getRealLinkageName() would return. In LTO.cpp, we were not doing this consistently, sometimes passing an IR name instead. This change makes it so that we call getRealLinkageName() first, making the static getGUID return value consistent with the instance method. Without this change, compiling FileCheck with ThinLTO on Windows fails with numerous undefined symbol errors. With the change, it builds successfully.
Reviewers: pcc, rnk
Reviewed By: pcc
Subscribers: tejohnson, mehdi_amini, llvm-commits
Differential Revision: https://reviews.llvm.org/D31444
llvm-svn: 299268
|
| |
|
|
|
|
|
|
| |
the same time, make sure we put the Users in first. Then put in the instruction.
This way we ensure we immediately revisit the instruction and do any additional optimizations before visiting the users. Otherwise we might visit the users, then the instruction, then users again, then instruction again.
llvm-svn: 299267
|
| |
|
|
| |
llvm-svn: 299266
|
| |
|
|
| |
llvm-svn: 299265
|
| |
|
|
|
|
|
| |
This is helpful when extracting objects from archives produced by MSVC's
lib.exe, which users absolute paths to describe the archive members.
llvm-svn: 299264
|
| |
|
|
|
|
| |
add/sub when the LSBs of one input are known to be 0 and MSBs of the output aren't consumed.
llvm-svn: 299263
|
| |
|
|
|
|
| |
Found by PVS-Studio. Fixes llvm.org/PR31676.
llvm-svn: 299262
|
| |
|
|
| |
llvm-svn: 299261
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Calling ValueObject::SetName from a sythetic child provider would change
the underying value object used for the non-synthetic child as well what
is clearly unintentional.
Reviewers: jingham, labath
Subscribers: lldb-commits
Differential Revision: https://reviews.llvm.org/D31371
llvm-svn: 299259
|