- May 06, 2013
-
-
Bill Wendling authored
pointers or not depending upon the function attributes. llvm-svn: 181180
-
- May 05, 2013
-
-
-
Stepan Dyatkovskiy authored
Now even the small structures could be passed within byval (small enough to be stored in GPRs). In regression tests next function prototypes are checked: PR15293: %artz = type { i32 } define void @foo(%artz* byval %s) define void @foo2(%artz* byval %s, i32 %p, %artz* byval %s2) foo: "s" stored in R0 foo2: "s" stored in R0, "s2" stored in R2. Next AAPCS rules are checked: 5.5 Parameters Passing, C.4 and C.5, "ParamSize" is parameter size in 32bit words: -- NSAA != 0, NCRN < R4 and NCRN+ParamSize > R4. Parameter should be sent to the stack; NCRN := R4. -- NSAA != 0, and NCRN < R4, NCRN+ParamSize < R4. Parameter stored in GPRs; NCRN += ParamSize. llvm-svn: 181148
-
David Majnemer authored
X86ISelLowering has support to treat: (icmp ne (and (xor %flags, -1), (shl 1, flag)), 0) as if it were actually: (icmp eq (and %flags, (shl 1, flag)), 0) However, r179386 has code at the InstCombine level to handle this. llvm-svn: 181145
-
- May 04, 2013
-
-
Tim Northover authored
llvm-svn: 181120
-
Tim Northover authored
llvm-svn: 181119
-
Tim Northover authored
llvm-svn: 181118
-
Tim Northover authored
The MOVZ/MOVK instruction sequence may not be the most efficient (a literal-pool load could be better) but adding that would require reinstating the ConstantIslands pass. For now the sequence is correct, and that's enough. Beware, as of commit GNU ld does not appear to support the relocations needed for this. Its primary purpose (for now) will be to support JITed code, since in that case there is no guarantee of where your code will end up in memory relative to external symbols it references. llvm-svn: 181117
-
Reed Kotler authored
llvm-svn: 181072
-
- May 03, 2013
-
-
Akira Hatanaka authored
its fields. This removes false dependencies between DSP instructions which access different fields of the the control register. Implicit register operands are added to instructions RDDSP and WRDSP after instruction selection, depending on the value of the mask operand. llvm-svn: 181041
-
Tom Stellard authored
llvm-svn: 181035
-
Tom Stellard authored
This can be optimized using the BFI_INT instruction. llvm-svn: 181033
-
Akira Hatanaka authored
register. - Define pseudo instructions which store or load ccond field of the DSP control register. - Emit the pseudos in MipsSEInstrInfo::storeRegToStack and loadRegFromStack. - Expand the pseudos before callee-scan save. - Emit instructions RDDSP or WRDSP to copy between ccond field and GPRs. llvm-svn: 180969
-
- May 02, 2013
-
-
Vincent Lejeune authored
llvm-svn: 180960
-
Vincent Lejeune authored
llvm-svn: 180959
-
Vincent Lejeune authored
llvm-svn: 180958
-
Vincent Lejeune authored
llvm-svn: 180956
-
Pranav Bhandarkar authored
* lib/Target/Hexagon/HexagonInstrInfo.td: Add patterns to combine a sequence of a pair of i32->i64 extensions followed by a "bitwise or" into COMBINE_rr. * lib/Target/Hexagon/HexagonPeephole.cpp: Copy propagate Rx in the instruction Rp = COMBINE_Ir_V4(0, Rx) to the uses of Rp:subreg_loreg. * test/CodeGen/Hexagon/union-1.ll: New test. * test/CodeGen/Hexagon/combine_ir.ll: Fix test. llvm-svn: 180946
-
Manman Ren authored
This will make it easier to turn on struct-path aware TBAA since the metadata format will change. llvm-svn: 180935
-
Michael Liao authored
llvm-svn: 180910
-
Michael Liao authored
As DejaGNU is deprecated, it seems pipe-jam issue doesn't exist any more. llvm-svn: 180892
-
Bill Wendling authored
llvm-svn: 180889
-
- May 01, 2013
-
-
Nadav Rotem authored
Optimize CONCAT_VECTOR nodes that merge EXTRACT_SUBVECTOR values that extract from the same vector. rdar://13402653 PR15866 llvm-svn: 180871
-
Rafael Espindola authored
Patch by Joshua Magee. llvm-svn: 180842
-
Michael Liao authored
llvm-svn: 180838
-
Michael Liao authored
llvm-svn: 180837
-
Akira Hatanaka authored
Expand copy instructions between two accumulator registers before callee-saved scan is done. Handle copies between integer GPR and hi/lo registers in MipsSEInstrInfo::copyPhysReg. Delete pseudo-copy instructions that are not needed. llvm-svn: 180827
-
Stephen Lin authored
Only pass 'returned' to target-specific lowering code when the value of entire register is guaranteed to be preserved. llvm-svn: 180825
-
Akira Hatanaka authored
instructions. llvm-svn: 180820
-
Adrian Prantl authored
because it breaks some buildbots. This reverts commit 180816. llvm-svn: 180819
-
Adrian Prantl authored
register-indirect address with an offset of 0. It used to be that a DBG_VALUE is a register-indirect value if the offset (operand 1) is nonzero. The new convention is that a DBG_VALUE is register-indirect if the first operand is a register and the second operand is an immediate. For plain registers use the combination reg, reg. rdar://problem/13658587 llvm-svn: 180816
-
- Apr 30, 2013
-
-
Hal Finkel authored
First, taking advantage of the fact that the virtual base registers are allocated in order of the local frame offsets, remove the quadratic register-searching behavior. Because of the ordering, we only need to check the last virtual base register created. Second, store the frame index in the FrameRef structure, and get the frame index and the local offset from this structure at the top of the loop iteration. This allows us to de-nest the loops in insertFrameReferenceRegisters (and I think makes the code cleaner). I also moved the needsFrameBaseReg check into the first loop over instructions so that we don't bother pushing FrameRefs for instructions that don't want a virtual base register anyway. Lastly, and this is the only functionality change, avoid the creation of single-use virtual base registers. These are currently not useful because, in general, they end up replacing what would be one r+r instruction with an add and a r+i instruction. Committing this removes the XFAIL in CodeGen/PowerPC/2007-09-07-LoadStoreIdxForms.ll Jim has okayed this off-list. llvm-svn: 180799
-
Manman Ren authored
This will make it easier to turn on struct-path aware TBAA since the metadata format will change. llvm-svn: 180796
-
Vincent Lejeune authored
Texture cache is now used when shader type is not specified llvm-svn: 180785
-
Michael Liao authored
llvm-svn: 180776
-
Vincent Lejeune authored
llvm-svn: 180761
-
Vincent Lejeune authored
v2[Vincent Lejeune]: Split FetchInst into usesTextureCache/usesVertexCache llvm-svn: 180755
-
Michael Liao authored
llvm-svn: 180754
-
Manman Ren authored
This will make it easier to turn on struct-path aware TBAA since the metadata format will change. llvm-svn: 180745
-
Bill Wendling authored
llvm-svn: 180744
-