- Sep 06, 2012
-
-
Nadav Rotem authored
Add a new optimization pass: Stack Coloring, that merges disjoint static allocations (allocas). Allocas are known to be disjoint if they are marked by disjoint lifetime markers (@llvm.lifetime.XXX intrinsics). llvm-svn: 163299
-
James Molloy authored
Optimize codegen for VSETLNi{8,16,32} operating on Q registers. Degenerate to a VSETLN on D registers, instead of an (INSERT_SUBREG (VSETLN (EXTRACT_SUBREG ))) sequence to help the register coalescer. llvm-svn: 163298
-
Michael Liao authored
llvm-svn: 163295
-
Craig Topper authored
Use iPTR instead of i32 for extract_subvector/insert_subvector index in lowering and patterns. This makes it consistent with the incoming DAG nodes from the DAG builder. llvm-svn: 163293
-
Craig Topper authored
Add patterns for converting stores of subvector_extracts of lower 128-bits of a 256-bit vector to VMOVAPSmr/VMOVUPSmr. llvm-svn: 163292
-
NAKAMURA Takumi authored
llvm-svn: 163289
-
NAKAMURA Takumi authored
llvm-svn: 163288
-
Jack Carter authored
assembler such as shifts greater than 32. In the case of direct object, the code gen needs to do this lowering since the assembler is not involved. With the advent of the llvm-mc assembler, it also needs to do the same lowering. This patch makes that specific lowering code accessible to both the direct object output and the assembler. This patch does not affect generated output. llvm-svn: 163287
-
Jim Grosbach authored
No functional change. llvm-svn: 163279
-
Jack Carter authored
Test case included. Contributer: Vladimir Medic llvm-svn: 163277
-
Jakob Stoklund Olesen authored
These pseudos are no longer needed now that it is possible to represent predicated instructions in SSA form. llvm-svn: 163275
-
Jakob Stoklund Olesen authored
Now that it is possible to dynamically tie MachineInstr operands, predicated instructions are possible in SSA form: %vreg3<def> = SUBri %vreg1, -2147483647, pred:14, pred:%noreg, %opt:%noreg %vreg4<def,tied1> = MOVCCr %vreg3<tied0>, %vreg1, %pred:12, pred:%CPSR Becomes a predicated SUBri with a tied imp-use: SUBri %vreg1, -2147483647, pred:13, pred:%CPSR, opt:%noreg, %vreg1<imp-use,tied0> This means that any instruction that is safe to move can be folded into a MOVCC, and the *CC pseudo-instructions are no longer needed. The test case changes reflect that Thumb2SizeReduce recognizes the predicated instructions. It didn't understand the pseudos. llvm-svn: 163274
-
Chad Rosier authored
llvm-svn: 163273
-
Manman Ren authored
switch, make sure we include the value for the cases when calculating edge value from switch to the default destination. rdar://12241132 llvm-svn: 163270
-
Jack Carter authored
register support. Test case included. Contributer: Vladimir Medic llvm-svn: 163268
-
Chad Rosier authored
llvm-svn: 163263
-
Roman Divacky authored
llvm-svn: 163258
-
Chad Rosier authored
MachineInstr. llvm-svn: 163257
-
Roman Divacky authored
llvm-svn: 163256
-
Roman Divacky authored
ArchiveMemberHeader. Found by gcc48 -Wcast-qual. llvm-svn: 163255
-
Roman Divacky authored
of its constness. Found by gcc48 -Wcast-qual. llvm-svn: 163254
-
- Sep 05, 2012
-
-
Roman Divacky authored
the SubtargetInfoKV tables. Found by gcc48 -Wcast-qual. llvm-svn: 163251
-
Roman Divacky authored
by casting. Found with gcc48. llvm-svn: 163247
-
Chad Rosier authored
llvm-svn: 163243
-
Hal Finkel authored
Since TOC is just defined for PPC64, move its definition to PPC64 td file. Patch by Adhemerval Zanella. llvm-svn: 163234
-
Chad Rosier authored
inteldialect. llvm-svn: 163231
-
Tim Northover authored
Previous patch accidentally decided it couldn't convert a VFP to a NEON instruction after it had already destroyed the old one. Not a good move. llvm-svn: 163230
-
Roman Divacky authored
llvm-svn: 163225
-
Jim Grosbach authored
Make sure to return a pointer into the target memory, not the local memory. Often they are the same, but we can't assume that. llvm-svn: 163217
-
Benjamin Kramer authored
It relies on clear() being fast and the cache rarely has more than 1 or 2 elements, so give it an inline capacity and always shrink it back down in case it grows. DenseMap will grow to 64 buckets which makes clear() a lot slower. llvm-svn: 163215
-
Pranav Bhandarkar authored
subreg_hireg of register pair Rp. * lib/Target/Hexagon/HexagonPeephole.cpp(PeepholeDoubleRegsMap): New DenseMap similar to PeepholeMap that additionally records subreg info too. (runOnMachineFunction): Record information in PeepholeDoubleRegsMap and copy propagate the high sub-reg of Rp0 in Rp1 = lsr(Rp0, #32) to the instruction Rx = COPY Rp1:logreg_subreg. * test/CodeGen/Hexagon/remove_lsr.ll: New test. llvm-svn: 163214
-
Kostya Serebryany authored
llvm-svn: 163205
-
Silviu Baranga authored
Fixed the DAG combiner to better handle the folding of AND nodes for vector types. The previous code was making the assumption that the length of the bitmask returned by isConstantSplat was equal to the size of the vector type. Now we first make sure that the splat value has at least the length of the vector lane type, then we only use as many fields as we have available in the splat value. llvm-svn: 163203
-
Kostya Serebryany authored
llvm-svn: 163199
-
Craig Topper authored
Remove some of the patterns added in r163196. Increasing the complexity on insert_subvector into undef accomplishes the same thing. llvm-svn: 163198
-
Craig Topper authored
Add patterns for integer forms of VINSERTF128/VINSERTI128 folded with loads. Also add patterns to turn subvector inserts with loads to index 0 of an undef into VMOVAPS. llvm-svn: 163196
-
Chad Rosier authored
llvm-svn: 163195
-
Logan Chien authored
llvm-svn: 163194
-
Logan Chien authored
llvm-svn: 163193
-
Craig Topper authored
Convert vextracti128/vextractf128 intrinsics to extract_subvector at DAG build time. Similar was previously done for vinserti128/vinsertf128. Add patterns for folding these extract_subvectors with stores. llvm-svn: 163192
-