| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
subvectors using XMM or YMM stores instead of the vector extract instructions.
Similar is already done for AVX and we had lost it going to AVX512VL.
llvm-svn: 270383
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch refactors EHOutputSection using SectionPiece struct.
EHRegion class was removed since we can now directly use SectionPiece.
An incomplete support of large CIE/FDE record (> 2^32 bytes) was removed
because it silently created broken executable. There are several places
in the existing code that "size" field is always 4 bytes and at offset 4
in the record, which is not true for 64-bit size records. We will have to
support that in future, but it is better to error out instead of creating
malformed eh_frame sections.
llvm-svn: 270382
|
|
|
|
|
|
|
| |
If TheModule is declared before LLVMContext then it will be destructed after it,
crashing when it tries to deregister itself from the destructed context.
llvm-svn: 270381
|
|
|
|
| |
llvm-svn: 270380
|
|
|
|
| |
llvm-svn: 270379
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(PR27823)
This isn't the complete fix, but it handles the trivial examples of duplicate vzero* ops in PR27823:
https://llvm.org/bugs/show_bug.cgi?id=27823
...and amusingly, the bogus cases already exist as regression tests, so let's take this baby step.
We'll need to do more in the general case where there's legitimate AVX usage in the function + there's
already a vzero in the code.
Differential Revision: http://reviews.llvm.org/D20477
llvm-svn: 270378
|
|
|
|
|
|
| |
Address a -Wunused-but-set-variable warning from gcc. NFC.
llvm-svn: 270377
|
|
|
|
|
|
|
|
| |
Using -fomit-frame-pointer sometimes makes a crash log miss some frames. Let's not use this optimization in debug builds.
Differential Revision: http://reviews.llvm.org/D20425
llvm-svn: 270376
|
|
|
|
| |
llvm-svn: 270375
|
|
|
|
| |
llvm-svn: 270374
|
|
|
|
| |
llvm-svn: 270373
|
|
|
|
| |
llvm-svn: 270372
|
|
|
|
|
|
|
| |
Remove dependency on runtime initializer to avoid
issues related to initialization order.
llvm-svn: 270371
|
|
|
|
| |
llvm-svn: 270370
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
vector splat constants
We could try harder to handle non-splat vector constants too,
but that seems much rarer to me.
Note that the div test isn't resolved because there's a check
for isIntegerTy() guarding that transform.
Differential Revision: http://reviews.llvm.org/D20497
llvm-svn: 270369
|
|
|
|
| |
llvm-svn: 270368
|
|
|
|
| |
llvm-svn: 270367
|
|
|
|
| |
llvm-svn: 270366
|
|
|
|
|
|
| |
in the middle of a sentence.
llvm-svn: 270365
|
|
|
|
| |
llvm-svn: 270364
|
|
|
|
| |
llvm-svn: 270363
|
|
|
|
|
|
| |
HistoryUnwind").
llvm-svn: 270359
|
|
|
|
|
|
| |
unique_lock's release() was called causing the mutex to stay locked.
llvm-svn: 270358
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D20513
llvm-svn: 270357
|
|
|
|
|
|
| |
the source is 512-bits. The 256-bit source patterns were redundant with AVX.
llvm-svn: 270356
|
|
|
|
|
|
| |
index 0 patterns. This gives them higher priority than the memory patterns. This matches AVX1/2.
llvm-svn: 270355
|
|
|
|
|
|
| |
equivalents. This helps group them close together in the isel tables and enable table compression.
llvm-svn: 270354
|
|
|
|
|
|
|
|
|
| |
We were missing references to the standard, some of our home-grown
verbiage didn't make any sense.
No functional change is intended.
llvm-svn: 270353
|
|
|
|
|
|
|
|
| |
The parameter already requires the toolchain, sink the method into the class.
This also enables the use of the distro detection logic which will be needed to
support Exherbo's multiarch approach.
llvm-svn: 270352
|
|
|
|
|
|
|
|
| |
Convert the cascading if/else to a switch. This makes it easier to follow the
logic. Minor difference is that we no longer default to x86_64 but rather to
the architecture specified by the architecture.
llvm-svn: 270351
|
|
|
|
| |
llvm-svn: 270350
|
|
|
|
| |
llvm-svn: 270349
|
|
|
|
|
|
| |
So that we don't need to cut a slice when we use a SectionPiece.
llvm-svn: 270348
|
|
|
|
| |
llvm-svn: 270347
|
|
|
|
|
|
|
|
| |
This patch adds Size member to SectionPiece so that getRangeAndSize
can just return a SectionPiece instead of a std::pair<SectionPiece *, uint_t>.
Also renamed the function.
llvm-svn: 270346
|
|
|
|
|
|
| |
checks appear just once.
llvm-svn: 270345
|
|
|
|
|
|
| |
inversions could appear in a row.
llvm-svn: 270344
|
|
|
|
| |
llvm-svn: 270343
|
|
|
|
|
|
|
| |
We generally prefer short names, but this code went probably a bit too far.
This patch renames single letter local/member varables.
llvm-svn: 270342
|
|
|
|
| |
llvm-svn: 270341
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were using std::pair to represents pieces of splittable section
contents. It hurt readability because "first" and "second" are not
meaningful. This patch give them names.
One more thing is that piecewise liveness information is stored to
the second element of the pair as a special value of output section
offset. It was confusing, so I defiend a new bit, "Live", in the
new struct.
llvm-svn: 270340
|
|
|
|
| |
llvm-svn: 270339
|
|
|
|
| |
llvm-svn: 270338
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D20460
llvm-svn: 270337
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D20459
llvm-svn: 270336
|
|
|
|
|
|
| |
for integer types when only AVX1 is supported.
llvm-svn: 270335
|
|
|
|
| |
llvm-svn: 270334
|
|
|
|
|
|
| |
used to indicating the zero masking behavior which is not the case here. NFC
llvm-svn: 270333
|
|
|
|
|
|
| |
reflect the fact that memory is the destination.
llvm-svn: 270332
|
|
|
|
| |
llvm-svn: 270331
|