| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Also tagged a FIXME comment, and added information about why it breaks.
Bug found using AFL fuzz.
Reviewers: rafael, craig.topper
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D9729
llvm-svn: 237709
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit is the initial commit for the MIR serialization project.
It creates a new library under CodeGen called 'MIR'. This new
library adds a new machine function pass that prints out the LLVM IR
using the MIR format. This pass is then added as a last pass when a
'stop-after' option is used in llc. The new library adds the initial
functionality for parsing of MIR files as well. This commit also
extends the llc tool so that it can recognize and parse MIR input files.
Reviewers: Duncan P. N. Exon Smith, Matthias Braun, Philip Reames
Differential Revision: http://reviews.llvm.org/D9616
llvm-svn: 237708
|
| |
|
|
| |
llvm-svn: 237707
|
| |
|
|
|
|
|
| |
Explain the relation of the example to the variables in the code,
explain what bad behaviour the code avoids in this case.
llvm-svn: 237706
|
| |
|
|
| |
llvm-svn: 237705
|
| |
|
|
|
|
|
|
| |
through clang-format.
Differential Revision: http://reviews.llvm.org/D9774
llvm-svn: 237703
|
| |
|
|
|
|
|
|
|
|
| |
InstructionCombiningPass was added after LoopUnrollPass in r237395. Because
InstructionCombiningPass is strictly more powerful than InstructionSimplifierPass,
remove the unnecessary InstructionSimplifierPass.
Differential Revision: http://reviews.llvm.org/D9838
llvm-svn: 237702
|
| |
|
|
|
|
|
|
| |
cheaper to clone them after statepoint than to emit proper relocates for them. This change implements this logic. There is alredy similar optimization in CodeGenPrepare, but doing so during RewriteStatepointsForGC allows to capture more opprtunities such as relocates in loops and longer instruction chains.
Differential Revision: http://reviews.llvm.org/D9774
llvm-svn: 237701
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D8800
llvm-svn: 237697
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D8772
llvm-svn: 237696
|
| |
|
|
| |
llvm-svn: 237695
|
| |
|
|
| |
llvm-svn: 237694
|
| |
|
|
|
|
|
|
| |
type means something else under the MSYS shell.
Patch by Tzafrir Poupko!
llvm-svn: 237692
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The documentation writes vectors highest-index first whereas LLVM-IR writes
them lowest-index first. As a result, instructions defined in terms of
left_half() and right_half() had the halves reversed.
In addition to correcting them, they have been improved to allow shuffles
that use the same operand twice or in reverse order. For example, ilvev
used to accept masks of the form:
<0, n, 2, n+2, 4, n+4, ...>
but now accepts:
<0, 0, 2, 2, 4, 4, ...>
<n, n, n+2, n+2, n+4, n+4, ...>
<0, n, 2, n+2, 4, n+4, ...>
<n, 0, n+2, 2, n+4, 4, ...>
One further improvement is that splati.[bhwd] is now the preferred instruction
for splat-like operations. The other special shuffles are no longer used
for splats. This lead to the discovery that <0, 0, ...> would not cause
splati.[hwd] to be selected and this has also been fixed.
This fixes the enc-3des test from the test-suite on Mips64r6 with MSA.
Reviewers: vkalintiris
Reviewed By: vkalintiris
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D9660
llvm-svn: 237689
|
| |
|
|
| |
llvm-svn: 237687
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D8769
llvm-svn: 237685
|
| |
|
|
|
|
| |
It does not like std::min(unsigned, uint32_t).
llvm-svn: 237683
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
4, except on Darwin.
This changes the ABI used on 32-bit x86 for passing vector arguments.
Historically, clang passes the first 4 vector arguments in-register, and additional vector arguments on the stack, regardless of platform. That is different from the behavior of gcc, icc, and msvc, all of which pass only the first 3 arguments in-register.
The 3-register convention is documented, unofficially, in Agner's calling convention guide, and, officially, in the recently released version 1.0 of the i386 psABI.
Darwin is kept as is because the OS X ABI Function Call Guide explicitly documents the current (4-register) behavior.
This fixes PR21510
Differential revision: http://reviews.llvm.org/D9644
llvm-svn: 237682
|
| |
|
|
| |
llvm-svn: 237680
|
| |
|
|
| |
llvm-svn: 237678
|
| |
|
|
| |
llvm-svn: 237677
|
| |
|
|
| |
llvm-svn: 237673
|
| |
|
|
| |
llvm-svn: 237669
|
| |
|
|
|
|
|
| |
The ';' was introduced in 237642. With it in place, we get a large number of
warnings in -pedantic mode.
llvm-svn: 237667
|
| |
|
|
|
|
|
|
|
|
|
| |
This cleans up the FoldConstantArithmetic code by factoring out the case
of two ConstantSDNodes into an own function. This avoids unnecessary
complexity for many callers who already have ConstantSDNode arguments.
This also avoids an intermeidate SmallVector datastructure and a loop
over that datastructure.
llvm-svn: 237651
|
| |
|
|
|
|
| |
Bug found with AFL fuzz.
llvm-svn: 237650
|
| |
|
|
| |
llvm-svn: 237649
|
| |
|
|
|
|
| |
Bug found with AFL fuzz.
llvm-svn: 237646
|
| |
|
|
| |
llvm-svn: 237645
|
| |
|
|
| |
llvm-svn: 237644
|
| |
|
|
| |
llvm-svn: 237643
|
| |
|
|
|
|
|
|
|
|
|
|
| |
On 64-bit targets, Function has 4-bytes of padding in its struct layout.
This uses the space for the intrinsic ID. It is set and recalculated whenever the function name is set. This is similar to the current behavior which clears the function from the intrinsic ID cache when its renamed.
The intrinsic cache itself is removed as the only purpose was to speedup calls to getIntrinsicID() which now just reading the new field in the struct.
Reviewed by Duncan. http://reviews.llvm.org/D9836
llvm-svn: 237642
|
| |
|
|
| |
llvm-svn: 237641
|
| |
|
|
|
|
|
|
|
| |
This reverts commit r237210.
Also fix X86/complex-fca.ll to match the code that we used to generate
on win32 and now generate everwhere to conform to SysV.
llvm-svn: 237639
|
| |
|
|
| |
llvm-svn: 237635
|
| |
|
|
|
|
|
|
| |
This patch implements LSA instruction using mapping.
Differential Revision: http://reviews.llvm.org/D8919
llvm-svn: 237634
|
| |
|
|
| |
llvm-svn: 237633
|
| |
|
|
|
|
|
|
|
|
| |
IRBuilder::CreateCall that accepts a Function without needing to take an explicit callee Type"
Creates ambiguity in Clang callers. Reverting while I figure it out.
This reverts commit r237627.
llvm-svn: 237629
|
| |
|
|
|
|
|
|
| |
the aggregate at those indices
Bug found with AFL-fuzz.
llvm-svn: 237628
|
| |
|
|
|
|
|
|
|
| |
accepts a Function without needing to take an explicit callee Type
The common case is a direct call, so don't make all those users have to
explicitly pass the result of llvm::Function::getFunctionType.
llvm-svn: 237627
|
| |
|
|
|
|
| |
init only
llvm-svn: 237624
|
| |
|
|
| |
llvm-svn: 237623
|
| |
|
|
| |
llvm-svn: 237622
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ld64 currently mishandles internal pointer relocations (i.e.
ARM64_RELOC_UNSIGNED referred to by section & offset rather than symbol). The
existing __cfstring clause was an early discovery and workaround for this, but
the problem is wider and we should avoid such relocations wherever possible for
now.
This code should be reverted to allowing internal relocations as soon as
possible.
PR23437.
llvm-svn: 237621
|
| |
|
|
|
|
| |
changes in ConstantsContext.h.
llvm-svn: 237620
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Added isLoadableOrStorableType to PointerType.
We were doing some checks in some places, occasionally assert()ing instead
of telling the caller. With this patch, I'm putting all type checking in
the same place for load/store type instructions, and verifying the same
thing every time.
I also added a check for load/store of a function type.
Applied extracted check to Load, Store, and Cmpxcg.
I don't have exhaustive tests for all of these, but all Error() calls in
TypeCheckLoadStoreInst are being tested (in invalid.test).
Reviewers: dblaikie, rafael
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D9785
llvm-svn: 237619
|
| |
|
|
|
|
| |
CORPUS' to synchronize with other processes
llvm-svn: 237617
|
| |
|
|
|
|
|
| |
The destructor of BlockScalarNode is never called. Store the contained
string in BumpPtrAllocated memory instead.
llvm-svn: 237614
|
| |
|
|
|
|
|
|
|
| |
This was previously returning int. However there are no negative opcode
numbers and more importantly this was needlessly different from
MCInstrDesc::getOpcode() (which even is the value returned here) and
SDValue::getOpcode()/SDNode::getOpcode().
llvm-svn: 237611
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Add an assertion in verifier.cpp to make sure gc_relocate relocate a gc pointer, and its return type has the same address space with the relocated pointer.
Reviewers: reames, AndyAyers, sanjoy, pgavlin
Reviewed By: pgavlin
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D9695
llvm-svn: 237605
|