- May 13, 2020
-
-
Nico Weber authored
clang passes these flags; this makes it easier to try `clang -v` output with `ld -flavor darwinnew`. Differential Revision: https://reviews.llvm.org/D79797
-
Siva Chandra Reddy authored
A missing dep has been added, and a few redundent deps have been removed.
-
Casey Carter authored
These tests PASS on libstdc++ and MSVC.
-
Stanislav Mekhanoshin authored
We can produce such vectors in the Promote Alloca pass, but we are unable to use movrel to operate it and lower via scratch. Making it legal makes SI_INDIRECT patterns work. There is more work to do in subsequent changes: 1. We initialize m0 twice to access each dword. It shall be possible to only do it once and increment base register number instead. 2. We also need v16i64/v16f64 but these first need to be added to tablegen. Differential Revision: https://reviews.llvm.org/D79808
-
Jonas Devlieghere authored
Now that the FileCollector knows how to deal with directories we no longer have to ignore them in the FileSystem class.
-
Sean Silva authored
Summary: - Mark it NoSideEffect - Add custom parser/printer This reverts the temporary revert in https://reviews.llvm.org/rG84a9c725742d26df04808a3c7349dbd98684c6cb That was a false alarm. A downstream test actually needed to be updated.
-
Jan Korous authored
Differential Revision: https://reviews.llvm.org/D79809
-
Sanjay Patel authored
SDAG suffers when it can't see that a funnel operand is a splat value (due to single-basic-block visibility), so invert the normal loop hoisting rules to move a splat op closer to its use. This would be part 1 of an enhancement similar to D63233. This is needed to re-fix PR37426: https://bugs.llvm.org/show_bug.cgi?id=37426 ...because we got better at canonicalizing IR to funnel shift intrinsics. The existing CGP code for shift opcodes is likely overstepping what it was intended to do, so that will be fixed in a follow-up. Differential Revision: https://reviews.llvm.org/D79718
-
Davide Italiano authored
This only covers ANYEXT/ZEXT. SEXT is covered in another test I just checked in.
-
Alex Zinenko authored
Conversion/ folders were originally intended to store patterns for DialectA->DialectB conversions that depend on both dialects and do not conceptually belong to either of the dialects. As such, DialectA->DialectA conversion does not make sense under Conversion/ and should rather live with the dialect it operates on. Differential Revision: https://reviews.llvm.org/D79569
-
Davide Italiano authored
<rdar://problem/62991635>
-
Alexey Lapshin authored
-
Justin Hibbits authored
Summary: The SPE doesn't have a 'fma' instruction, so the intrinsic becomes a libcall. It really should become an expansion to two instructions, but for some reason the compiler doesn't think that's as optimal as a branch. Since this lowering is done after CTR is allocated for loops, tell the optimizer that CTR may be used in this case. This prevents a "Invalid PPC CTR loop!" assertion in the case that a fma() function call is used in a C/C++ file, and clang converts it into an intrinsic. Reviewed By: shchenz Differential Revision: https://reviews.llvm.org/D78668
-
Alexey Lapshin authored
-
Wei Mi authored
The internal flag -partial-profile in llvm conflicts with the flag with the same name in llvm-profdata. The conflict happens in builds with LLVM_LINK_LLVM_DYLIB enabled. In this case the tools are linked with libLLVM and we end up with two definitions for the same cl::opt. The patch renames llvm-profdata flag -partial-profile to -gen-partial-profile.
-
- May 12, 2020
-
-
Jonas Devlieghere authored
This scenario generates another broken YAML mapping as illustrated below. { 'type': 'directory', 'name': "c", 'contents': [ , { 'type': 'directory', 'name': "d", 'contents': [ , { 'type': 'directory', 'name': "e", 'contents': [ { 'type': 'file', 'name': "f", 'external-contents': "//root/a/c/d/e/f" } { 'type': 'file', 'name': "g", 'external-contents': "//root/a/c/d/e/g" } ] } ] } ] },
-
Jonas Devlieghere authored
This scenario generates a broken YAML mapping as illustrated below. { 'type': 'directory', 'name': "c", 'contents': [ { 'type': 'file', 'name': "d", 'external-contents': "//root/a/c/d" } { 'type': 'file', 'name': "e", 'external-contents': "//root/a/c/e" } { 'type': 'file', 'name': "f", 'external-contents': "//root/a/c/f" } ] },
-
Alexey Lapshin authored
Summary: This patch refactors handling of VarArgs in X86TargetLowering::LowerFormalArguments. That refactoring was requested while reviewing D69372. Code related to varargs handling is removed from X86TargetLowering::LowerFormalArguments and is divided into smaller routines. Reviewed By: aeubanks Differential Revision: https://reviews.llvm.org/D74794
-
Fangrui Song authored
[TargetLoweringObjectFileImpl] Produce .text.hot. instead of .text.hot for -fno-unique-section-names GNU ld's internal linker script uses (https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=add44f8d5c5c05e08b11e033127a744d61c26aee) .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } Because `*(.text.exit .text.exit.*)` is ordered before `*(.text .text.*)`, in a -ffunction-sections build, the C library function `exit` will be placed before other functions. gold's `-z keep-text-section-prefix` has the same problem. In lld, `-z keep-text-section-prefix` recognizes `.text.{exit,hot,startup,unlikely,unknown}.*`, but not `.text.{exit,hot,startup,unlikely,unknown}`, to avoid the strange placement problem. In -fno-function-sections or -fno-unique-section-names mode, a function whose `function_section_prefix` is set to `.exit"` will go to the output section `.text` instead of `.text.exit` when linked by lld. To address the problem, append a dot to become `.text.exit.` Reviewed By: grimar Differential Revision: https://reviews.llvm.org/D79600
-
Louis Dionne authored
-
Sergey Dmitriev authored
Reviewers: jdoerfert, sstefan1, uenoku Reviewed By: jdoerfert Subscribers: hiraditya, uenoku, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79801
-
Richard Smith authored
constraint expressions. We create overloaded `&&` and `||` operators to hold the possible unqualified lookup results (if any) when the operands are dependent. We could avoid building these in some cases (we will never use the stored lookup results, and it would be better to not store them or perform the lookups), but in the general case we will probably still need to handle overloaded operators even with that optimization.
-
Stephen Neuendorffer authored
cmake does not truly support dependencies on automatically generated files which are not in the same directory as the targets which depend on them. It works with ninja, but doesn't work with make This patch adds an explicit dependence so that all dialects are built before the analysis libraries. Differential Revision: https://reviews.llvm.org/D79805
-
Artem Dergachev authored
Regressed in ec2d93c7.
-
Stephen Neuendorffer authored
This normalize the name of the tablegen file with the name of the generated files (SideEffectInterfaces.h.inc) and the other Interface tablegen files, which all end in Interface(s).td Differential Revision: https://reviews.llvm.org/D79517
-
Fred Riss authored
Summary: The comment in the Editine.h header made it sound like editline was just unable to handle terminal resizing. We were not ever telling editline that the terminal had changed size, which might explain why it wasn't working. This patch threads a `TerminalSizeChanged()` callback through the IOHandler and invokes it from the SIGWINCH handler in the driver. Our `Editline` class already had a `TerminalSizeChanged()` method which was invoked only when editline was configured. This patch also changes `Editline` to not apply the changes right away in `TerminalSizeChanged()`, but instead defer that to the next character read. During my testing, it happened once that the signal was received while our `ConnectionFileDescriptor::Read` was allocating memory. As `el_resize` seems to allocate memory too, this crashed. Reviewers: labath, teemperor Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D79654
-
David Blaikie authored
Based on @djtodoro's 2552dc53
-
zoecarver authored
Implements P0414R2: * Adds support for array types in std::shared_ptr. * Adds reinterpret_pointer_cast for shared_ptr. Re-committing now that the leaking tests are fixed. Differential Revision: https://reviews.llvm.org/D62259
-
Kamau Bridgeman authored
This patch folds redundant load immediates into a zero for instructions which recognise this as the value zero and not the register. If the load immediate is no longer in use it is then deleted. This is already done in earlier passes but the ppc-mi-peephole allows for a more general implementation. Differential Revision: https://reviews.llvm.org/D69168
-
Jonas Devlieghere authored
While debugging why TestProcessList.py failed during passive replay, I remembered that we don't serialize the arguments for ProcessInfo. This is necessary to make the test pass and to make platform process list -v behave the same during capture and replay. Differential revision: https://reviews.llvm.org/D79646
-
Jan Korous authored
Differential Revision: https://reviews.llvm.org/D78961
-
Juneyoung Lee authored
Summary: This patch makes propagatesPoison be more accurate by returning true on more bin ops/unary ops/casts/etc. The changed test in ScalarEvolution/nsw.ll was introduced by https://github.com/llvm/llvm-project/commit/a19edc4d15b0dae0210b90615775edd76f021008 . IIUC, the goal of the tests is to show that iv.inc's SCEV expression still has no-overflow flags even if the loop isn't in the wanted form. It becomes more accurate with this patch, so think this is okay. Reviewers: spatel, lebedev.ri, jdoerfert, reames, nikic, sanjoy Reviewed By: spatel, nikic Subscribers: regehr, nlopes, efriedma, fhahn, javed.absar, llvm-commits, hiraditya Tags: #llvm Differential Revision: https://reviews.llvm.org/D78615
-
Craig Topper authored
We have a couple main strategies for legalizing MULH. -If the vXi16 type is legal, extend to do the full i16 multiply and then shift and truncate the results. -Use unpcks to split each 128 bit lane into high and low halves.a For signed we have an extra case to split a v32i8 to v16i8 and then use the extending to v16i16 strategy. This patch proposes to use the unpck strategy instead. Which is what we already do for unsigned. This seems to be 1 instruction shorter when the RHS is constant like the idiv case. It's 1 instruction longer for the smulo case. But we're trading cross lane shuffles for inlane shuffles and a shift. Differential Revision: https://reviews.llvm.org/D79652
-
Dimitry Andric authored
Summary: In 2e24219d, a number of ARM pcrel fixups were resolved at assembly time, to solve PR44929. This only covered little-endian ARM however, so add similar fixups for big-endian ARM. Also extend the test case to cover big-endian ARM. Reviewers: hans, psmith, MaskRay Reviewed By: psmith, MaskRay Subscribers: kristof.beyls, hiraditya, danielkiss, emaste, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79774
-
Austin Kerbow authored
Differential Revision: https://reviews.llvm.org/D79761
-
Craig Topper authored
-
Sanjay Patel authored
-
Thomas Lively authored
Summary: As proposed in https://github.com/WebAssembly/simd/pull/122. Since these instructions are not yet merged to the SIMD spec proposal, this patch makes them entirely opt-in by surfacing them only through LLVM intrinsics and clang builtins. If these instructions are made official, these intrinsics and builtins should be replaced with simple instruction patterns. Reviewers: aheejin Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D79742
-
Fangrui Song authored
-
Fangrui Song authored
gcov 4.8 (r189778) moved the exit block from the last to the second. The .gcda format is compatible with 4.7 but * decoding libgcov 4.7 produced .gcda with gcov [4.7,8) can mistake the exit block, emit bogus `%s:'%s' has arcs from exit block\n` warnings, and print wrong `" returned %s` for branch statistics (-b). * decoding libgcov 4.8 produced .gcda with gcov 4.7 has similar issues. Also, rename "return block" to "exit block" because the latter is the appropriate term.
-