- Feb 06, 2020
-
-
Jonas Paulsson authored
This is a compile-time optimization for PHIElimination (splitting of critical edges), which was reported at https://bugs.llvm.org/show_bug.cgi?id=44249. As discussed there, the way to remedy the slowdowns with huge functions is to pre-compute the live-in registers for each MBB in an efficient way in PHIElimination.cpp and then pass that information along to LiveVariabless::addNewBlock(). In all the huge test programs where this slowdown has been noticable, it has dissapeared entirely with this patch. Review: Björn Pettersson, Quentin Colombet. Differential Revision: https://reviews.llvm.org/D73152
-
Jonas Devlieghere authored
-
Jonas Devlieghere authored
-
Jonas Devlieghere authored
The current implementation has a discrepancy between how char pointers are serialized and deserialized. The latter treats it like a const char* while the former serializes it as a pointer to a basic type. Both are potentially wrong, as char pointers are mostly used in combination with a size, and nothing guarantees that the string's length (its first null byte to be more precise) is greater or equal to its size. The real solution is to have a custom (de)serializer that uses both pieces of infromation. However, the implementation should be consistent between serialization and deserialization and I believe treating char* as const char* is the better alternative.
-
Paolo Severini authored
Add a dynamic loader plug-in class for WebAssembly modules. Differential Revision: https://reviews.llvm.org/D72751
-
Matt Arsenault authored
-
Matt Arsenault authored
The legalizer produces a lot of these, and they make reading legalized MIR annoying. For some reason, this does seem to sometimes introduce copies of implicit def, which is dumb.
-
David Blaikie authored
-
Fangrui Song authored
D73542 made a typo (`rel.type == R_PLT_PC`; should be `rel.expr`) and introduced a regression: BL->BLX substitution was disabled when the target symbol is preemptible (expr is R_PLT_PC). The two added bl instructions in arm-thumb-interwork-shared.s check that we patch BL to BLX. Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=1047531
-
Jonas Paulsson authored
The "{=v0}" constraint did not result in the expected error message in the abscence of the vector facility, because 'v0' matches as a string into the AnyRegBitRegClass in common code. This patch adds checks for vector support in case of "{v" and soft-float in case of "{f" to remedy this. Review: Ulrich Weigand. -
Juneyoung Lee authored
-
Craig Topper authored
The load ports need a cycle for each potentially loaded element just like Haswell and Skylake. Unlike Haswell and Broadwell, the number of uops does not scale with the number of elements. Instead the load uops run for multiple cycles. I've taken the latency number from the uops.info. The port binding for the non-load uops is taken from the original IACA data I have. Differential Revision: https://reviews.llvm.org/D74000
-
Matt Arsenault authored
-
Juneyoung Lee authored
Summary: This patch fixes https://bugs.llvm.org/show_bug.cgi?id=44388 which incorrectly assigns an ABI alignment to memset when there was no explicit alignment given. Reviewers: gchatelet, lenary, nikic Reviewed By: nikic Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74083
-
Jacques Pienaar authored
Summary: Optional regions are supported in the generic op print/parse form, update the docs to match. Differential Revision: https://reviews.llvm.org/D74061
-
Hans Wennborg authored
The problem was noticed by the Chrome OS toolchain folks (crbug.com/1048445) because llvm-objcopy --add-gnu-debuglink would insert the wrong checksum when processing a binary larger than 4 GB. That use case regressed in 1e1e3ba2 when we started using llvm::crc32() in more places. Differential revision: https://reviews.llvm.org/D74039
-
Matt Arsenault authored
Really the intrinsic definition is wrong, but work around this here. The DAG lowering introduces an MMO. We have to introduce a new operation to avoid the verifier complaining about the missing mayLoad.
-
Sanjay Patel authored
The old code was doing an N^2 search for splat index. Differential Revision: https://reviews.llvm.org/D74064
-
Sanjay Patel authored
I was debug stepping through an x86 shuffle lowering and noticed we were doing an N^2 search for splat index. I didn't find the equivalent functionality anywhere else in LLVM, so here's a helper that takes an array of int and returns a splatted index while ignoring undefs (any negative value). This might also be used inside existing ShuffleVectorInst/ShuffleVectorSDNode functions and/or help with D72467. Differential Revision: https://reviews.llvm.org/D74064
-
Victor Huang authored
-
Adrian McCarthy authored
Removed some #ifdefs specific to Windows handling of VFS paths. This eliminates most of the differences between the Windows and non-Windows code paths. Making this work required some changes to account for the fact that VFS file paths can be Posix style or Windows style, so you cannot just assume that they use the host's native path style. In one case, this means implementing our own version of make_absolute, since the filesystem code in Support doesn't have styles in the sense that the path code does. Differential Review: https://reviews.llvm.org/D71092
-
Matt Arsenault authored
Use cmp ord instead of cmp_class compared to the DAG version for the nan check, but mostly try to match the existsing pattern. I think the sign doesn't matter for fract, so we could do a little better with the source modifier matching. I think this is also still broken as in D22898, but I'm leaving it as-is for now while I don't have an SI system to test on.
-
Nate Voorhies authored
Reviewers: luismarques, lenary Reviewed By: lenary Subscribers: hiraditya, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, lenary, s.egerton, pzheng, sameer.abuasal, apazos, luismarques, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73984
-
Stephen Neuendorffer authored
Summary: MLIRAnalysis depended on MLIRVectorOps MLIRVectorOps depended on MLIRAnalysis for Loop information. Both of these can be solved by factoring out libraries related to loop analysis into their own library. The new MLIRLoopAnalysis might be better off with the Loop Dialect in the future. Reviewers: nicolasvasilache, rriddle!, mehdi_amini Reviewed By: mehdi_amini Subscribers: Joonsoo, vchuravy, merge_guards_bot, mgorny, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73655
-
Stephen Neuendorffer authored
Summary: This makes it consistent with other test passes. Reviewers: rriddle Reviewed By: rriddle Subscribers: merge_guards_bot, mgorny, mehdi_amini, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, Joonsoo, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74068
-
Stephen Neuendorffer authored
Summary: This breaks a cyclic library dependency where MLIRPass used the verifier in MLIRAnalysis, but MLIRAnalysis also contained passes used for testing. The presence of the test passes here is archaeology, predating test/lib/Transform. Reviewers: rriddle Reviewed By: rriddle Subscribers: merge_guards_bot, mgorny, mehdi_amini, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74067
-
LLVM GN Syncbot authored
-
Nico Weber authored
This reverts commit fc62b36a. Breaks tests on mac: http://45.33.8.238/mac/7301/step_11.txt
-
shafik authored
Currently when generating debug-info for a BlockDecl we are setting the Name to the mangled name and not setting the LinkageName. This means we see the mangled name for block invcations ends up in DW_AT_Name and not in DW_AT_linkage_name. This patch fixes this case so that we also set the LinkageName as well. Differential Revision: https://reviews.llvm.org/D73282
-
Jan Korous authored
This reverts commit 05807089.
-
Kostya Kortchinsky authored
Summary: I tried to move the `madvise` calls outside of one of the secondary mutexes, but this backfired. There is situation when a low release interval is set combined with secondary pressure that leads to a race: a thread can get a block from the cache, while another thread is `madvise`'ing that block, resulting in a null header. I changed the secondary race test so that this situation would be triggered, and moved the release into the cache mutex scope. Reviewers: cferris, pcc, eugenis, hctim, morehouse Subscribers: jfb, #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D74072
-
Shu-Chun Weng authored
contractCrossBankCopyIntoStore() finds the instruction defines the source register and uses its output to replace the register. There are, however, instructions that have multiple outputs, e.g. G_UNMERGE_VALUES. Current implementation hardcodes to operand 0 and has no way of knowing which output should be used. This change adds another function to directly return the register that is the source of the register and use that for folding. This fixes https://bugs.llvm.org/show_bug.cgi?id=44783 Differential Revision: https://reviews.llvm.org/D74005
-
David Green authored
-
River Riddle authored
Summary: This details the structure of the format, it's requirements, and gives a few examples. Differential Revision: https://reviews.llvm.org/D73983
-
Fangrui Song authored
-
Matt Arsenault authored
This is safer in case anyone tries to run MI optimization passes on pre-selected MIR. If there turns out to be a real reason to do this, we might need to add separate convergent intrinsic opcodes.
-
LLVM GN Syncbot authored
-
Nick Desaulniers authored
Summary: The output from llvm-reduce still has significantly more attributes than bugpoint does. Teach llvm-reduce to remove attributes. Reviewers: diegotf, dblaikie, george.burgess.iv Subscribers: mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73853
-
Jessica Paquette authored
This implements walking over G_ASHR in the same way as `getTestBitOperand` in AArch64ISelLowering. ``` (tbz (ashr x, c), b) -> (tbz x, b+c) or (tbz x, msb) if b+c is > # bits in x ``` Differential Revision: https://reviews.llvm.org/D73933
-
Christopher Tetreault authored
This reverts commit a0544103, reapplying commit 31574d38
-