- Dec 18, 2012
-
-
Eli Bendersky authored
llvm-svn: 170440
-
Benjamin Kramer authored
LoopVectorize: Emit reductions as log2(vectorsize) shuffles + vector ops instead of scalar operations. For example on x86 with SSE4.2 a <8 x i8> add reduction becomes movdqa %xmm0, %xmm1 movhlps %xmm1, %xmm1 ## xmm1 = xmm1[1,1] paddw %xmm0, %xmm1 pshufd $1, %xmm1, %xmm0 ## xmm0 = xmm1[1,0,0,0] paddw %xmm1, %xmm0 phaddw %xmm0, %xmm0 pextrb $0, %xmm0, %edx instead of pextrb $2, %xmm0, %esi pextrb $0, %xmm0, %edx addb %sil, %dl pextrb $4, %xmm0, %esi addb %dl, %sil pextrb $6, %xmm0, %edx addb %sil, %dl pextrb $8, %xmm0, %esi addb %dl, %sil pextrb $10, %xmm0, %edi pextrb $14, %xmm0, %edx addb %sil, %dil pextrb $12, %xmm0, %esi addb %dil, %sil addb %sil, %dl llvm-svn: 170439
-
Eli Bendersky authored
llvm-svn: 170438
-
Jakob Stoklund Olesen authored
The normal insert() function takes an MBB::iterator position, and inserts a stand-alone MachineInstr as before. The insert() function that takes an MBB::instr_iterator position can insert instructions inside a bundle, and will now update the bundle flags correctly when that happens. When the insert position is between two bundles, it is unclear whether the instruction should be appended to the previous bundle, prepended to the next bundle, or stand on its own. The MBB::insert() function doesn't bundle the instruction in that case, use the MIBundleBuilder class for that. llvm-svn: 170437
-
Hal Finkel authored
A register can be associated with several distinct register classes. For example, on PPC, the floating point registers are each associated with both F4RC (which holds f32) and F8RC (which holds f64). As a result, this code would fail when provided with a floating point register and an f64 operand because it would happen to find the register in the F4RC class first and return that. From the F4RC class, SDAG would extract f32 as the register type and then assert because of the invalid implied conversion between the f64 value and the f32 register. Instead, search all register classes. If a register class containing the the requested register has the requested type, then return that register class. Otherwise, as before, return the first register class found that contains the requested register. llvm-svn: 170436
-
Marshall Clow authored
llvm-svn: 170435
-
Kostya Serebryany authored
llvm-svn: 170434
-
Dmitry Vyukov authored
llvm-svn: 170433
-
Guy Benyei authored
Add OpenCL images as clang builtin types. llvm-svn: 170432
-
Guy Benyei authored
Revert changes from r170428, as I accidentally changed the line endings of these files to Windows style. llvm-svn: 170431
-
Dmitry Vyukov authored
llvm-svn: 170430
-
Dmitry Vyukov authored
llvm-svn: 170429
-
Guy Benyei authored
llvm-svn: 170428
-
Dmitry Vyukov authored
llvm-svn: 170427
-
Dmitry Vyukov authored
The runtime skips atexit sleep if there are no threads now, so it must be fast w/o it. Allows to specify own TSAN_OPTIONS for the tests. llvm-svn: 170426
-
David Chisnall authored
llvm-svn: 170425
-
Alexey Samsonov authored
[Sanitizer] Expose StackTrace::GetPreviousInstructionPc() to get PC of call instruction from return address llvm-svn: 170424
-
Richard Smith authored
has got us to the wrong offset within an object. llvm-svn: 170423
-
Sebastian Pop authored
llvm-svn: 170422
-
Sebastian Pop authored
Original patch by Tobias Grosser, slightly modified by Sebastian Pop. llvm-svn: 170420
-
Sebastian Pop authored
isStride now takes a partial schedule as input. Patch from Tobias Grosser <tobias@grosser.es>. llvm-svn: 170419
-
Kostya Serebryany authored
llvm-svn: 170418
-
Dmitry Vyukov authored
llvm-svn: 170417
-
Nadav Rotem authored
llvm-svn: 170416
-
Richard Smith authored
pointing at the bad location and a snippet of nearby memory values. This is strictly best-effort; reading these bytes to display the note could lead to a seg fault, and that's explicitly OK. llvm-svn: 170415
-
Nadav Rotem authored
into the same file in the future. llvm-svn: 170414
-
Richard Smith authored
llvm-svn: 170413
-
Nadav Rotem authored
getScalarSizeInBits could not handle vectors of pointers. llvm-svn: 170412
-
NAKAMURA Takumi authored
I don't want to suppress this to be excluded with the feature "dev-fd-fs". This should work also on freebsd. llvm-svn: 170411
-
NAKAMURA Takumi authored
llvm-svn: 170410
-
Jason Molenda authored
This can be used by lldb to ask for information about the process debugserver is attached to/launched. Particularly useful on a 64-bit x86 Mac system which can run 32-bit or 64-bit user-land processes. llvm-svn: 170409
-
Rafael Espindola authored
llvm-svn: 170408
-
Richard Smith authored
one out from the return address. Currently, we can only resolve this address to a file and line number if we have an external symbolizer. llvm-svn: 170407
-
Rafael Espindola authored
This fixes the storage class of extern decls that are merged with file level statics. The patch also fixes the linkage computation so that they are considered internal. llvm-svn: 170406
-
Rafael Espindola authored
but remove unneeded options and fix the comment. llvm-svn: 170405
-
Rafael Espindola authored
llvm-svn: 170404
-
Richard Smith authored
llvm-svn: 170403
-
Eli Friedman authored
(This change only affects ObjC.) <rdar://problem/12857117>. llvm-svn: 170402
-
Sean Silva authored
As per Ted's advice. It can be brought back from version control if needed. This also fixes a Sphinx warning. llvm-svn: 170401
-
Jim Ingham authored
<rdar://problem/11597849> llvm-svn: 170400
-