| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Many thanks to dblaikie for his advices and suggestions!
llvm-svn: 222568
|
|
|
|
|
|
|
|
|
|
| |
We can now use the ELF relocation .def files to create the mapping
of relocation numbers to names and avoid having to duplicate the
list of relocations.
Patch by Will Newton.
llvm-svn: 222567
|
|
|
|
|
|
|
|
|
|
| |
We can now use the ELF relocation .def files to create the mapping
of relocation numbers to names and avoid having to duplicate the
list of relocations.
Patch by Will Newton.
llvm-svn: 222566
|
|
|
|
|
|
|
|
|
|
| |
This should allow the list of relocations for a particular
architecture to be kept in a single header rather than duplicated
whenever we need to enumerate all the relocations.
Patch by Will Newton.
llvm-svn: 222565
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We previously had support for char and wchar_t string literals. VS 2015
added support for char16_t and char32_t.
String literals must be mangled in the MS ABI in order for them to be
deduplicated across translation units: their linker has no notion of
mergeable section. Instead, they use the mangled name to make a COMDAT
for the string literal; the COMDAT will merge with other COMDATs in
other object files.
This allows strings in object files generated by clang to get merged
with strings in object files generated by MSVC.
llvm-svn: 222564
|
|
|
|
|
|
|
| |
This is no longer needed after David's fix at r222377 + r222485.
rdar://18958417
llvm-svn: 222563
|
|
|
|
| |
llvm-svn: 222562
|
|
|
|
|
|
|
|
|
|
|
| |
be a DIType with identifier.
This makes sure that there is no need to use DIScopeRef for global variable's
context.
rdar://18958417
llvm-svn: 222561
|
|
|
|
| |
llvm-svn: 222560
|
|
|
|
| |
llvm-svn: 222559
|
|
|
|
|
|
|
|
| |
objc_imageinfo struct.
rdar://17954668
llvm-svn: 222558
|
|
|
|
| |
llvm-svn: 222557
|
|
|
|
|
|
| |
While at it, also use makeArrayRef in elements().
llvm-svn: 222556
|
|
|
|
| |
llvm-svn: 222555
|
|
|
|
| |
llvm-svn: 222554
|
|
|
|
| |
llvm-svn: 222553
|
|
|
|
| |
llvm-svn: 222552
|
|
|
|
|
|
| |
when calling DiagnoseEmptyLookup.
llvm-svn: 222551
|
|
|
|
| |
llvm-svn: 222550
|
|
|
|
|
|
| |
candidates.
llvm-svn: 222549
|
|
|
|
|
|
| |
was split between feature-specific flags, and an m_be_raw flag, which then drove some other changes in printing behavior. Clean that up, so that each functionality has its own flag .. oh, and make the bools all go in a bitfield since I may want to add more of those over time
llvm-svn: 222548
|
|
|
|
|
|
| |
Debug output is shown if any of the -debug-only arguments match.
llvm-svn: 222547
|
|
|
|
| |
llvm-svn: 222546
|
|
|
|
| |
llvm-svn: 222545
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds a feature flag to avoid unaligned 32-byte load/store AVX codegen
for Sandy Bridge and Ivy Bridge. There is no functionality change intended for
those chips. Previously, the absence of AVX2 was being used as a proxy to detect
this feature. But that hindered codegen for AVX-enabled AMD chips such as btver2
that do not have the 32-byte unaligned access slowdown.
Performance measurements are included in PR21541 ( http://llvm.org/bugs/show_bug.cgi?id=21541 ).
Differential Revision: http://reviews.llvm.org/D6355
llvm-svn: 222544
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
relative offsets for code models other than small/medium. For JIT application, memory layout is less controlled and can result in truncations otherwise."
This reverts commit r222538.
It's causing test failures for CFI, at least on Darwin:
http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental/1189/
http://lab.llvm.org:8080/green/job/clang-stage1-configure-RA_check/1391/
Note that the previous incremental build was on r222537, and the CFI
tests weren't failing:
http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental/1188/
llvm-svn: 222542
|
|
|
|
|
|
|
|
| |
pipe handles should be inherited by a child process.
http://reviews.llvm.org/D6348
llvm-svn: 222541
|
|
|
|
|
|
|
|
|
|
| |
shuffle lowering to allow much better blend matching.
Specifically, with the new structure the code seems clearer to me and we
correctly can hit the cases where merging two 128-bit lanes is a clear
win and can be shuffled cheaply afterward.
llvm-svn: 222539
|
|
|
|
|
|
|
|
|
|
|
|
| |
offsets for code models other than small/medium. For JIT application,
memory layout is less controlled and can result in truncations
otherwise.
Patch from Akos Kiss.
Differential Revision: http://reviews.llvm.org/D6079
llvm-svn: 222538
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a bunch more improvements.
Non-lane-crossing is fine, the key is that lane merging only makes sense
for single-input shuffles. Not sure why I got so turned around here. The
code all works, I was just using the wrong model for it.
This only updates v4 and v8 lowering. The v16 and v32 lowering requires
restructuring the entire check sequence.
llvm-svn: 222537
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
operands are zero.
Before this patch, the DAGCombiner only tried to convert build_vector dag nodes
into shuffles if all operands were either extract_vector_elt or undef.
This patch improves that logic and teaches the DAGCombiner how to deal with
build_vector dag nodes where one or more operands are zero. A build_vector
dag node with some zero operands is turned into a shuffle only if the resulting
shuffle mask is legal for the target.
llvm-svn: 222536
|
|
|
|
|
|
|
|
|
|
| |
option in llvm-symbolizer
Let the users of SymbolizationLoop define a function that produces the list of .dSYM hints (possible path to the .dSYM bundle) for the given binary.
Because the hints can't be added to an existing llvm-symbolizer process, we spawn a new symbolizer process ones each time a new hint appears.
Those can only appear for binaries that we haven't seen before.
llvm-svn: 222535
|
|
|
|
|
|
|
|
|
|
| |
Before:
auto a = [&b, c ](D * d) -> D * {}
After:
auto a = [&b, c](D* d) -> D* {}
llvm-svn: 222534
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
lanes.
By special casing these we can often either reduce the total number of
shuffles significantly or reduce the number of (high latency on Haswell)
AVX2 shuffles that potentially cross 128-bit lanes. Even when these
don't actually cross lanes, they have much higher latency to support
that. Doing two of them and a blend is worse than doing a single insert
across the 128-bit lanes to blend and then doing a single interleaved
shuffle.
While this seems like a narrow case, it kept cropping up on me and the
difference is *huge* as you can see in many of the test cases. I first
hit this trying to perfectly fix the interleaving shuffle patterns used
by Halide for AVX2.
llvm-svn: 222533
|
|
|
|
|
|
| |
When SANITIZER_USES_CANONICAL_LINUX_SYSCALLS the function misses return statement.
llvm-svn: 222532
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously this was only used for JavaScript.
Before:
functionCall({
int i;
int j;
},
aaaa, bbbb, cccc);
After:
functionCall({
int i;
int j;
}, aaaa, bbbb, cccc);
llvm-svn: 222531
|
|
|
|
| |
llvm-svn: 222530
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With AllowShortCaseLabelsOnASingleLine set to true:
This gets now left unchanged:
case 1:
// comment
return;
Whereas before it was changed into:
case 1: // comment return;
This fixes llvm.org/PR21630.
llvm-svn: 222529
|
|
|
|
| |
llvm-svn: 222528
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
public final<X> Foo foo() {
}
public abstract<X> Foo foo();
After:
public final <X> Foo foo() {
}
public abstract <X> Foo foo();
Patch by Harry Terkelsen. Thank you.
llvm-svn: 222527
|
|
|
|
|
|
|
|
|
| |
Revision 220571 removes the requirement to use -pie for tsan binaries. So remove -pie from driver.
Also s/hasZeroBaseShadow/requiresPIE/ because that is what it is used for. Msan does not have zero-based shadow, but requires pie. And in general the relation between zero-based shadow and pie is unclear.
http://reviews.llvm.org/D6318
llvm-svn: 222526
|
|
|
|
|
|
|
|
|
| |
merging 128-bit subvectors and also shuffling all the elements of those
subvectors. Currently we generate pretty bad code for many of these, but
I'm testing a patch that should dramatically improve this in addition to
making the shuffle lowering robust to other changes.
llvm-svn: 222525
|
|
|
|
| |
llvm-svn: 222524
|
|
|
|
|
|
| |
No functional changes, just code improvement.
llvm-svn: 222523
|
|
|
|
|
|
|
|
| |
This patch simplifies the logic that combines a pair of shuffle nodes into
a single shuffle if there is a legal mask. Also added comments to better
describe the algorithm. No functional change intended.
llvm-svn: 222522
|
|
|
|
|
|
|
|
| |
positive numbers
Differential Revision: http://reviews.llvm.org/D5938
llvm-svn: 222521
|
|
|
|
|
|
|
|
| |
instrumentation of variable-sized dynamic allocas. Patch by Max Ostapenko.
Reviewed at http://reviews.llvm.org/D6055
llvm-svn: 222520
|
|
|
|
|
|
|
|
| |
variable-sized dynamic allocas. Patch by Max Ostapenko.
Reviewed at http://reviews.llvm.org/D6055
llvm-svn: 222519
|
|
|
|
| |
llvm-svn: 222516
|
|
|
|
|
|
|
| |
These mangling make clang more compatible with MSVC 2015.
Correctly mangling char16_t and char32_t will take a little more work.
llvm-svn: 222515
|