| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
See bug 36252: https://bugs.llvm.org/show_bug.cgi?id=36252
Differential Revision: https://reviews.llvm.org/D43874
Reviewers: artem.tamazov, arsenm
llvm-svn: 327278
|
|
|
|
|
|
| |
Patch by Dean Sturtevant!
llvm-svn: 327277
|
|
|
|
|
|
|
| |
External symbols now get the sigil '&' while physical registers get the sigil
'$' for their prefix.
llvm-svn: 327276
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This is an important ranking signal.
It's off for the dynamic index for now. Correspondingly, tell the index
infrastructure only to report declarations for the dynamic index.
Reviewers: ioeric, hokein
Subscribers: klimek, ilya-biryukov, jkorous-apple, cfe-commits
Differential Revision: https://reviews.llvm.org/D44315
llvm-svn: 327275
|
|
|
|
|
|
|
|
|
| |
Invalid user input should not trigger assertions and unreachables. We
already return an Option so we should just return None here.
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5532
llvm-svn: 327274
|
|
|
|
|
|
| |
clang 3.8 emits
llvm-svn: 327273
|
|
|
|
| |
llvm-svn: 327272
|
|
|
|
| |
llvm-svn: 327271
|
|
|
|
| |
llvm-svn: 327270
|
|
|
|
| |
llvm-svn: 327269
|
|
|
|
| |
llvm-svn: 327268
|
|
|
|
| |
llvm-svn: 327267
|
|
|
|
|
|
|
|
|
|
|
|
| |
This broke some Windows buildbots; see llvm-commits thread.
> These were just copies of the relevant fuzzer binary with (presumably)
> meaningful suffixes, but accounted for more than 10% of my build
> directory (> 8GB). Hard drive space is cheap, but not that cheap.
(Also reverts follow-up r326710 which didn't help.)
llvm-svn: 327266
|
|
|
|
|
|
|
|
|
|
|
| |
This simplifies tagging instructions with the correct ISA and ASE, albeit making
instruction definitions a bit more verbose.
Reviewers: atanasyan, abeserminji
Differential Revision: https://reviews.llvm.org/D44299
llvm-svn: 327265
|
|
|
|
|
|
| |
Remove mention of -std=c94 (it is spelled iso9899:1994, not c94) and add mention of -std=c17 and -std=gnu17.
llvm-svn: 327264
|
|
|
|
| |
llvm-svn: 327263
|
|
|
|
|
|
|
|
| |
Ports parts of r193000 to the intel parser. Fixes part of PR36676.
https://reviews.llvm.org/D44359
llvm-svn: 327262
|
|
|
|
|
|
|
|
|
| |
This makes the output of some flag names in warning messages consistent with
the output of /? and the output of flags in most other diagnostics.
https://reviews.llvm.org/D44307
llvm-svn: 327261
|
|
|
|
|
|
|
|
| |
AFTER keyword is mandatory and consume() was
used by mistake here. We accepted broken script before
this patch, testcase shows the issue.
llvm-svn: 327260
|
|
|
|
| |
llvm-svn: 327259
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds two new CFG elements CFGScopeBegin and CFGScopeEnd that indicate
when a local scope begins and ends respectively. We use first VarDecl declared
in a scope to uniquely identify it and add CFGScopeBegin and CFGScopeEnd elements
into corresponding basic blocks.
Differential Revision: https://reviews.llvm.org/D16403
llvm-svn: 327258
|
|
|
|
|
|
|
| |
The warning can be suppressed by passing the number to /ignore:.
https://reviews.llvm.org/D44297
llvm-svn: 327257
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After r327219 was landed, the bot with expensive checks on GreenDragon
started failing. The problem was missing symbols `regex_t` and
`regmatch_t` in `xlocale/_regex.h`. The latter was included because
after the change in r327219, `random` is needed, which transitively
includes `xlocale.h.` which in turn conditionally includes
`xlocale/_regex.h` when _REGEX_H_ is defined. Because this is the header
guard in `regex_impl.h` and because `regex_impl.h` was included before
the other LLVM includes, `xlocale/_regex.h` was included without the
necessary types being available.
This commit fixes this by moving the include of `regex_impl.h` all the
way down. I also added a comment to stress the significance of its
position.
llvm-svn: 327256
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Three issues to fix:
- char_constants weren't properly treated as string literals
- Prevening the break after "label: " does not make sense in concunction
with AlwaysBreakBeforeMultilineStrings. It leads to situations where
clang-format just cannot find a viable format (it must break and yet
it must not break).
- AlwaysBreakBeforeMultilineStrings should not be on for LK_TextProto in
Google style.
llvm-svn: 327255
|
|
|
|
|
|
|
| |
This wasreverted in r326638 due to link problems and fixed
afterwards
llvm-svn: 327254
|
|
|
|
|
|
|
| |
Not entirely sure this is the best place to put this check, but it fixes
the immediate issue.
llvm-svn: 327253
|
|
|
|
|
|
|
|
|
|
|
| |
udiv/urem instructions."
This reverts r326908, originally landed as D44102.
Reverted for causing performance regressions on x86. (These regressions
are not yet understood.)
llvm-svn: 327252
|
|
|
|
|
|
| |
We called MaskedValueIsZero with two different masks, but underneath that calls computeKnownBits before applying the mask. This means we compute the same known bits twice due to the two calls. Instead just call computeKnownBits directly and apply the two masks ourselves.
llvm-svn: 327251
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we replace the Phi we created with matched ones it is possible that
there are two identical phi nodes in IR. And matcher is smart enough to find that
new created phi matches both of them. So we try to replace our phi node with
matched ones twice and what is bad we delete our phi node twice causing a crash.
As soon as we found that we have two identical Phi nodes it makes sense to do
a clean-up and replace one phi node by other one.
The patch implements it.
Reviewers: john.brawn, reames
Reviewed By: john.brawn
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D43758
llvm-svn: 327250
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D44371
llvm-svn: 327249
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the start of the .got.plt section so that _GLOBAL_OFFSET_TABLE_[0] =
reserved value that is by convention the address of the dynamic section.
Previously we had defined _GLOBAL_OFFSET_TABLE_ as either the start or end
of the .got section with the intention that the .got.plt section would
follow the .got. However this does not always hold with the current
default section ordering so _GLOBAL_OFFSET_TABLE_[0] may not be consistent
with the reserved first entry of the .got.plt.
X86, X86_64, Arm and AArch64 will use the .got.plt. Mips and Power use .got
Fixes PR36555
Differential Revision: https://reviews.llvm.org/D44259
llvm-svn: 327248
|
|
|
|
|
|
|
|
|
|
|
|
| |
64-bit MMX vector generation usually ends up lowering into SSE instructions before being spilled/reloaded as a MMX type.
This patch creates a MMX vector from MMX source values, taking the lowest element from each source and constructing broadcasts/build_vectors with direct calls to the MMX PUNPCKL/PSHUFW intrinsics.
We're missing a few consecutive load combines that could be handled in a future patch if that would be useful - my main interest here is just avoiding a lot of the MMX/SSE crossover.
Differential Revision: https://reviews.llvm.org/D43618
llvm-svn: 327247
|
|
|
|
|
|
| |
Cleaned up check prefixes so that they actually share a bit more
llvm-svn: 327246
|
|
|
|
|
|
|
|
| |
v32i8 codegen
XOP was already doing this, and now AVX performs v32i8 variable permutes as well.
llvm-svn: 327245
|
|
|
|
|
|
| |
vector is wider than the destination type
llvm-svn: 327244
|
|
|
|
| |
llvm-svn: 327243
|
|
|
|
|
|
|
|
| |
variable permutes
Same as the VPERMILPS/VPERMILPD approach for v8f32/v4f64 cases, rely on PSHUFB using bits[3:0] for indexing - we can ignore the sign bit (zero element) as those index vector values are considered undefined. The select between the lo/hi permute results based on the index size.
llvm-svn: 327242
|
|
|
|
| |
llvm-svn: 327241
|
|
|
|
|
|
|
|
| |
any number of ops.
I've kept SplitBinaryOpsAndApply as a wrapper to avoid a lot of makeArrayRef code.
llvm-svn: 327240
|
|
|
|
|
|
|
|
|
|
| |
v8i32/v8f32 and v4i64/v4f64 variable permutes
As VPERMILPS/VPERMILPD only selects elements based on the bits[1:0]/bit[1] then we can permute both the (repeated) lo/hi 128-bit vectors in each case and then select between these results based on whether the index was for for lo/hi.
For v4i64/v4f64 this avoids some rather nasty v4i64 multiples on the AVX2 implementation, which seems to be worse than the extra port5 pressure from the additional shuffles/blends.
llvm-svn: 327239
|
|
|
|
|
|
|
|
| |
variable permutes to v8i64/v8f64
Permutes in the upper elements will be undefined, but they will be discarded anyway.
llvm-svn: 327238
|
|
|
|
| |
llvm-svn: 327237
|
|
|
|
|
|
|
|
| |
Helper function to insert a subvector into the bottom elements of a larger zero/undef vector with the same scalar type.
I've converted a couple of INSERT_SUBVECTOR calls to use it, there are plenty more although in some cases I was worried it might make the code more ambiguous.
llvm-svn: 327236
|
|
|
|
|
|
| |
StartingAccess is already a MemoryUseOrDef.
llvm-svn: 327235
|
|
|
|
| |
llvm-svn: 327234
|
|
|
|
|
|
|
| |
Else, the test fails in LLVM_TARGETS_TO_BUILD=X86 builds like so:
bin/llvm-mc: : error: unable to get target for 'arm64-apple-ios7.0.0'
llvm-svn: 327233
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D44350
llvm-svn: 327232
|
|
|
|
|
|
|
|
| |
The intent of revision r300311 was to add a check for invalid scheduling class
descriptors. However, it ended up adding a redundant call in a basic block that
should not be reachable.
llvm-svn: 327231
|
|
|
|
|
|
|
| |
"I'll revert this tomorrow," I said yesterday. This should've reached
all the bots it can by now.
llvm-svn: 327230
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In C, we'll wait until the end of the scope to clean up aggregate
temporaries used for returns from calls. This means in cases like:
{
// Assuming that `Bar` is large enough to warrant indirect returns
struct Bar b = {};
b = foo(&b);
b = foo(&b);
b = foo(&b);
b = foo(&b);
}
...We'll allocate space for 5 Bars on the stack (`b`, and 4
temporaries). This becomes painful in things like large switch
statements.
If cleaning up sooner is trivial, we should do it.
llvm-svn: 327229
|