summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [opaque pointer types] Pass function types to InvokeInst creation.James Y Knight2019-02-017-13/+16
| | | | | | | | | This cleans up all InvokeInst creation in LLVM to explicitly pass a function type rather than deriving it from the pointer's element-type. Differential Revision: https://reviews.llvm.org/D57171 llvm-svn: 352910
* [opaque pointer types] Pass function types to CallInst creation.James Y Knight2019-02-0146-146/+163
| | | | | | | | | This cleans up all CallInst creation in LLVM to explicitly pass a function type rather than deriving it from the pointer's element-type. Differential Revision: https://reviews.llvm.org/D57170 llvm-svn: 352909
* [InstCombine] Expand Windows test (NFC)Evandro Menezes2019-02-011-21/+26
| | | | | | Run checks for Win64 as well. llvm-svn: 352908
* gn build: Create regular archives for the sanitizer runtimes.Peter Collingbourne2019-02-014-3/+18
| | | | | | | | | | We'll need to do this eventually if we create an installable package. For now, this lets me use the archives to build Android, whose build system wants to copy the archives to another location. Differential Revision: https://reviews.llvm.org/D57607 llvm-svn: 352907
* [OpenMP 5.0] Parsing/sema support for "omp declare mapper" directive.Michael Kruse2019-02-0139-13/+1035
| | | | | | | | | | | | | | | | | This patch implements parsing and sema for "omp declare mapper" directive. User defined mapper, i.e., declare mapper directive, is a new feature in OpenMP 5.0. It is introduced to extend existing map clauses for the purpose of simplifying the copy of complex data structures between host and device (i.e., deep copy). An example is shown below: struct S { int len; int *d; }; #pragma omp declare mapper(struct S s) map(s, s.d[0:s.len]) // Memory region that d points to is also mapped using this mapper. Contributed-by: Lingda Li <lildmh@gmail.com> Differential Revision: https://reviews.llvm.org/D56326 llvm-svn: 352906
* [libc++] Disentangle the 3 implementations of type_infoLouis Dionne2019-02-011-31/+75
| | | | | | | | | | | | | | | | | | | | | | | | Summary: We currently have effectively 3 implementations of type_info: one for the Microsoft ABI, one that does not assume that there's a unique copy of each RTTI in a progran, and one that assumes a unique copy. Those 3 implementations are entangled into the same class with nested ifdefs, which makes it very difficult to understand. Furthermore, the benefit of doing this is rather small since the code that is duplicated across implementations is just a couple of trivial lines. This patch stamps out the 3 versions of type_info explicitly to increase readability. It also explains what's going on with short comments, because it's far from obvious. Reviewers: EricWF, mclow.lists Subscribers: christof, jkorous, dexonsmith Differential Revision: https://reviews.llvm.org/D57606 llvm-svn: 352905
* [InstCombine] Extra null-checking on TFE/LWE supportMichael Liao2019-02-012-4/+10
| | | | | | | | - If that operand is not ConstantInt, skip enabling TFE/LWE. Differential Revision: https://reviews.llvm.org/D57539 llvm-svn: 352904
* Hopefully fix a couple more sphinx doc errors.James Y Knight2019-02-011-2/+10
| | | | | | | These seem to only appear on the buildbot runner, and it looks like we tried to suppress them, but it's not working. Not sure why. llvm-svn: 352903
* Fix the xcode build for r352845, attempt #2Stefan Granitz2019-02-011-0/+16
| | | | llvm-svn: 352902
* Revert "Fix the xcode build for r352845."Stefan Granitz2019-02-011-2663/+2651
| | | | | | This reverts commit 72c1213a5e901b80c0f1d2794e5088d7f71a3632. llvm-svn: 352901
* [llvm-objdump] - llvm-objdump can skip bytes at the end of a section.Sid Manning2019-02-012-1/+12
| | | | | | Differential Revision: https://reviews.llvm.org/D57549 llvm-svn: 352900
* [lldb] Relax libc++ ABI version checkingThomas Anderson2019-02-011-95/+88
| | | | | | | | | | | | | libc++ has programmable ABI versioning controllable with the _LIBCPP_ABI_VERSION macro. Currently there are at least 3 settings used in real systems (1 as the default, ndk1 for Anroid, Cr for Chromium). Only the 1 and ndk1 cases were handled. This change relaxes the check to allow any ABI version. Differential Revision: https://reviews.llvm.org/D57466 llvm-svn: 352899
* Fix a bug in the definition of isUnordered on MachineMemOperandPhilip Reames2019-02-011-7/+7
| | | | | | | | | | Background: At the moment, we record the AtomicOrdering of an access in the MMO, but also mark any atomic access as volatile in SelectionDAG. GlobalISEL keeps the two separate, but currently doesn't know how to lower an atomic G_LOAD at all. See https://reviews.llvm.org/D57601 for context. The definition used for unordered was only checking volatility, not atomicity. As noted above, all atomic MMOs are currently also volatile, so this is a latent bug only. Copy the definition used in IR, after auditing the two (2) uses of the function to be sure the desired semantics are the same. Differential Revision: https://reviews.llvm.org/D57593 llvm-svn: 352898
* test commit (add blank line) NFCRoland Froese2019-02-011-0/+1
| | | | llvm-svn: 352897
* [llvm-readobj] Add a flag to dump just the section-to-segment mapping.Matt Davis2019-02-014-41/+112
| | | | | | | | | | | | | | | | | | Summary: The following patch introduces a new function `printSectionMapping` which is responsible for dumping just the section-to-segment mapping. This patch also introduces a n option `-section-mapping` that outputs that mapping without the program headers. Previously, this functionality was controlled by `printProgramHeaders`, and the output from `-program-headers` has not been changed. I am happy to change the option name, I copied the name that was displayed when outputting the mapping table. Reviewers: khemant, jhenderson, grimar, rupprecht Reviewed By: jhenderson, grimar, rupprecht Subscribers: rupprecht, jhenderson, llvm-commits Differential Revision: https://reviews.llvm.org/D57365 llvm-svn: 352896
* [InstCombine] Refactor test checks (NFC)Evandro Menezes2019-02-011-16/+13
| | | | llvm-svn: 352895
* Fix the xcode build for r352845.Jim Ingham2019-02-011-2651/+2663
| | | | llvm-svn: 352894
* gn build: Add a missing dependency from llvm/test to llvm-litNico Weber2019-02-011-0/+1
| | | | | | | | check-llvm already listed llvm-lit as script which counts as a dep, so running check-llvm worked fine, but `ninja -C out/gn llvm/test` didn't build llvm-lit before if it wasn't already there. llvm-svn: 352893
* [InstCombine] Expand Windows test (NFC)Evandro Menezes2019-02-011-15/+44
| | | | | | Add checks for Win64 to existing cases. llvm-svn: 352892
* [llvm-nm] Report '.comment' ELF sections as 'n' instead of '?'Matt Davis2019-02-012-14/+16
| | | | | | | | | | | | | | | | | | | Summary: The previous implementation reported `.comment` sections as '?' GNU uses 'n' which means "The symbol is a debugging symbol." `.note` sections are represented as 'n' too. The test related to this change was updated to CHECK-NEXT to ensure order and that we did not miss any symbols in the dump. Reviewers: jhenderson Reviewed By: jhenderson Subscribers: rupprecht, llvm-commits Differential Revision: https://reviews.llvm.org/D57544 llvm-svn: 352891
* Update SanitizerCoverage doc regarding the issue with pc-table and gc-sections.Max Moroz2019-02-011-0/+5
| | | | | | | | | | | | | | | | | | | Summary: There is a bug for this: https://bugs.llvm.org/show_bug.cgi?id=34636 But it would be also helpful to leave a note in the docs to prevent users from running into issues, e.g. https://crbug.com/926588. Reviewers: morehouse Reviewed By: morehouse Subscribers: cfe-commits, llvm-commits, kcc Tags: #clang Differential Revision: https://reviews.llvm.org/D57474 llvm-svn: 352890
* [DWARF v5] Fix DWARF emitter and consumer to produce/expect a uleb for a ↵Wolfgang Pieb2019-02-015-12/+15
| | | | | | | | | | location description's length. Reviewer: davide, JDevliegere Differential Revision: https://reviews.llvm.org/D57550 llvm-svn: 352889
* [llvm-objcopy][NFC] More error propagation (executeObjcopyOnArchive)Jordan Rupprecht2019-02-011-14/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Replace some reportError() calls with error propagation that was missed from rL352625. Note this also adds an error check during Archive iteration that was being hidden by a different error check before: ``` for (const Archive::Child &Child : Ar.children(Err)) { Expected<std::unique_ptr<Binary>> ChildOrErr = Child.getAsBinary(); if (!ChildOrErr) // This aborts, so Err is never checked reportError(Ar.getFileName(), ChildOrErr.takeError()); ``` Err is being checked after the loop, so during happy runs, everything is fine. But when reportError is changed to return the error instead of aborting, the fact that Err is never checked is now noticed in tests that trigger an error during the loop. Reviewers: jhenderson, dblaikie, alexshap Reviewed By: dblaikie Subscribers: llvm-commits, lhames, jakehehrlich Tags: #llvm Differential Revision: https://reviews.llvm.org/D57462 llvm-svn: 352888
* Fix some sphinx doc errors.James Y Knight2019-02-013-2/+12
| | | | llvm-svn: 352887
* [InstCombine] Refactor test checks (NFC)Evandro Menezes2019-02-011-42/+24
| | | | llvm-svn: 352886
* [AMDGPU] Fix for vector element insertionTim Corringham2019-02-017-39/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Incorrect code was generated when lowering insertelement operations for vectors with 8 or 16 bit elements. The value being inserted was not adjusted for the position of the element within the 32 bit word and so only the low element within each 32 bit word could receive the intended value. Fixed by simply replicating the value to each element of a congruent vector before the mask and or operation used to update the intended element. A number of affected LIT tests have been updated appropriately. before the mask & or into the intended Reviewers: arsenm, nhaehnle Reviewed By: arsenm Subscribers: llvm-commits, arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye Tags: #llvm Differential Revision: https://reviews.llvm.org/D57588 llvm-svn: 352885
* [SDAG] improve variable names; NFCSanjay Patel2019-02-012-26/+25
| | | | | | | | The version of FoldConstantArithmetic() that takes arbitrary nodes was confusingly naming those nodes as constants when they might not be; also "Cst" reads like "Cast". llvm-svn: 352884
* [X86][SSE] Use PSLLDQ/PSRLDQ to mask out zeroable ends of a shuffleSimon Pilgrim2019-02-015-168/+221
| | | | | | | | | | As suggested on PR40318, this patch uses PSLLDQ/PSRLDQ to lower shuffles to zero out the ends of a vector, leaving a sequential inner section. For pre-SSSE3 we do this for shuffles with zeros at either end (requiring up to 3 shifts), but once PSHUFB is available I've limited this to shuffles with a single zeroable end (2 shifts). Differential Revision: https://reviews.llvm.org/D56784 llvm-svn: 352883
* [AST][OpenMP] OpenMP Sections / Section constructs contain Structured blocksRoman Lebedev2019-02-012-0/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: I'm working on a clang-tidy check, much like existing [[ http://clang.llvm.org/extra/clang-tidy/checks/bugprone-exception-escape.html | bugprone-exception-escape ]], to detect when an exception might escape out of an OpenMP construct it isn't supposed to escape from. For that i will be using the `nothrow` bit of `CapturedDecl`s. While that bit is already correctly set for some constructs, e.g. `#pragma omp parallel`: https://godbolt.org/z/2La7pv it isn't set for the `#pragma omp sections`, or `#pragma omp section`: https://godbolt.org/z/qZ-EbP If i'm reading [[ https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-5.0.pdf | `OpenMP Application Programming Interface Version 5.0 November 2018` ]] correctly, they should be, as per `2.8.1 sections Construct`, starting with page 86: * The sections construct is a non-iterative worksharing construct that contains a set of **structured blocks** that are to be distributed among and executed by the threads in a team. Each **structured block** is executed once by one of the threads in the team in the context of its implicit task. * The syntax of the sections construct is as follows: #pragma omp sections [clause[ [,] clause] ... ] new-line { [#pragma omp section new-line] **structured-block** ... * Description Each **structured block** in the sections construct is preceded by a section directive except possibly **the first block**, for which a preceding section directive is optional. * Restrictions • The code enclosed in a sections construct must be a **structured block**. * A throw executed inside a sections region must cause execution to resume within the same section of the sections region, and the same thread that threw the exception must catch it. Reviewers: ABataev, #openmp Reviewed By: ABataev Subscribers: guansong, openmp-commits, cfe-commits Tags: #clang, #openmp Differential Revision: https://reviews.llvm.org/D57585 llvm-svn: 352882
* [CMake] External compiler-rt-configure requires LLVMTestingSupport when ↵Stefan Granitz2019-02-011-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | including tests Summary: Apparently `LLVMTestingSupport` must be built before `llvm-config` can be asked for it. Symptom with `LLVM_INCLUDE_TESTS=ON` is: ``` $ ./path/to/llvm-build/bin/llvm-config --ldflags --libs testingsupport -L/path/to/llvm-build/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names llvm-config: error: component libraries and shared library llvm-config: error: missing: /path/to/llvm-build/lib/libLLVMTestingSupport.a ``` With `LLVMTestingSupport` as dependency of `compiler-rt-configure` we get the expected behavior: ``` $ ./path/to/llvm-build/bin/llvm-config --ldflags --libs testingsupport -L/path/to/llvm-build/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVMTestingSupport -lLLVMSupport -lLLVMDemangle ``` Reviewers: ab, beanz Subscribers: dberris, mgorny, erik.pilkington, llvm-commits, cfe-commits Differential Revision: https://reviews.llvm.org/D57521 llvm-svn: 352881
* [TargetLowering] try harder to determine undef elements of vector binopsSanjay Patel2019-02-012-30/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This might be the start of tracking all vector element constants generally if we take it to its logical conclusion, but let's stop here and make sure this is correct/beneficial so far. The affected tests require a convoluted path before they get simplified currently because we don't call SimplifyDemandedVectorElts() from binops directly and don't modify the binop operands directly in SimplifyDemandedVectorElts(). That's why the tests all have a trailing shuffle to induce a chain reaction of transforms. So something like this is happening: 1. Improve the knowledge of undefs in the binop via a SimplifyDemandedVectorElts() call that originates from a shuffle. 2. Transfer that undef knowledge back to the shuffle mask user as more undef lanes. 3. Combine the modified shuffle by calling SimplifyDemandedVectorElts() again. 4. Translate the improved shuffle mask as undemanded lanes of build vector constants causing those to become full undef constants. 5. Simplify the binop now that it has a full undef operand. As we can see from the unchanged 'and' and 'or' tests, tracking undefs alone isn't a full solution. We would need to track zero and all-ones constants to improve those opcodes. We'd probably need to track NaN for FP ops too (assuming we don't have fast-math-flags set). Differential Revision: https://reviews.llvm.org/D57066 llvm-svn: 352880
* [X86][AVX] Combine INSERT_SUBVECTOR(SRC0, ↵Simon Pilgrim2019-02-012-12/+20
| | | | | | | | | | BITCAST(SHUFFLE(EXTRACT_SUBVECTOR(SRC1))) Enable peeking through one use bitcasts to the subvector shuffle. This still depends on the subvector being the same scalar-size but D57514 has already helped with the more tricky patterns llvm-svn: 352879
* [llvm-strip] Implement --keep-file-symbolsEugene Leviant2019-02-013-0/+9
| | | | | | Differential revision: https://reviews.llvm.org/D57582 llvm-svn: 352878
* [llvm-objcopy][NFC] Propagate errors in removeSymbols/removeSectionReferencesJordan Rupprecht2019-02-013-61/+84
| | | | | | | | | | | | | | Reviewers: jhenderson, alexshap, jakehehrlich, espindola Reviewed By: jhenderson Subscribers: emaste, arichardson, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57543 llvm-svn: 352877
* [clangd] Expose SelectionTree to code tweaks, and use it for swap if branches.Sam McCall2019-02-016-124/+84
| | | | | | | | | | | | | | | | | Summary: This reduces the per-check implementation burden and redundant work. It also makes checks range-aware by default (treating the commonAncestor as if it were a point selection should be good baseline behavior). Reviewers: ilya-biryukov Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet Tags: #clang Differential Revision: https://reviews.llvm.org/D57570 llvm-svn: 352876
* [clangd] Lib to compute and represent selection under cursor.Sam McCall2019-02-011-0/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The primary problem this solves is to expose the codeAction selection to AST-based refactorings in a way that makes it easy and efficient for them to bind to the right parts of the AST. It should also allow us to make XRefs based features (textDocument/definition) more robust, more easily implement textDocument/typeDefinition etc. As an example, template parameter references can be identified without special handling. There should be slight speedup too: we can prune most of the AST traversal in most cases. Elephant in the room: this is similar-but-different to Tooling/Refactoring/ASTSelection. That captures a smaller set of AST nodes, has a slightly different way of representing selections, and generally has mare features and does more work. The overall shape is pretty similar, and yet I can't quite get to behave as I expect. Reviewers: ilya-biryukov, kadircet Subscribers: mgorny, ioeric, MaskRay, jkorous, mgrang, arphaman Tags: #clang Differential Revision: https://reviews.llvm.org/D57562 llvm-svn: 352875
* [clangd] Lib to compute and represent selection under cursor.Sam McCall2019-02-015-0/+670
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The primary problem this solves is to expose the codeAction selection to AST-based refactorings in a way that makes it easy and efficient for them to bind to the right parts of the AST. It should also allow us to make XRefs based features (textDocument/definition) more robust, more easily implement textDocument/typeDefinition etc. As an example, template parameter references can be identified without special handling. There should be slight speedup too: we can prune most of the AST traversal in most cases. Elephant in the room: this is similar-but-different to Tooling/Refactoring/ASTSelection. That captures a smaller set of AST nodes, has a slightly different way of representing selections, and generally has mare features and does more work. The overall shape is pretty similar, and yet I can't quite get to behave as I expect. Reviewers: ilya-biryukov, kadircet Subscribers: mgorny, ioeric, MaskRay, jkorous, mgrang, arphaman Tags: #clang Differential Revision: https://reviews.llvm.org/D57562 llvm-svn: 352874
* [InstCombine] reduce duplicate code; NFCSanjay Patel2019-02-011-2/+1
| | | | | | | | | An unused variable problem was introduced with rL352870 and stubbed out with rL352871, but we can make a better fix by actually using the local variable in code rather than just the assert. llvm-svn: 352873
* [libclang] Fix -DBUILD_SHARED_LIBS=on build after rC352803Fangrui Song2019-02-011-0/+1
| | | | llvm-svn: 352872
* [InstCombine] Fix -Wunused-variable when -DLLVM_ENABLE_ASSERTIONS=offFangrui Song2019-02-011-0/+1
| | | | llvm-svn: 352871
* [InstCombine] try to reduce x86 addcarry to generic uaddo intrinsicSanjay Patel2019-02-012-10/+45
| | | | | | | | | | | | | | | | | | | If we can reduce the x86-specific intrinsic to the generic op, it allows existing simplifications and value tracking folds. AFAICT, this always results in identical x86 codegen in the non-reduced case...which should be true because we semi-generically (too aggressively IMO) convert to llvm.uadd.with.overflow in CGP, so the DAG/isel must already combine/lower this intrinsic as expected. This isn't quite what was requested in: https://bugs.llvm.org/show_bug.cgi?id=40486 ...but we want to have these kinds of folds early for efficiency and to enable greater simplifications. For the case in the bug report where we have: _addcarry_u64(0, ahi, 0, &ahi) ...this gets completely simplified away in IR. Differential Revision: https://reviews.llvm.org/D57453 llvm-svn: 352870
* [CMake] Add install targets for utilities to LLVM exports if ↵Stefan Granitz2019-02-011-11/+21
| | | | | | | | | | | | | | | | LLVM_INSTALL_UTILS=ON Summary: D56606 was only appending target names to the `LLVM_EXPORTS`/`LLVM_EXPORTS_BUILDTREE_ONLY` properties. Targets showed up correctly in the build-tree `LLVMExports.cmake`, but they were missing in the installed one (as we found in https://bugs.llvm.org/show_bug.cgi?id=40443), because install did not register them explicitly. Reviewers: mgorny, smeenai, beanz, gottesmm, dschuff, tstellar, serge-sans-paille Reviewed By: smeenai Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D57383 llvm-svn: 352869
* [clangd] Penalize file-scope symbols in the ranking for non-completion queriesSam McCall2019-02-012-5/+28
| | | | | | | | Patch by Nathan Ridge! Differential Revision: https://reviews.llvm.org/D56653 llvm-svn: 352868
* [AArch64] Optimize floating point materializationAdhemerval Zanella2019-02-019-74/+133
| | | | | | | | | | | | | | | This patch changes isFPImmLegal to return if the value can be enconded as the immediate operand of a logical instruction besides checking if for immediate field for fmov. This optimizes some floating point materization, inclusive values used on isinf lowering. Reviewed By: rengolin, efriedma, evandro Differential Revision: https://reviews.llvm.org/D57044 llvm-svn: 352866
* [CUDA] Relax lit test condition after r352798.Eric Liu2019-02-011-4/+4
| | | | | | Clang executable doesn't match clang.* in all test environment. llvm-svn: 352865
* [clangd] Implement textDocument/declaration from LSP 3.14Sam McCall2019-02-0112-231/+290
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: LSP now reflects the declaration/definition distinction. Language server changes: - textDocument/definition now returns a definition if one is found, otherwise the declaration. It no longer returns declaration + definition if they are distinct. - textDocument/declaration returns the best declaration we can find. - For macros, the active macro definition is returned for both methods. - For include directive, the top of the target file is returned for both. There doesn't appear to be a discovery mechanism (we can't return everything to clients that only know about definition), so this changes existing behavior. In practice, it should greatly reduce the fraction of the time we need to show the user a menu of options. C++ API changes: - findDefinitions is replaced by locateSymbolAt, which returns a vector<LocatedSymbol> - one for each symbol under the cursor. - this contains the preferred declaration, the definition (if found), and the symbol name This API enables some potentially-neat extensions, like swapping between decl and def, and exposing the symbol name to the UI in the case of multiple symbols. Reviewers: hokein Subscribers: ilya-biryukov, javed.absar, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D57388 llvm-svn: 352864
* [clangd] Use delimited style to make life easier for the fuzzerSam McCall2019-02-011-1/+1
| | | | llvm-svn: 352863
* Disable tidy checks with too many hitsIlya Biryukov2019-02-013-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Some tidy checks have too many hits in the codebase, making it hard to spot other results from clang-tidy, therefore rendering the tool less useful. Two checks were disabled: - misc-non-private-member-variable-in-classes in the whole LLVM monorepo, it is very common to have those in LLVM and the style guide does not forbid them. - readability-identifier-naming in the clang subtree. There are thousands of violations in 'Sema.h' alone. Before the change, 'Sema.h' had >1000 tidy warnings, after the change the number dropped to 3 warnings (unterminated namespace comments). Reviewers: alexfh, hokein Reviewed By: hokein Subscribers: llvm-commits, cfe-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D57573 llvm-svn: 352862
* [X86][BdVer2] Transfer delays from the integer to the floating point unit.Roman Lebedev2019-02-0112-63/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: I'm unable to find this number in the "AMD SOG for family 15h". llvm-exegesis measures the latencies of these instructions as `2`, which matches the latencies specified in "AMD SOG for family 15h". However if we look at Agner, Microarchitecture, "AMD Bulldozer, Piledriver, Steamroller and Excavator pipeline", "Data delay between different execution domains", the int->ivec transfer is listed as `8`..`10`cy of additional latency. Also, Agner's "Instruction tables", for Piledriver, lists their latencies as `12`, which is consistent with `2cy` from exegesis / AMD SOG + `10cy` transfer delay. Additional data point comes from the fact that Agner's "Instruction tables", for Jaguar, lists their latencies as `8`; and "AMD SOG for family 16h" does state the `+6cy` int->ivec delay, which is consistent with instr latency of `1` or `2`. Reviewers: andreadb, RKSimon, craig.topper Reviewed By: andreadb Subscribers: gbedwell, courbet, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57300 llvm-svn: 352861
* [PDB] Fix build after r352845Aleksandr Urakov2019-02-011-1/+1
| | | | llvm-svn: 352858
OpenPOWER on IntegriCloud