- Jun 27, 2011
-
-
Andrew Trick authored
Removed the check that peeks past EXTRA_SUBREG, which I don't think makes sense any more. Intead treat it as a normal register def. No significant affect on x86 or ARM benchmarks. llvm-svn: 133917
-
Jakob Stoklund Olesen authored
Patch by Sanjoy Das! llvm-svn: 133910
-
Nick Lewycky authored
alloca that only holds a copy of a global and we're going to replace the users of the alloca with that global, just nuke the lifetime intrinsics. Part of PR10121. llvm-svn: 133905
-
Nick Lewycky authored
passes as well. llvm-svn: 133904
-
Jakob Stoklund Olesen authored
This allows for more live scratch registers which is needed to handle live ST registers before return and inline asm instructions. llvm-svn: 133903
-
Jakob Stoklund Olesen authored
Both become <earlyclobber> defs on the INLINEASM MachineInstr, but we now use two different asm operand kinds. The new Kind_Clobber is treated identically to the old Kind_RegDefEarlyClobber for now, but x87 floating point stack inline assembly does care about the difference. This will pop a register off the stack: asm("fstp %st" : : "t"(x) : "st"); While this will pop the input and push an output: asm("fst %st" : "=&t"(r) : "t"(x)); We need to know if ST0 was a clobber or an output operand, and we can't depend on <dead> flags for that. llvm-svn: 133902
-
Jakob Stoklund Olesen authored
The INLINEASM MachineInstrs have an immediate operand describing each original inline asm operand. Decode the bits in MachineInstr::print() so it is easier to read: INLINEASM <es:rorq $1,$0>, $0:[regdef], %vreg0<def>, %vreg1<def>, $1:[imm], 1, $2:[reguse] [tiedto:$0], %vreg2, %vreg3, $3:[regdef-ec], %EFLAGS<earlyclobber,imp-def> llvm-svn: 133901
-
Rafael Espindola authored
llvm-svn: 133900
-
Rafael Espindola authored
remove the analysis group. llvm-svn: 133899
-
Rafael Espindola authored
llvm-svn: 133897
-
- Jun 26, 2011
-
-
Rafael Espindola authored
llvm-svn: 133896
-
Rafael Espindola authored
llvm-svn: 133895
-
Rafael Espindola authored
llvm-svn: 133886
-
- Jun 25, 2011
-
-
Chad Rosier authored
llvm-svn: 133874
-
Dan Bailey authored
The .b8 operations in PTX are far more limiting than I first thought. The mov operation isn't even supported, so there's no way of converting a .pred value into a .b8 without going via .b16, which is not sensible. An improved implementation needs to use the fact that loads and stores automatically extend and truncate to implement support for EXTLOAD and TRUNCSTORE in order to correctly support boolean values. llvm-svn: 133873
-
Michael J. Spencer authored
llvm-svn: 133872
-
Michael J. Spencer authored
llvm-svn: 133870
-
Michael J. Spencer authored
llvm-svn: 133869
-
Michael J. Spencer authored
llvm-svn: 133868
-
Chad Rosier authored
<rdar://problem/9483883> llvm-svn: 133858
-
Douglas Gregor authored
llvm-svn: 133853
-
Evan Cheng authored
llvm-svn: 133847
-
Evan Cheng authored
llvm-svn: 133846
-
Jim Grosbach authored
Move the target-specific RecordRelocation logic out of the generic MC MachObjectWriter and into the target-specific object writers. This allows nuking quite a bit of target knowledge from the supposedly target-independent bits in lib/MC. llvm-svn: 133844
-
Owen Anderson authored
The scheduler needs to be aware on the existence of untyped nodes when it performs type propagation for EXTRACT_SUBREG. llvm-svn: 133838
-
Rafael Espindola authored
llvm-svn: 133830
-
Devang Patel authored
llvm-svn: 133828
-
- Jun 24, 2011
-
-
Chad Rosier authored
overheads. No functional change intended. llvm-svn: 133824
-
Devang Patel authored
llvm-svn: 133822
-
Devang Patel authored
llvm-svn: 133821
-
Evan Cheng authored
- Rename TargetRegisterDesc to MCRegisterDesc. llvm-svn: 133820
-
Jim Grosbach authored
The fixup value comes in as the whole 32-bit value, so for the lo16 fixup, the upper bits need to be masked off. Previously we assumed the masking had already been done and asserted. rdar://9635991 llvm-svn: 133818
-
Jim Grosbach authored
llvm-svn: 133815
-
Dan Bailey authored
The i8 type is required for boolean values, but can only use ld, st and mov instructions. The i1 type continues to be used for predicates. llvm-svn: 133814
-
Chad Rosier authored
instructions can be used to match combinations of multiply/divide and VCVT (between floating-point and integer, Advanced SIMD). Basically the VCVT immediate operand that specifies the number of fraction bits corresponds to a floating-point multiply or divide by the corresponding power of 2. For example, VCVT (floating-point to fixed-point, Advanced SIMD) can replace a combination of VMUL and VCVT (floating-point to integer) as follows: Example (assume d17 = <float 8.000000e+00, float 8.000000e+00>): vmul.f32 d16, d17, d16 vcvt.s32.f32 d16, d16 becomes: vcvt.s32.f32 d16, d16, #3 Similarly, VCVT (fixed-point to floating-point, Advanced SIMD) can replace a combinations of VCVT (integer to floating-point) and VDIV as follows: Example (assume d17 = <float 8.000000e+00, float 8.000000e+00>): vcvt.f32.s32 d16, d16 vdiv.f32 d16, d17, d16 becomes: vcvt.f32.s32 d16, d16, #3 llvm-svn: 133813
-
Justin Holewinski authored
.file and .loc directives. Ideally, we would utilize the existing support in AsmPrinter for this, but I cannot find a way to get .file and .loc directives to print without the rest of the associated DWARF sections, which ptxas cannot handle. llvm-svn: 133812
-
Akira Hatanaka authored
enables SelectionDAG::getLoad at MipsISelLowering.cpp:1914 to return a pre-existing node instead of redundantly create a new node every time it is called. llvm-svn: 133811
-
Jim Grosbach authored
rdar://9667872 llvm-svn: 133808
-
Akira Hatanaka authored
static variables or functions. llvm-svn: 133803
-
Justin Holewinski authored
targets: g80, gt200, gf100(fermi) llvm-svn: 133799
-