- Mar 04, 2014
-
-
Will Schmidt authored
Register the Asm Printer for the ppc64le target. This fills in a spot that was missed in an earlier change (r187179). llvm-svn: 202861
-
Richard Osborne authored
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
-
Daniel Sanders authored
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
-
Chandler Carruth authored
instructions. llvm-svn: 202834
-
Chandler Carruth authored
IR types. llvm-svn: 202827
-
Chandler Carruth authored
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
-
Chandler Carruth authored
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
-
Chandler Carruth authored
abstracting between a CallInst and an InvokeInst, both of which are IR concepts. llvm-svn: 202816
-
Chandler Carruth authored
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
-
Chandler Carruth authored
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
-
Chandler Carruth authored
llvm-svn: 202811
-
Vladimir Medic authored
This patch implements .set mips32r2 directive and sets appropriate feature 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
-
Yaron Keren authored
llvm-svn: 202806
-
Kevin Qin authored
llvm-svn: 202775
-
Reid Kleckner authored
We were dropping the displacement on the floor if we also had some immediate offset. Should fix PR19033. llvm-svn: 202774
-
Chad Rosier authored
This reverts commit ff717c8fc786a0cfa1602982b91895fa09e514fc. llvm-svn: 202773
-
Chad Rosier authored
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
-
- Mar 03, 2014
-
-
Daniel Sanders authored
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
-
Ed Maste authored
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
-
Vladimir Medic authored
Fixing a build failure reported by certain buildbots. This will disable jalx instruction for micromips target. llvm-svn: 202715
-
Vladimir Medic authored
This patch implements jalx instruction for Mips architecture.This 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
-
Venkatraman Govindaraju authored
llvm-svn: 202670
-
- Mar 02, 2014
-
-
Venkatraman Govindaraju authored
llvm-svn: 202666
-
Venkatraman Govindaraju authored
llvm-svn: 202663
-
Venkatraman Govindaraju authored
llvm-svn: 202661
-
Venkatraman Govindaraju authored
llvm-svn: 202660
-
Hal Finkel authored
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
-
Benjamin Kramer authored
The old implementation is no longer needed in C++11. llvm-svn: 202644
-
Benjamin Kramer authored
Remove the old functions. llvm-svn: 202636
-
Venkatraman Govindaraju authored
[SparcV9] Adds support for branch on integer register instructions (BPr) and conditional moves on integer register (MOVr/FMOVr). llvm-svn: 202628
-
Elena Demikhovsky authored
llvm-svn: 202624
-
Craig Topper authored
llvm-svn: 202621
-
Craig Topper authored
llvm-svn: 202618
-
Venkatraman Govindaraju authored
[Sparc] Add support for parsing branches and conditional move instructions with %fcc1-%fcc3 conditional registers. llvm-svn: 202616
-
Venkatraman Govindaraju authored
[Sparc] Make floating point branch instruction formats to accept %fcc0-%fcc1 conditional registers as input. No functionality change. llvm-svn: 202614
-
Venkatraman Govindaraju authored
llvm-svn: 202610
-
Venkatraman Govindaraju authored
llvm-svn: 202604
-
- Mar 01, 2014
-
-
Venkatraman Govindaraju authored
llvm-svn: 202602
-
Hal Finkel authored
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
-
Venkatraman Govindaraju authored
llvm-svn: 202599
-