| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This **appears** to be the last missing piece for the masked merge pattern handling in the backend.
This is [[ https://bugs.llvm.org/show_bug.cgi?id=37104 | PR37104 ]].
[[ https://bugs.llvm.org/show_bug.cgi?id=6773 | PR6773 ]] will introduce an IR canonicalization that is likely bad for the end assembly.
Previously, `andps`+`andnps` / `bsl` would be generated. (see `@out`)
Now, they would no longer be generated (see `@in`), and we need to make sure that they are generated.
Differential Revision: https://reviews.llvm.org/D46528
llvm-svn: 332904
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This is [[ https://bugs.llvm.org/show_bug.cgi?id=37104 | PR37104 ]].
[[ https://bugs.llvm.org/show_bug.cgi?id=6773 | PR6773 ]] will introduce an IR canonicalization that is likely bad for the end assembly.
Previously, `andps`+`andnps` / `bsl` would be generated. (see `@out`)
Now, they would no longer be generated (see `@in`).
Differential Revision: https://reviews.llvm.org/D46008
llvm-svn: 332903
|
| |
|
|
| |
llvm-svn: 332901
|
| |
|
|
| |
llvm-svn: 332899
|
| |
|
|
|
|
|
|
|
|
|
| |
Also tightens the behavior of ExecutionSession::failQuery. Queries can usually
only be failed by marking a symbol as failed-to-materialize, but
ExecutionSession::failQuery provides a second route, and both routes may be
executed from different threads. In the case that a query has already been
failed due to a materialization error, ExecutionSession::failQuery will
direct the error to ExecutionSession::reportError instead.
llvm-svn: 332898
|
| |
|
|
|
|
|
|
| |
The lookup function provides blocking symbol resolution for JIT clients (not
layers themselves) so it does not need to track symbol dependencies via a
MaterializationResponsibility.
llvm-svn: 332897
|
| |
|
|
| |
llvm-svn: 332896
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
their amount masking modified by simplifyDemandedBits
SimplifyDemandedBits can remove bits from the masks for the shift amounts we need to see to detect rotates.
This patch uses zeroes from computeKnownBits to fill in some of these mask bits to make the match work.
As currently written this calls computeKnownBits even when the mask hasn't been simplified because it made the code simpler. If we're worried about compile time performance we can improve this.
I know we're talking about making a rotate intrinsic, but hopefully we can go ahead and do this change and just make sure the rotate intrinsic also handles it.
Differential Revision: https://reviews.llvm.org/D47116
llvm-svn: 332895
|
| |
|
|
| |
llvm-svn: 332894
|
| |
|
|
|
|
|
|
| |
This code should really do exactly the same thing for 32-bit x86 and
64-bit small code models, with the exception that RIP-relative
addressing can't use base and index registers.
llvm-svn: 332893
|
| |
|
|
|
|
| |
vector tests from some scalar test cases.
llvm-svn: 332892
|
| |
|
|
|
|
|
|
|
|
|
|
| |
instruction instead.
Because the intrinsics in the headers are implemented as macros, we can't just use a select builtin and pternlog builtin. This would require one of the macro arguments to be used twice. Depending on what was passed to the macro we could expand an expression twice leading to weird behavior. We could maybe declare our local variable in the macro, but that would need to worry about name collisions.
To avoid that just generate IR directly in CGBuiltin.cpp.
Differential Revision: https://reviews.llvm.org/D47125
llvm-svn: 332891
|
| |
|
|
|
|
|
|
| |
This removes 6 intrinsics since we no longer need separate mask and maskz intrinsics.
Differential Revision: https://reviews.llvm.org/D47124
llvm-svn: 332890
|
| |
|
|
| |
llvm-svn: 332889
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On RTEMS, system and user code all live in a single binary and address
space. There is no clean separation, and instrumented code may
execute before the ASan run-time is initialized (or after it has been
destroyed).
Currently, GetCurrentThread() may crash if it's called before ASan
run-time is initialized. Make it return nullptr instead.
Similarly, fix __asan_handle_no_return so that it gives up rather than
try something that may crash.
Differential Revision: https://reviews.llvm.org/D46459
llvm-svn: 332888
|
| |
|
|
|
|
|
| |
This pattern is handled within commonCastTransforms(),
so the code here is dead AFAICT.
llvm-svn: 332887
|
| |
|
|
|
|
| |
initialization.
llvm-svn: 332886
|
| |
|
|
|
|
|
|
| |
Fixes PR37466.
Differential Revision: https://reviews.llvm.org/D47093
llvm-svn: 332885
|
| |
|
|
|
|
|
|
|
|
| |
direct emission.
Part of PR37466.
Differential Revision: https://reviews.llvm.org/D47091
llvm-svn: 332884
|
| |
|
|
|
|
|
|
|
| |
In all cases, we're pulling the cast above the select.
That's not a good canonicalization if we're creating
a select that then mismatches the operand size of its
condition.
llvm-svn: 332883
|
| |
|
|
|
|
|
|
|
|
|
|
| |
packed float conversion intrinsics.
I believe this is safe assuming default default FP environment. The conversion might be inexact, but it can never overflow the FP type so this shouldn't be undefined behavior for the uitofp/sitofp instructions.
We already do something similar for scalar conversions.
Differential Revision: https://reviews.llvm.org/D46863
llvm-svn: 332882
|
| |
|
|
|
|
|
|
|
|
| |
up to dwo output.
Part of PR37466.
Differential Revision: https://reviews.llvm.org/D47089
llvm-svn: 332881
|
| |
|
|
| |
llvm-svn: 332880
|
| |
|
|
| |
llvm-svn: 332879
|
| |
|
|
|
|
|
|
|
|
|
| |
Summary:
The correct spelling is "DWARF", the debugging format, not "DWARG".
The typo is in a (not executed by lit) comment in a test file, so
fixing it does not result in any functional change.
Test Plan: check-llvm, just in case
llvm-svn: 332878
|
| |
|
|
|
|
| |
Patch by David Carlier
llvm-svn: 332877
|
| |
|
|
| |
llvm-svn: 332876
|
| |
|
|
|
|
|
|
| |
Part of PR37466.
Differential Revision: https://reviews.llvm.org/D47051
llvm-svn: 332875
|
| |
|
|
| |
llvm-svn: 332874
|
| |
|
|
|
|
|
|
|
|
|
| |
Rather than relying on the user to do the address calculating in
DW_AT_location we should just dump the absolute address.
rdar://problem/38513870
Differential revision: https://reviews.llvm.org/D47152
llvm-svn: 332873
|
| |
|
|
|
|
| |
Patch by Thomasz Krupa.
llvm-svn: 332872
|
| |
|
|
|
|
|
| |
This reverts commit rCRT332679 which doesn't quite work and will be
replaced by D47100 and D47115 which is a cleaner solution.
llvm-svn: 332871
|
| |
|
|
|
|
|
|
|
|
| |
This class will be used to create regular, non-split ELF files.
Part of PR37466.
Differential Revision: https://reviews.llvm.org/D47049
llvm-svn: 332870
|
| |
|
|
|
|
|
|
| |
SimplifyDemandedBits interfering with the AND masks
As requested in D47116
llvm-svn: 332869
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
writer. NFCI.
With this we gain a little flexibility in how the generic object
writer is created.
Part of PR37466.
Differential Revision: https://reviews.llvm.org/D47045
llvm-svn: 332868
|
| |
|
|
|
|
|
|
|
|
|
| |
class. NFCI.
The idea is that we will be able to use this class to create multiple
files.
Differential Revision: https://reviews.llvm.org/D47048
llvm-svn: 332867
|
| |
|
|
| |
llvm-svn: 332866
|
| |
|
|
|
|
|
|
|
|
| |
Change matchSelectPattern to return X and -X for ABS/NABS in a well defined order. Adjust EarlyCSE to account for this. Ensure the SPF result is some kind of min/max and not abs/nabs in one place in InstCombine that made me nervous.
Prevously we returned the two operands of the compare part of the abs pattern. The RHS is always going to be a 0i, 1 or -1 constant. This isn't a very meaningful thing to return for any one. There's also some freedom in the abs pattern as to what happens when the value is equal to 0. This freedom led to early cse failing to match when different constants were used in otherwise equivalent operations. By returning the input and its negation in a defined order we can ensure an exact match. This also makes sure both patterns use the exact same subtract instruction for the negation. I believe CSE should evebntually make this happen and properly merge the nsw/nuw flags. But I'm not familiar with CSE and what order it does things in so it seemed like it might be good to really enforce that they were the same.
Differential Revision: https://reviews.llvm.org/D47037
llvm-svn: 332865
|
| |
|
|
|
|
|
|
| |
Part of PR37466.
Differential Revision: https://reviews.llvm.org/D47043
llvm-svn: 332864
|
| |
|
|
|
|
|
|
|
|
| |
This removes the last external use of the stream.
Part of PR37466.
Differential Revision: https://reviews.llvm.org/D47042
llvm-svn: 332863
|
| |
|
|
|
|
|
|
|
|
| |
AMDGPUDAGToDAGISel adds DivergenceAnalysis in getAnalysisUsage
but does not list it in pass dependencies which may lead to
crash.
Differential Revision: https://reviews.llvm.org/D47151
llvm-svn: 332862
|
| |
|
|
|
|
|
|
| |
Part of PR37466.
Differential Revision: https://reviews.llvm.org/D47040
llvm-svn: 332861
|
| |
|
|
|
|
|
|
|
|
| |
r332654 was reverted due to an unused function warning in
release build. This commit includes the same code with the
warning silenced.
Differential Revision: https://reviews.llvm.org/D44338
llvm-svn: 332860
|
| |
|
|
| |
llvm-svn: 332859
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
raw_ostream. NFCI.
Also clean up a couple of hacks where we were writing the section
contents to another stream by setting the object writer's stream,
writing and setting it back.
Part of PR37466.
Differential Revision: https://reviews.llvm.org/D47038
llvm-svn: 332858
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
MCObjectWriter. NFCI.
To make this work I needed to add an endianness field to MCAsmBackend
so that writeNopData() implementations know which endianness to use.
Part of PR37466.
Differential Revision: https://reviews.llvm.org/D47035
llvm-svn: 332857
|
| |
|
|
|
|
| |
MCRegisterInfo::getPhysRegSize() will be deprecated.
llvm-svn: 332856
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch fixes PR37526 by simplifying the newly generated LoadInst
instructions. If the pointer address is a bitcast from the pointer to
the NewType, we can just remove this extra bitcast instead of creating
the new one. This fixes the PR37526 + may speed up the whole compilation
process.
Reviewers: spatel, RKSimon, hfinkel
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D47144
llvm-svn: 332855
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix internal build failure:
../../../ClangDiagnosticsEmitter.cpp -o ClangDiagnosticsEmitter.o
../../../ClangDiagnosticsEmitter.cpp: In function 'llvm::StringRef
{anonymous}::getModifierName({anonymous}::ModifierType)':
../../../ClangDiagnosticsEmitter.cpp:495:1: error: control reaches end of non-void function [-Werror=return-type]
}
^
Build failure triggered by git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@332799 91177308-0d34-0410-b5e6-96231b3b80d8
Differential Revision: https://reviews.llvm.org/D47150
llvm-svn: 332854
|
| |
|
|
|
|
| |
Also, regenerate all tests.
llvm-svn: 332853
|