- Apr 21, 2020
-
-
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...
-
Sam McCall authored
-
Kerry McLaughlin authored
Summary: This patch adds the register + register addressing mode for SVE contiguous load and store intrinsics (LD1 & ST1) Reviewers: sdesmalen, fpetrogalli, efriedma, rengolin Reviewed By: fpetrogalli Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, danielkiss, cfe-commits, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78509
-
Simon Pilgrim authored
Looks like we are implicitly depending on <vector> but not all machines will include it.
-
Pierre Oechsel authored
Unfortunately FileCheck ignores directives with whitespace between the directive and the colon (`CHECK :` for example), thus most of the directives of this test were ignored. Differential Revision: https://reviews.llvm.org/D78548
-
Sam Parker authored
getUserCost is faulting for some builders.
-
Simon Pilgrim authored
Replace Twine.h/SourceMgr.h includes with forward declarations and include in TGParser.cpp Remove forward declarations we already have to include in Record.h
-
Simon Pilgrim authored
Replace ArrayRef.h with a forward declaration and include in ArrayRef.cpp Remove SMLoc forward declaration as we already have to include SMLoc.h
-
Simon Pilgrim authored
Push InstrTypes.h include down to AliasAnalysisSummary.cpp
-
River Riddle authored
This is possible by adding two new ControlFlowInterface additions: - A new interface, RegionBranchOpInterface This interface allows for region holding operations to describe how control flows between regions. This interface initially contains two methods: * getSuccessorEntryOperands Returns the operands of this operation used as the entry arguments when entering the region at `index`, which was specified as a successor by `getSuccessorRegions`. when entering. These operands should correspond 1-1 with the successor inputs specified in `getSuccessorRegions`, and may be a subset of the entry arguments for that region. * getSuccessorRegions Returns the viable successors of a region, or the possible successor when branching from the parent op. This allows for describing which regions may be executed when entering an operation, and which regions are executed after having executed another region of the parent op. For example, a structured loop operation may always enter into the loop body region. The loop body region may branch back to itself, or exit to the operation. - A trait, ReturnLike This trait signals that a terminator exits a region and forwards all of its operands as "exiting" values. These additions allow for performing more general dataflow analysis in the presence of region holding operations. Differential Revision: https://reviews.llvm.org/D78447
-
River Riddle authored
This revision adds the initial pass for performing SCCP generically in MLIR. SCCP is an algorithm for propagating constants across control flow, and optimistically assumes all values to be constant unless proven otherwise. It currently supports branching control, with support for regions and inter-procedural propagation being added in followups. Differential Revision: https://reviews.llvm.org/D78397
-
Kadir Cetinkaya authored
-
Pierre Oechsel authored
The promotion transformation is promoting all input and output buffers of the transformed op. The user might want to only promote some of these buffers. Differential Revision: https://reviews.llvm.org/D78498
-
Kazushi (Jam) Marukawa authored
Summary: Move the declarations of getThe<Name>Target() functions into a new header in TargetInfo and make users of these functions include this new header in order to follow other architectures. Differential Revision: https://reviews.llvm.org/D78543
-
Kadir Cetinkaya authored
-
Haojian Wu authored
Summary: This patch contains 2 separate changes: 1) the initializer of a variable should play no part in decl "invalid" bit; 2) preserve the invalid initializer via recovery exprs; With 1), we will regress the diagnostics (one big regression is that we loose the "selected 'begin' function with iterator type" diagnostic in for-range stmt; but with 2) together, we don't have regressions (the new diagnostics seems to be improved). Reviewers: sammccall Reviewed By: sammccall Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D78116
-
Sander de Smalen authored
isReinterpretFromBool's only use is in an assert, which causes a warning that the function is defined but not used in no-assert builds.
-
LLVM GN Syncbot authored
-
Kadir Cetinkaya authored
Summary: This is achieved by calculating newly added includes and implicitly parsing them as if they were part of the main file. This also gets rid of the need for consistent preamble reads. Reviewers: sammccall Subscribers: ilya-biryukov, javed.absar, MaskRay, jkorous, mgrang, arphaman, jfb, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77392
-
Kadir Cetinkaya authored
Summary: This will enable PreamblePatching proposed in D77392 craft a more informed patch. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D78235
-
Sam Parker authored
This API call has been used recently with, a very valid, expectation that it would do something useful but it doesn't actually query any backend information. So, remove this method and merge its functionality into getUserCost. As well as that, also use getCastInstrCost to get a proper cost from the backend for the concerned instructions though we only currently return the answer if it's considered free. The default implementation now also checks int/ptr conversions too, as well as truncs and bitcasts. Differential Revision: https://reviews.llvm.org/D76124
-
Haojian Wu authored
Summary: This patch fixes the regression diagnostic, which was introduced in https://reviews.llvm.org/D77395. Reviewers: sammccall Reviewed By: sammccall Subscribers: rsmith, adamcz, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D78100
-
Sam Parker authored
The logic in ARMParallelDSP is setup to merge two 16-bits loads into a 32-bit load and feed them into the smlads. This requires that four loads are combined for the four inputs, but there wasn't actually a check for this. Differential Revision: https://reviews.llvm.org/D78492
-