- Apr 22, 2020
-
-
Roman Lebedev authored
Summary: As we have discussed previously (e.g. in D63992 / D64090 / [[ https://bugs.llvm.org/show_bug.cgi?id=42457 | PR42457 ]]), `sub` instruction can almost be considered non-canonical. While we do convert `sub %x, C` -> `add %x, -C`, we sparsely do that for non-constants. But we should. Here, i propose to interpret `sub %x, %y` as `add (sub 0, %y), %x` IFF the negation can be sinked into the `%y` This has some potential to cause endless combine loops (either around PHI's, or if there are some opposite transforms). For former there's `-instcombine-negator-max-depth` option to mitigate it, should this expose any such issues For latter, if there are still any such opposing folds, we'd need to remove the colliding fold. In any case, reproducers welcomed! Reviewers: spatel, nikic, efriedma, xbolva00 Reviewed By: spatel Subscribers: xbolva00, mgorny, hiraditya, reames, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68408
-
Michael Liao authored
-
Fangrui Song authored
-
Amy Huang authored
Summary: This change implements readFromExe, and calculating VA and RVA, which are some of the functionalities that will be used for native PDB reading for llvm symbolizer. bug: https://bugs.llvm.org/show_bug.cgi?id=41795 Reviewers: hans, amccarth, rnk Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78128
-
Benjamin Kramer authored
-
Fangrui Song authored
-
Jonas Devlieghere authored
Make sure proc.returncode has been assigned before we compare it to 0.
-
Sanjay Patel authored
Differential Revision: https://reviews.llvm.org/D78575
-
Sanjay Patel authored
-
River Riddle authored
-
aartbik authored
Summary: Bugzilla issue 45563 https://bugs.llvm.org/show_bug.cgi?id=45563 Reviewers: nicolasvasilache, mehdi_amini, craig.topper Reviewed By: craig.topper Subscribers: RKSimon, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78527
-
Mircea Trofin authored
Summary: Also capitalized some induction variables, to match coding style. Reviewers: dblaikie, craig.topper Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78538
-
Simon Pilgrim authored
[Transforms] getOrEnforceKnownAlignment - fix MSVC result of 32-bit shift implicitly converted to 64 bits warning. NFCI We don't overflow here so we can use a U64 shift directly.
-
Siva Chandra Reddy authored
This reverts commit a8086ba4. Setting couple of target properties to an empty string was missed in the previous commit.
-
Pavel Iliin authored
FMLA/FMLS f16 indexed patterns added. Fixes https://bugs.llvm.org/show_bug.cgi?id=45467 Removed redundant v2f32 vector_extract indexed pattern since Instruction Selection is able to match v4f32 instead.
-
Roman Lebedev authored
-
Louis Dionne authored
It turns out that all this time, we've actually been building without assertions enabled in the dylib. This commit updates the Apple CMake cache to make it consistent with reality.
-
Siva Chandra Reddy authored
This reverts commit 20cb440e as the target llvmlibc seems to be failing on the bots.
-
Ana Pazos authored
Summary: Machine Block Frequency Info (MBFI) is being computed but unused in AsmPrinter. MBFI computation was introduced with PGO change D71149 and then its use was removed in D71106. No need to keep computing it. Reviewers: MaskRay, jyknight, skan, yamauchi, davidxl, efriedma, huihuiz Reviewed By: MaskRay, skan, yamauchi Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78526
-
Louis Dionne authored
When the new libc++ test format was enabled, warnings were accidentally dropped cause they were not part of the %{compile_flags} substitution. This commit adds them back, however `-Werror` is only used for non-verify tests (cause it doesn't make sense for verify tests). This commit is a re-application of 20fd6243, which was reverted in 5ec6fdb0 because it broke the C++03 bot. This failure should have been fixed in b4fb705e. -
Benjamin Kramer authored
-
Siva Chandra Reddy authored
Deps are recrusively evaluated at the place they are needed. With this change, one does not have to list recursive deps of entrypoints when listing test targets. One will still have to explicitly list all entrypoint objects when setting up an "add_entrypoint_library" target. Reviewers: abrachet Differential Revision: https://reviews.llvm.org/D78537
-
Fangrui Song authored
xray_instr_map contains absolute addresses of sleds, which are relocated by `R_*_RELATIVE` when linked in -pie or -shared mode. By making these addresses relative to PC, we can avoid the dynamic relocations and remove the SHF_WRITE flag from xray_instr_map. We can thus save VM pages containg xray_instr_map (because they are not modified). This patch changes x86-64 and bumps the sled version to 2. Subsequent changes will change powerpc64le and AArch64. Reviewed By: dberris, ianlevesque Differential Revision: https://reviews.llvm.org/D78082
-
Sanjay Patel authored
These are mostly replicated from D78430 (instsimplify). If we implement more general transforms for instcombine, then we probably don't need to add that complexity to instsimplify.
-
Siva Chandra Reddy authored
Summary: The single file was getting too long to be convenient to navigate. This patch splits it up two into 4 files one each for header rules, object rules, library rules, and test rules. Reviewers: abrachet, alexshap Subscribers: mgorny, tschuett, libc-commits Tags: #libc-project Differential Revision: https://reviews.llvm.org/D78536
-
Johannes Doerfert authored
This reduces memory consumption and the need to copy complex data structures repeatedly. No functional change is intended. --- Single run of the Attributor module and then CGSCC pass (oldPM) for SPASS/clause.c (~10k LLVM-IR loc): Before: ``` calls to allocation functions: 490390 (320725/s) temporary memory allocations: 84601 (55330/s) peak heap memory consumption: 41.70MB peak RSS (including heaptrack overhead): 131.18MB total memory leaked: 269.04KB ``` After: ``` calls to allocation functions: 489359 (301144/s) temporary memory allocations: 82983 (51066/s) peak heap memory consumption: 36.76MB peak RSS (including heaptrack overhead): 126.48MB total memory leaked: 269.04KB ``` Difference: ``` calls to allocation functions: -1031 (-10739/s) temporary memory allocations: -1618 (-16854/s) peak heap memory consumption: -4.94MB peak RSS (including heaptrack overhead): 0B total memory leaked: 0B ---
-
Johannes Doerfert authored
This reduces memory consumption and the need to copy complex data structures repeatedly. No functional change is intended. --- Single run of the Attributor module and then CGSCC pass (oldPM) for SPASS/clause.c (~10k LLVM-IR loc): Before: ``` calls to allocation functions: 596180 (374484/s) temporary memory allocations: 84979 (53378/s) peak heap memory consumption: 52.14MB peak RSS (including heaptrack overhead): 139.79MB total memory leaked: 269.04KB ``` After: ``` calls to allocation functions: 489200 (303285/s) temporary memory allocations: 83406 (51708/s) peak heap memory consumption: 41.70MB peak RSS (including heaptrack overhead): 131.76MB total memory leaked: 269.04KB ``` Difference: ``` calls to allocation functions: -106980 (-5094285/s) temporary memory allocations: -1573 (-74904/s) peak heap memory consumption: -10.44MB peak RSS (including heaptrack overhead): 0B total memory leaked: 0B ---
-
Johannes Doerfert authored
This reduces memory consumption and the need to copy complex data structures repeatedly. No functional change is intended. --- Single run of the Attributor module and then CGSCC pass (oldPM) for SPASS/clause.c (~10k LLVM-IR loc): Before: ``` calls to allocation functions: 616219 (381559/s) temporary memory allocations: 83294 (51575/s) peak heap memory consumption: 72.15MB peak RSS (including heaptrack overhead): 160.04MB total memory leaked: 269.04KB ``` After: ``` calls to allocation functions: 595004 (357145/s) temporary memory allocations: 83840 (50324/s) peak heap memory consumption: 52.14MB peak RSS (including heaptrack overhead): 138.32MB total memory leaked: 269.04KB ``` Difference: ``` calls to allocation functions: -21215 (-415980/s) temporary memory allocations: 546 (10705/s) peak heap memory consumption: -20.01MB peak RSS (including heaptrack overhead): 0B total memory leaked: 0B ---
-
Johannes Doerfert authored
AbstractAttribute::initialize is used to initialize the deduction and the object we do not always call it. To make sure we have the option to initialize the object even if initialize is not called we pass the Attributor to AbstractAttribute constructors now.
-
Johannes Doerfert authored
This reduces memory consumption and the need to copy complex data structures repeatedly. No functional change is intended. --- Single run of the Attributor module and then CGSCC pass (oldPM) for SPASS/clause.c (~10k LLVM-IR loc): Before: ``` calls to allocation functions: 613353 (376521/s) temporary memory allocations: 83636 (51341/s) peak heap memory consumption: 75.64MB peak RSS (including heaptrack overhead): 162.97MB total memory leaked: 269.04KB ``` After: ``` calls to allocation functions: 616575 (349929/s) temporary memory allocations: 83650 (47474/s) peak heap memory consumption: 72.15MB peak RSS (including heaptrack overhead): 159.81MB total memory leaked: 269.04KB ``` Difference: ``` calls to allocation functions: 3222 (24225/s) temporary memory allocations: 14 (105/s) peak heap memory consumption: -3.49MB peak RSS (including heaptrack overhead): 0B total memory leaked: 0B ---
-
Pierre Oechsel authored
The buffer allocated by a promotion can be subject to other transformations afterward. For example it could be vectorized, in which case it is needed to ensure that this buffer is memory-aligned. Differential Revision: https://reviews.llvm.org/D78556
-
Nicolas Vasilache authored
This revision is the first in a set of improvements that aim at allowing more generalized named Linalg op generation from a mathematical specification. This revision allows creating a new op and checks that the parser, printer and verifier are hooked up properly. This opened up a few design points that will be addressed in the future: 1. A named linalg op has a static region builder instead of an explicitly parsed region. This is not currently compatible with assemblyFormat so a custom parser / printer are needed. 2. The convention for structured ops and tensor return values needs to evolve to allow tensor-land and buffer land specifications to agree 3. ReferenceIndexingMaps and referenceIterators will need to become static to allow building attributes at parse time. 4. Error messages will be improved once we have 3. and we pretty print in custom form. Differential Revision: https://reviews.llvm.org/D78327
-
Stefan Pintilie authored
This is an optimization that applies to global addresses and allows for the following transformation: Convert this: paddi r3, 0, symbol@PCREL, 1 ld r4, 8(r3) To this: pld r4, symbol@PCREL+8(0), 1 An instruction is saved and the linker can do the addition when the symbol is resolved. Differential Revision: https://reviews.llvm.org/D76160
-
Kang Zhang authored
-
- Apr 21, 2020
-
-
Jonas Devlieghere authored
Lit's to_string will just return the string when it's a `str` instance, which in Python 2 can still contain UTF-8 characters. Differential revision: https://reviews.llvm.org/D76955
-
Nick Desaulniers authored
Summary: The repeated use of std::next() on a MachineBasicBlock::iterator was clever, but we only need to reconstruct the iterator post creation of the spill instruction. This helps simplifying where we plan to place the spill, as discussed in D77849. From here, we can simplify the code a little by flipping the return code of a helper. Reviewers: efriedma Reviewed By: efriedma Subscribers: qcolombet, hiraditya, llvm-commits, srhines Tags: #llvm Differential Revision: https://reviews.llvm.org/D78520
-
Jay Foad authored
This was yet another function that had to be updated whenever you added a new register class. Remove it by refactoring its only caller to use standard helper functions from SIRegisterInfo. Differential Revision: https://reviews.llvm.org/D78557
-
Fangrui Song authored
This fixes a bug as exposed by D77807. Add tests for {--emit-relocs,-r} x {--discard-locals,--discard-all}. They add coverage for previously undertested cases: * STT_SECTION associated to GCed sections (`gc`) * STT_SECTION associated to retained sections (`text`) * STT_SECTION associated to non-SHF_ALLOC sections (`.comment`) * STB_LOCAL in GCed sections (`unused_gc`) Reviewed By: grimar, ikudrin Differential Revision: https://reviews.llvm.org/D78389 -
Louis Dionne authored
-
Sean Fertile authored
-