- Jun 23, 2011
-
-
Evan Cheng authored
llvm-svn: 133726
-
- Jun 18, 2011
-
-
Benjamin Kramer authored
llvm-svn: 133347
-
- Jun 15, 2011
-
-
John McCall authored
optimizations when emitting calls to the function; instead those calls may use faster relocations which require the function to be immediately resolved upon loading the dynamic object featuring the call. This is useful when it is known that the function will be called frequently and pervasively and therefore there is no merit in delaying binding of the function. Currently only implemented for x86-64, where it turns into a call through the global offset table. Patch by Dan Gohman, who assures me that he's going to add LangRef documentation for this once it's committed. llvm-svn: 133080
-
- Jun 09, 2011
-
-
Eric Christopher authored
No functional change. Part of PR6965 llvm-svn: 132763
-
- Jun 07, 2011
-
-
Stuart Hastings authored
load. rdar://problem/6373334 llvm-svn: 132696
-
- Jun 04, 2011
-
-
Stuart Hastings authored
rdar://problem/5993888 llvm-svn: 132606
-
- Jun 03, 2011
-
-
Eric Christopher authored
Part of rdar://9119939 llvm-svn: 132510
-
- Jun 02, 2011
-
-
Rafael Espindola authored
llvm-svn: 132479
-
Stuart Hastings authored
rdar://problem/6373334 llvm-svn: 132458
-
- Jun 01, 2011
-
-
-
-
Stuart Hastings authored
floating-point comparison, generate a mask of 0s or 1s, and generally DTRT with NaNs. Only profitable when the user wants a materialized 0 or 1 at runtime. rdar://problem/5993888 llvm-svn: 132404
-
Stuart Hastings authored
patch to TargetLowering.cpp. rdar://problem/5660695 llvm-svn: 132388
-
- May 26, 2011
-
-
Stuart Hastings authored
llvm-svn: 132108
-
Stuart Hastings authored
rdar://problem/6920088 llvm-svn: 132105
-
- May 24, 2011
-
-
Evan Cheng authored
non-zero. - Teach X86 cmov optimization to eliminate the cmov from ctlz, cttz extension when the source of X86ISD::BSR / X86ISD::BSF is proven to be non-zero. rdar://9490949 llvm-svn: 131948
-
- May 20, 2011
-
-
Chad Rosier authored
llvm-svn: 131709
-
-
- May 19, 2011
-
-
Eric Christopher authored
Fixes rdar://9218925 Fixes PR9601 llvm-svn: 131682
-
-
- May 18, 2011
-
-
Chad Rosier authored
Enables vararg functions that pass all arguments via registers to be optimized into tail-calls when possible. llvm-svn: 131560
-
- May 17, 2011
-
-
Eli Friedman authored
llvm-svn: 131471
-
Stuart Hastings authored
llvm-svn: 131469
-
Stuart Hastings authored
passed as the fifth parameter, insure it's passed correctly (in R9). rdar://problem/6920088 llvm-svn: 131467
-
Nadav Rotem authored
Fix a bug in PerformEXTRACT_VECTOR_ELTCombine. The code created an ADD SDNode with two different types, in cases where the index and the ptr had different types. llvm-svn: 131461
-
- May 16, 2011
-
-
Eli Friedman authored
llvm-svn: 131424
-
- May 11, 2011
-
-
Nadav Rotem authored
Add custom lowering of X86 vector SRA/SRL/SHL when the shift amount is a splat vector. llvm-svn: 131179
-
- May 06, 2011
-
-
Eli Friedman authored
llvm-svn: 131012
-
- Apr 20, 2011
-
-
Daniel Dunbar authored
triple component. llvm-svn: 129838
-
- Apr 19, 2011
-
-
Daniel Dunbar authored
llvm-svn: 129813
-
- Apr 15, 2011
-
-
Chris Lattner authored
Luis Felipe Strano Moraes! llvm-svn: 129558
-
- Mar 31, 2011
-
-
Evan Cheng authored
llvm-svn: 128586
-
- Mar 26, 2011
-
-
Benjamin Kramer authored
llvm-svn: 128338
-
- Mar 24, 2011
-
-
NAKAMURA Takumi authored
FIXME: Some cleanups would be needed. llvm-svn: 128206
-
Andrew Trick authored
I'm backing this out for the second time. It was supposed to be fixed by r128164, but the mingw self-host must be defeating the fix. llvm-svn: 128181
-
- Mar 23, 2011
-
-
Andrew Trick authored
(target-specific branchless method for double-width relational comparisons on x86) llvm-svn: 128175
-
- Mar 21, 2011
-
-
Evan Cheng authored
Re-apply r127953 with fixes: eliminate empty return block if it has no predecessors; update dominator tree if cfg is modified. llvm-svn: 127981
-
- Mar 19, 2011
-
-
Daniel Dunbar authored
to canonicalize IR", it broke a lot of things. llvm-svn: 127954
-
Evan Cheng authored
to have single return block (at least getting there) for optimizations. This is general goodness but it would prevent some tailcall optimizations. One specific case is code like this: int f1(void); int f2(void); int f3(void); int f4(void); int f5(void); int f6(void); int foo(int x) { switch(x) { case 1: return f1(); case 2: return f2(); case 3: return f3(); case 4: return f4(); case 5: return f5(); case 6: return f6(); } } => LBB0_2: ## %sw.bb callq _f1 popq %rbp ret LBB0_3: ## %sw.bb1 callq _f2 popq %rbp ret LBB0_4: ## %sw.bb3 callq _f3 popq %rbp ret This patch teaches codegenprep to duplicate returns when the return value is a phi and where the phi operands are produced by tail calls followed by an unconditional branch: sw.bb7: ; preds = %entry %call8 = tail call i32 @f5() nounwind br label %return sw.bb9: ; preds = %entry %call10 = tail call i32 @f6() nounwind br label %return return: %retval.0 = phi i32 [ %call10, %sw.bb9 ], [ %call8, %sw.bb7 ], ... [ 0, %entry ] ret i32 %retval.0 This allows codegen to generate better code like this: LBB0_2: ## %sw.bb jmp _f1 ## TAILCALL LBB0_3: ## %sw.bb1 jmp _f2 ## TAILCALL LBB0_4: ## %sw.bb3 jmp _f3 ## TAILCALL rdar://9147433 llvm-svn: 127953
-
Nadav Rotem authored
not have native support for this operation (such as X86). The legalized code uses two vector INT_TO_FP operations and is faster than scalarizing. llvm-svn: 127951
-