| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
In the use optimizer, we need to keep of whether the lower bound still
dominates us or else we may decide a lower bound is still valid when it
is not due to intervening pushes/pops. Fixes PR28880 (and probably a
bunch of other things).
Reviewers: george.burgess.iv
Subscribers: MatzeB, llvm-commits, sebpop
Differential Revision: https://reviews.llvm.org/D23237
llvm-svn: 277978
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The correctness fix here is that when we CSE a load with another load,
we need to combine the metadata on the two loads. This matches the
behavior of other passes, like instcombine and GVN.
There's also a minor optimization improvement here: for load PRE, the
aliasing metadata on the inserted load should be the same as the
metadata on the original load. Not sure why the old code was throwing
it away.
Issue found by inspection.
Differential Revision: http://reviews.llvm.org/D21460
llvm-svn: 277977
|
|
|
|
|
|
|
|
|
| |
Functions of Sema that work with building of nested name specifiers have too
many parameters (BuildCXXNestedNameSpecifier already expects 10 arguments).
With this change the information about identifier and its context is packed
into a structure, which is then passes to the semantic functions.
llvm-svn: 277976
|
|
|
|
| |
llvm-svn: 277975
|
|
|
|
| |
llvm-svn: 277974
|
|
|
|
|
|
|
| |
Jim Grosbach and Kevin Enderby think those are not used anymore.
Originally submitted by: Rafael Espindola
llvm-svn: 277973
|
|
|
|
| |
llvm-svn: 277972
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
We also add one test (and the XRay testing infrastructure) to exercise
the patching and unpatching code. This uses the XRay API exported
through the headers as well, installing a custom log handler.
Depends on D23101 for the updated emitted code alignment for the
return/entry sleds.
Reviewers: rSerge, echristo, rnk
Subscribers: tberghammer, danalbert, srhines, mehdi_amini, llvm-commits
Differential Revision: https://reviews.llvm.org/D23154
llvm-svn: 277971
|
|
|
|
|
|
|
| |
Previously the copy/move constructors of the test types did not
properly set the arg_id to T const& or T&& respectivly.
llvm-svn: 277970
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
PromoteMemToReg looks specifically for the pattern
bitcast+lifetime.start (or a bitcast-equivalent GEP); any offset
will lead to an assertion failure.
Fixes https://llvm.org/bugs/show_bug.cgi?id=27999 .
Differential Revision: https://reviews.llvm.org/D22737
llvm-svn: 277969
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The synopsis in C++11 subclause 28.8 [re.regex] has:
```
basic_regex(const charT* p, size_t len,
flag_type f = regex_constants::ECMAScript);
```
The default argument is added to libc++ by this change.
Reviewers: mclow.lists, rsmith, hubert.reinterpretcast
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D22702
Reapplies r277966.
Patch by Jason Liu!
llvm-svn: 277968
|
|
|
|
| |
llvm-svn: 277967
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The synopsis in C++11 subclause 28.8 [re.regex] has:
```
basic_regex(const charT* p, size_t len,
flag_type f = regex_constants::ECMAScript);
```
The default argument is added to libc++ by this change.
Reviewers: mclow.lists, rsmith, hubert.reinterpretcast
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D22702
llvm-svn: 277966
|
|
|
|
|
|
| |
of a 512-bit vector of zeroes by using vmovq/vmovd/vmovss/vmovsd.
llvm-svn: 277965
|
|
|
|
| |
llvm-svn: 277964
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D22104
llvm-svn: 277963
|
|
|
|
| |
llvm-svn: 277962
|
|
|
|
|
|
| |
stack folding test and move some tests from the avx512vl test.
llvm-svn: 277961
|
|
|
|
|
|
| |
folding tables.
llvm-svn: 277960
|
|
|
|
|
|
|
|
| |
SM_SentinelUndef
Help lowering and combining (which can specify SM_SentinelZero mask elements) share more shuffle matching code.
llvm-svn: 277959
|
|
|
|
|
|
|
|
|
|
|
| |
integer values
Optimized lowering of BITCAST node. The BITCAST node can be replaced with COPY_TO_REG instead of KMOV.
It allows to suppress two opposite BITCAST operations and avoid redundant "movs".
Differential Revision: https://reviews.llvm.org/D23247
llvm-svn: 277958
|
|
|
|
| |
llvm-svn: 277957
|
|
|
|
| |
llvm-svn: 277956
|
|
|
|
|
|
|
|
|
|
| |
fix Bug 28842 https://llvm.org/bugs/show_bug.cgi?id=28842
Differential Revision: https://reviews.llvm.org/D22212
llvm-svn: 277955
|
|
|
|
|
|
|
|
|
|
| |
This is a new test that should explore a current suboptimal sequence in passing values between cmp and kor intrinsics.
The code will be optimized in an upcoming patch.
Submitted bug here:
https://llvm.org/bugs/show_bug.cgi?id=28839
llvm-svn: 277954
|
|
|
|
|
|
|
| |
We infer inbounds on GEPs of allocas leading to minor perturbations in
tests.
llvm-svn: 277953
|
|
|
|
| |
llvm-svn: 277952
|
|
|
|
|
|
|
| |
Simplify ptrtoint comparisons involving operands with different source
types.
llvm-svn: 277951
|
|
|
|
| |
llvm-svn: 277950
|
|
|
|
|
|
| |
tables.
llvm-svn: 277949
|
|
|
|
| |
llvm-svn: 277948
|
|
|
|
| |
llvm-svn: 277947
|
|
|
|
|
|
|
|
|
| |
loops.""
This reverts commit r277901. Reaaply the commit as it looks like it has
nothing to do with the bots failures.
llvm-svn: 277946
|
|
|
|
|
|
|
|
|
| |
RuntimeDyld.
JITSymbol really belongs in RuntimeDyld. This should fix the llvm-rtdyld link
failures caused by r277943.
llvm-svn: 277945
|
|
|
|
| |
llvm-svn: 277944
|
|
|
|
| |
llvm-svn: 277943
|
|
|
|
|
|
| |
on linux last time.
llvm-svn: 277942
|
|
|
|
| |
llvm-svn: 277941
|
|
|
|
| |
llvm-svn: 277940
|
|
|
|
|
|
| |
Split extensions to large vectors into 256-bit chunks - the equivalent of what we do with pre-AVX2 into 128-bit chunks
llvm-svn: 277939
|
|
|
|
| |
llvm-svn: 277938
|
|
|
|
| |
llvm-svn: 277937
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
CoroSplit pass processes the coroutine twice. First, it lets it go through
complete IPO optimization pipeline as a single function. It forces restart
of the pipeline by inserting an indirect call to an empty function "coro.devirt.trigger"
which is devirtualized by CoroElide pass that triggers a restart of the pipeline by CGPassManager.
(In later patches, when CoroSplit pass sees the same coroutine the second time, it splits it up,
adds coroutine subfunctions to the SCC to be processed by IPO pipeline.)
Documentation and overview is here: http://llvm.org/docs/Coroutines.html.
Upstreaming sequence (rough plan)
1.Add documentation. (https://reviews.llvm.org/D22603)
2.Add coroutine intrinsics. (https://reviews.llvm.org/D22659)
3.Add empty coroutine passes. (https://reviews.llvm.org/D22847)
4.Add coroutine devirtualization + tests.
ab) Lower coro.resume and coro.destroy (https://reviews.llvm.org/D22998)
c) Do devirtualization (https://reviews.llvm.org/D23229)
5.Add CGSCC restart trigger + tests. <= we are here
6.Add coroutine heap elision + tests.
7.Add the rest of the logic (split into more patches)
Reviewers: mehdi_amini, majnemer
Subscribers: llvm-commits, mehdi_amini
Differential Revision: https://reviews.llvm.org/D23234
llvm-svn: 277936
|
|
|
|
| |
llvm-svn: 277935
|
|
|
|
| |
llvm-svn: 277934
|
|
|
|
| |
llvm-svn: 277933
|
|
|
|
|
|
| |
commits will refine some of the sequences.
llvm-svn: 277932
|
|
|
|
|
|
| |
hasUndefRegUpdate.
llvm-svn: 277931
|
|
|
|
|
|
|
|
| |
Assuming SSE2 is available then we can safely commute between these, removing some unnecessary register moves and improving memory folding opportunities.
VEX encoded versions don't benefit so I haven't added support to them.
llvm-svn: 277930
|
|
|
|
|
|
|
|
| |
Fix comments. NFC.
Patch by Martin Storsjö!
llvm-svn: 277929
|