- Jun 19, 2021
-
-
peter klausler authored
A recent patch changed a struct into a class, but missed a forward definition. GCC didn't warn, but clang does. Fix.
-
Nick Desaulniers authored
193e41c9 which reportedly fails on the mac builds.
-
Stella Laurenzo authored
Deadlocks have been found in several downstream projects as noted on the original patch: https://reviews.llvm.org/D104207 Disabling pending full root cause analysis. Differential Revision: https://reviews.llvm.org/D104570
-
Nikita Popov authored
Remove dependence on ULO.TripCount/ULO.TripMultiple from ORE and debug code. For debug code, print information about all exits. For optimization remarks, only include the unroll count and the type of unroll (complete, partial or runtime), but omit detailed information about exit folding, now that more than one exit may be folded. Differential Revision: https://reviews.llvm.org/D104482
-
Hongtao Yu authored
We were using 0 as an indicator of invalid offset when computing disjoint ranges. In reality, 0 can be an valid code offset which stands for the first function in .text section. I'm using UINT64_MAX as an invalid code offset instead. Reviewed By: wenlei Differential Revision: https://reviews.llvm.org/D104497
-
River Riddle authored
This revision adds support for passing a functor to SourceMgrDiagnosticHandler for filtering out FileLineColLocs when emitting a diagnostic. More specifically, this can be useful in situations where there may be large CallSiteLocs with locations that aren't necessarily important/useful for users. For now the filtering support is limited to FileLineColLocs, but conceptually we could allow filtering for all locations types if a need arises in the future. Differential Revision: https://reviews.llvm.org/D103649
-
Nick Desaulniers authored
Similar to D104475, the Linux kernel would like to avoid compiler generated code in certain functions. The no_profile function attribute can be used in C to generate the the noprofile fn attr in IR. Respect that from GCOVProfiling. Link: https://lore.kernel.org/lkml/CAKwvOdmPTi93n2L0_yQkrzLdmpxzrOR7zggSzonyaw2PGshApw@mail.gmail.com/ Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D104257
-
Nick Desaulniers authored
noprofile IR attribute already exists to prevent profiling with PGO; emit that when a function uses the newly added no_profile function attribute. The Linux kernel would like to avoid compiler generated code in functions annotated with such attribute. We already respect this for libcalls to fentry() and mcount(). Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80223 Link: https://lore.kernel.org/lkml/CAKwvOdmPTi93n2L0_yQkrzLdmpxzrOR7zggSzonyaw2PGshApw@mail.gmail.com/ Reviewed By: MaskRay, void, phosek, aaron.ballman Differential Revision: https://reviews.llvm.org/D104475
-
Leonard Chan authored
Once D104553 lands, CreateCurrentThread will be able to accept optional parameters for initializing the hwasan thread object. On fuchsia, we can get stack info in the platform-specific InitThreads and pass it through CreateCurrentThread. On linux, this is a no-op. Differential Revision: https://reviews.llvm.org/D104561
-
Jez Ng authored
findLibrary() returned a StringRef while findFramework & other helper functions returned std::strings. Standardize on std::string. (I initially tried making the helper functions all return StringRefs, but I realized we shouldn't return input StringRefs since their lifetimes would not be obvious from the calling code.)
-
Jez Ng authored
Previously, we asserted that such a case was invalid, but in fact `ld -r` can emit such symbols if the input contained a (true) private extern, or if it contained a symbol started with "L". Non-extern symbols marked as private extern are essentially equivalent to regular TU-scoped symbols, so no new functionality is needed. Reviewed By: #lld-macho, thakis Differential Revision: https://reviews.llvm.org/D104502
-
Arnamoy Bhattacharyya authored
This patch adds the following nesting check for `barrier` constructs: ``` A barrier region may not be closely nested inside a worksharing, loop, task, taskloop, critical, ordered, atomic, or master region. ``` Also adds a test case for the check, Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D99888
-
Arthur O'Dwyer authored
P1518 does the following in C++23 but we'll just do it in C++17 as well: - Stop requiring `Alloc` to be an allocator on some container-adaptor deduction guides - Stop deducing from `Allocator` on some sequence container constructors - Stop deducing from `Allocator` on some other container constructors (libc++ already did this) The affected constructors are the "allocator-extended" versions of constructors where the non-allocator arguments are already sufficient to deduce the allocator type. For example, std::pmr::vector<int> v1; std::vector v2(v1, std::pmr::new_delete_resource()); std::stack s2(v1, std::pmr::new_delete_resource()); Differential Revision: https://reviews.llvm.org/D97742 -
Felix Berger authored
[clang-tidy] performance-unnecessary-copy-initialization: Directly examine the initializing var's initializer. This fixes false positive cases where a reference is initialized outside of a block statement and then its initializing variable is modified. Another case is when the looped over container is modified. Differential Revision: https://reviews.llvm.org/D103021 Reviewed-by: ymandel
-
Craig Topper authored
[RISCV] Teach vsetvli insertion to remember when predecessors have same AVL and SEW/LMUL ratio if their VTYPEs otherwise mismatch. Previously we went directly to unknown state on VTYPE mismatch. If we instead remember the partial match, we can use this to still use X0, X0 vsetvli in successors if AVL and needed SEW/LMUL ratio match. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D104069
-
Hongtao Yu authored
If we have seen an inwards transition from external code to internal code, but not a following outwards transition, the inwards transition is likely due to interrupt which is usually unpaired. Ignore current and subsequent entries since they are likely from an unrelated pre-interrupt context. LBR records from different interrupt context are unrelated and they should not be mixed together. Currenlty the OS does this for task-scheduling interrupt but not for all interrupts. Reviewed By: wenlei, wlei Differential Revision: https://reviews.llvm.org/D104276
-
Anshil Gandhi authored
Implemented the transformation of xor (llvm.amdgcn.class x, mask), -1 into llvm.amdgcn.class(x, ~mask). Added LIT tests as well. Differential Revision: https://reviews.llvm.org/D104049
-
Hongtao Yu authored
We were using a `StringMap` object to store all profiles to be emitted. The object is basically an unordered hash table, therefore updating it in the process of trasvering it may cause issue since the underlying bucket array could change. I'm also moving the `csspgo-preinliner` switch around so that no context tri will be constructed (by the constructor of `CSPreInliner`) when the switch is off. Reviewed By: wenlei Differential Revision: https://reviews.llvm.org/D104267
-
Andrew Browne authored
These other platforms are unsupported and untested. They could be re-added later based on MSan code. Reviewed By: gbalats, stephan.yichao.zhao Differential Revision: https://reviews.llvm.org/D104481
-
Krzysztof Parzyszek authored
This reverts commit ec91df8d. It was committed by accident.
-
Krzysztof Parzyszek authored
This seems to be a common problem among several architectures.
-
Krzysztof Parzyszek authored
When LLVM is used in other projects, it may happen that global cons- tructors will execute before the call to ParseCommandLineOptions. Since OptBisect is initialized via a constructor, and has no ability to be updated at a later time, passing "-opt-bisect-limit" to the parse function may have no effect. To avoid this problem use a cl::cb (callback) to set the bisection limit when the option is actually processed. Differential Revision: https://reviews.llvm.org/D104551
-
Asher Mancinelli authored
Add an FAQ entry and add a few lines to an existing one. Document the use of `GCC_INSTALL_PREFIX` for pointing clang to correct GCC installation for two-stage build. Reviewed By: jhuber6 Differential Revision: https://reviews.llvm.org/D104474
-
Florian Mayer authored
Explain what the given stack trace means before showing it, rather than only in the paragraph at the end. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D104523
-
Leonard Chan authored
This allows for other implementations to define their own version of `Thread::Init`. This will be the case for Fuchsia where much of the thread initialization can be broken up between different thread hooks (`__sanitizer_before_thread_create_hook`, `__sanitizer_thread_create_hook`, `__sanitizer_thread_start_hook`). Namely, setting up the heap ring buffer and stack info and can be setup before thread creation. The stack ring buffer can also be setup before thread creation, but storing it into `__hwasan_tls` can only be done on the thread start hook since it's only then we can access `__hwasan_tls` for that thread correctly. Differential Revision: https://reviews.llvm.org/D104248
-
peter klausler authored
This is *not* user-defined derived type I/O, but rather Fortran's built-in capabilities for using derived type data in I/O lists and NAMELIST groups. This feature depends on having the derived type description tables that are created by Semantics available, passed through compilation as initialized static objects to which pointers can be targeted in the descriptors of I/O list items and NAMELIST groups. NAMELIST processing now handles component references on input (e.g., "&GROUP x%component = 123 /"). The C++ perspectives of the derived type information records were transformed into proper classes when it was necessary to add member functions to them. The code in Semantics that generates derived type information was changed to emit derived type components in component order, not alphabetic order. Differential Revision: https://reviews.llvm.org/D104485
-
Walter Erquinigo authored
There are many tests failing intermittently for lldb-vscode after https://reviews.llvm.org/rGaa4685c0fb3aab5acb90be5fd3eb5ba8bf1e3211. I'm unsure if this actually the culprit, so I'm softly removing that feature to see if that fixes the issue.
-
Nico Weber authored
These are on by default, but there's also an explicit flag for them. Differential Revision: https://reviews.llvm.org/D104543
-
Greg McGary authored
The `icf` command-line option is not present in ld64, so it should use the LLD option syntax, which begins with double dashes and separates primary option from any suboption with the equal sign. Differential Revision: https://reviews.llvm.org/D104548
-
Jingu Kang authored
uaddv(uaddlp(x)) ==> uaddlv(x) addp(uaddlp(x)) ==> uaddlv(x) Differential Revision: https://reviews.llvm.org/D104236
-
Vyacheslav Zakharin authored
Differential Revision: https://reviews.llvm.org/D104545
-
Vyacheslav Zakharin authored
Differential Revision: https://reviews.llvm.org/D104535
-
- Jun 18, 2021
-
-
Muhammad Omair Javaid authored
This patch fixes build failure caused by commit f27e4548 on 32 bit arm. Differential Revision: https://reviews.llvm.org/D103292
-
Saleem Abdulrasool authored
The output of the object file is unimportant and entirely discarded. Simply redirect the output to `/dev/null` or `NUL` as the case may be. Additionally, the space between the labels is unimportant. There is no need to add space between the labels. Two labels at the same address are sufficient to generate the difference expression and should still test the same behaviour.
-
Matt Morehouse authored
The default callback instrumentation in x86 LAM mode uses ASLR bits to randomly choose a tag, and thus has a 1/64 chance of choosing a stack tag of 0, causing stack tests to fail intermittently. By using __hwasan_generate_tag to pick tags, we guarantee non-zero tags and eliminate the test flakiness. aarch64 doesn't seem to have this problem using thread-local addresses to pick tags, so perhaps we can remove this workaround once we implement a similar mechanism for LAM. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D104470
-
Matheus Izvekov authored
This Implements [[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2266r1.html|P2266 Simpler implicit move]]. Signed-off-by:
Matheus Izvekov <mizvekov@gmail.com> Reviewed By: Quuxplusone Differential Revision: https://reviews.llvm.org/D99005
-
Sean Silva authored
Differential Revision: https://reviews.llvm.org/D104489
-
Simon Pilgrim authored
As noticed on D104472 we can use APInt::insertBits which will avoid a lot of temporary APInt creations
-
Tomasz Kamiński authored
This fixes a crash in MallocChecker for the situation when operator new (delete) is invoked via NTTP and makes the behavior of CallContext.getCalleeDecl(Expr) identical to CallEvent.getDecl(). Reviewed By: vsavchenko Differential Revision: https://reviews.llvm.org/D103025
-
Simon Tatham authored
Given an invalid SourceLocation, translateSourceLocation will call clang_getNullLocation, and then do nothing with the result. But clang_getNullLocation has no side effects: it just constructs and returns a null CXSourceLocation value. Surely the intention was to //return// that null CXSourceLocation to the caller, instead of throwing it away and pressing on anyway. Reviewed By: miyuki Differential Revision: https://reviews.llvm.org/D104442
-