| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 215746
|
| |
|
|
|
|
| |
They can be compared for identity.
llvm-svn: 215745
|
| |
|
|
|
|
|
|
|
|
|
|
| |
MSVC gives this awesome diagnostic:
..\lib\Target\X86\X86ISelLowering.cpp(7085) : error C2971: 'llvm::VariadicFunction1' : template parameter 'Func' : 'isShuffleEquivalentImpl' : a local variable cannot be used as a non-type argument
..\include\llvm/ADT/VariadicFunction.h(153) : see declaration of 'llvm::VariadicFunction1'
..\lib\Target\X86\X86ISelLowering.cpp(7061) : see declaration of 'isShuffleEquivalentImpl'
Using an anonymous namespace makes the problem go away.
llvm-svn: 215744
|
| |
|
|
|
|
| |
<rdar://problem/17727734>
llvm-svn: 215743
|
| |
|
|
|
|
|
|
| |
Add initial support for using LIT to run the tests on FreeBSD.
More work may need to be done to add support for FreeBSD but this is a
good initial step.
llvm-svn: 215742
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes include:
1 - added new FileSpec method: bool FileSpec::Readable()
2 - detect when an executable is not readable and give an appropriate error for:
(lldb) file /tmp/unreadablefile
3 - detect when a core file is not readable and give an appropriate error
4 - detect when a specified core file doesn't exist and give an appropriate error
<rdar://problem/17727734>
llvm-svn: 215741
|
| |
|
|
|
|
|
|
|
|
|
| |
Turning off explicit template instantiation leads to a pretty
significant build time and code size cost. We're better off dealing
with ABI incompatibility issues that come up in a less heavy handed
way.
This reverts commit r189610.
llvm-svn: 215740
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Ordinarily (shl (add x, c1), c2) -> (add (shl x, c2), c1 << c2)
is only done if the add has one use. If the resulting constant
add can be folded into an addressing mode, force this to happen
for the pointer operand.
This ends up happening a lot because of how LDS objects are allocated.
Since the globals are allocated next to each other, acessing the first
element of the second object is directly indexed by a shifted pointer.
llvm-svn: 215739
|
| |
|
|
| |
llvm-svn: 215738
|
| |
|
|
|
|
| |
where applicable for blending.
llvm-svn: 215737
|
| |
|
|
|
|
|
| |
user provided setter name (as declared in @property attribute declaration).
rdar://18022762
llvm-svn: 215736
|
| |
|
|
|
|
|
|
| |
As Jim pointed out this assert isn't really needed to test for correctness,
because the code right afterwards does the same check and falls-back to
SelectionDAG - as intended.
llvm-svn: 215735
|
| |
|
|
| |
llvm-svn: 215734
|
| |
|
|
|
|
| |
Thanks Jim for finding this.
llvm-svn: 215733
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The default assumes that a 16-bit signed offset is used.
LDS instruction use a 16-bit unsigned offset, so it wasn't
being used in some cases where it was assumed a negative offset
could be used.
More should be done here, but first isLegalAddressingMode needs
to gain an addressing mode argument. For now, copy most of the rest
of the default implementation with the immediate offset change.
llvm-svn: 215732
|
| |
|
|
| |
llvm-svn: 215731
|
| |
|
|
|
|
|
|
| |
Made Process::Attach list the matching processes if there is more than one match.
<rdar://problem/18023352>
llvm-svn: 215730
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In a previous iteration of the pass, we would try to compensate for
writeback by updating later instructions and/or inserting a SUBS to
reset the base register if necessary.
Since such a SUBS sets the condition flags it's not generally safe to do
this. For now, only merge LDR/STRs if there is no writeback to the base
register (LDM that loads into the base register) or the base register is
killed by one of the merged instructions. These cases are clear wins
both in terms of instruction count and performance.
Also add three new test cases, and update the existing ones accordingly.
llvm-svn: 215729
|
| |
|
|
|
|
|
|
|
|
|
| |
This adds some code back that was deleted in r92053. The location of the
last merged memory operation needs to be kept up-to-date since MemOps
may be in a different order to the original instruction stream to
allow merging (since registers need to be in ascending order). Also
simplify the logic to determine BaseKill using findRegisterUseOperandIdx
to use an equivalent function call instead.
llvm-svn: 215728
|
| |
|
|
|
|
|
|
|
| |
We actually need to return the register into which we materialized the constant
and not just "true" for success. This code is currently partially dead, that is
why it didn't trigger any failures yet. Once I change the order of the constant
materialization this code will be fully exercised.
llvm-svn: 215727
|
| |
|
|
| |
llvm-svn: 215726
|
| |
|
|
| |
llvm-svn: 215725
|
| |
|
|
|
|
| |
clang-format the definitions of these functions
llvm-svn: 215724
|
| |
|
|
|
|
|
|
|
| |
Replace the old code in GVN and BBVectorize with it. Update SimplifyCFG to use
it.
Patch by Björn Steinbrink!
llvm-svn: 215723
|
| |
|
|
|
|
| |
__interception::GetRealFunctionAddress (follow-up to r215707)
llvm-svn: 215722
|
| |
|
|
| |
llvm-svn: 215721
|
| |
|
|
| |
llvm-svn: 215720
|
| |
|
|
| |
llvm-svn: 215719
|
| |
|
|
| |
llvm-svn: 215718
|
| |
|
|
| |
llvm-svn: 215717
|
| |
|
|
|
|
|
|
|
|
| |
big-endian mode.
Patch by Asiri Rathnayake.
Differential Revision: http://reviews.llvm.org/D4922
llvm-svn: 215716
|
| |
|
|
| |
llvm-svn: 215715
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: klimek
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D4911
llvm-svn: 215714
|
| |
|
|
| |
llvm-svn: 215713
|
| |
|
|
|
|
| |
We already require CFI, so it should be safe to require .leb128 and .uleb128.
llvm-svn: 215712
|
| |
|
|
|
|
|
|
|
|
| |
I had deferred adding this test case until I could get it down to a
reasonable size. That's done now.
Thanks,
Bill
llvm-svn: 215711
|
| |
|
|
| |
llvm-svn: 215708
|
| |
|
|
|
|
| |
re-written soon
llvm-svn: 215707
|
| |
|
|
| |
llvm-svn: 215706
|
| |
|
|
|
|
| |
of it. NFC.
llvm-svn: 215705
|
| |
|
|
| |
llvm-svn: 215704
|
| |
|
|
|
|
| |
Silences GCC's -Wcast-qual.
llvm-svn: 215703
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
the new shuffle lowering and an implementation for v4 shuffles.
This allows us to handle non-half-crossing shuffles directly for v4
shuffles, both integer and floating point. This currently misses places
where we could perform the blend via UNPCK instructions, but otherwise
generates equally good or better code for the test cases included to the
existing vector shuffle lowering. There are a few cases that are
entertainingly better. ;]
llvm-svn: 215702
|
| |
|
|
|
|
|
|
|
| |
BLENDPS, BLENDPD, and PBLENDW instructions into pretty shuffle comments.
These will be used in my next commit as part of test cases for AVX
shuffles which can directly use blend in more places.
llvm-svn: 215701
|
| |
|
|
|
|
|
|
|
|
| |
These are system-only instructions for CPUs with virtualization
extensions, allowing a hypervisor easy access to all of the various
different AArch32 registers.
rdar://problem/17861345
llvm-svn: 215700
|
| |
|
|
| |
llvm-svn: 215699
|
| |
|
|
|
|
| |
register. This patch enables the instruction to accept other fcc registers. The aliases with default fcc0 registers are also defined.
llvm-svn: 215698
|
| |
|
|
|
|
|
|
|
| |
Since __SIZEOF_LONG_LONG__ is always defined as 8 on ARM targets,
there's no point in checking this. NFC.
Patch by Moritz Roth.
llvm-svn: 215697
|
| |
|
|
|
|
|
| |
elements of a shuffle mask and simplify how it works. No functionality
changed now that the bug that was here has been fixed.
llvm-svn: 215696
|
| |
|
|
| |
llvm-svn: 215695
|