- Aug 18, 2020
-
-
Nathan Ridge authored
Fixes https://github.com/clangd/clangd/issues/307 Differential Revision: https://reviews.llvm.org/D86047
-
David Blaikie authored
Theory was that we should never reach a non-type unit (eg: type in an anonymous namespace) when we're already in the invalid "encountered an address-use, so stop emitting types for now, until we throw out the whole type tree to restart emitting in non-type unit" state. But that's not the case (prior commit cleaned up one reason this wasn't exposed sooner - but also makes it easier to test/demonstrate this issue)
-
David Blaikie authored
This reads more like what you'd expect the DWARF to look like (from the lexical order of C++ - template parameters come before members, etc), and also happens to make it easier to tickle (& thus test) a bug related to type units and Split DWARF I'm about to fix.
-
Johannes Doerfert authored
Before this change we looked through all memory operations in a function even if the first was an unknown call that could do anything. This did cost a lot of time but there is little use to do so. We also avoid creating AAs for things that we would have looked at in case no other AA will; that is the reason for the test changes. Running only the attributor-cgscc pass on a IR version of `llvm-test-suite/MultiSource/Applications/SPASS/clause.c` reduced the time we spend in `AAMemoryLocation::update` from 4% total to 0.9% (disclaimer: no accurate measurements).
-
Johannes Doerfert authored
-
Johannes Doerfert authored
-
Johannes Doerfert authored
Before we tired to create a dominator tree for a declaration when we wanted to determine if the function pointer is `nonnull`. We now avoid looking at global values if `Value::getPointerDereferenceableBytes` not already determined `nonnull`.
-
Nathan Ridge authored
Summary: RecursiveASTVisitor needs to traverse TypeConstraint::ImmediatelyDeclaredConstraint Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D84136
-
Nathan Ridge authored
Summary: This will be needed to support call hierarchy Reviewers: kadircet Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D83536
-
Harmen Stoppels authored
Currently it is hard to avoid having LLVM link to the system install of ncurses, since it uses check_library_exists to find e.g. libtinfo and not find_library or find_package. With this change the ncurses lib is found with find_library, which also considers CMAKE_PREFIX_PATH. This solves an issue for the spack package manager, where we want to use the zlib installed by spack, and spack provides the CMAKE_PREFIX_PATH for it. This is a similar change as https://reviews.llvm.org/D79219, which just landed in master. Differential revision: https://reviews.llvm.org/D85820
-
Amy Kwan authored
This patch implements the vec_extractm function prototypes in altivec.h in order to utilize the vector extract with mask instructions introduced in Power10. Differential Revision: https://reviews.llvm.org/D82675
-
Arthur Eubanks authored
These all are legacy PM-specific or have a corresponding NPM RUN line. Reviewed By: ychen Differential Revision: https://reviews.llvm.org/D86124
-
Hamilton Tobon Mosquera authored
[OpenMPOpt][HideMemTransfersLatency] Split __tgt_target_data_begin_mapper into its "issue" and "wait" counterparts. WIP that tries to hide the latency of runtime calls that involve host to device memory transfers by splitting them into their "issue" and "wait" versions. The "issue" is moved upwards as much as possible. The "wait" is moved downards as much as possible. The "issue" issues the memory transfer asynchronously, returning a handle. The "wait" waits in the returned handle for the memory transfer to finish. We still lack of the movement.
-
Leonard Chan authored
This reverts commit da0592e4. Reverting because this is incompatible with cmake 3.13.5, with the minimum supported version being 3.13.4. See https://luci-milo.appspot.com/p/fuchsia/builders/ci/clang-linux-x64/b8871967816877544224.
-
Hongtao Yu authored
https://reviews.llvm.org/D84191 caused a html doc build issue with the changes in `llvm-objdump.rst`. It looks like a blank line is missing from the `code-block` directives. Test Plan: Differential Revision: https://reviews.llvm.org/D86123
-
Aditya Kumar authored
Reviewers: sebpop Reviewed By: hiraditya Differential Revision: https://reviews.llvm.org/D86032
-
Craig Topper authored
[X86] When manually creating intrinsic nodes in X86ISelLowering, make sure we use getTargetConstant and pointer type for the intrinsic ID. Doesn't really matter in practice but that's how the nodes are normally created by SelectionDAGBuilder. So we should match. Found by temporarily hacking type checks into isel table.
-
Craig Topper authored
This makes sure VPTERNLOG is generated with MVT::i8 immediate as its SDNode declaration in X86InstrFragmentsSIMD.td declares.
-
Craig Topper authored
This is used for DBPSADBW which has a i32 immediate for its intrinsic and an i8 immediate in tablegen isel patterns.
-
Craig Topper authored
This is the type declared in X86InstrFragmentsSIMD.td. ISel pattern matching doesn't check so it doesn't matter in practice. Maybe for SelectionDAG CSE it would matter.
-
Mehdi Amini authored
-
Mircea Trofin authored
Different training algorithms may produce models that, besides the main policy output (i.e. inline/don't inline), produce additional outputs that are necessary for the next training stage. To facilitate this, in development mode, we require the training policy infrastructure produce a description of the outputs that are interesting to it, in the form of a JSON file. We special-case the first entry in the JSON file as the inlining decision - we care about its value, so we can guide inlining during training - but treat the rest as opaque data that we just copy over to the training log. Differential Revision: https://reviews.llvm.org/D85674
-
Hongtao Yu authored
When diffing disassembly dump of two binaries, I see lots of noises from mismatched jump target addresses and global data references, which unnecessarily causes diffs on every function, making it impractical. I'm trying to symbolize the raw binary addresses to minimize the diff noise. In this change, a local branch target is modeled as a label and the branch target operand will simply be printed as a label. Local labels are collected by a separate pre-decoding pass beforehand. A global data memory operand will be printed as a global symbol instead of the raw data address. Unfortunately, due to the way the disassembler is set up and to be less intrusive, a global symbol is always printed as the last operand of a memory access instruction. This is less than ideal but is probably acceptable from checking code quality point of view since on most targets an instruction can have at most one memory operand. So far only the X86 disassemblers are supported. Test Plan: llvm-objdump -d --x86-asm-syntax=intel --no-show-raw-insn --no-leading-addr : ``` Disassembly of section .text: <_start>: push rax mov dword ptr [rsp + 4], 0 mov dword ptr [rsp], 0 mov eax, dword ptr [rsp] cmp eax, dword ptr [rip + 4112] # 202182 <g> jge 0x20117e <_start+0x25> call 0x201158 <foo> inc dword ptr [rsp] jmp 0x201169 <_start+0x10> xor eax, eax pop rcx ret ``` llvm-objdump -d **--symbolize-operands** --x86-asm-syntax=intel --no-show-raw-insn --no-leading-addr : ``` Disassembly of section .text: <_start>: push rax mov dword ptr [rsp + 4], 0 mov dword ptr [rsp], 0 <L1>: mov eax, dword ptr [rsp] cmp eax, dword ptr <g> jge <L0> call <foo> inc dword ptr [rsp] jmp <L1> <L0>: xor eax, eax pop rcx ret ``` Note that the jump instructions like `jge 0x20117e <_start+0x25>` without this work is printed as a real target address and an offset from the leading symbol. With a change in the optimizer that adds/deletes an instruction, the address and offset may shift for targets placed after the instruction. This will be a problem when diffing the disassembly from two optimizers where there are unnecessary false positives due to such branch target address changes. With `--symbolize-operand`, a label is printed for a branch target instead to reduce the false positives. Similarly, the disassemble of PC-relative global variable references is also prone to instruction insertion/deletion. Reviewed By: jhenderson, MaskRay Differential Revision: https://reviews.llvm.org/D84191 -
Johannes Doerfert authored
-
Johannes Doerfert authored
-
Hamilton Tobon Mosquera authored
-
Kazushi (Jam) Marukawa authored
Modify case style of function names following clang-tidy. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D86076
-
Roman Lebedev authored
-
Roman Lebedev authored
While the original implementation added in D85787 / ae7f0881 is not incorrect, it is known to be suboptimal. In particular, it is not incorrect to use the basic block in which the original `insertvalue` instruction is located as the merge point, that is not necessarily optimal, as `@test6` shows. We should look at all the AggElts, and, if they are all defined in the same basic block, then that is the basic block we should use. On RawSpeed library, this catches +4% (+50) more cases. On vanilla LLVM test-suits, this catches +12% (+92) more cases.
-
Roman Lebedev authored
[NFC][InstCombine] PHI-aware aggregate reconstruction: don't capture UseBB in lambdas, take it as argument In a following patch, UseBB will be detected later, so capturing it is potentially error-prone (capture by ref vs by val). Also, parametrized UseBB will likely be needed for multiple levels of PHI indirections later on anyways.
-
Roman Lebedev authored
This is NFC at the moment, because right now we always insert the PHI into the same basic block in which the original `insertvalue` instruction is, but that will change. Also, fixes addition of the suffix to the value names.
-
Roman Lebedev authored
Even without handling several layers of PHI nodes, we can handle more cases, as `@test6` shows.
-
Adrian Prantl authored
-
Adrian Prantl authored
-
Adrian Prantl authored
-
Adrian Prantl authored
-
Adrian Prantl authored
-
Eric Christopher authored
-
Steven Wu authored
Remove `_dyld_find_unwind_sections` implementation for macOS that is 10.6 or previous. 10.6 is no longer supported for TOT libunwind after removing its libkeymgr dependency. Reviewed By: mstorsjo, pete, #libunwind Differential Revision: https://reviews.llvm.org/D86104
-
Dave Airlie authored
Add targets to emit SPIR-V targeted to Mesa's OpenCL support, using SPIR-V 1.1. Substantially based on Dave Airlie's earlier work. libclc: spirv: remove step/smoothstep apis not defined for SPIR-V libclc: disable inlines for SPIR-V builds Reviewed By: jvesely, tstellar, jenatali Differential Revision: https://reviews.llvm.org/D77589
-