- Jun 14, 2009
-
-
Torok Edwin authored
llvm-svn: 73342
-
Owen Anderson authored
is that, for functions whose bodies are entirely guarded by an if-statement, it can be profitable to pull the test out of the callee and into the caller. This code has had some cursory testing, but still has a number of known issues on the LLVM test suite. llvm-svn: 73338
-
Bruno Cardoso Lopes authored
Introduce new BinaryObject (blob) class, ELF Writer modified to use it. BinaryObject.h by Aaron Gray llvm-svn: 73333
-
- Jun 13, 2009
-
-
Nick Lewycky authored
pointer. This fixes kimwitu++. Pointed out by Frits van Bommel on review! llvm-svn: 73299
-
Sanjiv Gupta authored
The subprogram descriptor for a function may be missing (llvm-ld linking two static functions with same name), so pick up the compilation unit for the function from the first valid debug loc of its instructions. This patch also emits debug info for structure (aggregate types in general) types. llvm-svn: 73295
-
Dan Gohman authored
induction variable when the addrec to be expanded does not require a wider type. This eliminates the need for IndVarSimplify to micro-manage SCEV expansions, because SCEVExpander now automatically expands them in the form that IndVarSimplify considers to be canonical. (LSR still micro-manages its SCEV expansions, because it's optimizing for the target, rather than for other optimizations.) Also, this uses the new getAnyExtendExpr, which has more clever expression simplification logic than the IndVarSimplify code it replaces, and this cleans up some ugly expansions in code such as the included masked-iv.ll testcase. llvm-svn: 73294
-
Dan Gohman authored
extension with unspecified bits. llvm-svn: 73293
-
Evan Cheng authored
consecutive addresses togther. This makes it easier for the post-allocation pass to form ldm / stm. This is step 1. We are still missing a lot of ldm / stm opportunities because of register allocation are not done in the desired order. More enhancements coming. llvm-svn: 73291
-
Devang Patel authored
llvm.dbg.region.end() intrinsic is not required to be in _last_ basic block in a function. If that happens then any basic block that follows (lexically) the block with regin.end will not have scope info available. LexicalScopeStack relies on processing basic block in CFG order, but this processing order is not guaranteed. Things get complicated when the optimizer gets a chance to optimizer IR with dbg intrinsics. Apply defensive patch to preserve at least one lexical scope till the end of function. llvm-svn: 73282
-
Owen Anderson authored
llvm-svn: 73258
-
- Jun 12, 2009
-
-
Owen Anderson authored
llvm-svn: 73257
-
Owen Anderson authored
llvm-svn: 73256
-
Evan Cheng authored
If killed register is defined by implicit_def, do not clear it since it's live range may overlap another def of same register. llvm-svn: 73255
-
Chris Lattner authored
non-default addrspaces. llvm-svn: 73253
-
Evan Cheng authored
llvm-svn: 73252
-
Devang Patel authored
llvm-svn: 73244
-
Dan Gohman authored
it may round differently. This fixes PR4374. llvm-svn: 73243
-
Dan Gohman authored
the relationship with MergeFunctions.cpp's isEquivalentOperation, and make a trivial code reordering so that the two functions are easier to compare. Fix the name of Instruction::isSameOperationAs in MergeFunction.cpp's isEquivalentOperation's comment, and fix a nearby 80-column violation. llvm-svn: 73241
-
Nick Lewycky authored
llvm-svn: 73235
-
Arnold Schwaighofer authored
out of sync with regular cc. The only difference between the tail call cc and the normal cc was that one parameter register - R9 - was reserved for calling functions through a function pointer. After time the tail call cc has gotten out of sync with the regular cc. We can use R11 which is also caller saved but not used as parameter register for potential function pointers and remove the special tail call cc on x86-64. llvm-svn: 73233
-
Nick Lewycky authored
llvm-svn: 73231
-
Nick Lewycky authored
thunks. llvm-svn: 73230
-
Nicolas Geoffray authored
another thread. llvm-svn: 73227
-
Nick Lewycky authored
points to while analyzing all other fields. Use FoldingSetNodeID to produce a good hash. This dramatically decreases run times. Emit thunks. This means that it can look at all functions regardless of what the linkage is or if the address is taken, but unfortunately some small functions can be even shorter than the thunk because our backend doesn't yet realize it can just turn these into jumps. This means that this pass will pessimize code on average. llvm-svn: 73222
-
Nick Lewycky authored
since functions may contain aggregate constants too. llvm-svn: 73220
-
Eli Friedman authored
add a few suggestions from looking at some assembly code. llvm-svn: 73210
-
Bruno Cardoso Lopes authored
llvm-svn: 73209
-
- Jun 11, 2009
-
-
Bruno Cardoso Lopes authored
Emission for globals, using the correct data sections Function alignment can be computed for each target using TargetELFWriterInfo Some small fixes llvm-svn: 73201
-
Chris Lattner authored
turned into unreachable. llvm-svn: 73195
-
Sanjiv Gupta authored
llvm-svn: 73194
-
Duncan Sands authored
llvm-svn: 73188
-
Duncan Sands authored
by cppcheck. llvm-svn: 73187
-
Sanjiv Gupta authored
llvm-svn: 73185
-
Sanjiv Gupta authored
llvm-svn: 73184
-
Oscar Fuentes authored
llvm-svn: 73174
-
- Jun 10, 2009
-
-
Jay Foad authored
llvm-svn: 73164
-
Sanjiv Gupta authored
llvm-svn: 73156
-
Anton Korobeynikov authored
llvm-svn: 73152
-
- Jun 09, 2009
-
-
Jay Foad authored
identical function ConstantIsDead() to SafeToDestroyConstant(), to emphasise the connection with Constant::destroyConstant(). llvm-svn: 73149
-
Bill Wendling authored
change. llvm-svn: 73143
-