- Feb 06, 2010
-
-
Devang Patel authored
llvm-svn: 95452
-
- Feb 05, 2010
-
-
Chris Lattner authored
llvm-svn: 95448
-
Chris Lattner authored
redundant with a correct one) pattern that was added for the disassembler. llvm-svn: 95446
-
Chris Lattner authored
llvm-svn: 95445
-
Chris Lattner authored
pslld 69, %mm3 ## encoding: [0x0f,0xf2,0x1c,0x25,0x45,0x00,0x00,0x00] instead of like this: pslld 69, %mm3 ## encoding: [0x0f,0xf2,0x1c,0x25,0x45,0000,0000,0000] this only affects 0. llvm-svn: 95441
-
Chris Lattner authored
llvm-svn: 95440
-
Jakob Stoklund Olesen authored
Weird code sometimes uses pointer constants other than null. This patch teaches SimplifyCFG to build switch instructions in those cases. Code like this: void f(const char *x) { if (!x) puts("null"); else if ((uintptr_t)x == 1) puts("one"); else if (x == (char*)2 || x == (char*)3) puts("two"); else if ((intptr_t)x == 4) puts("four"); else puts(x); } Now becomes a switch: define void @f(i8* %x) nounwind ssp { entry: %magicptr23 = ptrtoint i8* %x to i64 ; <i64> [#uses=1] switch i64 %magicptr23, label %if.else16 [ i64 0, label %if.then i64 1, label %if.then2 i64 2, label %if.then9 i64 3, label %if.then9 i64 4, label %if.then14 ] Note that LLVM's own DenseMap uses magic pointers. llvm-svn: 95439
-
Chris Lattner authored
llvm-svn: 95438
-
Chris Lattner authored
llvm-svn: 95437
-
Chris Lattner authored
llvm-svn: 95435
-
Chris Lattner authored
pseudo instructions. llvm-svn: 95433
-
Chris Lattner authored
llvm-svn: 95432
-
Chris Lattner authored
lower the SETB* instructions. llvm-svn: 95431
-
Chris Lattner authored
xform it is checking to actually pass. There is no need to match m_SelectCst<0, -1> since instcombine canonicalizes that into not(sext). Add matches for sext(not(x)) in addition to not(sext(x)). llvm-svn: 95420
-
Chris Lattner authored
llvm-svn: 95414
-
Chris Lattner authored
llvm-svn: 95410
-
Dan Gohman authored
container data. This prevents it from holding onto dangling pointers and potentially behaving unpredictably. llvm-svn: 95409
-
Chris Lattner authored
llvm-svn: 95408
-
Dan Gohman authored
malloc caller in a profile. llvm-svn: 95407
-
Chris Lattner authored
TSFlags directly instead of a TargetInstrDesc. llvm-svn: 95405
-
Chris Lattner authored
llvm-svn: 95403
-
Eric Christopher authored
that in mind. llvm-svn: 95402
-
Johnny Chen authored
llvm-svn: 95397
-
Jeffrey Yasskin authored
llc.cpp also defined these flags, meaning that when I linked all of LLVM's libraries into a single shared library, llc crashed on startup with duplicate flag definitions. This patch passes them through the EngineBuilder into JIT::selectTarget(). llvm-svn: 95390
-
Daniel Dunbar authored
llvm-svn: 95378
-
Chris Lattner authored
llvm-svn: 95368
-
Evan Cheng authored
llvm-svn: 95351
-
Chris Lattner authored
to start limping. llvm-svn: 95350
-
Chris Lattner authored
pushl %ebp movl %esp, %ebp movl $42, %eax popl %ebp ret llvm-svn: 95344
-
Evan Cheng authored
When the scheduler unfold a load folding instruction it move some of the predecessors to the unfolded load. It decides what gets moved to the load by checking whether the new load is using the predecessor as an operand. The check neglects the cases whether the predecessor is a flagged scheduling unit. rdar://7604000 llvm-svn: 95339
-
Bill Wendling authored
following it. However, the EmitGlobalConstant method wasn't emitting a body for the constant. The assembler doesn't like that. Before, we were generating this: .zerofill __DATA, __common, __cmd, 1, 3 This fix puts us back to that semantic. llvm-svn: 95336
-
Bob Wilson authored
short-circuited conditions to AND/OR expressions, and those expressions are often converted back to a short-circuited form in code gen. The original source order may have been optimized to take advantage of the expected values, and if we reassociate them, we change the order and subvert that optimization. Radar 7497329. llvm-svn: 95333
-
- Feb 04, 2010
-
-
Evan Phoenix authored
Instruction selection for X86 now can choose an instruction sequence that will fit any address of any symbol, no matter the pointer width. X86-64 uses a mov+call-via-reg sequence for this. llvm-svn: 95323
-
Evan Cheng authored
llvm-svn: 95322
-
Jakob Stoklund Olesen authored
This makes the inliner about as agressive as it was before my changes to the inliner cost calculations. These levels give the same performance and slightly smaller code than before. llvm-svn: 95320
-
Jakob Stoklund Olesen authored
ProcessImplicitDefs would only mark one operand per instruction with <undef>. This fixed PR6086. llvm-svn: 95319
-
Chris Lattner authored
llvm-svn: 95299
-
Evan Cheng authored
llvm-svn: 95295
-
Eric Christopher authored
failure. llvm-svn: 95294
-
Chris Lattner authored
64-bit sparc codegen. Patch by Nathan Keynes! llvm-svn: 95293
-