| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 231616
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All readers except PE/COFF reader create layout-after edges to preserve
the original symbol order. PE/COFF uses layout-before edges as primary
edges for no reason.
This patch makes PE/COFF reader to create layout-after edges.
Resolver is updated to recognize reverse edges of layout-after edges
in the garbage collection pass.
Now we can retire layout-before edges. I don't do that in this patch
because if I do, I would have updated many tests to replace all
occurrrences of "layout-before" with "layout-after". So that's a TODO.
llvm-svn: 231615
|
| |
|
|
|
|
|
| |
"first" and "second" are not easy to memorize.
Define a type to use meaningful names.
llvm-svn: 231614
|
| |
|
|
|
|
| |
is specified by the user.
llvm-svn: 231613
|
| |
|
|
| |
llvm-svn: 231612
|
| |
|
|
|
|
| |
This patch broke a buildbot.
llvm-svn: 231611
|
| |
|
|
|
|
|
| |
That commit was reverted in r231582 as it was a culprit for
buildbot breakage. Turned out it's not.
llvm-svn: 231610
|
| |
|
|
| |
llvm-svn: 231609
|
| |
|
|
| |
llvm-svn: 231608
|
| |
|
|
|
|
|
| |
r231268 accidently dropped the initialization that is re-introduced
here. The const will enforce initialization for the future.
llvm-svn: 231607
|
| |
|
|
|
|
|
| |
The current tests will continue to cover this code and more will be
added when non-affine loops are supported.
llvm-svn: 231606
|
| |
|
|
|
|
| |
Found by msan.
llvm-svn: 231605
|
| |
|
|
|
|
| |
Type traits are hard.
llvm-svn: 231604
|
| |
|
|
|
|
|
| |
We copy them around a lot and skip construction in favor of startToken,
make the default construction trivial to reflect that.
llvm-svn: 231603
|
| |
|
|
|
|
|
| |
lldb-mi tests have been failing for a while on the buildbots.
Disabling until someone has a chance to fix.
llvm-svn: 231602
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There were cases where the backend computed a wrong permute mask for a VPERM2X128 node.
Example:
\code
define <8 x float> @foo(<8 x float> %a, <8 x float> %b) {
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 undef, i32 undef, i32 6, i32 7, i32 undef, i32 undef, i32 6, i32 7>
ret <8 x float> %shuffle
}
\code end
Before this patch, llc (with -mattr=+avx) emitted the following vperm2f128:
vperm2f128 $0, %ymm0, %ymm0, %ymm0 # ymm0 = ymm0[0,1,0,1]
With this patch, llc emits a vperm2f128 with a correct permute mask:
vperm2f128 $17, %ymm0, %ymm0, %ymm0 # ymm0 = ymm0[2,3,2,3]
Differential Revision: http://reviews.llvm.org/D8119
llvm-svn: 231601
|
| |
|
|
| |
llvm-svn: 231600
|
| |
|
|
|
|
|
|
| |
This test case was supposed to test the range analysis but it became just
another delinearization test case after enabling delinearization.
Suggested-by: Johannes Doerfert
llvm-svn: 231599
|
| |
|
|
|
|
| |
Or fold them into a initializer list which has the same effect. NFC.
llvm-svn: 231598
|
| |
|
|
|
|
| |
NFC.
llvm-svn: 231597
|
| |
|
|
| |
llvm-svn: 231596
|
| |
|
|
|
|
|
| |
After having fixed the LNT bugs in the previous commits, lets reenable the
delinearization.
llvm-svn: 231595
|
| |
|
|
| |
llvm-svn: 231594
|
| |
|
|
| |
llvm-svn: 231593
|
| |
|
|
|
|
|
|
| |
When code generating array index expressions the types of the different
components of the index expressions may not always match. We extend the type of
the index expression (if possible) and assert otherwise.
llvm-svn: 231592
|
| |
|
|
|
|
|
| |
This reverts commit 231590. Apparantly we have three more issues left
in oggenc, smg2000 and linpack.
llvm-svn: 231591
|
| |
|
|
|
|
|
|
| |
The performance test case just committed was the last open issue I was aware of.
We enable this by default to increase test coverage and to possibly trigger
reports of issues yet unknown.
llvm-svn: 231590
|
| |
|
|
| |
llvm-svn: 231589
|
| |
|
|
| |
llvm-svn: 231588
|
| |
|
|
| |
llvm-svn: 231587
|
| |
|
|
|
|
| |
We accidentally skipped the last base relocation entry for each block.
llvm-svn: 231586
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If an output is large, its base relocation section can be also large.
For example, chrome.dll is almost 300 MB, and it has about 9 million
base relocations. Creating the section took 1.5 seconds on my machine.
This patch changes the way to create the section so that we can use
parallel_sort to group base relocations by high bits. This change
makes the linker almost 4% faster for the above test case on my machine.
If I replace parallel_sort with std::sort, performance remains the same,
so single thread performance should remain the same.
This has no functionality change. The output should be identical as
before.
llvm-svn: 231585
|
| |
|
|
|
|
|
|
|
| |
All defined symbols from all archive files are inserted to _archiveMap,
so performance of hash table matters here (I'm not trying to convert
all std::maps with DenseMaps). This change seems to make the linker
0.5% - 1% faster for my test case.
llvm-svn: 231584
|
| |
|
|
|
|
|
|
| |
This code is simply dead. No one is using it.
http://reviews.llvm.org/D8125
llvm-svn: 231583
|
| |
|
|
|
|
|
|
|
| |
This patch reverts r231545 "PECOFF: Do not add extraneous symbols
to the dead strip root." CrWinClangLLD buildbot is currently broken.
Since I can't reproduce the issue locally, I'm reverting the most
relevant change.
llvm-svn: 231582
|
| |
|
|
|
|
|
|
|
|
| |
We have an increasing number of cases where we are creating commuted shuffle masks - all implementing nearly the same code.
This patch adds a static helper function - ShuffleVectorSDNode::commuteMask() and replaces a number of cases to use it.
Differential Revision: http://reviews.llvm.org/D8139
llvm-svn: 231581
|
| |
|
|
|
|
|
|
|
| |
Linux/GNU on AArch64 EH ABI Level III is implemented using exception frame
tables as defined in LSB II.11.6. The exception frame tables use the DWARF
Exception Header Encoding as described in LSB II.11.5.1. We already defined the
appropriate definition _LIBUNWIND_SUPPORT_DWARF_UNWIND to enable this.
llvm-svn: 231580
|
| |
|
|
|
|
|
|
| |
lib/ExecutionEngine/Targets has no Makefile, causing the autoconf build
to fail. Solve this by bringing the COFF implementation of RuntimeDyld
in line like the Mach-O and ELF implementations.
llvm-svn: 231579
|
| |
|
|
|
|
|
|
|
|
|
| |
AArch64 uses // as the comment character (although, Darwin uses ;). However,
since we are using the C preprocessor on these files, // can be used as the
comment character across the board.
Tweak the platform guard to recognise __aarch64__ as well as __arm64__ for the
platform identifier.
llvm-svn: 231578
|
| |
|
|
|
|
| |
NFC.
llvm-svn: 231577
|
| |
|
|
| |
llvm-svn: 231576
|
| |
|
|
|
|
| |
C++11 finally allows us to use this C99 feature.
llvm-svn: 231575
|
| |
|
|
|
|
|
|
|
|
| |
Provide basic support for dynamically loadable coff objects. Only handles a subset of x64 currently.
Patch by Andy Ayers!
Differential Revision: http://reviews.llvm.org/D7793
llvm-svn: 231574
|
| |
|
|
| |
llvm-svn: 231573
|
| |
|
|
|
|
|
|
| |
In theory this allows the compiler to skip materializing the array on
the stack. In practice clang often fails to do that, but that's a
different story. NFC.
llvm-svn: 231571
|
| |
|
|
| |
llvm-svn: 231570
|
| |
|
|
| |
llvm-svn: 231569
|
| |
|
|
|
|
|
| |
Both File and Atom have virtual destructors. We don't need to repeat
that in derived classes.
llvm-svn: 231568
|
| |
|
|
|
|
| |
warning; NFC.
llvm-svn: 231567
|
| |
|
|
| |
llvm-svn: 231566
|