- Apr 17, 2020
-
-
Simon Pilgrim authored
-
Simon Pilgrim authored
We have no need to include the entire header.
-
Simon Pilgrim authored
ScoreboardHazardRecognizer.h - remove unnecessary llvm::InstrItineraryData forward declaration. NFC. We have to include MCInstrItineraries.h where its defined.
-
Matthias Gehre authored
Summary: Before this PR, `modernize-use-using` would transform the typedef in ``` template <typename a> class TemplateKeyword { typedef typename a::template f<> e; typedef typename a::template f<>::d e2; }; ``` into ``` template <typename a> class TemplateKeyword { using d = typename a::b<>; using d2 = typename a::template a::b<>::c; }; ``` The first one is missing the `template` keyword, the second one has an extra `a::` scope. Both result in compilation errors. Reviewers: aaron.ballman, alexfh, hokein, njames93 Subscribers: xazax.hun, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D78139 -
Bevin Hansson authored
Summary: We can simplify the LHSTy correction for fixed-point compassign by moving it below the point where we know we have a compound assignment. Also, we shouldn't look at the LHS and RHS separately; look at the computation result type instead. Looking at the LHS and RHS is also wrong for compassigns with fixed and floating point (though this does not work upstream yet). Reviewers: leonardchan Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D78294
-
Petr Hosek authored
Now that write data continously into the memory mapping, we don't need to keep the VMO handle around after it has been mapped. This change also ensures that the VMO is always closed on error. Differential Revision: https://reviews.llvm.org/D76963
-
Sam Parker authored
Add patterns that use a normal, non-wrapping, add and sub nodes along with an arm vshr imm node. Differential Revision: https://reviews.llvm.org/D77065
-
James Nagurne authored
These two tests utilize pre-generated opt-viewer output to diff against a run of opt-viewer over a known yaml file. In commit 4b428e8f (D76126), the escape function used for rendering was changed from cgi.escape to html.escape. This modification causes a behavioral difference with regards to quote characters. cgi will not escape quotes by default, but html will. Therefore, these tests were failing because they expected the old behavior of "string", but was instead seeing "string". This solution modifies the known test outputs to use the escaped quotes rather than not escaping quotes during rendering for no particular reason. It is notable that when testing the optimization records generated by LLVM, there was never quotes in the remarks I could find, specifically in the Callee field where they exist in the pre-generated yaml for testing. Differential Revision: https://reviews.llvm.org/D78241
-
Shengchen Kan authored
It causes some encoding fails. Plan to recommit it after fixing that. This reverts commit 3017580c.
-
Shengchen Kan authored
Summary: We determine the REX prefix used by instruction in `determineREXPrefix`, and this value is used in `emitMemModRMByte' and used as the return value of `emitOpcodePrefix`. Before this patch, REX was passed as reference to `emitPrefixImpl`, it is strange and not necessary, e.g, we have to write ``` bool Rex = false; emitPrefixImpl(CurOp, CurByte, Rex, MI, STI, OS); ``` in `emitPrefix` even if `Rex` will not be used. So we let HasREX be the return value of `emitPrefixImpl`. The HasREX is passed from `emitREXPrefix` to `emitOpcodePrefix` and then to `emitPrefixImpl`. This makes sense since REX is a kind of opcode prefix and of course is a prefix. Reviewers: craig.topper, pengfei Reviewed By: craig.topper Subscribers: annita.zhang, craig.topper, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78276
-
QingShan Zhang authored
If we are and the constant like 0xFFFFFFC00000, for now, we are using several instructions to generate this 48bit constant and final an "and". However, we could exploit it with two rotate instructions. MB ME MB+63-ME +----------------------+ +----------------------+ |0000001111111111111000| -> |0000000001111111111111| +----------------------+ +----------------------+ 0 63 0 63 Rotate left ME + 1 bit first, and then, mask it with (MB + 63 - ME, 63), finally, rotate back. Notice that, we need to round it with 64 bit for the wrapping case. Reviewed by: ChenZheng, Nemanjai Differential Revision: https://reviews.llvm.org/D71831 -
Craig Topper authored
[SampleProfile] Use CallBase in function arguments and data structures to reduce the number of explicit casts. NFCI Removing CallSite left us with a bunch of explicit casts from Instruction to CallBase. This moves the casts earlier so that function arguments and data structure types are CallBase so we don't have to cast when we use them. Differential Revision: https://reviews.llvm.org/D78246
-
Lang Hames authored
The header magic value is held in the native endianness, so the method used in cc0ec3fd. Use MachOReader / MachOWriter's existing endianness tests instead.
-
aartbik authored
Summary: Rather than having a full, recursive, lowering of vector.broadcast to LLVM IR, it is much more elegant to have a progressive lowering of each vector.broadcast into a lower dimensional vector.broadcast, until only elementary vector operations remain. This results in more elegant, step-wise code, that is easier to understand. Also makes some optimizations in the generated code. Reviewers: nicolasvasilache, mehdi_amini, andydavis1, grosul1 Reviewed By: nicolasvasilache Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, grosul1, frgossen, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78071
-
Lang Hames authored
Use shift/mask operations to access r_symbolnum rather than relying on MachO::relocation_info. This should fix the big-endian bot failures that were caused by 386f1c11.
-
Wouter van Oortmerssen authored
-
LLVM GN Syncbot authored
-
Chris Lattner authored
Remove the llvm/Support/StringPool.h file and related support now that it has no clients. A plain old StringSet<> is a better replacement. Subscribers: mgorny, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78336
-
Jonas Devlieghere authored
Temporarily reverts commit d10386e1 because it breaks the Windows build. MSVC complains about an ambiguous call to an overloaded function.
-
Craig Topper authored
I've always found the "findValue" a little odd and inconsistent with other things in SDB. This simplfifies the code in SDB to just handle a splat constant address or a 2 operand GEP in the same BB. This removes the need for "findValue" since the operands to the GEP are guaranteed to be available. The splat constant handling is new, but was needed to avoid regressions due to constant folding combining GEPs created in CGP. CGP is now responsible for canonicalizing gather/scatters into this form. The pattern I'm using for scalarizing, a scalar GEP followed by a GEP with an all zeroes index, seems to be subject to constant folding that the insertelement+shufflevector was not. Differential Revision: https://reviews.llvm.org/D76947
-
Paula Toth authored
Summary: This patch implements running linting on llvm-libc using build rule targets. 1) adds a new target per entrypoint for linting with the naming convention `<qualified_target_name>.__lint__` e.g `libc.src.string.strlen.__lint__`. 2) makes the build target for each entrypoint depend on the linting targets so that they run along with compilation of each entrypoint. 3) adds a lint all target named `lint-libc`. `check-libc` now depends on this new target. 4) linting creates a lot of additional targets from clang and clang-tidy that need to be built so an opt out flag can be passed to cmake: `LLVM_LIBC_ENABLE_LINTING`. Reviewers: sivachandra, abrachet Reviewed By: sivachandra Subscribers: abrachet, mgorny, tschuett, libc-commits Tags: #libc-project Differential Revision: https://reviews.llvm.org/D77861
-
Evgenii Stepanov authored
Summary: Do not reexport libgcc.a symbols and random sanitizer internal symbols by applying a version script to the shared library build. This fixes unwinder conflicts on Android that are created by reexporting the unwinder interface from libgcc_real.a. The same is already done in asan and hwasan. Reviewers: vitalybuka, srhines Subscribers: mgorny, #sanitizers, llvm-commits Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D78325
-
Dan Liew authored
[NFC] Introduce a `LateInitialize()` method to `SymbolizerTool` that is called during the LateInitialize stage of the sanitizer runtimes. Summary: This is implemented by adding a `Symbolizer::LateInitializeTools()` method that iterates over the registered tools and calls the `LateInitialize()` method on them. `Symbolizer::LateInitializeTools()` is now called from the various `Symbolizer::LateInitialize()` implementations. The default implementation of `SymbolizerTool::LateInitialize()` does nothing so this change should be NFC. This change allows `SymbolizerTool` implementations to perform any initialization that they need to perform at the LateInitialize stage of a sanitizer runtime init. rdar://problem/58789439 Reviewers: kubamracek, yln, vitalybuka, cryptoad, phosek, rnk Subscribers: #sanitizers, llvm-commits Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D78178
-
Wouter van Oortmerssen authored
-
Pratyai Mazumder authored
Summary: These tests pass with clang, but fail if gcc was used. gcc build creates similar but not the same stacks. Reviewers: vitalybuka Reviewed By: vitalybuka Subscribers: dvyukov, llvm-commits, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D78114
-
Wouter van Oortmerssen authored
-
Wouter van Oortmerssen authored
This to allow us to add reloctable global indices as a symbol. Also adds R_WASM_GLOBAL_INDEX_I32 relocation type to support it. See discussion in https://github.com/WebAssembly/debugging/issues/12
-
Craig Topper authored
[CallSite removal][IPO] Change implementation of AbstractCallSite to store a CallBase* instead of CallSite. NFCI. CallSite will likely be removed soon, but AbstractCallSite serves a different purpose and won't be going away. This patch switches it to internally store a CallBase* instead of a CallSite. The only interface changes are the removal of the getCallSite method and getCallBackUses now takes a CallBase&. These methods had only a few callers that were easy enough to update without needing a compatibility shim. In the future once the other CallSites are gone, the CallSite.h header should be renamed to AbstractCallSite.h Differential Revision: https://reviews.llvm.org/D78322
-
Lang Hames authored
This removes the conditional layout of relocation_info bitfields that was introduced in 3ccd677b (svn r358839). The platform relocation_info struct (defined in usr/include/mach-o/reloc.h) does not define the layout of this struct differently on big-endian platforms and we want to keep the LLVM and platform definitions in sync. To fix the bug that 3ccd677b addressed this patch modifies JITLink to construct its relocation_info structs from the raw relocation words using shift and mask operations.
-
Richard Smith authored
llvm-addr2line: assume addresses on the command line are hexadecimal rather than attempting to guess the base based on the form of the number. Summary: This matches the behavior of GNU addr2line. We previously treated hexadecimal addresses as binary if they started with 0b, otherwise as octal if they started with 0, otherwise as decimal. This only affects llvm-addr2line; the behavior of llvm-symbolize is unaffected. Reviewers: ikudrin, rupprecht, jhenderson Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73306
-
Julian Lettner authored
Fix UBSan's vptr checks in the presence of arm64e pointer signing. Radar-Id: rdar://61786404 Reviewed By: vsk Differential Revision: https://reviews.llvm.org/D78230
-
Sam McCall authored
-
Sam McCall authored
-
Stephen Neuendorffer authored
add_llvm_library() sometimes needs access to the dependencies in order to generate new targets. Using DEPENDS allows this. Differential Revision: https://reviews.llvm.org/D78321
-
Eric Fiselier authored
Summary: The current version of the comparator does not introduce a strict weak ordering. Reviewers: fowles, bkramer, sdesmalen Reviewed By: sdesmalen Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D78323
-
Davide Italiano authored
Pointed out by Adrian.
-
Jonas Devlieghere authored
Converting a function pointer to an object pointer is illegal as nothing requires it to be in the same address space. Add an overload for function pointers so we don't convert do this illegal conversion, and simply print out "function pointer".
-
Jason Molenda authored
The SIP debugserver was calling in attach_failed_due_to_sip haven't worked for a while; remove them. To check this properly we'd need debugsever to call out to codesign(1) to inspect the entitlements, or the equivalant API, and I'm not interested in adding that at this point. SIP is has been the default on macOS for a couple of releases and it's expected behavior now. <rdar://problem/59198052>
-
Nicolas Vasilache authored
Summary: This is an NFC cleanup in preparation for end-to-end named Linalg ops. Differential Revision: https://reviews.llvm.org/D78331
-
Bob Haarman authored
Summary: Changes the type of the @__typeid_.*_unique_member imports we generate for unique return value optimization from i8 to [0 x i8]. This prevents assuming that these imports do not alias, such as when two unique return values occur in the same vtable. Fixes PR45393. Reviewers: tejohnson, pcc Reviewed By: pcc Subscribers: aganea, hiraditya, rnk, george.burgess.iv, dblaikie, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77421
-