- Mar 14, 2012
-
-
Eric Christopher authored
output (we're emitting a specification already and the information isn't changing). Saves 1% on the debug information for a build of llvm. Fixes rdar://11043421 llvm-svn: 152697
-
Benjamin Kramer authored
llvm-svn: 152692
-
Benjamin Kramer authored
llvm-svn: 152688
-
- Mar 13, 2012
-
-
Evan Cheng authored
Fortify r152675 a bit. Although I'm not able to come up with a test case that would trigger the truncation case. llvm-svn: 152678
-
Evan Cheng authored
(i16 load $addr+c*sizeof(i16)) and replace uses of (i32 vextract) with the i16 load. It should issue an extload instead: (i32 extload $addr+c*sizeof(i16)). rdar://11035895 llvm-svn: 152675
-
Pete Cooper authored
Target override to allow CodeGenPrepare to sink address operands to intrinsics in the same way it current does for loads and stores llvm-svn: 152666
-
Argyrios Kyrtzidis authored
if the passed in FileSize is inaccurate. rdar://11034179 llvm-svn: 152662
-
Bill Wendling authored
No functionality change. llvm-svn: 152658
-
Kevin Enderby authored
instruction's destination operand like it does for the source operand. Also fix a typo in the comment for X86AsmParser::isSrcOp(). llvm-svn: 152654
-
Chris Lattner authored
fixing rdar://11039258, an issue that came up when inspecting clang's bootstrapped codegen. llvm-svn: 152635
-
Dan Gohman authored
llvm-svn: 152634
-
Duncan Sands authored
trunc(ptrtoint(x-y))" optimization introduced by Chandler. llvm-svn: 152626
-
Duncan Sands authored
take a TargetLibraryInfo parameter. Internally, rather than passing TD, TLI and DT parameters around all over the place, introduce a struct for holding them. llvm-svn: 152623
-
Eli Bendersky authored
Also refactor the existing OProfile profiling code to reuse the same interfaces with the VTune profiling code. In addition, unit tests for the profiling interfaces were added. This patch was prepared by Andrew Kaylor and Daniel Malea, and reviewed in the llvm-commits list by Jim Grosbach llvm-svn: 152620
-
Bill Wendling authored
llvm-svn: 152614
-
Bill Wendling authored
llvm-svn: 152613
-
Bill Wendling authored
No functionality change. llvm-svn: 152611
-
Lang Hames authored
llvm-svn: 152610
-
Eli Friedman authored
Fix regression from r151466: an we can't replace uses of an instruction reachable from the entry block with uses of an instruction not reachable from the entry block. PR12231. llvm-svn: 152595
-
Chandler Carruth authored
offset accumulation to use a boring APInt instead of ConstantExprs. I didn't go all the way to an 'int64_t' because I wanted APInt to handle any magic required to properly wrap the arithmetic when the pointer width is <64 bits. If there is a significant penalty from using APInt here, first off WTF, and secondly let me know and I'll do the math by hand. I've left one layer still operating w/ ConstantExpr because it makes the interface quite a bit simpler, and that one isn't iterative so has much lower cost. I suppose this may potentially speed up some strang compilation situations, but I don't really expect much. It should have no functional impact either way. llvm-svn: 152590
-
- Mar 12, 2012
-
-
Kevin Enderby authored
registers not both being 64-bit or both being 32-bit registers. llvm-svn: 152580
-
Benjamin Kramer authored
llvm-svn: 152577
-
Bill Wendling authored
--- Reverse-merging r152486 into '.': U lib/CodeGen/SjLjEHPrepare.cpp llvm-svn: 152571
-
Chandler Carruth authored
candidate set for subsequent inlining, try to simplify the arguments to the inner call site now that inlining has been performed. The goal here is to propagate and fold constants through deeply nested call chains. Without doing this, we loose the inliner bonus that should be applied because the arguments don't match the exact pattern the cost estimator uses. Reviewed on IRC by Benjamin Kramer. llvm-svn: 152556
-
Chandler Carruth authored
Typically instcombine has handled this, but pointer differences show up in several contexts where we would like to get constant folding, and cannot afford to run instcombine. Specifically, I'm working on improving the constant folding of arguments used in inline cost analysis with instsimplify. Doing this in instsimplify implies some algorithm changes. We have to handle multiple layers of all-constant GEPs because instsimplify cannot fold them into a single GEP the way instcombine can. Also, we're only interested in all-constant GEPs. The result is that this doesn't really replace the instcombine logic, it's just complimentary and focused on constant folding. Reviewed on IRC by Benjamin Kramer. llvm-svn: 152555
-
Duncan Sands authored
llvm-svn: 152553
-
Bob Wilson authored
<rdar://problem/11024696> llvm-svn: 152548
-
- Mar 11, 2012
-
-
Benjamin Kramer authored
llvm-svn: 152545
-
Benjamin Kramer authored
llvm-svn: 152544
-
Benjamin Kramer authored
DwarfDebug: Store the filename/dirname pair as a zero-separated string in a stringmap, instead of using a highly inefficient std::map of a pair of std::strings. llvm-svn: 152541
-
Craig Topper authored
llvm-svn: 152538
-
Craig Topper authored
llvm-svn: 152537
-
Craig Topper authored
llvm-svn: 152535
-
Stepan Dyatkovskiy authored
Renamed methods caseBegin, caseEnd and caseDefault with case_begin, case_end, and case_default. Added some notes relative to case iterators. llvm-svn: 152532
-
Michael J. Spencer authored
it would fail with {,u}int64_t on x86-64 Linux. This also removes code duplication. llvm-svn: 152517
-
- Mar 10, 2012
-
-
Benjamin Kramer authored
llvm-svn: 152515
-
Kay Tiong Khoo authored
llvm-svn: 152507
-
Bill Wendling authored
llvm-svn: 152499
-
Bill Wendling authored
The 'CmpInst::isFalseWhenEqual' function returns 'false' for values other than simply equality. For instance, it returns 'false' for <= or >=. This isn't the correct behavior for this transformation, which is checking for strict equality and non-equality. It was causing the gcc.c-torture/execute/frame-address.c test to fail because it would completely (and incorrectly) optimize a whole function into a 'ret i32 0'. llvm-svn: 152497
-
Benjamin Kramer authored
llvm-svn: 152495
-