- Apr 22, 2020
-
-
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
-
Fangrui Song authored
D13550 added the diagnostic to address/work around a crash. The rule was refined by D19836 (test/ELF/tls-archive.s) to exclude Lazy symbols. https://bugs.llvm.org/show_bug.cgi?id=45598 reported another case where the current logic has a false positive: Bitcode does not record undefined module-level inline assembly symbols (`IRSymtab.cpp:Builder::addSymbol`). Such an undefined symbol does not have the FB_tls bit and lld will not consider it STT_TLS. When the symbol is later replaced by a STT_TLS Defined, lld will error "TLS attribute mismatch". This patch fixes this false positive by allowing a STT_NOTYPE undefined symbol to be replaced by a STT_TLS. Considered alternative: Moving the diagnostics to scanRelocs() can improve the diagnostics (PR36049) but that requires a fair amount of refactoring. We will need more RelExpr members. It requires more thoughts whether it is worthwhile. See `test/ELF/tls-mismatch.s` for behavior differences. We will fail to diagnose a likely runtime bug (STT_NOTYPE non-TLS relocation referencing a TLS definition). This is probably acceptable because compiler generated code sets symbol types properly. Reviewed By: grimar, psmith Differential Revision: https://reviews.llvm.org/D78438
-
Fangrui Song authored
-
Pavel Labath authored
Summary: Without this we could silently accept an invalid prologue because the default DataExtractor behavior is to return an empty string when reaching the end of file. And empty string is also used to terminate these lists. This makes the parsing code slightly more complicated, but this complexity will go away once the parser starts working with truncating data extractors. The reason I am doing it this way is because without this, the truncation would regress the quality of error messages (right now, we produce bad error messages only near EOF, but truncation would make everything behave as if it was near EOF). Reviewers: dblaikie, probinson, jhenderson Subscribers: hiraditya, MaskRay, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77555
-
Jean-Michel Gorius authored
-
Pavel Labath authored
Summary: This constructor allows us to create a new DWARFDataExtractor which will only present a subrange of an entire debug section. Since debug sections typically consist of multiple contributions, it is expected that one will create a new data extractor for each contribution in order to avoid unexpectedly running off into the next one. This is very useful for unifying the flows for detecting parse errors. Without it, the code needs to consider two very different scenarios: 1. If there is another contribution after the current one, the DataExtractor functions will just start reading from there. This is detectable by comparing the current offset against the known end-of-contribution offset. 2. If this is the last contribution, the data extractor will just start returning zeroes (or other default values). This situation can *not* be detected by checking the parsing offset, as this will not be advanced in case of errors. Using a truncated data extractor simplifies the code (and reduces cognitive load) by making these two cases behave identically -- a running off the end of a contribution will _always_ produce an EOF error (if one uses error-aware parsing methods) or return default values. Reviewers: dblaikie, probinson, jhenderson, ikudrin Subscribers: aprantl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77556
-
Pavel Iliin authored
-
Simon Pilgrim authored
-
Sanjay Patel authored
-
Simon Pilgrim authored
By moving the update(StringRef) wrapper into SHA1.cpp we can depend just on system headers.
-
Sam McCall authored
-
Florian Hahn authored
The individual tryTo* helpers do not need to be public. Also, the builder contained two consecutive public: sections, which is not necessary. Moved the remaining public methods after the constructor. Also make some of the tryTo* helpers const. Reviewers: gilr, rengolin, Ayal, hsaito Reviewed by: gilr Differential Revision: https://reviews.llvm.org/D78288
-
Sanjay Patel authored
-
Georgii Rymar authored
This validates that sections listed for a segment in the YAML declaration are ordered by their file offsets. It might help to simplify the file size computation, but also is useful by itself as helps to avoid issues in test cases and to maintain their readability. Differential revision: https://reviews.llvm.org/D78361
-
Fraser Cormack authored
Differential Revision: https://reviews.llvm.org/D78380
-
Tom Weaver authored
Fixes a mismatch in expected arguments passed to run_debugger_subprocess Fix for: https://reviews.llvm.org/D76926 rG9cf9710b -
Rainer Orth authored
Currently, many `Flang :: Semantics` tests FAIL on Solaris. The failure mode is always the same: actual at 67: Name in ALLOCATE statement must be a variable name expect at 67: ERROR: Name in ALLOCATE statement must be a variable name It turns out the issue is twofold here: - The awk script embedded in `flang/test/Semantics/common.sh` uses a string value for `FS`, which isn't supported by traditional awk as documented in the GNU autoconf manual. - Even though /usr/gnu/bin (with gawk installed as awk) is in my build environment's `PATH`, still /bin/awk is used Although the proper fix would probably be to avoid the unportability, it's easy to work around it for now. `common.sh` above is the only script in the whole tree that for unknown reasons overrides `PATH` to `/usr/bin:/bin`, unnecessarily creating this mess in the first place. Just removing that setting easily avoids the issue. Tested on `amd64-pc-solaris2.11` and `sparcv...
-