This project is mirrored from https://github.com/llvm-doe-org/llvm-project.git.
Pull mirroring updated .
- 24 Jun, 2020 40 commits
-
-
Nigel Perks authored
EmitTargetMetadata passed to emitTargetMD a null pointer as returned from GetGlobalValue, for an unused inline function which has been removed from the module at that point. A FIXME in CodeGenModule.cpp commented that the calling code in EmitTargetMetadata should be moved into the one target that needs it (XCore). A review comment agreed. So the calling loop has been moved into the XCore subclass. The check for null is done in that loop. Differential Revision: https://reviews.llvm.org/D77068
-
Alexander Shaposhnikov authored
This diff merges help message tests for llvm-objcopy, llvm-strip and llvm-install-name-tool. Patch by Sameer Arora! Test plan: make check-all Differential revision: https://reviews.llvm.org/D82012
-
Fangrui Song authored
See https://llvm.org/docs/CodingStandards.html#use-namespace-qualifiers-to-implement-previously-declared-functions Similar to D79982. Reviewed By: #lld-macho, int3 Differential Revision: https://reviews.llvm.org/D82432
-
Davide Italiano authored
Remove this early exit. It's vestigial from the ppc -> Intel transition, but it doesn't apply anymore.
-
Davide Italiano authored
Translated processes talk with a different debugserver, shipped with macOS 11. This patch detects whether a process is translated and attaches to the correct debugserver implementation. It's the first patch of a series. Tested on the lldb test suite. Differential Revision: https://reviews.llvm.org/D82491
-
Florian Hahn authored
D68667 introduced a tighter limit to the number of GEPs to simplify together. The limit was based on the vector element size of the pointer, but the pointers themselves are not actually put in vectors. IIUC we try to vectorize the index computations here, so we should base the limit on the vector element size of the computation of the index. This restores the test regression on AArch64 and also restores the vectorization for a important pattern in SPEC2006/464.h264ref on AArch64 (@test_i16_extend). We get a large benefit from doing a single load up front and then processing the index computations in vectors. Note that we could probably even further improve the AArch64 codegen, if we would do zexts to i32 instead of i64 for the sub operands and then do a single vector sext on the result of the subtractions. AArch64 provides dedicated vector instructions to do so. Sketch of proof in Alive: https://alive2.llvm.org/ce/z/A4xYAB Reviewers: craig.topper, RKSimon, xbolva00, ABataev, spatel Reviewed By: ABataev, spatel Differential Revision: https://reviews.llvm.org/D82418
-
Vedant Kumar authored
-
Joel E. Denny authored
-
Akira Hatanaka authored
Call maybeExtendBlockObject in DefaultVariadicArgumentPromotion so that the block is copied to the heap when it is passed as a variadic argument to any calls, not only to C function calls. rdar://problem/64201532
-
Joel E. Denny authored
Otherwise, it's painful to insert new code. There are many existing examples in the same test file where the line numbers are not hard-coded. I intend to do the same for several other OpenMP tests, but I want to be sure there are no objections before I spend time on it. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D82224
-
Simon Pilgrim authored
Fix implicit include dependencies in source files and replace legacy AliasAnalysis typedef with AAResults where necessary.
-
Simon Pilgrim authored
Fix implicit include dependencies in source files and replace legacy AliasAnalysis typedef with AAResults where necessary.
-
Joel E. Denny authored
-
Alexander Shaposhnikov authored
This diff updates the help messages for llvm-objcopy, llvm-strip and llvm-install-name-tool. Patch by Sameer Arora! Test plan: make check-all Differential revision: https://reviews.llvm.org/D81907
-
tatz.j@northeastern.edu authored
Currently module asm ends up emitted twice and at the wrong place in the PTX. This patch moves module asm generation into emitStartOfAsmFile() which puts at the correct location in the generated PTX. Differential Revision: https://reviews.llvm.org/D82280
-
Craig Topper authored
Eric Cristopher asked me about possibly disabling some passes at -O1/Og. Figured a good first step was to test all the pipelines. They all appear to be the same for now. Hoping we can use FileCheck prefixes for differences to avoid repeating the contents 3 times.
-
Walter Erquinigo authored
Summary: These tests isflaky only on this arch for some reason. It's testing important features and is not flaky on x86_64, so I'll investigate this arm issue separatedly. A flaky run: http://lab.llvm.org:8011/builders/lldb-aarch64-ubuntu/builds/5540/steps/test/logs/stdio Diff that created those tests: https://reviews.llvm.org/D81978
-
Teresa Johnson authored
Summary: In D52514 I had fixed a bug with WPD after indirect call promotion, by checking that a type test being analyzed dominates potential virtual calls. With that fix I included a small effiency enhancement to avoid processing a devirt candidate multiple times (when there are multiple type tests). This latter change wasn't in response to any measured efficiency issues, it was merely theoretical. Unfortuantely, it turns out to limit optimization opportunities after inlining. Specifically, consider code that looks like: class A { virtual void foo(); }; class B : public A { void foo(); } void callee(A *a) { a->foo(); // Call 1 } void caller(B *b) { b->foo(); // Call 2 callee(b); } After inlining callee into caller, because of the existing call to b->foo() in caller there will be 2 type tests in caller for the vtable pointer of b: the original type test against B from Call 2, and the inlined type test against A from Call 1. If the code was compiled with -fstrict-vtable-pointers, then after optimization WPD will see that both type tests are associated with the inlined virtual Call 1. With my earlier change to only process a virtual call against one type test, we may only consider virtual Call 1 against the base class A type test, which can't be devirtualized. With my change here to remove this restriction, it also gets considered for the type test against the derived class B type test, where it can be devirtualized. Note that if caller didn't include it's own earlier virtual call b->foo() we will not be able to devirtualize after inlining callee even after this fix, since there would not be a type test against B in the IR. As a future enhancement we can consider inserting type tests at call sites that pass pointers to classes with virtual calls, to enable context-sensitive devirtualization after inlining. Reviewers: pcc, vitalybuka, evgeny777 Subscribers: Prazek, hiraditya, steven_wu, dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79235
-
Craig Topper authored
This patch removes the PROC macro in favor of CPUKind enum and a table that contains information about CPUs. The current information in the table is the CPU name, CPUKind enum value, key feature for target multiversioning, and Is64Bit capable. For the strings that are aliases, I've duplicated the information in the table. This means there are more rows in the table than CPUKind enums. This replaces multiple StringSwitch's with loops through the table. They are linear searches due to the table being more logically ordered than alphabetical. The StringSwitch's would have also been linear. I've used StringLiteral on the strings in the table so we can quickly check the length while searching. I contemplated having a CPUKind for each string so there was a 1:1 mapping, but didn't want to spread more names to the places that use the enum. My ultimate goal here is to store the features for each CPU as a bitset within the table. Hoping to use constexpr to make this composable so we can group features and inherit them. After the table lookup we can turn the bitset into a list of strings for the frontend. The current switch we have for selecting features for CPUs has become difficult to maintain while trying to express inheritance relationships. Differential Revision: https://reviews.llvm.org/D82414
-
Michael Liao authored
- Remove `else` after `return`.
-
LLVM GN Syncbot authored
-
Daniel Grumberg authored
This change includes the following: - Add additional information in the relevant table-gen files to encode the necessary information to automatically parse the argument into a CompilerInvocation instance and to generate the appropriate command line argument from a CompilerInvocation instance. - Extend OptParserEmitter to emit the necessary macro tables as well as constant tables to support parsing and generating command line arguments for options that provide the necessary information. - Port some options to use this new system for parsing and generating command line arguments. Differential Revision: https://reviews.llvm.org/D79796
-
LLVM GN Syncbot authored
-
Nico Weber authored
-
Simon Pilgrim authored
Fix implicit include dependencies in source files and replace legacy AliasAnalysis typedef with AAResults where necessary.
-
Uday Bondhugula authored
Drop stale code that provided the wrong operands to alloc. Reported-by: rjnw on discourse Differential Revision: https://reviews.llvm.org/D82409
-
Yitzhak Mandelbaum authored
Summary: Deletes `text()` and `selection()` combinators, since they have been deprecated for months. Reviewers: tdl-g Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D82225
-
Jonas Devlieghere authored
Address post-commit feedback from James Henderson in D80959.
-
Mircea Trofin authored
This reverts commit 62841415. The commit is a misnomer, and it "made its way in" unintentionally, through a patch that had it as a depdendency. The change itself ended up to be just a comment update, but the description is completely wrong.
-
Ye Luo authored
Summary: lookupMapping took significant time due to linear complexity searching. This is bad for offloading from multiple host threads because lookupMapping is protected by mutex. Use std::set for logarithmic complexity searching. Before my change. libomptarget inclusive time 16.7 sec, exclusive time 8.6 sec. After the change libomptarget inclusive time 7.3 sec, exclusive time 0.4 sec. Most of the overhead of libomptarget (exclusive time) is gone. Reviewers: jdoerfert, grokos Reviewed By: grokos Subscribers: tianshilei1992, yaxunl, guansong, sstefan1 Tags: #openmp Differential Revision: https://reviews.llvm.org/D82264
-
Erik Pilkington authored
rdar://48506879
-
Matt Arsenault authored
The test constants were originally constexpr, but this apparently crashes old versions of gcc.
-
Florian Hahn authored
This pattern is key to eliminate a 10% performance regression in SPEC2006.
-
Walter Erquinigo authored
Summary: These two tests are flaky only on this arch for some reason. They are testing important features and are not flaky on x86_64, so I'll investigate this arm issue separatedly. Some flaky runs: http://lab.llvm.org:8011/builders/lldb-aarch64-ubuntu/builds/5517/steps/test/logs/stdio http://lab.llvm.org:8011/builders/lldb-aarch64-ubuntu/builds/5527/steps/test/logs/stdio Diff that created those tests: https://reviews.llvm.org/D81978
-
dstuttar authored
Summary: Without fixImplicitOperands we may end up creating default implicit operands that are the wrong wave size Includes simple test that provokes insertBranch in the correct way to expose the issue being fixed. Change-Id: I92bdcdee9fcb7b4d91529b84e76a48ac8218483e Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, tpr, t-tye, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D82459
-
Matt Arsenault authored
Now all the divisions should be complete, although we should fix emitting the entire common part for div/rem when you use both.
-
Matt Arsenault authored
-
Kadir Cetinkaya authored
Summary: This is both confusing and crashy. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D82326
-
Ikhlas Ajbar authored
This patch reduces minimum alignment requirement to 1 byte for arguments passed by value on stack.
-
Fangrui Song authored
Fixes PR46420 Similar to D43307 for non-LTO. Module-level inline assembly can use .symver to create a symbol with `@` in the name. For relocatable output, @ should be retained in the symbol name. `@ver` should not be parsed and dropped. Reviewed By: grimar, psmith Differential Revision: https://reviews.llvm.org/D82433
-