- Dec 17, 2012
-
-
Craig Topper authored
Remove EFLAGS from the BLSI/BLSMSK/BLSR patterns. The nodes created by DAG combine don't contain an EFLAGS def. llvm-svn: 170308
-
Craig Topper authored
Simplify BMI ANDN matching to use patterns instead of a DAG combine. Also add ANDN to isDefConvertible. llvm-svn: 170305
-
Craig Topper authored
llvm-svn: 170304
-
Craig Topper authored
Remove store forms of DEC/INC from isDefConvertible. Since they are stores they don't have a register def. llvm-svn: 170303
-
- Dec 16, 2012
-
-
Richard Osborne authored
llvm-svn: 170293
-
Richard Osborne authored
Currently there is no instruction encoding info and XCoreDisassembler::getInstruction() always returns Fail. I intend to add instruction encodings and tests in follow on commits. llvm-svn: 170292
-
Richard Osborne authored
llvm-svn: 170291
-
Richard Osborne authored
llvm-svn: 170290
-
Richard Osborne authored
llvm-svn: 170289
-
Richard Osborne authored
This change adds XCoreMCInstLower to do the lowering to MCInst and XCoreInstPrinter to print the MCInsts. llvm-svn: 170288
-
Richard Osborne authored
llvm-svn: 170286
-
Reed Kotler authored
Mips16 is really a processor decoding mode (ala thumb 1) and in the same program, mips16 and mips32 functions can exist and can call each other. If a jal type instruction encounters an address with the lower bit set, then the processor switches to mips16 mode (if it is not already in it). If the lower bit is not set, then it switches to mips32 mode. The linker knows which functions are mips16 and which are mips32. When relocation is performed on code labels, this lower order bit is set if the code label is a mips16 code label. In general this works just fine, however when creating exception handling tables and dwarf, there are cases where you don't want this lower order bit added in. This has been traditionally distinguished in gas assembly source by using a different syntax for the label. lab1: ; this will cause the lower order bit to be added lab2=. ; this will not cause the lower order bit to be added In some cases, it does not matter because in dwarf and debug tables the difference of two labels is used and in that case the lower order bits subtract each other out. To fix this, I have added to mcstreamer the notion of a debuglabel. The default is for label and debug label to be the same. So calling EmitLabel and EmitDebugLabel produce the same result. For various reasons, there is only one set of labels that needs to be modified for the mips exceptions to work. These are the "$eh_func_beginXXX" labels. Mips overrides the debug label suffix from ":" to "=." . This initial patch fixes exceptions. More changes most likely will be needed to DwarfCFException to make all of this work for actual debugging. These changes will be to emit debug labels in some places where a simple label is emitted now. Some historical discussion on this from gcc can be found at: http://gcc.gnu.org/ml/gcc-patches/2008-08/msg00623.html http://gcc.gnu.org/ml/gcc-patches/2008-11/msg01273.html llvm-svn: 170279
-
- Dec 15, 2012
-
-
Benjamin Kramer authored
We match the pattern "x >= y ? x-y : 0" into "subus x, y" and two special cases if y is a constant. DAGCombiner canonicalizes those so we first have to undo the canonicalization for those cases. The pattern occurs in gzip when the loop vectorizer is enabled. Part of PR14613. llvm-svn: 170273
-
Chandler Carruth authored
Not all chips targeted by x86_64 have this feature, but a dramatically increasing number do. Specifying a chip-specific tuning parameter will continue to turn the feature on or off as appropriate for that particular chip, but the generic flag should try to achieve the best performance on the most widely available hardware. Today, the number of chips with fast UA access dwarfs those without in the x86-64 space. Note that this also brings LLVM's code generation for this '-march' flag more in line with that of modern GCCs. Reviewed by Dan Gohman. llvm-svn: 170269
-
Reed Kotler authored
In this case, essentially it is soft float with different library routines. The next step will be to make this fully interoperational with mips32 floating point and that requires creating stubs for functions with signatures that contain floating point types. I have a more sophisticated design for mips16 hardfloat which I hope to implement at a later time that directly does floating point without the need for function calls. The mips16 encoding has no floating point instructions so one needs to switch to mips32 mode to execute floating point instructions. llvm-svn: 170259
-
Kevin Enderby authored
immediate generates the narrow version. Needed when doing round-trip assemble/disassemble testing using the alternate syntax that specifies 'pc' directly. llvm-svn: 170255
-
- Dec 14, 2012
-
-
Nadav Rotem authored
TypeLegalizer: Do not generate target specific nodes with illegal types, because we cant type-legalize them. llvm-svn: 170245
-
Bill Schmidt authored
for TLS dynamic models on 64-bit PowerPC ELF. The default sort routine for relocations only sorts on the r_offset field; but with TLS, there can be two relocations with the same r_offset. For PowerPC, this patch sorts secondarily on descending r_type, which matches the behavior expected by the linker. llvm-svn: 170237
-
Bill Schmidt authored
for a wider range of GOT entries that can hold thread-relative offsets. This matches the behavior of GCC, which was not documented in the PPC64 TLS ABI. The ABI will be updated with the new code sequence. Former sequence: ld 9,x@got@tprel(2) add 9,9,x@tls New sequence: addis 9,2,x@got@tprel@ha ld 9,x@got@tprel@l(9) add 9,9,x@tls Note that a linker optimization exists to transform the new sequence into the shorter sequence when appropriate, by replacing the addis with a nop and modifying the base register and relocation type of the ld. llvm-svn: 170209
-
Shuxin Yang authored
llvm-svn: 170158
-
- Dec 13, 2012
-
-
Bill Schmidt authored
some hackery in place that hid my poor use of TblGen, which I've now sorted out and cleaned up. No change in observable behavior, so no new test cases. llvm-svn: 170149
-
Tom Stellard authored
Patch by: NAKAMURA Takumi llvm-svn: 170142
-
Bill Schmidt authored
avoiding use of machine operand flags. No change in observable behavior, so no new test cases. llvm-svn: 170141
-
Patrik Hagglund authored
Accordingly, add helper funtions getSimpleValueType (in parallel to getValueType) in SDValue, SDNode, and TargetLowering. This is the first, in a series of patches. This is the second attempt. In the first attempt (r169837), a few getSimpleVT() were hoisted too far, detected by bootstrap failures. llvm-svn: 170104
-
Akira Hatanaka authored
internal linkage. llvm-svn: 170092
-
Eric Christopher authored
given the section. llvm-svn: 170087
-
Akira Hatanaka authored
No functionality change. llvm-svn: 170084
-
Akira Hatanaka authored
No functionality change. llvm-svn: 170080
-
Akira Hatanaka authored
No functionality change. llvm-svn: 170077
-
Akira Hatanaka authored
No functionality change. llvm-svn: 170076
-
Akira Hatanaka authored
No functionality change. llvm-svn: 170075
-
Akira Hatanaka authored
No functionality change. llvm-svn: 170073
-
Akira Hatanaka authored
No functionality change. llvm-svn: 170072
-
Akira Hatanaka authored
No functionality change. llvm-svn: 170071
-
Akira Hatanaka authored
No functionality change. llvm-svn: 170069
-
Akira Hatanaka authored
and separate encoding information from the rest. llvm-svn: 170066
-
Jakob Stoklund Olesen authored
This function is going to be removed. llvm-svn: 170064
-
Akira Hatanaka authored
MipsInstrFPU.td. llvm-svn: 170061
-
Akira Hatanaka authored
llvm-svn: 170060
-
Akira Hatanaka authored
llvm-svn: 170057
-