| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
See PR31589 for details.
llvm-svn: 291478
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D28087
llvm-svn: 291473
|
| |
|
|
| |
llvm-svn: 291472
|
| |
|
|
|
|
|
|
| |
This reverts commit r291470 due to failing bots:
http://bb.pgr.jp/builders/cmake-llvm-x86_64-linux/builds/47209/steps/test_llvm/logs/stdio
llvm-svn: 291471
|
| |
|
|
|
|
| |
This patch adds support for the DWARF debug_lines section. The line table state machine opcodes are preserved, so this can be used to test the state machine evaluation directly.
llvm-svn: 291470
|
| |
|
|
| |
llvm-svn: 291469
|
| |
|
|
| |
llvm-svn: 291468
|
| |
|
|
| |
llvm-svn: 291467
|
| |
|
|
| |
llvm-svn: 291464
|
| |
|
|
| |
llvm-svn: 291463
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This patch delays the fix-up step for external induction variable users until
after the dominator tree has been properly updated. This should fix PR30742.
The SCEVExpander in InductionDescriptor::transform can generate code in the
wrong location if the dominator tree is not up-to-date. We should work towards
keeping the dominator tree up-to-date throughout the transformation.
Reference: https://llvm.org/bugs/show_bug.cgi?id=30742
Differential Revision: https://reviews.llvm.org/D28168
llvm-svn: 291462
|
| |
|
|
|
|
|
|
|
|
|
| |
For i16 zeroext arguments when i16 was a legal type, the
known bits information from the truncate was lost. Insert
a zeroext so the known bits optimizations work with the 32-bit
loads.
Fixes code quality regressions vs. SI in min.ll test.
llvm-svn: 291461
|
| |
|
|
| |
llvm-svn: 291460
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: Intrinsic::Bitreverse is safe to speculate
Reviewers: hfinkel, mkuper, arsenm, jmolloy
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D28471
llvm-svn: 291456
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
remove the dead store.
%vreg0<def> = L2_loadri_io <fi#15>, 0; mem:LD4[%dataF](align=4)
DBG_VALUE %vreg0, %noreg, !"dataF", <!184>; IntRegs:%vreg0
S2_storeri_io <fi#15>, 0, %vreg0; mem:ST4[%dataF]
In reality, this kind of stores are eliminated before Stack Slot Coloring pass,
possibly in instruction lowering
Differential Revision: https://reviews.llvm.org/D26616
llvm-svn: 291455
|
| |
|
|
|
|
|
|
|
|
| |
extend+shift+truncate pattern.
Use the existing AVX2 v8i16 vector shift lowering for v16i8 (extending to v16i32) on AVX512 targets and v32i8 (extending to v32i16) on AVX512BW targets.
Cost model updates to follow.
llvm-svn: 291451
|
| |
|
|
| |
llvm-svn: 291447
|
| |
|
|
|
|
|
|
|
|
| |
pattern.
Use the existing AVX2 v8i16 vector shift lowering for v16i16 on AVX512 targets (AVX512BW will have already have lowered with vpsravw).
Cost model updates to follow.
llvm-svn: 291445
|
| |
|
|
| |
llvm-svn: 291444
|
| |
|
|
|
|
|
|
| |
const value op iterator is missing from User.h class.
Differential Revision: https://reviews.llvm.org/D28464
llvm-svn: 291443
|
| |
|
|
| |
llvm-svn: 291442
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Originally
i64 = umax t8, Constant:i64<4>
was expanded into
i32,i32 = umax Constant:i32<0>, Constant:i32<0>
i32,i32 = umax t7, Constant:i32<4>
Now instead the two produced umax:es return i32 instead of i32, i32.
Thanks to Jan Vesely for help with the test case.
Patch by mikael.holmen at ericsson.com
Reviewers: bogner, jvesely, tstellarAMD, arsenm
Subscribers: test, wdng, RKSimon, arsenm, nhaehnle, llvm-commits
Differential Revision: https://reviews.llvm.org/D28135
llvm-svn: 291441
|
| |
|
|
| |
llvm-svn: 291438
|
| |
|
|
|
|
|
| |
MSVC does not like to reinterpret_cast to a uint64_t. Use a different cast
instead.
llvm-svn: 291435
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This patch doesn't create thunk for branch operation when following conditions are met:
- Architecture is AArch64
- Relocation target is in the same object file
- Relocation target is close enough to be encoded in immediate offset
In such case we branch directly to the target instead of branching to thunk
Differential revision: https://reviews.llvm.org/D28108
llvm-svn: 291431
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
invalid.
This fixes use-after-free bugs that will arise with any interesting use
of SCEV.
I've added a dedicated test that works diligently to trigger these kinds
of bugs in the new pass manager and also checks for them explicitly as
well as triggering ASan failures when things go squirly.
llvm-svn: 291426
|
| |
|
|
| |
llvm-svn: 291424
|
| |
|
|
|
|
|
| |
computeInterleaveCount() is not defined/used and is therefore removed.
Review: Davide Italiano
llvm-svn: 291423
|
| |
|
|
|
|
|
| |
not excluding ourselves when checking if any equivalent stores
exist.
llvm-svn: 291421
|
| |
|
|
| |
llvm-svn: 291420
|
| |
|
|
|
|
| |
A future patch will conver it back to BLENDM if its beneficial to register allocation.
llvm-svn: 291419
|
| |
|
|
|
|
|
|
| |
vselects of all ones and all zeros.
Previously we emitted a VPTERNLOG and a separate masked move.
llvm-svn: 291415
|
| |
|
|
|
|
|
|
| |
This patch moves convertToUnixPathSeparator from LLD to LLVM.
Differential Revision: https://reviews.llvm.org/D28444
llvm-svn: 291414
|
| |
|
|
|
|
|
|
|
| |
empty string
This is used in LDC for custom boolean commandline options, setArgStr
is called with an empty string before using AddLiteralOption.
llvm-svn: 291406
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
By using stripPointerCasts we can get to the root
value and then walk down the bitcast graph
Reviewers: reames
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D28181
llvm-svn: 291405
|
| |
|
|
| |
llvm-svn: 291404
|
| |
|
|
|
|
| |
of zeroes/ones when handling sign extends of i1 without VLX.
llvm-svn: 291402
|
| |
|
|
|
|
|
|
| |
test.
This is preparation for improving a case with avx512dq.
llvm-svn: 291401
|
| |
|
|
| |
llvm-svn: 291400
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
handlers, make abandonPendingResults public API.
This should make installing asynchronous result handlers thread safe.
The abandonPendingResults method is made public so that clients can disconnect
from a remote even if they have asynchronous handlers awaing results from that
remote. The asynchronous handlers will all receive "abandoned result" errors as
their argument.
llvm-svn: 291399
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Running a Debug build of objdump -objc-meta-data with a large Mach-O file is
currently unnecessarily slow.
With some local test input, this change reduces the run time from 75-85s down
to 15-20s.
The two changes are:
Assert on pointer equality not array equality
Replace vector<pair<address, symbol>> with DenseMap<address, symbol>
Additionally, use a std::unique_ptr rather than handling the memory manually.
Patch by Dave Lee!
llvm-svn: 291398
|
| |
|
|
| |
llvm-svn: 291395
|
| |
|
|
|
|
| |
Silences a warning from gcc:6. NFC
llvm-svn: 291394
|
| |
|
|
| |
llvm-svn: 291393
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I noticed this problem as part of the ongoing attempt to canonicalize min/max ops in IR.
The debug output shows nodes like this:
t4: i32 = xor t2, Constant:i32<-1>
t21: i8 = setcc t4, Constant:i32<0>, setlt:ch
t14: i32 = select t21, t4, Constant:i32<-1>
And because the select is holding onto the t4 (xor) node while EmitTest creates a new
x86-specific xor node, the lowering results in:
t4: i32 = xor t2, Constant:i32<-1>
t25: i32,i32 = X86ISD::XOR t2, Constant:i32<-1>
t28: i32,glue = X86ISD::CMOV Constant:i32<-1>, t4, Constant:i8<15>, t25:1
Differential Revision: https://reviews.llvm.org/D28374
llvm-svn: 291392
|
| |
|
|
|
|
|
|
|
|
| |
The 'fast' costs should only work for shifts by uniform constants (uniform non-constant are lowered using the slow default implementation).
Logical shifts were not taking into account that we must mask the psrlw result, so the costs needed to be doubled.
Added missing AVX2/AVX512BW costs as well.
llvm-svn: 291391
|
| |
|
|
|
|
| |
XOP was prematurely matching, doubling the cost of ashr/lshr uniform shifts.
llvm-svn: 291390
|
| |
|
|
|
|
| |
masking for patterns that already use the aligned form. NFC
llvm-svn: 291383
|
| |
|
|
| |
llvm-svn: 291381
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
APICalls allows groups of functions to be composed into an API that can be
registered as a unit with an RPC endpoint. Doing registration on a-whole API
basis (rather than per-function) allows missing API functions to be detected
early.
APICalls also allows Function membership to be tested at compile-time. This
allows clients to write static assertions that functions to be called are
members of registered APIs.
llvm-svn: 291380
|