- Dec 18, 2012
-
-
Daniel Jasper authored
We used to format initializers like this (with a sort of hacky implementation): Constructor() : Val1(A), Val2(B) { and now format like this (with a somewhat better solution): Constructor() : Val1(A), Val2(B) { assuming this would not fit on a single line. Also added tests. As a side effect we now first analyze whether an UnwrappedLine needs to be split at all. If not, not splitting it is the best solution by definition. As this should be a very common case in normal code, not exploring the entire solution space can provide significant speedup. llvm-svn: 170457
-
Jakob Stoklund Olesen authored
Remove the instr_iterator versions of the splice() functions. It doesn't seem useful to be able to splice sequences of instructions that don't consist of full bundles. The normal splice functions that take MBB::iterator arguments are not changed, and they can move whole bundles around without any problems. llvm-svn: 170456
-
Meador Inge authored
PR 14529 was opened because neither Clang or LLVM was expanding calls to creal* or cimag* into instructions that just load the respective complex field. After some discussion, it was not considered realistic to do this in LLVM because of the platform specific way complex types are expanded. Thus a way to solve this in Clang was pursued. GCC does a similar expansion. This patch adds the feature to Clang by making the creal* and cimag* functions library builtins and modifying the builtin code generator to look for the new builtin types. llvm-svn: 170455
-
Andrew Trick authored
llvm-svn: 170454
-
Andrew Trick authored
llvm-svn: 170453
-
Andrew Trick authored
llvm-svn: 170452
-
Andrew Trick authored
llvm-svn: 170451
-
Andrew Trick authored
llvm-svn: 170450
-
Andrew Trick authored
llvm-svn: 170449
-
Daniel Malea authored
llvm-svn: 170447
-
Daniel Jasper authored
This allows for writing tests including line comments easier and more readable. We will need more of those tests in the future and also line comments are useful to force line breaks in tests. llvm-svn: 170446
-
Daniel Malea authored
- make FreeBSD ProcessMonitor API thread-ready Patch by Matt Kopec! llvm-svn: 170445
-
Douglas Gregor authored
llvm-svn: 170444
-
Jakob Stoklund Olesen authored
The single-element ilist::splice() function supports a noop move: List.splice(I, List, I); The corresponding std::list function doesn't allow that, so add a unit test to document that behavior. This also means that List.splice(I, List, F); is somewhat surprisingly not equivalent to List.splice(I, List, F, next(F)); This patch adds an assertion to catch the illegal case I == F above. Alternatively, we could make I == F a legal noop, but that would make ilist differ even more from std::list. llvm-svn: 170443
-
Enrico Granata authored
Tweaking a comment in the NSURL formatter for correctness - the code was doing the right thing, but the comment was highly misleading llvm-svn: 170441
-
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
-