This project is mirrored from https://github.com/llvm-doe-org/llvm-project.git.
Pull mirroring updated .
- 24 Jun, 2020 40 commits
-
-
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
-
Matt Arsenault authored
This reverts commit 521ac0b5. Reported to break thousands of piglit tests.
-
Arthur Eubanks authored
Summary: Seems to just be missing from PassRegistry.def. Makes the number of check-llvm failures under new PM go from 2619 to 2581. Reviewers: hans, ychen, asbirlea, leonardchan Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D82422
-
Arthur Eubanks authored
Summary: -simplifycfg is the legacy pass name for SimplifyCFGPass. There is already -simplify-cfg in FUNCTION_PASS_WITH_PARAMS which handles options for SimplifyCFGPass. Maybe that should be renamed to -simplifycfg as well? This reduces the number of check-llvm failures under NewPM from 2619 to 2392. Reviewers: hans, leonardchan, asbirlea, ychen Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D82421
-
Mircea Trofin authored
Summary: This implementation uses a pre-trained model which is statically compiled into a native function. RFC: http://lists.llvm.org/pipermail/llvm-dev/2020-April/140763.html Reviewers: davidxl, jdoerfert, dblaikie Subscribers: mgorny, eraman, hiraditya, arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81515
-
Mircea Trofin authored
Summary: Currently, add_llvm_library would create an OBJECT library alongside of a STATIC / SHARED library, but losing the link interface (its elements would become dependencies instead). To support scenarios where linking an object library also brings in its usage requirements, this patch adds support for 'stand-alone' OBJECT libraries - i.e. without an accompanying SHARED/STATIC library, and maintaining the link interface defined by the user. This is useful for cases where, for example, we want to build a part of a component separately. Using a STATIC target would incur the risk that symbols not referenced in the consumer would be dropped (which may be undesirable). The current application is the ML part of Analysis. It should be part of the Analysis component, so it may reference other analyses; and (in upcoming changes) it has dependencies on optional libraries. Reviewers: karies, davidxl, beanz, phosek, smeenai Subscribers: mgorny, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81447
-
Sanjay Patel authored
-
Sanjay Patel authored
-
Matt Arsenault authored
Soon it will be disallowed to depend on MachineFunction state in the constructor. This was only being used to get the MachineRegisterInfo for an assert, which I'm not sure is necessarily worth it. I would think any missing defs would be caught by the verifier later instead.
-
Simon Pilgrim authored
Fix implicit include dependencies in source files.
-
Haojian Wu authored
Summary: We are missing the error-bit somehow if the error-bit is propagated through the code path: "error type/expr" -> "template argument" -> "template specialization type", which will lead to crashes. Reviewers: sammccall Reviewed By: sammccall Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D82102
-
Pavel Labath authored
The "type" argument to the function is mostly useless -- the only interesting aspect of it is signedness. Pass signedness directly and compute the value of bits and signedness fields -- that's exactly what the single caller of this function does.
-
Tim Corringham authored
Summary: The SIModeRegister pass attempts to generate the minimal number of writes to the mode register. However it was failing to correctly deal with some loops, resulting in some redundant setreg instructions being inserted. This change amends the pass to avoid generating these redundant instructions. Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D82215
-