| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 271823
|
| |
|
|
| |
llvm-svn: 271822
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
libstdc++ (or in compilers, or somewhere, I can't track it down) that
causes unittests that use INITIALIZE_PASS to crash.
The analysis I've been able to do is that inside libstdc++'s
implementation of std::call_once, it uses pthread_once, and when that
returns an error code it throws std::system_error which then eventually
calls std::terminate.
Hopefully some of the folks who work on PPC can try to sort out what's
going on here. Until then, they'll have to use the fallback
implementation.
llvm-svn: 271821
|
| |
|
|
|
|
|
| |
Otherwise it could just use a leftover a.out from
some other test.
llvm-svn: 271820
|
| |
|
|
| |
llvm-svn: 271819
|
| |
|
|
|
|
| |
on it.
llvm-svn: 271818
|
| |
|
|
|
|
|
|
|
| |
Change the name of the ICmpInst to 'ICmp' and the Constant (was a ConstantInt) to 'C',
so that it's hopefully clearer that 'CI' refers to CastInst in this context.
While we're scrubbing, fix the documentation comment and use 'auto' with 'dyn_cast'.
llvm-svn: 271817
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A basic block could contain:
%cp = cleanuppad []
cleanupret from %cp unwind to caller
This basic block is empty and is thus a candidate for removal. However,
there can be other uses of %cp outside of this basic block. This is
only possible in unreachable blocks.
Make our transform more correct by checking that the pad has a single
user before removing the BB.
This fixes PR28005.
llvm-svn: 271816
|
| |
|
|
| |
llvm-svn: 271815
|
| |
|
|
|
|
|
| |
This remove some EM_386 specific code from InputSection.cpp and opens
the way for more relaxations.
llvm-svn: 271814
|
| |
|
|
|
|
| |
It will also be used for GT_TO_IE relaxations.
llvm-svn: 271813
|
| |
|
|
|
|
| |
It will be used for more than just gots.
llvm-svn: 271812
|
| |
|
|
|
|
|
| |
The name map might not be densely packed on disk. Using a sparse map
will save memory in such situations.
llvm-svn: 271811
|
| |
|
|
|
|
|
| |
This is step 1 of unknown towards fixing PR28001:
https://llvm.org/bugs/show_bug.cgi?id=28001
llvm-svn: 271810
|
| |
|
|
| |
llvm-svn: 271809
|
| |
|
|
| |
llvm-svn: 271808
|
| |
|
|
| |
llvm-svn: 271807
|
| |
|
|
| |
llvm-svn: 271806
|
| |
|
|
| |
llvm-svn: 271805
|
| |
|
|
| |
llvm-svn: 271804
|
| |
|
|
|
|
| |
Allows XOP to vectorize BITREVERSE - other targets will follow as their costmodels improve.
llvm-svn: 271803
|
| |
|
|
|
|
| |
for inline asm constraints. Also fix the comment on the function.
llvm-svn: 271802
|
| |
|
|
|
|
| |
non-shared, PIE and shared output mode.
llvm-svn: 271801
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CALL_ONCE_... macro in the legacy pass manager with the new
llvm::call_once facility.
Nothing changed sicne the last attempt in r271781 which I reverted in
r271788. At least one of the failures I saw was spurious, and I want to
make sure the other failures are real before I work around them -- they
appeared to only effect ppc64le and ppc64be.
Original commit message of r271781:
----
[LPM] Reinstate r271652 to replace the CALL_ONCE_... macro in the legacy
pass manager with the new llvm::call_once facility.
This reverts commit r271657 and re-applies r271652 with a fix to
actually work with arguments. In the original version, we just ended up
directly calling std::call_once via ADL because of the std::once_flag
argument. The llvm::call_once never worked with arguments. Now,
llvm::call_once is a variadic template that perfectly forwards
everything. As a part of this it had to move to the header and we use
a generic functor rather than an explict function pointer. It would be
nice to use std::invoke here but we don't have it yet. That means
pointer to members won't work here, but that seems a tolerable
compromise.
I've also tested this by forcing the fallback path, so hopefully it
sticks this time.
----
Original commit message of r271652:
----
[LPM] Replace the CALL_ONCE_... macro in the legacy pass manager with
the new llvm::call_once facility.
This facility matches the standard APIs and when the platform supports
it actually directly uses the standard provided functionality. This is
both more efficient on some platforms and much more TSan friendly.
The only remaining user of the cas_flag and home-rolled atomics is the
fallback implementation of call_once. I have a patch that removes them
entirely, but it needs a Windows patch to land first.
This alone substantially cleans up the macros for the legacy pass
manager, and should subsume some of the work Mehdi was doing to clear
the path for TSan testing of ThinLTO, a really important step to have
reliable upstream testing of ThinLTO in all forms.
----
llvm-svn: 271800
|
| |
|
|
| |
llvm-svn: 271799
|
| |
|
|
|
|
| |
We were not handling page relative relocations.
llvm-svn: 271798
|
| |
|
|
|
|
|
| |
Windows itanium is nearly identical to windows-msvc (MS ABI for C, itanium for
C++). Enable the TLS support for the target similar to the MSVC model.
llvm-svn: 271797
|
| |
|
|
|
|
|
|
| |
The AVX2 v16i16 shift lowering works by unpacking to 2 x v8i32, performing the shift and then truncating the result.
The unpacking is used to place the values in the upper 16-bits so that we can correctly sign-extend for SRA shifts. Unfortunately we weren't ensuring that the lower 16-bits were zero to ensure that SHL correctly shifts in zero bits.
llvm-svn: 271796
|
| |
|
|
| |
llvm-svn: 271795
|
| |
|
|
| |
llvm-svn: 271794
|
| |
|
|
|
|
|
|
|
| |
C++ has a builtin type called wchar_t. Clang also provides a type
called __wchar_t in C mode.
In C mode, wchar_t can be a typedef to unsigned short.
llvm-svn: 271793
|
| |
|
|
|
|
| |
It was checking for Union when it should have checked for Interface.
llvm-svn: 271792
|
| |
|
|
| |
llvm-svn: 271791
|
| |
|
|
| |
llvm-svn: 271790
|
| |
|
|
|
|
|
|
| |
Add the MMX implementation to the SimplifyDemandedUseBits SSE/AVX MOVMSK support added in D19614
Requires a minor tweak as llvm.x86.mmx.pmovmskb takes a x86_mmx argument - so we have to be explicit about the implied v8i8 vector type.
llvm-svn: 271789
|
| |
|
|
|
|
|
|
|
|
|
|
| |
There appears to be a strange exception thrown and crash using call_once
on a PPC build bot, and a *really* weird windows link error for
GCMetadata.obj. Still need to investigate the cause of both problems.
Original change summary:
[LPM] Reinstate r271652 to replace the CALL_ONCE_... macro in the legacy
pass manager with the new llvm::call_once facility.
llvm-svn: 271788
|
| |
|
|
| |
llvm-svn: 271787
|
| |
|
|
|
|
|
|
|
|
|
| |
fixing tis test. There are different configurations running, and they
have subtly different backtraces. I didn't notice that the configs
changed and so I kept occilating between the two.
Now I've looked at two different configs at the same time, and so this
should be much more likely to work.
llvm-svn: 271786
|
| |
|
|
|
|
|
|
|
|
|
| |
available along side the leak checking, so use the REQUIRES for that.
Also, use %run as other tests do when launching the built binary.
This fixes check-asan for me on Linux and looks like it should fix the
linux sanitizer bots as well.
llvm-svn: 271785
|
| |
|
|
|
|
|
|
| |
of lines provided with the filecheck output from the previous run. I'll
probably give up after this and get someone with a Windows build to help
me out.
llvm-svn: 271784
|
| |
|
|
|
|
| |
This should fail on frame #1 and show what that should actually be.
llvm-svn: 271783
|
| |
|
|
|
|
| |
with this, the Windows sanitizer bot will go green!
llvm-svn: 271782
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pass manager with the new llvm::call_once facility.
This reverts commit r271657 and re-applies r271652 with a fix to
actually work with arguments. In the original version, we just ended up
directly calling std::call_once via ADL because of the std::once_flag
argument. The llvm::call_once never worked with arguments. Now,
llvm::call_once is a variadic template that perfectly forwards
everything. As a part of this it had to move to the header and we use
a generic functor rather than an explict function pointer. It would be
nice to use std::invoke here but we don't have it yet. That means
pointer to members won't work here, but that seems a tolerable
compromise.
I've also tested this by forcing the fallback path, so hopefully it
sticks this time.
Original commit message:
----
[LPM] Replace the CALL_ONCE_... macro in the legacy pass manager with
the new llvm::call_once facility.
This facility matches the standard APIs and when the platform supports
it actually directly uses the standard provided functionality. This is
both more efficient on some platforms and much more TSan friendly.
The only remaining user of the cas_flag and home-rolled atomics is the
fallback implementation of call_once. I have a patch that removes them
entirely, but it needs a Windows patch to land first.
This alone substantially cleans up the macros for the legacy pass
manager, and should subsume some of the work Mehdi was doing to clear
the path for TSan testing of ThinLTO, a really important step to have
reliable upstream testing of ThinLTO in all forms.
llvm-svn: 271781
|
| |
|
|
|
|
| |
contains a correct partial schedule
llvm-svn: 271780
|
| |
|
|
|
|
| |
show enough information for me to fix the patterns used here.
llvm-svn: 271779
|
| |
|
|
|
|
|
|
| |
undefined behavior for signed integer overflow.
This is really only needed for addition, subtraction, and multiplication, but I did the bitwise ops too for overall consistency. Clang currently doesn't set NSW for signed vector operations so the undefined behavior shouldn't happen today.
llvm-svn: 271778
|
| |
|
|
| |
llvm-svn: 271777
|
| |
|
|
| |
llvm-svn: 271776
|
| |
|
|
|
|
| |
AVX512. Should allow those intrinsics to use the EVEX encoded instructions and get the extra registers when available.
llvm-svn: 271775
|
| |
|
|
|
|
| |
as a prototype for adding armv7 compact unwind reading to lldb.
llvm-svn: 271774
|