| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The new algorithm remembers the uses encountered while walking backwards
until a matching def is found. Contrary to the previous version this:
- Works without LiveIntervals being available
- Allows to increase the precision to subregisters/lanemasks
(not used for now)
The changes in the AMDGPU tests are necessary because the R600 scheduler
is not stable with respect to the order of nodes in the ready queues.
Differential Revision: http://reviews.llvm.org/D9068
llvm-svn: 254577
|
|
|
|
| |
llvm-svn: 254575
|
|
|
|
|
|
|
| |
The CreatedADWARFSection flag was added in r232842, but isn't cleared
properly when resetting the streamer's state. Fix that.
llvm-svn: 254571
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D15167
llvm-svn: 254570
|
|
|
|
| |
llvm-svn: 254567
|
|
|
|
| |
llvm-svn: 254565
|
|
|
|
|
|
|
|
|
| |
- Add extenders when necessary.
- Handle some basic relocations.
This should fix the failure in tools/clang/test/CodeGenCXX/crash.cpp
llvm-svn: 254564
|
|
|
|
|
|
| |
No functionality change is intended.
llvm-svn: 254562
|
|
|
|
| |
llvm-svn: 254560
|
|
|
|
|
|
|
|
|
|
|
|
| |
This replaces DoNotLinkFromSource with ValuesToLink. It also moves the
computation of ValuesToLink earlier.
It is a bit simpler and an important step in slitting the linker into an
ir mover and a linker proper.
The test change is because we now avoid creating dead declarations.
llvm-svn: 254559
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D15098
llvm-svn: 254558
|
|
|
|
| |
llvm-svn: 254557
|
|
|
|
|
|
|
|
|
| |
Having to import an alias as declaration is not thinlto specific.
The test difference are because when we already have a decl and we are
not importing it, we just leave the decl alone.
llvm-svn: 254556
|
|
|
|
| |
llvm-svn: 254549
|
|
|
|
|
|
|
|
| |
This call should in fact be made by RegScavenger::enterBasicBlock()
called below. The first call does nothing except for triggering UB,
indicated by UBSan (passing nullptr to memset()).
llvm-svn: 254548
|
|
|
|
|
|
|
|
|
| |
std::hex is not used anywhere in LLVM code base except for this place,
and it has a known undefined behavior (at least in libstdc++ 4.9.3):
https://llvm.org/bugs/show_bug.cgi?id=18156, which fires in UBSan
bootstrap of LLVM.
llvm-svn: 254547
|
|
|
|
|
|
|
| |
This was an omission when handling COFF style comdats with local keys.
Should fix the sanitizer-windows bot.
llvm-svn: 254543
|
|
|
|
|
|
| |
They are independent.
llvm-svn: 254541
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D14508
llvm-svn: 254540
|
|
|
|
| |
llvm-svn: 254539
|
|
|
|
|
|
|
| |
We were failing to copy the fact that the GV is weak and in the case of
an alias, producing invalid IR.
llvm-svn: 254538
|
|
|
|
|
|
|
|
|
| |
AggressiveAntiDepBreaker was renaming registers specified by the user
for inline assembly. While this will work for compiler-specified
registers, it won't work for user-specified registers, and at the time
this runs, I don't currently see a way to distinguish them.
llvm-svn: 254532
|
|
|
|
|
|
| |
Remove whitespace from blank lines. NFC
llvm-svn: 254531
|
|
|
|
|
|
| |
Didn't break any tests, but did unnecessary extra work.
llvm-svn: 254529
|
|
|
|
| |
llvm-svn: 254527
|
|
|
|
|
|
|
|
|
| |
vector.resize() is significantly slower than memset in many STLs
and the cost of initializing these vectors is significant on targets
with many registers. Since we don't need the overhead of a vector,
use a simple unique_ptr instead.
llvm-svn: 254526
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
discard
Summary: This changes overflow handling during instrumentation profile merge. Rathar than throwing away records that would result in counter overflow, merged counts are instead clamped to the maximum representable value. A warning about counter overflow is still surfaced to the user as before.
Reviewers: dnovillo, davidxl, silvas
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D14893
llvm-svn: 254525
|
|
|
|
|
|
|
|
| |
The ARM ARM is clear that 128-bit loads are only guaranteed to have been atomic
if there has been a corresponding successful stxp. It's less clear for AArch32, so
I'm leaving that alone for now.
llvm-svn: 254524
|
|
|
|
|
|
| |
stack.
llvm-svn: 254523
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Only global or readonly segment variables should appear in object files.
Reviewers: arsenm
Subscribers: arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D15111
llvm-svn: 254519
|
|
|
|
|
|
|
|
|
|
| |
== C2) -> (A | (C1 ^ C2)) == C2 when C1 ^ C2 is a power of 2.
Differential Revision: http://reviews.llvm.org/D14223
Patch by Amaury SECHET!
llvm-svn: 254518
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|9B DD /7| FSTSW m2byte| Valid Valid Store FPU status word at m2byteafter checking for pending unmasked floating-point exceptions.|
|9B DF E0| FSTSW AX| Valid Valid Store FPU status word in AX register after checking for pending unmasked floating-point exceptions.|
|DD /7 |FNSTSW *m2byte| Valid Valid Store FPU status word at m2bytewithout checking for pending unmasked floating-point exceptions.|
|DF E0 |FNSTSW *AX| Valid Valid Store FPU status word in AX register without checking for pending unmasked floating-point exceptions|
m2byte is word register, and therefor instruction operand need to be change from f32mem to i16mem.
Differential Revision: http://reviews.llvm.org/D14953
llvm-svn: 254512
|
|
|
|
|
|
| |
Adds support for the new Cortex-A35 ARMv8-A core.
llvm-svn: 254503
|
|
|
|
|
|
| |
not being expanded. Test case included.
llvm-svn: 254501
|
|
|
|
|
|
|
|
| |
REPLV.PH, REPLV.QB and MTHLIP instructions
Differential Revision: http://reviews.llvm.org/D14527
llvm-svn: 254496
|
|
|
|
|
|
|
|
|
|
| |
On FMA targets, we can avoid having to load a constant to negate a float/double multiply by instead using a FNMSUB (-(X*Y)-0)
Fix for PR24366
Differential Revision: http://reviews.llvm.org/D14909
llvm-svn: 254495
|
|
|
|
|
|
|
|
|
| |
I checked and updated the cost of AVX-512 conversion operations. Added cost of conversion operations in DQ mode.
Conversion of illegal types that requires vector split is not calculated right now (like for other X86 targets).
Differential Revision: http://reviews.llvm.org/D15074
llvm-svn: 254494
|
|
|
|
|
|
|
|
| |
add builtin_ia32_vcomisd and builtin_ia32_vcomisd
Differential Revision: http://reviews.llvm.org/D14331
llvm-svn: 254493
|
|
|
|
|
|
| |
synthesize one)
llvm-svn: 254492
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
time.
The new overloaded function is used when an attribute is added to a
large number of slots of an AttributeSet (for example, to function
parameters). This is much faster than calling AttributeSet::addAttribute
once per slot, because AttributeSet::getImpl (which calls
FoldingSet::FIndNodeOrInsertPos) is called only once per function
instead of once per slot.
With this commit, clang compiles a file which used to take over 22
minutes in just 13 seconds.
rdar://problem/23581000
Differential Revision: http://reviews.llvm.org/D15085
llvm-svn: 254491
|
|
|
|
|
|
| |
needed to only try to perform 256-it shuffle combines on legal vector types.
llvm-svn: 254490
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is very rudimentary support for debug_cu_index, but it is enough to
allow llvm-dwarfdump to find the offsets for contributions and
correctly dump debug_info.
It will need to actually find the real signature of the unit and build
the real hash table with the right number of buckets, as per the DWP
specification.
It will also need to be expanded to cover the tu_index as well.
llvm-svn: 254489
|
|
|
|
| |
llvm-svn: 254487
|
|
|
|
|
|
|
|
|
|
|
|
| |
single one
For efficiency reason, when importing multiple functions for the same Module,
we can avoid reparsing it every time.
Differential Revision: http://reviews.llvm.org/D15102
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 254486
|
|
|
|
| |
llvm-svn: 254484
|
|
|
|
|
|
| |
not in addition to, regular coverage. Do the regular coverage in the run-time instead
llvm-svn: 254482
|
|
|
|
| |
llvm-svn: 254480
|
|
|
|
|
|
|
|
|
|
|
|
| |
When linking static archive, there is no individual module files to
load. Instead they can be mmap'ed and could be initialized from a
buffer directly. The callback provide flexibility to override the
scheme for loading module from the summary.
Differential Revision: http://reviews.llvm.org/D15101
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 254479
|
|
|
|
|
|
|
|
| |
This is a superset of the fix done in r254448.
This fixes PR25607.
llvm-svn: 254478
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We mustn't introduce a shift of exactly 64-bits for any inputs, since that's an
UNDEF value (and worse, it's not what you want with the natural Arch64
implementation).
The generated code is pretty horrific, but I couldn't come up with an obviously
better alternative (if the amount is constant EXTR could help). Turns out
128-bit shifts are just nasty.
rdar://22491037
llvm-svn: 254475
|