| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 202985
|
| |
|
|
|
|
| |
From Brad Smith.
llvm-svn: 202967
|
| |
|
|
|
|
| |
bits.This directive is a counterpart of -mattr=dsp command line option with the exception that it does not influence elf header flags. The usage example is gives in test file.
llvm-svn: 202966
|
| |
|
|
| |
llvm-svn: 202905
|
| |
|
|
|
|
|
|
|
|
| |
This is required to include MSVC's <atomic> header, which we do now in
LLVM.
Tests forthcoming in Clang, since that's where we test semantic inline
asm changes.
llvm-svn: 202865
|
| |
|
|
| |
llvm-svn: 202863
|
| |
|
|
|
|
|
|
| |
Register the Asm Printer for the ppc64le target.
This fills in a spot that was missed in an earlier change (r187179).
llvm-svn: 202861
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously for:
tail call void inttoptr (i64 65536 to void ()*)() nounwind
We would emit:
bl 65536
The immediate operand of the bl instruction is a relative offset so it is
wrong to use the absolute address here.
llvm-svn: 202860
|
| |
|
|
|
|
|
|
|
|
| |
Summary:
Previously, attempting to extract lanes 2 and 3 would actually extract lane 1.
The MSA CodeGen tests only covered lanes 0 and 1.
Differential Revision: http://llvm-reviews.chandlerc.com/D2935
llvm-svn: 202848
|
| |
|
|
|
|
| |
instructions.
llvm-svn: 202834
|
| |
|
|
|
|
| |
IR types.
llvm-svn: 202827
|
| |
|
|
|
|
|
|
|
|
|
|
| |
directly care about the Value class (it is templated so that the key can
be any arbitrary Value subclass), it is in fact concretely tied to the
Value class through the ValueHandle's CallbackVH interface which relies
on the key type being some Value subclass to establish the value handle
chain.
Ironically, the unittest is already in the right library.
llvm-svn: 202824
|
| |
|
|
|
|
|
|
|
|
|
| |
Move the test for this class into the IR unittests as well.
This uncovers that ValueMap too is in the IR library. Ironically, the
unittest for ValueMap is useless in the Support library (honestly, so
was the ValueHandle test) and so it already lives in the IR unittests.
Mmmm, tasty layering.
llvm-svn: 202821
|
| |
|
|
|
|
|
| |
abstracting between a CallInst and an InvokeInst, both of which are IR
concepts.
llvm-svn: 202816
|
| |
|
|
|
|
|
|
|
| |
name might indicate, it is an iterator over the types in an instruction
in the IR.... You see where this is going.
Another step of modularizing the support library.
llvm-svn: 202815
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
business.
This header includes Function and BasicBlock and directly uses the
interfaces of both classes. It has to do with the IR, it even has that
in the name. =] Put it in the library it belongs to.
This is one step toward making LLVM's Support library survive a C++
modules bootstrap.
llvm-svn: 202814
|
| |
|
|
| |
llvm-svn: 202811
|
| |
|
|
|
|
| |
bits. It also introduces helper functions that are used to set and clear feature bits as necessary. This directive is a counterpart of -mips32r2 command line options with the exception that it does not influence elf header flags. The usage example is gives in test file.
llvm-svn: 202807
|
| |
|
|
| |
llvm-svn: 202806
|
| |
|
|
| |
llvm-svn: 202775
|
| |
|
|
|
|
|
|
|
| |
We were dropping the displacement on the floor if we also had some
immediate offset.
Should fix PR19033.
llvm-svn: 202774
|
| |
|
|
|
|
| |
This reverts commit ff717c8fc786a0cfa1602982b91895fa09e514fc.
llvm-svn: 202773
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for the Cortex-A53 subtarget in the AArch64 backend.
This patch lays the ground work to annotate each AArch64 instruction
(no NEON yet) with a list of SchedReadWrite types. The patch also
provides the Cortex-A53 processor resources, maps those the the default
SchedReadWrites, and provides basic latency. NEON support will be added
in a subsequent patch with proper forwarding logic.
Verification was done by setting the pre-RA scheduler to linearize to
better gauge the effect of the MIScheduler. Even without modeling the
forward logic, the results show a modest improvement for Cortex-A53.
Reviewers: apazos, mcrosier, atrick
Patch by Dave Estes <cestes@codeaurora.org>!
llvm-svn: 202767
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Parts of the compiler still believed MSA load/stores have a 16-bit offset when
it is actually 10-bit. Corrected this, and fixed a closely related issue this
uncovered where load/stores with 10-bit and 12-bit offsets (MSA and microMIPS
respectively) could not load/store using offsets from the stack/frame pointer.
They accepted frameindex+offset, but not frameindex by itself.
Reviewers: jacksprat, matheusalmeida
Reviewed By: jacksprat
Differential Revision: http://llvm-reviews.chandlerc.com/D2888
llvm-svn: 202717
|
| |
|
|
|
|
|
|
|
| |
This fixes invalid lengths in .debug_aranges on big-endian mips64
(lengths appear to be left-shifted by 32 bits) and in .debug_loc.
Differential Revision: http://llvm-reviews.chandlerc.com/D2517
llvm-svn: 202716
|
| |
|
|
|
|
| |
jalx instruction for micromips target.
llvm-svn: 202715
|
| |
|
|
|
|
| |
instruction executes a procedure call within the current 256 MB-aligned region and change the ISA Mode from MIPS32 to microMIPS32 or MIPS16e. Usage samples for assembler and dissasembler are provided as well.
llvm-svn: 202706
|
| |
|
|
|
|
| |
backend.
llvm-svn: 202670
|
| |
|
|
| |
llvm-svn: 202666
|
| |
|
|
| |
llvm-svn: 202663
|
| |
|
|
| |
llvm-svn: 202661
|
| |
|
|
| |
llvm-svn: 202660
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that the PowerPC backend can track individual CR bits as first-class
registers, we should also have a way of allocating them for inline asm
statements. Because these registers are only one bit, if an output variable is
implicitly cast to a larger integer size, we'll get an any_extend to that
larger type (this is part of the existing target-independent logic). As a
result, regardless of the size of the output type, only the first bit is
meaningful.
The constraint identifier "wc" has been chosen for this purpose. Although gcc
does not currently support allocating individual CR bits, this identifier
choice has been coordinated with the gcc PowerPC team, and will be marked as
reserved for this purpose in the gcc constraints.md file.
llvm-svn: 202657
|
| |
|
|
|
|
| |
The old implementation is no longer needed in C++11.
llvm-svn: 202644
|
| |
|
|
|
|
| |
Remove the old functions.
llvm-svn: 202636
|
| |
|
|
|
|
| |
conditional moves on integer register (MOVr/FMOVr).
llvm-svn: 202628
|
| |
|
|
| |
llvm-svn: 202624
|
| |
|
|
| |
llvm-svn: 202621
|
| |
|
|
| |
llvm-svn: 202618
|
| |
|
|
|
|
| |
with %fcc1-%fcc3 conditional registers.
llvm-svn: 202616
|
| |
|
|
|
|
|
|
| |
conditional registers as input.
No functionality change.
llvm-svn: 202614
|
| |
|
|
| |
llvm-svn: 202610
|
| |
|
|
| |
llvm-svn: 202604
|
| |
|
|
| |
llvm-svn: 202602
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This generalizes the code to eliminate extra truncs/exts around i1 bit
operations to also do the same on PPC64 for i32 bit operations. This eliminates
a fairly prevalent code wart:
int foo(int a) {
return a == 5 ? 7 : 8;
}
On PPC64, because of the extension implied by the ABI, this would generate:
cmplwi 0, 3, 5
li 12, 8
li 4, 7
isel 3, 4, 12, 2
rldicl 3, 3, 0, 32
blr
where the 'rldicl 3, 3, 0, 32', the extension, is completely unnecessary. At
least for the single-BB case (which is all that the DAG combine mechanism can
handle), this unnecessary extension is no longer generated.
llvm-svn: 202600
|
| |
|
|
| |
llvm-svn: 202599
|
| |
|
|
| |
llvm-svn: 202598
|
| |
|
|
| |
llvm-svn: 202597
|
| |
|
|
|
|
|
|
| |
of boilerplate.
No intended functionality change.
llvm-svn: 202588
|
| |
|
|
| |
llvm-svn: 202581
|