| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
noinline attribute a long time ago.
llvm-svn: 153806
|
| |
|
|
| |
llvm-svn: 153805
|
| |
|
|
| |
llvm-svn: 153804
|
| |
|
|
| |
llvm-svn: 153803
|
| |
|
|
| |
llvm-svn: 153802
|
| |
|
|
|
|
| |
one point, and I forgot to go back and clean it up. Sorry about that. =/
llvm-svn: 153801
|
| |
|
|
|
|
| |
things around.
llvm-svn: 153799
|
| |
|
|
|
|
| |
node and returning it if one didn't exist.
llvm-svn: 153798
|
| |
|
|
|
|
|
|
| |
The powi intrinsic requires special handling because it always takes a single
integer power regardless of the result type. As a result, we can vectorize
only if the powers are equal. Fixes PR12364.
llvm-svn: 153797
|
| |
|
|
| |
llvm-svn: 153796
|
| |
|
|
| |
llvm-svn: 153795
|
| |
|
|
|
|
|
|
| |
First small step toward modeling multi-register multi-pressure. In the
future, register units can also be used to model liveness and
aliasing.
llvm-svn: 153794
|
| |
|
|
|
|
|
|
|
|
|
|
| |
ARMConstantIslandPass still has bugs where jump table compression can
cause constant pool entries to go out of range.
Add a safety margin of 2 bytes when placing constant islands, but use
the real max displacement for verification.
<rdar://problem/11156595>
llvm-svn: 153789
|
| |
|
|
| |
llvm-svn: 153788
|
| |
|
|
|
|
|
| |
into the function.
* Reorder some header files.
llvm-svn: 153783
|
| |
|
|
|
|
| |
It's slow, bloated and completely redundant with MCRegisterClass::contains.
llvm-svn: 153782
|
| |
|
|
|
|
|
|
|
| |
The 8-bit payload is not contiguous in the opcode. Move the upper nibble
over 4 bits into the correct place.
rdar://11158641
llvm-svn: 153780
|
| |
|
|
|
|
| |
This allows suffix sharing in register names. (AX is a suffix of EAX).
llvm-svn: 153777
|
| |
|
|
|
|
|
|
|
| |
Use an explicit comparator instead of the default.
The sets are sorted, but not using the default comparator. Hopefully,
this will unbreak the Linux builders.
llvm-svn: 153772
|
| |
|
|
|
|
| |
--enable-expensive-checks build.
llvm-svn: 153771
|
| |
|
|
|
|
|
|
| |
When an immediate is both a value [t2_]so_imm and a [t2_]so_imm_neg,
we want to use the non-negated form to make sure we prefer the normal
encoding, not the aliased encoding via the negation of, e.g., 'cmp.w'.
llvm-svn: 153770
|
| |
|
|
|
|
|
|
|
| |
Make the non-tied register operand names line up with what the base
class encoding handler expects.
rdar://11157236
llvm-svn: 153766
|
| |
|
|
| |
llvm-svn: 153765
|
| |
|
|
|
|
| |
Many register classes have the same value types. Share the table space.
llvm-svn: 153764
|
| |
|
|
|
|
|
|
| |
TableGen emits lists of sub-registers, super-registers, and overlaps. Put
them all in a single table and use a SequenceToOffsetTable to share
suffixes.
llvm-svn: 153761
|
| |
|
|
|
|
|
|
| |
This is similar to the StringToOffsetTable we use to produce string
tables, but it can be used for other sequences than strings, and it
eliminates entries for suffixes.
llvm-svn: 153760
|
| |
|
|
|
|
|
|
|
| |
For 'adds r2, r2, #56' outside of an IT block, the 16-bit encoding T2
can be used for this syntax. Prefer the narrow encoding when possible.
rdar://11156277
llvm-svn: 153759
|
| |
|
|
|
|
|
| |
needed for correctness, but still doesn't clean up code that now unnecessary
checks for reachability.
llvm-svn: 153755
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. The main works will made in the RuntimeDyLdImpl with uses the ObjectFile class. RuntimeDyLdMachO and RuntimeDyLdELF now only parses relocations and resolve it. This is allows to make improvements of the RuntimeDyLd more easily. In addition the support for COFF can be easily added.
2. Added ARM relocations to RuntimeDyLdELF.
3. Added support for stub functions for the ARM, allowing to do a long branch.
4. Added support for external functions that are not loaded from the object files, but can be loaded from external libraries. Now MCJIT can correctly execute the code containing the printf, putc, and etc.
5. The sections emitted instead functions, thanks Jim Grosbach. MemoryManager.startFunctionBody() and MemoryManager.endFunctionBody() have been removed.
6. MCJITMemoryManager.allocateDataSection() and MCJITMemoryManager. allocateCodeSection() used JMM->allocateSpace() instead of JMM->allocateCodeSection() and JMM->allocateDataSection(), because I got an error: "Cannot allocate an allocated block!" with object file contains more than one code or data sections.
llvm-svn: 153754
|
| |
|
|
|
|
|
|
| |
Make sure to treat immediates as unsigned when doing relative comparisons.
rdar://11153621
llvm-svn: 153753
|
| |
|
|
|
|
| |
caused the slowdown last time.
llvm-svn: 153747
|
| |
|
|
| |
llvm-svn: 153741
|
| |
|
|
| |
llvm-svn: 153740
|
| |
|
|
|
|
|
|
| |
fixup_arm_condbranch.
Patch by Tim Northover!
llvm-svn: 153737
|
| |
|
|
|
|
| |
tailcall opt. rdar://11140249
llvm-svn: 153717
|
| |
|
|
| |
llvm-svn: 153711
|
| |
|
|
| |
llvm-svn: 153706
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
here but it has no other uses, then we have a problem. E.g.,
int foo (const int *x) {
char a[*x];
return 0;
}
If we assign 'a' a vreg and fast isel later on has to use the selection
DAG isel, it will want to copy the value to the vreg. However, there are
no uses, which goes counter to what selection DAG isel expects.
<rdar://problem/11134152>
llvm-svn: 153705
|
| |
|
|
|
|
| |
load.
llvm-svn: 153704
|
| |
|
|
| |
llvm-svn: 153701
|
| |
|
|
|
|
|
|
|
|
| |
This pass splits basic blocks to insert constant islands, and it
doesn't recompute the live-in lists. No later passes depend on accurate
liveness information.
This fixes PR12410 where the machine code verifier was complaining.
llvm-svn: 153700
|
| |
|
|
|
|
|
|
|
|
|
| |
We are sometimes allocatinog from the DPair register class which
contains odd-even pairs in addition to the Q registers.
Place the Q registers first in the DPair allocation order as they can be
copied with a single instruction. The odd-even pairs should only be
allocated as a last resort.
llvm-svn: 153699
|
| |
|
|
| |
llvm-svn: 153697
|
| |
|
|
|
|
| |
vmov.f32.
llvm-svn: 153696
|
| |
|
|
|
|
| |
Added ExecutionEngine/MCJIT tests.
llvm-svn: 153694
|
| |
|
|
| |
llvm-svn: 153691
|
| |
|
|
|
|
|
|
|
| |
The CMP->CMN alias was matching for an immediate of zero when it
should only match for negative values.
rdar://11129224
llvm-svn: 153689
|
| |
|
|
|
|
| |
testcase require asserts.
llvm-svn: 153687
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
ARM recently gained DPair, DTriple, and DQuad register classes.
Update copyPhysReg() to handle copies in these register classes.
No test case, it is difficult to make the register allocator emit the
odd copies reliably. The missing DPair copy caused a failure on
partialsums in the nightly test suite.
<rdar://problem/11147997>
llvm-svn: 153686
|
| |
|
|
| |
llvm-svn: 153684
|