| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
v2i1->v2f64 on targets with AVX512F, but not AVX512VL.
In the worst case, this requires a 128-bit move instruction to
implicitly zero the upper bits. In the common case, we should
recognize the producing instruction already zeroed the upper bits.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
we're scanning the basic block instead of looking back for it.
Summary:
We're already scanning forward through the basic block. Might as
well just remember eflags defs instead of doing a bounded search
backwards later.
Based on a comment in D71841.
Reviewers: RKSimon, spatel, uweigand
Reviewed By: uweigand
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71865
|
|
|
|
| |
ClangASTContext::GetBuiltinTypeForDWARFEncodingAndBitSize
|
|
|
|
| |
STRICT_CVTTP2SI/STRICT_CVTTP2UI nodes. NFC
|
|
|
|
|
|
| |
Reviewed By: grimar
Differential Revision: https://reviews.llvm.org/D71803
|
|
|
|
| |
Fixes build on NetBSD 9.0.
|
|
|
|
|
|
|
|
|
|
|
| |
Summary of changes:
- added description of GFX9 subtargets:
- gfx900;
- gfx902;
- gfx904;
- gfx906;
- gfx908;
- gfx909.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This cleans up and merges `gnu-symbols.test` to `symbols.test`.
Initially `gnu-symbols.test` tested the following things:
1) How symbols are printed in GNU style.
It does not make sense to have a separate file for such tests.
2) It tried to test proc-specific symbol indexes. The test was incomplete and
also we already have `symbol-shndx.test` for that, so this part was removed.
3) It tested `--dyn-symbols` and `--symbols` correlation. All following
cases were moved to `symbols.test`:
a) That `--dyn-symbols` does not trigger showing regular symbols..
b) That `--symbols` triggers `--dyn-symbols` implicitly.
c) That `--dyn-symbols` and `--symbols` works fine together.
Differential revision: https://reviews.llvm.org/D71697
|
|
|
|
|
|
|
|
| |
EI_ABIVERSION fields of an ELF header.
We had no separate tests for these fields.
Differential revision: https://reviews.llvm.org/D71766
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D71867
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: rriddle
Reviewed By: rriddle
Subscribers: mehdi_amini
Differential Revision: https://reviews.llvm.org/D71853
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
constant or undef
Summary:
As discussed in D71799, we have found that it is more useful to reach an optimistic fixpoint in AAValueSimpify when the value is constant or undef.
Reviewers: jdoerfert, sstefan1
Reviewed By: jdoerfert
Subscribers: baziotis, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71852
|
|
|
|
| |
EFLAGS use/def instead of our own custom operand scan. NFCI
|
|
|
|
|
| |
The TLS base (LWP private pointer) functions are namespaced and
hidden i.e. inside the _RTLD_SOURCE namespace.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
through a pointer
Summary:
Follow-up on: https://reviews.llvm.org/D71435
We basically use `checkForAllInstructions` to loop through all the instructions in a function that access memory through a pointer: load, store, atomicrmw, atomiccmpxchg
Note that we can now use the `getPointerOperand()` that gets us the pointer operand for an instruction that belongs to the aforementioned set.
Question: This function returns `nullptr` if the instruction is `volatile`. Why?
Guess: Because if it is volatile, we don't want to do any transformation to it.
Another subtle point is that I had to add AtomicRMW, AtomicCmpXchg to `initializeInformationCache()`. Following `checkAllInstructions()` path, that
seemed the most reasonable place to add it and correct the fact that these instructions were ignored (they were not in `OpcodeInstMap` etc.). Is that ok?
Reviewers: jdoerfert, sstefan1
Reviewed By: jdoerfert, sstefan1
Subscribers: hiraditya, jfb, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71787
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
_Eventually_, this attribute will be assigned to a function if it
contains undefined behavior. As a first small step, I tried to make it
loop through the load instructions in a function (eventually, the plan
is to check if a load instructions causes undefined behavior, because
e.g. dereferences a null pointer - Also eventually, this won't happen in
initialize() but in updateImpl()).
Patch By: Stefanos Baziotis (@baziotis)
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D71435
|
| |
|
|
|
|
|
|
|
|
| |
It was added in rL238619.
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D71862
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
llvmorg-10-init-16046-ga36ddf0aa9d
All of
"no-frame-pointer-elim-non-leaf"
"no-frame-pointer-elim-non-leaf"="true"
"no-frame-pointer-elim-non-leaf"="false"
mean "frame-pointer"="non-leaf", which is quite counter-intuitive.
llvmorg-10-init-16046-ga36ddf0aa9d accidentally broke it.
This fixes the -DLLVM_ENABLE_EXPENSIVE_CHECKS=On test:
```
*** Bad machine code: Non-flag-setting Thumb1 mov is v6-only ***
- function: pass_C
- basic block: %bb.0 entry (0x1fc9bf0)
- instruction: $r0 = tMOVr killed $r6, 14, $noreg
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
tests
Summary:
Fix the behavior of StringRef::count(StringRef) to not count overlapping occurrences, as is stated in the documentation.
Fixes bug https://bugs.llvm.org/show_bug.cgi?id=44072
I added Krzysztof Parzyszek to review this change because a use of this function in HexagonInstrInfo::getInlineAsmLength might depend on the overlapping-behavior. I don't have enough domain knowledge to tell if this change could break anything there.
All other uses of this method in LLVM (besides the unit tests) only use single-character search strings. In those cases, search occurrences can not overlap anyway.
Patch by Benno (@Bensge)
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D70585
|
|
|
|
| |
"frame-pointer"="none" as cleanups after D56351
|
|
|
|
| |
"frame-pointer"="non-leaf" as cleanups after D56351
|
|
|
|
| |
as cleanups after D56351
|
|
|
|
|
| |
Added initialization of the extra modifier to silence sanitizer. Added
extra checks to avoid such trouble in future.
|
| |
|
|
|
|
|
|
|
|
| |
Switch from PT_LWPINFO to PT_LWPSTATUS/PT_LWPNEXT.
Keep compat support for < 9.99.30.
No functional change intended.
|
|
|
|
|
| |
Enable compat support for now legacy PT_LWPINFO.
Support PT_LWPSTATUS and PT_LWPNEXT.
|
|
|
|
| |
Handle PT_LWPNEXT for newer kernels and keep PT_LWPINFO for older ones.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
targets with avx512dq and avx512vl instructions.
On 32-bit targets we can't use the scalar instruction so we
insert the scalar into a vector and use packed conversions.
Previously we used either v4f32->v4i64 or v4f64->v4i64 to avoid
some complexity creating target specific ISD opcodes for
v4f32->v2i64. But this causes extra vzeroupper instructions and
possibly frequency throttling on Intel CPUs.
This patch changes this to create a 128-bit vector and uses a
target specific ISD opcode if needed.
|
| |
|
|
|
|
|
| |
`/OPT:REF` is needed for link to dead strip functions, `/Gy` by itself
is not sufficient.
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D71850
|
| |
|
|
|
|
| |
Added parsing/sema checks for conditional lastprivates.
|
|
|
|
| |
Physical register names now start with $, not %
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
class
m_scratch_ast_source_up is only used by ClangASTContextForExpressions so it
should also be declared only in that class. Also make all other members of
ClangASTContext private and move the initialization code for ClangASTContextForExpressions
into the constructor.
|
|
|
|
|
|
|
| |
Replace tidy::utils::lexer::getConstQualifyingToken with a corrected and also
generalized to other qualifiers variant - getQualifyingToken.
Fixes PR44326
|
|
|
|
|
| |
cppcoreguidelines-avoid-magic-numbers should not warn about enum class.
Fixes PR40640.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ClangExternalASTSourceCommon's purpose is to store a map from
Decl*/Type* to ClangASTMetadata. Usually this data is accessed
via the ClangASTContext interface which then grabs the
current ExternalASTSource of its ASTContext, tries to cast it
to ClangExternalASTSourceCommon and then accesses the metadata
map. If the casting fails the setter does nothing and the getter
returns a nullptr as if there was no known metadata for a type/decl.
This system breaks as soon as any non-LLDB ExternalASTSource is added via
a multiplexer to our existing ExternalASTSource (in which case we suddenly
loose all out metadata as the casting always fails with an ExternalASTSource
that is not inheriting from ClangExternalASTSourceCommon).
This patch moves the metadata map to the ClangASTContext. This gets
rid of all the fragile casting, the requirement that every ExternalASTSource in
LLDB has to inherit from ClangExternalASTSourceCommon and simplifies
the metadata implementation to a simple map lookup. As ClangExternalASTSourceCommon
had no other purpose than storing metadata, this patch deletes this class
and replaces all uses with clang::ExternalASTSource.
No other code changes in this commit beside the AppleObjCDeclVendor which
was the only code that did not use the ClangASTContext interface but directly
accessed the ClangExternalASTSourceCommon.
|
|
|
|
| |
Hopefully, it will help other people
|
| |
|
|
|
|
|
|
|
| |
and "[Support] Try to fix bot failure after 8ddcd1dc26"
This reverts commits f70f180148 and 8ddcd1dc26 as this was breaking the
MacOS build, which doesn't support thread_local.
|